Files
z-bar-qt/Plugins/ZShell/Services/desktopstatemanager.cpp
T
Zacharias-Brohn 851b78f0ff kek test
2026-03-12 10:04:27 +01:00

55 lines
1.3 KiB
C++

#include "desktopstatemanager.hpp"
#include <QStandardPaths>
#include <QDir>
#include <QFile>
#include <QJsonDocument>
#include <QJsonObject>
#include <QDebug>
namespace ZShell::services {
DesktopStateManager::DesktopStateManager(QObject *parent) : QObject(parent) {
}
QString DesktopStateManager::getConfigFilePath() const {
QString configDir = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) + "/sleex";
QDir dir(configDir);
if (!dir.exists()) {
dir.mkpath(".");
}
return configDir + "/desktop_layout.json";
}
void DesktopStateManager::saveLayout(const QVariantMap& layout) {
QJsonObject jsonObj = QJsonObject::fromVariantMap(layout);
QJsonDocument doc(jsonObj);
QFile file(getConfigFilePath());
if (file.open(QIODevice::WriteOnly)) {
file.write(doc.toJson(QJsonDocument::Indented));
file.close();
} else {
qWarning() << "Sleex: Impossible de sauvegarder le layout du bureau dans" << getConfigFilePath();
}
}
QVariantMap DesktopStateManager::getLayout() {
QFile file(getConfigFilePath());
if (!file.open(QIODevice::ReadOnly)) {
return QVariantMap();
}
QByteArray data = file.readAll();
file.close();
QJsonDocument doc = QJsonDocument::fromJson(data);
if (doc.isObject()) {
return doc.object().toVariantMap();
}
return QVariantMap();
}
} // namespace ZShell::services