1 | // Copyright (C) 2016 The Qt Company Ltd. |
---|---|
2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 |
3 | #ifndef BOOKMARKMANAGERWIDGET_H |
4 | #define BOOKMARKMANAGERWIDGET_H |
5 | |
6 | #include "ui_bookmarkmanagerwidget.h" |
7 | |
8 | #include <QtCore/QPersistentModelIndex> |
9 | |
10 | #include <QtWidgets/QMenu> |
11 | |
12 | QT_BEGIN_NAMESPACE |
13 | |
14 | class BookmarkModel; |
15 | class QCloseEvent; |
16 | class QString; |
17 | |
18 | class BookmarkManagerWidget : public QWidget |
19 | { |
20 | Q_OBJECT |
21 | public: |
22 | explicit BookmarkManagerWidget(BookmarkModel *bookmarkModel, |
23 | QWidget *parent = nullptr); |
24 | ~BookmarkManagerWidget() override; |
25 | |
26 | protected: |
27 | void closeEvent(QCloseEvent *event) override; |
28 | |
29 | signals: |
30 | void setSource(const QUrl &url); |
31 | void setSourceInNewTab(const QUrl &url); |
32 | |
33 | void managerWidgetAboutToClose(); |
34 | |
35 | private: |
36 | void renameItem(const QModelIndex &index); |
37 | void selectNextIndex(bool direction) const; |
38 | bool eventFilter(QObject *object, QEvent *event) override; |
39 | |
40 | private slots: |
41 | void findNext(); |
42 | void findPrevious(); |
43 | |
44 | void importBookmarks(); |
45 | void exportBookmarks(); |
46 | |
47 | void refeshBookmarkCache(); |
48 | void textChanged(const QString &text); |
49 | |
50 | void removeItem(const QModelIndex &index = QModelIndex()); |
51 | |
52 | void customContextMenuRequested(const QPoint &point); |
53 | void setSourceFromIndex(const QModelIndex &index, bool newTab = false); |
54 | |
55 | private: |
56 | QMenu importExportMenu; |
57 | Ui::BookmarkManagerWidget ui; |
58 | QList<QPersistentModelIndex> cache; |
59 | |
60 | BookmarkModel *bookmarkModel; |
61 | }; |
62 | |
63 | QT_END_NAMESPACE |
64 | |
65 | #endif // BOOKMARKMANAGERWIDGET_H |
66 |