File indexing completed on 2024-05-12 05:25:39

0001 /*
0002    SPDX-FileCopyrightText: 2015-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include <KBookmarkManager>
0010 #include <KBookmarkOwner>
0011 
0012 #include <QObject>
0013 
0014 class KBookmarkMenu;
0015 class QMenu;
0016 class KActionCollection;
0017 class SieveEditorMainWindow;
0018 class SieveEditorBookmarks : public QObject, public KBookmarkOwner
0019 {
0020     Q_OBJECT
0021 public:
0022     explicit SieveEditorBookmarks(SieveEditorMainWindow *mainWindow, KActionCollection *collection, QMenu *menu, QObject *parent = nullptr);
0023     ~SieveEditorBookmarks() override;
0024 
0025     QMenu *menu() const;
0026 
0027     void openBookmark(const KBookmark &bm, Qt::MouseButtons mb, Qt::KeyboardModifiers km) override;
0028 
0029     [[nodiscard]] QString currentTitle() const override;
0030     [[nodiscard]] QUrl currentUrl() const override;
0031 
0032 Q_SIGNALS:
0033     void openUrl(const QUrl &url);
0034 
0035 private:
0036     Q_DISABLE_COPY(SieveEditorBookmarks)
0037     KBookmarkManager *m_bookmarkManager;
0038     KBookmarkMenu *mBookmarkMenu = nullptr;
0039     QMenu *const mMenu;
0040     SieveEditorMainWindow *const mMainWindow;
0041 };