28 #ifndef dooble_history_h
29 #define dooble_history_h
31 #include <QAtomicInteger>
34 #include <QReadWriteLock>
35 #include <QSqlDatabase>
37 #include <QWebEngineHistoryItem>
40 class QStandardItemModel;
41 typedef QList<QPair<QIcon, QString> > QListPairIconString;
42 typedef QList<QUrl> QListUrl;
43 typedef QList<QVector<QByteArray> > QListVectorByteArray;
50 enum class HistoryItem
63 QHash<QUrl, QHash<dooble_history::HistoryItem, QVariant> >
65 QList<QAction *> last_n_actions(
int n)
const;
66 QList<QUrl> previous_session_tabs(
void)
const;
67 QStandardItemModel *favorites_model(
void)
const;
68 bool is_favorite(
const QUrl &url)
const;
71 void purge_favorites(
void);
72 void purge_history(
void);
73 void remove_favorite(
const QUrl &url);
74 void remove_items_list(
const QList<QUrl> &url);
75 void save_favicon(
const QIcon &icon,
const QUrl &url);
76 void save_favorite(
const QUrl &url,
bool state);
77 void save_item(
const QIcon &icon,
78 const QWebEngineHistoryItem &item,
80 void save_session_tabs(
const QList<QUrl> &urls);
83 QAtomicInteger<short> m_interrupt;
84 QFuture<void> m_populate_future;
85 QFuture<void> m_purge_future;
86 QHash<QUrl, QHash<dooble_history::HistoryItem, QVariant> > m_history;
87 QMultiMap<QDateTime, QUrl> m_history_date_time;
88 QStandardItemModel *m_favorites_model;
90 mutable QReadWriteLock m_history_mutex;
91 void create_tables(QSqlDatabase &db);
92 void populate(
const QByteArray &authentication_key,
93 const QByteArray &encryption_key);
94 void purge(
const QByteArray &authentication_key,
95 const QByteArray &encryption_key);
97 (
const QHash<dooble_history::HistoryItem, QVariant> &hash);
100 void slot_populate(
void);
101 void slot_populated_favorites(
const QListVectorByteArray &favorites);
102 void slot_remove_items(
const QListUrl &urls);
103 void slot_purge_timer_timeout(
void);
106 void icon_updated(
const QIcon &icon,
const QUrl &url);
107 void item_updated(
const QIcon &icon,
const QWebEngineHistoryItem &item);
108 void new_item(
const QIcon &icon,
const QWebEngineHistoryItem &item);
109 void populated(
const QListPairIconString &list);
110 void populated(
void);
111 void populated_favorites(
const QListVectorByteArray &favorites);
112 void remove_items(
const QListUrl &urls);
115 #if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
120 qHash(
const dooble_history::HistoryItem &key,
121 #
if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
127 return ::qHash(
static_cast<uint
> (key), seed);
Definition: dooble_history.h:46