summaryrefslogtreecommitdiff
path: root/src/bookmarks/bookmarkmanager.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bookmarks/bookmarkmanager.hpp')
-rw-r--r--src/bookmarks/bookmarkmanager.hpp123
1 files changed, 123 insertions, 0 deletions
diff --git a/src/bookmarks/bookmarkmanager.hpp b/src/bookmarks/bookmarkmanager.hpp
new file mode 100644
index 00000000..417eb83d
--- /dev/null
+++ b/src/bookmarks/bookmarkmanager.hpp
@@ -0,0 +1,123 @@
+/* ============================================================
+ * The rekonq project
+ * ============================================================
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ * Copyright (C) 2008-2012 by Andrea Diamantini <adjam7 at gmail dot com>
+ * Copyright (C) 2009 by Paweł Prażak <pawelprazak at gmail dot com>
+ * Copyright (C) 2009-2010 by Lionel Chauvin <megabigbug@yahoo.fr>
+ * Copyright (C) 2010 by Yoann Laissus <yoann dot laissus at gmail dot com>
+ * SPDX-License-Identifier: GPL-3.0-only
+ * Copyright (C) 2022 aqua <aqua@iserlohn-fortress.net>
+ * ============================================================
+ * Description: rekonq bookmarks system interface
+ * ============================================================ */
+
+#pragma once
+
+#include "bookmarkstreemodel.hpp"
+#include "rekonq.hpp"
+#include <QObject>
+
+class BookmarkToolBar;
+class QAction;
+
+/**
+ * This class represent the interface to rekonq bookmarks system.
+ * All rekonq needs (Bookmarks Menu, Bookmarks Toolbar) is provided
+ * from this class.
+ * So it implements code to have each one.
+ */
+class BookmarkManager : public QObject {
+ Q_OBJECT
+
+public:
+ /**
+ * Entry point.
+ * Access to BookmarkManager class by using
+ * BookmarkManager::self()->thePublicMethodYouNeed()
+ */
+ static BookmarkManager *self();
+
+ ~BookmarkManager();
+
+ /**
+ * @short set the Bookmarks Toolbar Action
+ */
+ void registerBookmarkBar(BookmarkToolBar *toolbar);
+ void removeBookmarkBar(BookmarkToolBar *toolbar);
+
+ /**
+ * @short Get action by name
+ * This method returns poiner bookmark action of given name.
+ * @pre m_actionCollection != NULL
+ * @param name Name of action you want to get
+ * @return It returns actions if one exists or empty object
+ */
+ QAction *actionByName(const QString &name);
+
+ /**
+ * returns Bookmark Manager root group
+ *
+ * @return the root bookmark group
+ */
+ KBookmarkGroup rootGroup();
+
+ inline KBookmarkManager *manager() { return m_manager; }
+
+ inline BookmarkOwner *owner() { return m_owner; }
+
+ QList<KBookmark> find(const QString &text);
+
+ KBookmark bookmarkForUrl(const KUrl &url);
+
+ KBookmark findByAddress(const QString &);
+
+ void openFolderinTabs(const KBookmarkGroup &bm);
+
+ void emitChanged();
+
+ static inline QString bookmark_mime_type() { return QL1S("application/x-rekonq-bookmark"); }
+
+ KActionMenu *bookmarkActionMenu(QWidget *parent);
+
+private:
+ /**
+ * @short Class constructor.
+ * Connect BookmarksProvider with bookmarks source
+ * (actually konqueror's bookmarks).
+ * @param parent The WebWindow to provide bookmarks objects.
+ */
+ explicit BookmarkManager(QObject *parent = nullptr);
+
+public Q_SLOTS:
+ /**
+ * @short Waits for signal that the group with the address has been modified by the caller.
+ * Waits for signal that the group (or any of its children) with the address
+ * @p groupAddress (e.g. "/4/5") has been modified by the caller @p caller.
+ * @param groupAddress bookmark group address
+ * @param caller caller that modified the bookmarks
+ * @see KBookmarkManager::changed
+ */
+ void slotBookmarksChanged();
+ void fillBookmarkBar(BookmarkToolBar *toolBar);
+
+ void slotEditBookmarks();
+
+ KBookmark bookmarkCurrentPage(const KBookmark &bookmark = KBookmark());
+
+Q_SIGNALS:
+ /**
+ * @short This signal is emitted when an url has to be loaded
+ */
+ void openUrl(const KUrl &, const Rekonq::OpenType &);
+
+ void bookmarksUpdated();
+
+private:
+ void find(QList<KBookmark> *list, const KBookmark &bookmark, const QString &text);
+ KBookmark bookmarkForUrl(const KBookmark &bookmark, const KUrl &url);
+ void copyBookmarkGroup(const KBookmarkGroup &groupToCopy, KBookmarkGroup destGroup);
+
+ QList<BookmarkToolBar *> m_bookmarkToolBars;
+ BookmarkModel *m_model;
+};