Rabbit Remote Control
0.1.0-bate14
Toggle main menu visibility
Loading...
Searching...
No Matches
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.
Definition
Database.h:164
CDatabaseIcon
Icon database.
Definition
Database.h:129
CFavoriteDatabase::OnInitializeDatabase
bool OnInitializeDatabase() override
Initialize database.
Definition
FavoriteDatabase.cpp:106
CFavoriteDatabase::Item
Definition
FavoriteDatabase.h:21
Author: Kang Lin (kl222@126.com)
Copyright (c) Kang Lin Studios All Rights Reserved