-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbookmarks.cpp
More file actions
83 lines (76 loc) · 2.53 KB
/
Copy pathbookmarks.cpp
File metadata and controls
83 lines (76 loc) · 2.53 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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include "bookmarks.h"
#include <QJsonDocument>
#include <QFile>
#include <QDir>
#include <QProcessEnvironment>
#include <QDebug>
// Implémentation de Bookmark::toJson
QJsonObject Bookmark::toJson() const {
QJsonObject obj;
obj["name"] = name;
obj["current_directory"] = current_directory;
obj["environment"] = QJsonArray::fromStringList(environment);
return obj;
}
// Implémentation de Bookmark::fromJson
Bookmark Bookmark::fromJson(const QJsonObject &obj) {
Bookmark bm;
bm.name = obj["name"].toString();
bm.current_directory = obj["current_directory"].toString();
QJsonArray envArray = obj["environment"].toArray();
for (const QJsonValue &val : envArray) {
bm.environment.append(val.toString());
}
return bm;
}
QString BookmarkManager::pathBookmark() {
qDebug() << QDir::homePath()+"/.bookmarks.json";
return QDir::homePath()+"/.bookmarks.json";
}
// Implémentation de BookmarkManager::addBookmark
void BookmarkManager::addBookmark(const QString &name) {
Bookmark bm;
bm.name = name;
bm.current_directory = QDir::currentPath(); // Répertoire courant
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
bm.environment = env.toStringList(); // Variables d'environnement
bookmarks.append(bm);
}
// Implémentation de BookmarkManager::getBookmarkNames
QStringList BookmarkManager::getBookmarkNames() const {
QStringList names;
for (const Bookmark &bm : bookmarks) {
names.append(bm.name);
}
return names;
}
// Implémentation de BookmarkManager::saveToFile
void BookmarkManager::saveToFile(const QString &filename) const {
QJsonArray jsonArray;
for (const Bookmark &bm : bookmarks) {
jsonArray.append(bm.toJson());
}
QJsonDocument doc(jsonArray);
QFile file(filename);
if (file.open(QIODevice::WriteOnly)) {
file.write(doc.toJson());
file.close();
} else {
qWarning("Impossible d'ouvrir le fichier pour la sauvegarde.");
}
}
// Implémentation de BookmarkManager::loadFromFile
void BookmarkManager::loadFromFile(const QString &filename) {
QFile file(filename);
if (file.open(QIODevice::ReadOnly)) {
QJsonDocument doc = QJsonDocument::fromJson(file.readAll());
file.close();
QJsonArray jsonArray = doc.array();
bookmarks.clear();
for (const QJsonValue &val : jsonArray) {
bookmarks.append(Bookmark::fromJson(val.toObject()));
}
} else {
qWarning("Impossible d'ouvrir le fichier pour le chargement.");
}
}