-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpresetlistmodel.cpp
More file actions
63 lines (55 loc) · 2.2 KB
/
presetlistmodel.cpp
File metadata and controls
63 lines (55 loc) · 2.2 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
60
61
62
63
#include "presetlistmodel.h"
#include <QJsonObject>
// Convert a QList<presetSetting> to a QJsonArray
// Convert a QJsonArray to a QList<presetSetting>
QJsonArray presetSettingsToJsonArray(const QList<presetSetting> &settings)
{
QJsonArray jsonArray;
for (const auto &setting : settings) {
QJsonObject jsonObj;
jsonObj["name"] = setting.name;
jsonObj["importFolder"] = setting.importFolder;
jsonObj["md5Check"] = setting.md5Check;
jsonObj["deleteAfterImport"] = setting.deleteAfterImport;
jsonObj["ejectAfterImport"] = setting.ejectAfterImport;
jsonObj["previewImage"] = setting.previewImage;
jsonObj["deleteExisting"] = setting.deleteExisting;
jsonObj["quitEmptyCard"] = setting.quitEmptyCard;
jsonObj["ejectIfEmpty"] = setting.ejectIfEmpty;
jsonObj["quitAfterImport"] = setting.quitAfterImport;
jsonArray.append(jsonObj);
}
return jsonArray;
}
QList<presetSetting> jsonArrayToPresetSettings(const QJsonArray &jsonArray)
{
QList<presetSetting> settings;
for (const auto &jsonValue : jsonArray) {
const auto jsonObj = jsonValue.toObject();
settings.append({jsonObj["name"].toString(),
jsonObj["importFolder"].toString(),
jsonObj["md5Check"].toBool(),
jsonObj["deleteAfterImport"].toBool(),
jsonObj["ejectAfterImport"].toBool(),
jsonObj["previewImage"].toBool(),
jsonObj["deleteExisting"].toBool(),
jsonObj["quitEmptyCard"].toBool(),
jsonObj["ejectIfEmpty"].toBool(),
jsonObj["quitAfterImport"].toBool()});
}
return settings;
}
presetListModel::presetListModel(const QList<presetSetting> &data, QObject *parent)
: QAbstractListModel(parent)
, data_(data)
{}
int presetListModel::rowCount(const QModelIndex &parent) const
{
return data_.size();
}
QVariant presetListModel::data(const QModelIndex &index, int role) const
{
if (!index.isValid() || role != Qt::DisplayRole)
return QVariant();
return data_[index.row()].name; // assuming name for display
}