From 98e7dd94c5b1158d7d6f0e80f92ef6be6f0847e9 Mon Sep 17 00:00:00 2001 From: wmayer Date: Wed, 30 Oct 2024 01:06:12 +0100 Subject: [PATCH] Mat: Tmp. block signals of material widget Fixes #17523 --- .../Material/Gui/DlgDisplayPropertiesImp.cpp | 39 +++++++++---------- .../Material/Gui/DlgDisplayPropertiesImp.h | 1 + 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/Mod/Material/Gui/DlgDisplayPropertiesImp.cpp b/src/Mod/Material/Gui/DlgDisplayPropertiesImp.cpp index 0b2f687943..ec896f9ced 100644 --- a/src/Mod/Material/Gui/DlgDisplayPropertiesImp.cpp +++ b/src/Mod/Material/Gui/DlgDisplayPropertiesImp.cpp @@ -165,16 +165,10 @@ DlgDisplayPropertiesImp::DlgDisplayPropertiesImp(bool floating, QWidget* parent, // that contain the basic render model. setupFilters(); - std::vector views = getSelection(); - setDisplayModes(views); - setColorPlot(views); - setShapeAppearance(views); - setLineColor(views); - setPointColor(views); - setPointSize(views); - setLineWidth(views); - setTransparency(views); - setLineTransparency(views); + { + QSignalBlocker block(d->ui.widgetMaterial); + setPropertiesFromSelection(); + } // embed this dialog into a dockable widget container if (floating) { @@ -297,6 +291,20 @@ void DlgDisplayPropertiesImp::changeEvent(QEvent* e) QDialog::changeEvent(e); } +void DlgDisplayPropertiesImp::setPropertiesFromSelection() +{ + std::vector views = getSelection(); + setDisplayModes(views); + setColorPlot(views); + setShapeAppearance(views); + setLineColor(views); + setPointColor(views); + setPointSize(views); + setLineWidth(views); + setTransparency(views); + setLineTransparency(views); +} + /// @cond DOXERR void DlgDisplayPropertiesImp::OnChange(Gui::SelectionSingleton::SubjectType& rCaller, Gui::SelectionSingleton::MessageType Reason) @@ -306,16 +314,7 @@ void DlgDisplayPropertiesImp::OnChange(Gui::SelectionSingleton::SubjectType& rCa || Reason.Type == Gui::SelectionChanges::RmvSelection || Reason.Type == Gui::SelectionChanges::SetSelection || Reason.Type == Gui::SelectionChanges::ClrSelection) { - std::vector views = getSelection(); - setDisplayModes(views); - setColorPlot(views); - setShapeAppearance(views); - setLineColor(views); - setPointColor(views); - setPointSize(views); - setLineWidth(views); - setTransparency(views); - setLineTransparency(views); + setPropertiesFromSelection(); } } /// @endcond diff --git a/src/Mod/Material/Gui/DlgDisplayPropertiesImp.h b/src/Mod/Material/Gui/DlgDisplayPropertiesImp.h index 525888c45c..cef02ce989 100644 --- a/src/Mod/Material/Gui/DlgDisplayPropertiesImp.h +++ b/src/Mod/Material/Gui/DlgDisplayPropertiesImp.h @@ -96,6 +96,7 @@ private: void setTransparency(const std::vector&); void setLineTransparency(const std::vector&); std::vector getSelection() const; + void setPropertiesFromSelection(); private: class Private;