From 650b2f3073bd8ba3e01e64ccae9e57caa48d4358 Mon Sep 17 00:00:00 2001 From: wmayer Date: Tue, 29 Mar 2022 08:49:42 +0200 Subject: [PATCH] Gui: fix several regressions in DlgSettingsColorGradientImp * make line edit fields wide enough to not truncate the text * fix error: Unhandled Base::Exception caught in GUIApplication::notify. --- src/Gui/DlgSettingsColorGradientImp.cpp | 7 ++++++- src/Gui/SoFCColorBar.cpp | 8 +++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/Gui/DlgSettingsColorGradientImp.cpp b/src/Gui/DlgSettingsColorGradientImp.cpp index fd46263888..98521d0a33 100644 --- a/src/Gui/DlgSettingsColorGradientImp.cpp +++ b/src/Gui/DlgSettingsColorGradientImp.cpp @@ -24,6 +24,7 @@ #ifndef _PreComp_ # include # include +# include # include # include #endif @@ -31,6 +32,7 @@ #include "DlgSettingsColorGradientImp.h" #include "ui_DlgSettingsColorGradient.h" #include "SpinBox.h" +#include "Tools.h" using namespace Gui::Dialog; @@ -50,6 +52,9 @@ DlgSettingsColorGradientImp::DlgSettingsColorGradientImp( QWidget* parent, Qt::W ui->floatLineEditMax->setValidator(fMaxVal); fMinVal = new QDoubleValidator(-1000,1000,ui->spinBoxDecimals->maximum(),this); ui->floatLineEditMin->setValidator(fMinVal); + + QFontMetrics fm(ui->floatLineEditMax->font()); + ui->floatLineEditMax->setMinimumWidth(QtTools::horizontalAdvance(fm, QString::fromLatin1("-1000.000000"))); } /** @@ -157,7 +162,7 @@ void DlgSettingsColorGradientImp::accept() double fMax = QLocale().toDouble(ui->floatLineEditMax->text()); double fMin = QLocale().toDouble(ui->floatLineEditMin->text()); - if (fMax < fMin) { + if (fMax <= fMin) { QMessageBox::warning(this, tr("Wrong parameter"), tr("The maximum value must be higher than the minimum value.")); } diff --git a/src/Gui/SoFCColorBar.cpp b/src/Gui/SoFCColorBar.cpp index de17a76710..3beb39b5c2 100644 --- a/src/Gui/SoFCColorBar.cpp +++ b/src/Gui/SoFCColorBar.cpp @@ -199,7 +199,13 @@ float SoFCColorBar::getMaxValue () const bool SoFCColorBar::customize() { - return this->getActiveBar()->customize(); + try { + return this->getActiveBar()->customize(); + } + catch (const Base::ValueError& e) { + e.ReportException(); + return false; + } } App::Color SoFCColorBar::getColor( float fVal ) const