File indexing completed on 2024-04-14 15:49:25

0001 /*
0002  * SPDX-FileCopyrightText: 2019 David Hallas <david@davidhallas.dk>
0003  *
0004  * SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #ifndef DOLPHINBOOKMARKHANDLER_H
0008 #define DOLPHINBOOKMARKHANDLER_H
0009 
0010 #include <KBookmarkManager>
0011 #include <KBookmarkOwner>
0012 #include <QObject>
0013 
0014 class DolphinMainWindow;
0015 class DolphinViewContainer;
0016 class KActionCollection;
0017 class KBookmarkMenu;
0018 class QMenu;
0019 
0020 class DolphinBookmarkHandler : public QObject, public KBookmarkOwner
0021 {
0022     Q_OBJECT
0023 public:
0024     DolphinBookmarkHandler(DolphinMainWindow *mainWindow, KActionCollection *collection, QMenu *menu, QObject *parent);
0025     ~DolphinBookmarkHandler() override;
0026 
0027 private:
0028     QString currentTitle() const override;
0029     QUrl currentUrl() const override;
0030     QString currentIcon() const override;
0031     bool supportsTabs() const override;
0032     QList<FutureBookmark> currentBookmarkList() const override;
0033     bool enableOption(BookmarkOption option) const override;
0034     void openBookmark(const KBookmark &bookmark, Qt::MouseButtons, Qt::KeyboardModifiers) override;
0035     void openFolderinTabs(const KBookmarkGroup &bookmarkGroup) override;
0036     void openInNewTab(const KBookmark &bookmark) override;
0037     void openInNewWindow(const KBookmark &bookmark) override;
0038     static QString title(DolphinViewContainer *viewContainer);
0039     static QUrl url(DolphinViewContainer *viewContainer);
0040     static QString icon(DolphinViewContainer *viewContainer);
0041 
0042 private:
0043     DolphinMainWindow *m_mainWindow;
0044     std::unique_ptr<KBookmarkManager> m_bookmarkManager;
0045     QScopedPointer<KBookmarkMenu> m_bookmarkMenu;
0046 };
0047 
0048 #endif // DOLPHINBOOKMARKHANDLER_H