From eb1e0d7f1124a1b8527ecb9ce39c498d5dcdb270 Mon Sep 17 00:00:00 2001 From: Kacper Donat Date: Wed, 12 Nov 2025 18:03:06 +0100 Subject: [PATCH 1/2] Gui: Save previous default for overlay widgets For some reason the empty layout was not saved for users with existing config. To ensure that the change does not affect existing users and is persistent for current ones we need to save value with older default before using it. Previous solution did not work correctly as the widgets were not persisted correctly. --- src/Gui/OverlayWidgets.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Gui/OverlayWidgets.cpp b/src/Gui/OverlayWidgets.cpp index 74d8e44ae6..89f2c7590b 100644 --- a/src/Gui/OverlayWidgets.cpp +++ b/src/Gui/OverlayWidgets.cpp @@ -801,14 +801,14 @@ void OverlayTabWidget::restore(ParameterGrp::handle handle) return; } - const char* defaultWidgets = ""; - // If overlay was ever used and disabled by the user it should respect that choice - if (handle->GetInt("Width", 0) == 0 || handle->GetInt("Height", 0) == 0) { - defaultWidgets = getDockArea() == Qt::RightDockWidgetArea ? "Tasks," : ""; + if (handle->GetInt("Width", 0) != 0 || handle->GetInt("Height", 0) != 0) { + // save current value with old default to prevent layout change + handle->SetASCII("Widgets", handle->GetASCII("Widgets", "")); } - std::string widgets = handle->GetASCII("Widgets", defaultWidgets); + std::string widgets + = handle->GetASCII("Widgets", getDockArea() == Qt::RightDockWidgetArea ? "Tasks," : ""); for (auto& name : QString::fromUtf8(widgets.c_str()).split(QLatin1Char(','))) { if (name.isEmpty()) { From e2bab72bb5637bfb899c7e3d7bb7679af790707b Mon Sep 17 00:00:00 2001 From: PaddleStroke Date: Thu, 13 Nov 2025 12:05:17 +0100 Subject: [PATCH 2/2] Assembly: BOM: fix settings not applied (#25269) --- src/Mod/Assembly/CommandCreateBom.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/Mod/Assembly/CommandCreateBom.py b/src/Mod/Assembly/CommandCreateBom.py index a84354dd00..7ab6af08d4 100644 --- a/src/Mod/Assembly/CommandCreateBom.py +++ b/src/Mod/Assembly/CommandCreateBom.py @@ -125,10 +125,6 @@ class TaskAssemblyCreateBom(QtCore.QObject): self.addColItem(name) self.bomObj = bomObj - self.form.CheckBox_onlyParts.setChecked(bomObj.onlyParts) - self.form.CheckBox_detailParts.setChecked(bomObj.detailParts) - self.form.CheckBox_detailSubAssemblies.setChecked(bomObj.detailSubAssemblies) - else: App.setActiveTransaction("Create Bill Of Materials") @@ -137,11 +133,13 @@ class TaskAssemblyCreateBom(QtCore.QObject): self.addColItem(name) self.createBomObject() - self.form.CheckBox_onlyParts.setChecked(pref.GetBool("BOMOnlyParts", False)) - self.form.CheckBox_detailParts.setChecked(pref.GetBool("BOMDetailParts", True)) - self.form.CheckBox_detailSubAssemblies.setChecked( - pref.GetBool("BOMDetailSubAssemblies", True) - ) + self.bomObj.onlyParts = pref.GetBool("BOMOnlyParts", False) + self.bomObj.detailParts = pref.GetBool("BOMDetailParts", True) + self.bomObj.detailSubAssemblies = pref.GetBool("BOMDetailSubAssemblies", True) + + self.form.CheckBox_onlyParts.setChecked(self.bomObj.onlyParts) + self.form.CheckBox_detailParts.setChecked(self.bomObj.detailParts) + self.form.CheckBox_detailSubAssemblies.setChecked(self.bomObj.detailSubAssemblies) self.form.columnList.model().rowsMoved.connect(self.onItemsReordered) self.form.columnList.itemChanged.connect(self.itemUpdated)