forked from torriem/QtAgOpenGPS
-
Notifications
You must be signed in to change notification settings - Fork 1
/
formgps_ui_vehicle.cpp
106 lines (79 loc) · 3.28 KB
/
formgps_ui_vehicle.cpp
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include "formgps.h"
#include "qmlutil.h"
#include "aogproperty.h"
#include "qmlsettings.h"
QString caseInsensitiveFilename(QString directory, QString filename);
extern QMLSettings qml_settings;
void FormGPS::vehicle_saveas(QString vehicle_name) {
QString directoryName = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation)
+ "/" + QCoreApplication::applicationName() + "/Vehicles";
QDir saveDir(directoryName);
if (!saveDir.exists()) {
bool ok = saveDir.mkpath(directoryName);
if (!ok) {
qWarning() << "Couldn't create path " << directoryName;
return;
}
}
QString filename = directoryName + "/" + caseInsensitiveFilename(directoryName, vehicle_name);
settings->saveJson(filename);
}
void FormGPS::vehicle_load(QString vehicle_name) {
QString directoryName = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation)
+ "/" + QCoreApplication::applicationName() + "/Vehicles";
QDir loadDir(directoryName);
if (!loadDir.exists()) {
bool ok = loadDir.mkpath(directoryName);
if (!ok) {
qWarning() << "Couldn't create path " << directoryName;
return;
}
}
if (!loadDir.exists(caseInsensitiveFilename(directoryName, vehicle_name)))
qWarning() << vehicle_name << " may not exist but will try to load it anyway.";
QString filename = directoryName + "/" + caseInsensitiveFilename(directoryName, vehicle_name);
settings->loadJson(filename);
}
void FormGPS::vehicle_delete(QString vehicle_name) {
/*
if ((bool)property_setMenu_isMetric) {
settings->setValue("display/isMetric", "false");
qml_settings.insert("testing123","false");
} else {
settings->setValue("display/isMetric", "true");
qml_settings.insert("testing123","true");
}
return;
*/
QString directoryName = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation)
+ "/" + QCoreApplication::applicationName() + "/Vehicles";
QString filename = directoryName + "/" + caseInsensitiveFilename(directoryName, vehicle_name);
QDir vehicleDir(directoryName);
if (vehicleDir.exists()) {
if (! vehicleDir.remove(caseInsensitiveFilename(directoryName, vehicle_name)))
qWarning() << "Could not delete vehicle " << vehicle_name;
}
}
void FormGPS::vehicle_update_list() {
QObject *vehicleInterface;
QString directoryName = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation)
+ "/" + QCoreApplication::applicationName() + "/Vehicles";
vehicleInterface = qmlItem(qml_root, "vehicleInterface");
QDir vehicleDirectory(directoryName);
if(!vehicleDirectory.exists()) {
vehicleDirectory.mkpath(directoryName);
}
vehicleDirectory.setFilter(QDir::Files);
QFileInfoList filesList = vehicleDirectory.entryInfoList();
QList<QVariant> vehicleList;
QMap<QString, QVariant>vehicle;
int index = 0;
for (QFileInfo file : filesList) {
vehicle.clear();
vehicle["index"] = index;
vehicle["name"] = file.fileName();
vehicleList.append(vehicle);
index++;
}
vehicleInterface->setProperty("vehicle_list", vehicleList);
}