玉兔远程控制
0.1.0-bate11
Toggle main menu visibility
载入中...
搜索中...
未找到
Plugins
WebBrowser
History
HistoryDatabase.h
1
// Author: Kang Lin <kl222@126.com>
2
3
#pragma once
4
5
#include <QObject>
6
#include <QSqlDatabase>
7
#include <QDateTime>
8
#include <QUrl>
9
#include <QIcon>
10
#include "DatabaseUrl.h"
11
12
struct
HistoryItem
{
13
int
id;
14
QIcon icon;
15
QString url;
16
QString title;
17
QDateTime visitTime;
18
};
19
24
class
CHistoryDatabase :
public
CDatabase
25
{
26
Q_OBJECT
27
public
:
28
explicit
CHistoryDatabase(QObject *parent =
nullptr
);
29
~CHistoryDatabase();
30
31
// 历史记录操作
32
bool
addHistoryEntry(
const
QString &url);
33
bool
addHistoryEntry(
const
QString &url,
const
QString& title,
const
QDateTime& time);
34
bool
updateHistoryEntry(
const
QString& url,
const
QString &title = QString(),
const
QIcon& icon = QIcon());
35
bool
updateHistoryEntry(
int
id
,
const
QString &title = QString(),
const
QIcon& icon = QIcon());
36
bool
deleteHistoryEntry(
int
id
);
37
bool
deleteHistoryEntry(
const
QString& url);
38
bool
deleteDomainEntries(
const
QString& szDomain);
39
bool
clearHistory(
int
days = 0);
// 0表示清除所有
40
void
scheduleCleanup(
int
maxDays,
int
maxCount);
41
42
// 查询操作
43
[[nodiscard]] QList<HistoryItem> getAllHistory(
int
limit = -1,
int
offset = 0);
44
[[nodiscard]] QList<HistoryItem> getHistoryByDate(
const
QDate &date);
45
[[nodiscard]] QList<HistoryItem> getHistoryByDate(
const
QDate &start,
const
QDate &end,
int
limit = 100);
46
[[nodiscard]] QList<HistoryItem> searchHistory(
const
QString &keyword);
47
[[nodiscard]]
HistoryItem
getHistoryByUrl(
const
QString &url);
48
[[nodiscard]]
HistoryItem
getHistoryById(
int
id
);
49
50
// 统计信息
51
[[nodiscard]]
int
getHistoryCount();
52
[[nodiscard]] QDateTime getLastVisitTime();
53
54
private
:
55
[[nodiscard]]
bool
OnInitializeDatabase
()
override
;
56
CDatabaseUrl
m_UrlDB;
57
58
[[nodiscard]]
virtual
bool
ExportToJson(QJsonObject &obj)
override
;
59
[[nodiscard]]
virtual
bool
ImportFromJson(
const
QJsonObject &obj)
override
;
60
61
// CDatabase interface
62
protected
:
63
[[nodiscard]]
virtual
bool
OnInitializeSqliteDatabase()
override
;
64
[[nodiscard]]
virtual
bool
OnInitializeMySqlDatabase()
override
;
65
};
66
67
void
enableSqlTrace(
const
QString& connectionName = QSqlDatabase::defaultConnection);
CDatabaseUrl
定义
DatabaseUrl.h:8
CHistoryDatabase::OnInitializeDatabase
bool OnInitializeDatabase() override
Initialize database
定义
HistoryDatabase.cpp:55
HistoryItem
定义
HistoryDatabase.h:12
作者:康林 (kl222@126.com)
版权所有(c) 康林工作室 保留所有权力