Keep desktop config projection separate from core settings

This commit is contained in:
evgeny committed 2026-10-27 03:14:00 +01:00
1 parent f6f3ca8da7
commit 9fa58b4f83
7 files changed
+412 -547

No files matched your search

+5 -17
View File
@@ -25,6 +25,7 @@
#include "desktop_integration.h"
#include "gui_log.h"
#include "config_parser.h"
#include "../../../src/config_updater.h"
#include <cstdio>
#include <cstring>
#include <cerrno>
@@ -199,10 +200,10 @@ int main(int argc, char *argv[]) {
QFile::rename(cfgDir + "/chatgui.cfg", cfgPath);
NodeConfig cfg(cfgPath);
if (cfg.exists() && !cfg.load()) {
qCritical("Cannot open/read config file: %s", qPrintable(cfgPath));
if (cfg.exists() && (config_ensure_keys_and_node_id(cfgPath.toUtf8().constData()) != 0 || !cfg.load())) {
DEBUG_ERROR(DEBUG_CATEGORY_CONFIG, "Cannot prepare/read GUI configuration: %s", qPrintable(cfgPath));
QMessageBox failure(QMessageBox::Critical, "vibechat",
QCoreApplication::translate("ChatGui", "Cannot read configuration:\n%1").arg(cfgPath), QMessageBox::Ok);
QCoreApplication::translate("ChatGui", "Invalid configuration:\n%1").arg(cfgPath), QMessageBox::Ok);
instance.setWindow(&failure);
failure.exec();
instance.setWindow(nullptr);
@@ -227,7 +228,6 @@ int main(int argc, char *argv[]) {
};
QString language = resolveGuiLanguage(cfg.language());
if (!loadLanguage(language)) return 1;
bool needSave = false;
const bool firstRun = !cfg.exists();
if (firstRun) {
@@ -299,7 +299,7 @@ int main(int argc, char *argv[]) {
return 0;
}
cfg.setLanguage(languageCombo->currentData().toString());
if (!cfg.create(nickname->text().trimmed(), 1333)) {
if (!cfg.create(nickname->text().trimmed())) {
DEBUG_ERROR(DEBUG_CATEGORY_CONFIG, "First-run setup: failed to create config=%s", qPrintable(cfgPath));
QMessageBox::critical(nullptr, wizard.windowTitle(),
QCoreApplication::translate("ChatGui", "Failed to save your profile. Check that the data folder is writable."));
@@ -317,18 +317,6 @@ int main(int argc, char *argv[]) {
instance.setWindow(nullptr);
return 1;
}
if (cfg.privKey().length() != 64 || cfg.pubKey().length() != 64) {
qWarning("Config: keys missing/invalid, regenerating identity");
cfg.generateIdentity();
needSave = true;
}
if (cfg.nodeId().length() != 16) {
qWarning("Config: my_node_id missing/invalid, regenerating identity");
cfg.generateIdentity();
needSave = true;
}
if (needSave)
cfg.save();
}
QString dbPath = cfg.dbPath();