Falkon Develop
Cross-platform Qt-based web browser
bookmarks.h
Go to the documentation of this file.
1/* ============================================================
2* Falkon - Qt web browser
3* Copyright (C) 2010-2014 David Rosca <nowrep@gmail.com>
4*
5* This program is free software: you can redistribute it and/or modify
6* it under the terms of the GNU General Public License as published by
7* the Free Software Foundation, either version 3 of the License, or
8* (at your option) any later version.
9*
10* This program is distributed in the hope that it will be useful,
11* but WITHOUT ANY WARRANTY; without even the implied warranty of
12* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13* GNU General Public License for more details.
14*
15* You should have received a copy of the GNU General Public License
16* along with this program. If not, see <http://www.gnu.org/licenses/>.
17* ============================================================ */
18#ifndef BOOKMARKS_H
19#define BOOKMARKS_H
20
21#include <QObject>
22#include <QVariant>
23
24#include "qzcommon.h"
25
26class QUrl;
27
28class BookmarkItem;
29class BookmarksModel;
30class AutoSaver;
31
32class FALKON_EXPORT Bookmarks : public QObject
33{
34 Q_OBJECT
35public:
36 explicit Bookmarks(QObject* parent = nullptr);
37 ~Bookmarks();
38
39 void loadSettings();
40
41 bool showOnlyIconsInToolbar() const;
42 bool showOnlyTextInToolbar() const;
43
44 BookmarkItem* rootItem() const;
45 BookmarkItem* toolbarFolder() const;
46 BookmarkItem* menuFolder() const;
47 BookmarkItem* unsortedFolder() const;
48 BookmarkItem* lastUsedFolder() const;
49
50 BookmarksModel* model() const;
51
52 bool isBookmarked(const QUrl &url);
53 bool canBeModified(BookmarkItem* item) const;
54
55 // Search bookmarks (urls only) for exact url match
56 QList<BookmarkItem*> searchBookmarks(const QUrl &url) const;
57 // Search bookmarks for contains match through all properties
58 QList<BookmarkItem*> searchBookmarks(const QString &string, int limit = -1, Qt::CaseSensitivity sensitive = Qt::CaseInsensitive) const;
59 // Search bookmarks for exact match of keyword
60 QList<BookmarkItem*> searchKeyword(const QString &keyword) const;
61
62 void addBookmark(BookmarkItem* parent, BookmarkItem* item);
63 void insertBookmark(BookmarkItem* parent, int row, BookmarkItem* item);
64 bool removeBookmark(BookmarkItem* item);
65 void changeBookmark(BookmarkItem* item);
66
67public Q_SLOTS:
68 void setShowOnlyIconsInToolbar(bool state);
69 void setShowOnlyTextInToolbar(bool state);
70
71Q_SIGNALS:
72 // Item was added to bookmarks
74 // Item was removed from bookmarks
76 // Item data has changed
78
81
82private Q_SLOTS:
83 void saveSettings();
84
85private:
86 void init();
87 void loadBookmarks();
88 void saveBookmarks();
89
90 void loadBookmarksFromMap(const QVariantMap &map);
91 void readBookmarks(const QVariantList &list, BookmarkItem* parent);
92 QVariantList writeBookmarks(BookmarkItem* parent);
93
94 void search(QList<BookmarkItem*>* items, BookmarkItem* parent, const QUrl &url) const;
95 void search(QList<BookmarkItem*>* items, BookmarkItem* parent, const QString &string, int limit, Qt::CaseSensitivity sensitive) const;
96 void searchKeyword(QList<BookmarkItem*>* items, BookmarkItem* parent, const QString &keyword) const;
97
98 BookmarkItem* m_root;
99 BookmarkItem* m_folderToolbar;
100 BookmarkItem* m_folderMenu;
101 BookmarkItem* m_folderUnsorted;
102 BookmarkItem* m_lastFolder;
103
104 BookmarksModel* m_model;
105 AutoSaver* m_autoSaver;
106
107 bool m_showOnlyIconsInToolbar;
108 bool m_showOnlyTextInToolbar;
109};
110
111#endif // BOOKMARKS_H
void bookmarkRemoved(BookmarkItem *item)
void showOnlyIconsInToolbarChanged(bool show)
void bookmarkAdded(BookmarkItem *item)
void bookmarkChanged(BookmarkItem *item)
void showOnlyTextInToolbarChanged(bool show)
State state
#define FALKON_EXPORT
Definition: qzcommon.h:28