fix(prefs): apply KindredCreate defaults after Reset All (#229)
Some checks failed
Build and Test / build (pull_request) Has been cancelled

When "Reset All" is used in Preferences, restoreDefaults() clears the
entire User parameter tree via ParameterManager::Clear(). Widgets then
fall back to upstream FreeCAD hardcoded defaults (e.g. light theme,
default units) instead of Kindred Create defaults.

After clearing, apply the KindredCreate preference pack to restore
Create-specific baseline settings (Catppuccin Mocha theme, toolbar
layout, unit preferences, etc.).
This commit is contained in:
forbes
2026-02-14 19:16:29 -06:00
parent 4cb8a3a1ec
commit 3804164158

View File

@@ -66,8 +66,10 @@
#include "Dialogs/DlgPreferencesImp.h"
#include "ui_DlgPreferences.h"
#include "Application.h"
#include "BitmapFactory.h"
#include "MainWindow.h"
#include "PreferencePackManager.h"
#include "Tools.h"
#include "WidgetFactory.h"
@@ -834,6 +836,12 @@ void DlgPreferencesImp::restoreDefaults()
.GetParameterGroupByPath("User parameter:BaseApp/Preferences/General")
->SetBool("SaveUserParameter", saveParameter);
// Re-apply Kindred Create defaults so we don't revert to upstream FreeCAD defaults
auto* packMgr = Gui::Application::Instance->prefPackManager();
if (packMgr) {
packMgr->apply("KindredCreate");
}
reject();
}
}