You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
qml: stabilize pre-init datadir and settings resolution
Keep the datadir selected in onboarding separate from the path Core resolves after config parsing. Run pre-init preview and apply through a scratch ArgsManager seeded from the original argv so live gArgs reaches InitConfig without preloaded config or settings state.
Finalize onboarding settings after InitConfig and chain-specific QSettings setup. Apply reset across Core and GUI stores transactionally, preserve strDataDir, honor final source precedence, and recover unreadable settings with the Qt reset-or-abort behavior.
Only open and synchronize settings stores that are used or modified, preserving rollback without allowing unrelated stores to block startup. Add unit and functional coverage for datadir precedence, reset behavior, recovery, persistence, and rollback.
if (error) *error = QString::fromStdString(e.what());
242
-
returnfalse;
243
-
}
244
-
245
-
fs::path settings_path;
246
-
if (!args.GetSettingsPath(&settings_path) || !fs::exists(settings_path)) {
247
-
returntrue;
248
-
}
249
-
250
-
std::vector<std::string> settings_errors;
251
-
if (!args.ReadSettingsFile(&settings_errors)) {
252
-
if (error) *error = QString::fromStdString(settings_errors.empty() ? std::string{"Settings file could not be read."} : settings_errors.front());
253
-
returnfalse;
254
-
}
255
-
if (!args.WriteSettingsFile(&settings_errors, /*backup=*/true)) {
256
-
if (error) *error = QString::fromStdString(settings_errors.empty() ? std::string{"Settings file backup could not be written."} : settings_errors.front());
0 commit comments