玉兔远程控制
0.1.0-bate11
Toggle main menu visibility
载入中...
搜索中...
未找到
App
Client
Favorite
FavoriteDatabase.h
1
// Author: Kang Lin <kl222@126.com>
2
3
#pragma once
4
5
#include <QObject>
6
#include <QDateTime>
7
#include <QIcon>
8
#include "DatabaseTree.h"
9
14
class
CFavoriteDatabase :
public
CDatabaseTree
15
{
16
Q_OBJECT
17
18
public
:
19
explicit
CFavoriteDatabase(QObject *parent =
nullptr
);
20
21
struct
Item {
22
int
id;
// is the id of tree table
23
int
parentId;
24
QString szName;
25
QIcon icon;
26
QString szFile;
27
QString szDescription;
28
TreeItem::TYPE type;
29
explicit
Item(TreeItem::TYPE t = TreeItem::Node)
30
: id(0)
31
, parentId(0)
32
, type(t)
33
{}
34
QIcon GetIcon() {
35
if
(!icon.isNull())
36
return
icon;
37
if
(isFolder())
38
return
QIcon::fromTheme(
"folder"
);
39
return
QIcon::fromTheme(
"file"
);
40
}
41
bool
isFolder()
const
{
return
type == TreeItem::Node; }
42
bool
isFavorite()
const
{
return
type == TreeItem::Leaf; }
43
// 添加有效性检查
44
bool
isValid()
const
{
45
return
id
> 0 || !szFile.isEmpty();
46
}
47
};
48
49
int
AddFavorite(
const
QString &szFile,
const
QString& szName,
50
const
QIcon &icon,
const
QString szDescription,
51
int
parentId = 0);
52
bool
UpdateFavorite(
int
id
,
const
QString& szName = QString(),
53
const
QIcon &icon = QIcon(),
54
const
QString szDescription = QString());
55
bool
UpdateFavorite(
const
QString& szFile,
const
QString& szName = QString(),
56
const
QIcon &icon = QIcon(),
57
const
QString szDescription = QString());
58
Item
GetFavorite(
int
id
);
59
QList<Item> GetFavorite(
const
QString &szFile);
60
Item
GetGroup(
int
id
);
61
QList<Item> GetChildren(
int
parentId);
62
63
private
:
64
bool
OnInitializeDatabase
()
override
;
65
bool
OnInitializeSqliteDatabase()
override
;
66
bool
OnInitializeMySqlDatabase()
override
;
67
CDatabaseIcon
m_IconDB;
68
CDatabaseFile
m_FileDB;
69
70
// CDatabaseTree interface
71
protected
:
72
virtual
bool
OnDeleteKey
(
int
key)
override
;
73
virtual
bool
ExportToJson(QJsonObject &obj)
override
;
74
virtual
bool
ImportFromJson(
const
QJsonObject &obj)
override
;
75
private
:
76
bool
ExportToJson(
int
parentId, QJsonArray& obj);
77
bool
ImportFromJson(
int
parentId,
const
QJsonArray& obj);
78
};
79
80
Q_DECLARE_METATYPE(
CFavoriteDatabase::Item
)
CDatabaseFile
File database
定义
Database.h:164
CDatabaseIcon
Icon database
定义
Database.h:129
CFavoriteDatabase::OnInitializeDatabase
bool OnInitializeDatabase() override
Initialize database
定义
FavoriteDatabase.cpp:106
CFavoriteDatabase::OnDeleteKey
virtual bool OnDeleteKey(int key) override
从 key 相关的表中删除 key
定义
FavoriteDatabase.cpp:382
CFavoriteDatabase::Item
定义
FavoriteDatabase.h:21
作者:康林 (kl222@126.com)
版权所有(c) 康林工作室 保留所有权力