-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmodemanager.cpp
More file actions
59 lines (45 loc) · 1.85 KB
/
modemanager.cpp
File metadata and controls
59 lines (45 loc) · 1.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include "modemanager.h"
ModeManager::ModeManager(QWidget *parent)
: QListView(parent)
{
auto *actionDelegate = new ActionDelegate(this);
QPalette p(palette());
p.setBrush(QPalette::WindowText, QColor("#303030"));
p.setBrush(QPalette::Base, QColor("#F0F1F2"));
p.setBrush(QPalette::Light, QColor("#FFFFFF"));
p.setBrush(QPalette::Midlight, QColor("#D3D6D8"));
p.setBrush(QPalette::Mid, QColor("#C5C9CB"));
p.setBrush(QPalette::Dark, QColor("#9AA0A4"));
p.setBrush(QPalette::Text, QColor("#616B71"));
p.setBrush(QPalette::Highlight, QColor("#E2E4E5"));
actionDelegate->setContentsMargins(10, 10, 10, 10);
actionDelegate->setHorizontalSpacing(8);
actionDelegate->setVerticalSpacing(4);
resize(parent->size());
setItemDelegate(actionDelegate);
QByteArray jsonData;
QJsonParseError parseError;
QFile modesFile(":/modes.json");
modesFile.open(QIODevice::ReadOnly | QIODevice::Text);
modesFile.close();
QJsonDocument document = QJsonDocument::fromJson(jsonData, &parseError);
if(parseError.error != QJsonParseError::NoError) {
qDebug() << "Parse error (verb): " << parseError.errorString();
return;
}
data = new QJsonDocument(document);
}
void ModeManager::AddMode(const Mode &mode) {
auto *item = new QStandardItem(mode.description);
item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
item->setData("", Qt::UserRole);
item->setData("", Qt::UserRole + 1);
item->setData(mode.uris, Qt::UserRole + 2);
static_cast<QStandardItemModel *>(model())->appendRow(item);
}
void ModeManager::SaveModes() {
QFile modesFile(":/modes.json");
modesFile.open(QIODevice::WriteOnly | QIODevice::Text);
modesFile.write(data->toBinaryData());
modesFile.close();
}