File indexing completed on 2024-04-28 15:51:41
0001 /* 0002 SPDX-FileCopyrightText: 2006 Pino Toscano <pino@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef BOOKMARKLIST_H 0008 #define BOOKMARKLIST_H 0009 0010 #include <qwidget.h> 0011 0012 #include "core/observer.h" 0013 0014 class QAction; 0015 class QCheckBox; 0016 class QToolButton; 0017 class QTreeWidget; 0018 class QTreeWidgetItem; 0019 class KTreeWidgetSearchLine; 0020 class QUrl; 0021 class BookmarkItem; 0022 class FileItem; 0023 0024 namespace Okular 0025 { 0026 class Document; 0027 } 0028 0029 class BookmarkList : public QWidget, public Okular::DocumentObserver 0030 { 0031 Q_OBJECT 0032 0033 public: 0034 explicit BookmarkList(Okular::Document *document, QWidget *parent = nullptr); 0035 ~BookmarkList() override; 0036 0037 // inherited from DocumentObserver 0038 void notifySetup(const QVector<Okular::Page *> &pages, int setupFlags) override; 0039 0040 void setAddBookmarkAction(QAction *addBookmarkAction); 0041 0042 private Q_SLOTS: 0043 void slotShowAllBookmarks(bool); 0044 void slotExecuted(QTreeWidgetItem *item); 0045 void slotChanged(QTreeWidgetItem *item); 0046 void slotContextMenu(const QPoint p); 0047 void slotBookmarksChanged(const QUrl &url); 0048 0049 private: 0050 void rebuildTree(bool showAll); 0051 void goTo(BookmarkItem *item); 0052 void selectiveUrlUpdate(const QUrl &url, QTreeWidgetItem *&item); 0053 QTreeWidgetItem *itemForUrl(const QUrl &url) const; 0054 void contextMenuForBookmarkItem(const QPoint p, BookmarkItem *bmItem); 0055 void contextMenuForFileItem(const QPoint p, FileItem *fItem); 0056 0057 Okular::Document *m_document; 0058 QTreeWidget *m_tree; 0059 KTreeWidgetSearchLine *m_searchLine; 0060 QCheckBox *m_showForAllDocumentsCheckbox; 0061 QTreeWidgetItem *m_currentDocumentItem; 0062 QToolButton *m_showAllToolButton; 0063 }; 0064 0065 #endif