/
Shymer123
/
Messenger
Обзор
Документация
Войти
/
Shymer123
/
Messenger
Код
Запросы
0
Задачи
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
UI_Client/SourceFiles/Settings/SettingsManager.cpp
91 строка
3 KB
Shymer123
The app's style has been fixed (borders have been added to some widgets and the style of the search bar has been redesigned).
25 апр 2025, 15:34
25 апр 2025, 15:34
90f2802
Код
Авторство
О чём код?
#include "SettingsManager.h" #include <QFile> #include <QJsonDocument> namespace Settings { SettingsManager::SettingsManager() { if(!QFile::exists(configFilePath)) { QJsonObject defaultSettings; defaultSettings["theme"] = "light"; defaultSettings["backgroundColorElement"] = "#FFFFFF"; defaultSettings["backgroundColorSelectedElement"] = "#41A1D9"; defaultSettings["backgroundColorHoverElement"] = "#F1F1F1"; defaultSettings["titleColor"] = "#000000"; defaultSettings["lastMessageColor"] = "#9B9B9B"; defaultSettings["timeColor"] = "#B0B0B0"; defaultSettings["bubbleBackgroundColorIsSentCurrent"] = "#DEF1FD"; defaultSettings["bubbleBackgroundColorIsSentNotCurrent"] = "#FFFFFF"; defaultSettings["backgroundColorFileIcon"] = "#3F96D0"; defaultSettings["infoPanelOpened"] = false; defaultSettings["infoPanelWidth"] = 290; QJsonDocument doc(defaultSettings); QFile file(configFilePath); if(file.open(QIODevice::WriteOnly)) { file.write(doc.toJson()); } } } SettingsManager& SettingsManager::instance() { static SettingsManager instance; return instance; } void SettingsManager::saveSettings(const QString& key, const QVariant& value) { QFile file(configFilePath); if(!file.open(QIODevice::ReadWrite)) { qDebug() << "Failed to write to config.json"; return; } QJsonDocument doc = QJsonDocument::fromJson(file.readAll()); QJsonObject settings = doc.object(); settings[key] = QJsonValue::fromVariant(value); file.resize(0); file.write(QJsonDocument(settings).toJson()); file.close(); } template <typename T> T SettingsManager::loadSetting(const QString& key, const T& defaultValue) const { QFile file(configFilePath); if(!file.open(QIODevice::ReadOnly)) { qDebug() << "Failed to open config.json"; return defaultValue; } QJsonDocument doc = QJsonDocument::fromJson(file.readAll()); QJsonObject settings = doc.object(); if(settings.contains(key)) { return settings[key].toVariant().value<T>(); } return defaultValue; } template QString SettingsManager::loadSetting<QString> (const QString& key, const QString& defaultValue) const; template int SettingsManager::loadSetting<int> (const QString& key, const int& defaultValue) const; template bool SettingsManager::loadSetting<bool> (const QString& key, const bool& defaultValue) const; } // namespace Settings