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
12QT_BEGIN_NAMESPACE
13
14class BookmarkModel;
15class QCloseEvent;
16class QString;
17
18class BookmarkManagerWidget : public QWidget
19{
20 Q_OBJECT
21public:
22 explicit BookmarkManagerWidget(BookmarkModel *bookmarkModel,
23 QWidget *parent = nullptr);
24 ~BookmarkManagerWidget() override;
25
26protected:
27 void closeEvent(QCloseEvent *event) override;
28
29signals:
30 void setSource(const QUrl &url);
31 void setSourceInNewTab(const QUrl &url);
32
33 void managerWidgetAboutToClose();
34
35private:
36 void renameItem(const QModelIndex &index);
37 void selectNextIndex(bool direction) const;
38 bool eventFilter(QObject *object, QEvent *event) override;
39
40private 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
55private:
56 QMenu importExportMenu;
57 Ui::BookmarkManagerWidget ui;
58 QList<QPersistentModelIndex> cache;
59
60 BookmarkModel *bookmarkModel;
61};
62
63QT_END_NAMESPACE
64
65#endif // BOOKMARKMANAGERWIDGET_H
66

source code of qttools/src/assistant/assistant/bookmarkmanagerwidget.h