玉兔远程控制 0.1.0-bate6
载入中...
搜索中...
未找到
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
11{
12 Q_OBJECT
13
14public:
15 explicit CFavoriteDatabase(QObject *parent = nullptr);
16
17 struct Item {
18 int id; // is the id of tree table
19 int parentId;
20 QString szName;
21 QIcon icon;
22 QString szFile;
23 QString szDescription;
24 TreeItem::TYPE type;
25 Item()
26 : id(0)
27 , parentId(0)
28 , type(TreeItem::Leaf)
29 {}
30 QIcon GetIcon() {
31 if(!icon.isNull())
32 return icon;
33 if(isFolder())
34 return QIcon::fromTheme("folder");
35 return QIcon::fromTheme("file");
36 }
37 bool isFolder() const { return type == TreeItem::Node; }
38 bool isFavorite() const { return type == TreeItem::Leaf; }
39 };
40
41 int AddFavorite(const QString &szFile, const QString& szName,
42 const QIcon &icon, const QString szDescription,
43 int parentId = 0);
44 bool UpdateFavorite(int id, const QString& szName = QString(),
45 const QIcon &icon = QIcon(),
46 const QString szDescription = QString());
47 bool UpdateFavorite(const QString& szFile, const QString& szName = QString(),
48 const QIcon &icon = QIcon(),
49 const QString szDescription = QString());
50 Item GetFavorite(int id);
51 QList<Item> GetFavorite(const QString &szFile);
52 Item GetGroup(int id);
53 QList<Item> GetChildren(int parentId);
54
55private:
56 bool OnInitializeDatabase() override;
57 bool OnInitializeSqliteDatabase() override;
58 bool OnInitializeMySqlDatabase() override;
59 CDatabaseIcon m_IconDB;
60 CDatabaseFile m_FileDB;
61
62 // CDatabaseTree interface
63protected:
64 virtual bool OnDeleteKey(int key) override;
65 virtual bool ExportToJson(QJsonObject &obj) override;
66 virtual bool ImportFromJson(const QJsonObject &obj) override;
67private:
68 bool ExportToJson(int parentId, QJsonArray& obj);
69 bool ImportFromJson(int parentId, const QJsonArray& obj);
70};
71
72Q_DECLARE_METATYPE(CFavoriteDatabase::Item)
The CDatabaseFile class
Definition Database.h:94
virtual bool OnDeleteKey(int key) override
从 key 相关的表中删除 key