Keep desktop config projection separate from core settings
This commit is contained in:
1 parent
f6f3ca8da7
commit
9fa58b4f83
7 files changed
+412
-547
No files matched your search
@@ -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();
|
||||
|
||||
Reference in new issue
Block a user