From 2d54d838cff22d192e0754c19254d6d8246e0744 Mon Sep 17 00:00:00 2001 From: wmayer Date: Wed, 3 Mar 2021 10:32:02 +0100 Subject: [PATCH] PD: improve task panel for linear patterns: * set range of Occurrences property to spin box * connect signals after initializing widgets to avoid superfluous recomputes and possible inconsistencies --- src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp | 9 +++++++-- src/Mod/PartDesign/Gui/TaskLinearPatternParameters.h | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp b/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp index 2be4b8cdc6..1813f1ff00 100644 --- a/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp @@ -105,7 +105,7 @@ TaskLinearPatternParameters::TaskLinearPatternParameters(TaskMultiTransformParam setupUI(); } -void TaskLinearPatternParameters::setupUI() +void TaskLinearPatternParameters::connectSignals() { connect(ui->buttonAddFeature, SIGNAL(toggled(bool)), this, SLOT(onButtonAddFeature(bool))); connect(ui->buttonRemoveFeature, SIGNAL(toggled(bool)), this, SLOT(onButtonRemoveFeature(bool))); @@ -139,7 +139,10 @@ void TaskLinearPatternParameters::setupUI() this, SLOT(onOccurrences(uint))); connect(ui->checkBoxUpdateView, SIGNAL(toggled(bool)), this, SLOT(onUpdateView(bool))); +} +void TaskLinearPatternParameters::setupUI() +{ // Get the feature data PartDesign::LinearPattern* pcLinearPattern = static_cast(getObject()); std::vector originals = pcLinearPattern->Originals.getValues(); @@ -157,8 +160,9 @@ void TaskLinearPatternParameters::setupUI() // --------------------- ui->spinLength->bind(pcLinearPattern->Length); - ui->spinOccurrences->setMaximum(INT_MAX); ui->spinOccurrences->bind(pcLinearPattern->Occurrences); + ui->spinOccurrences->setMaximum(pcLinearPattern->Occurrences.getMaximum()); + ui->spinOccurrences->setMinimum(pcLinearPattern->Occurrences.getMinimum()); ui->comboDirection->setEnabled(true); ui->checkReverse->setEnabled(true); @@ -191,6 +195,7 @@ void TaskLinearPatternParameters::setupUI() } updateUI(); + connectSignals(); } void TaskLinearPatternParameters::updateUI() diff --git a/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.h b/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.h index d48dbeb67a..a997eaa4cd 100644 --- a/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.h +++ b/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.h @@ -80,6 +80,7 @@ protected: unsigned getOccurrences(void) const; private: + void connectSignals(); void setupUI(); void updateUI(); void kickUpdateViewTimer() const;