summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2009-02-28 01:08:15 -0500
committerBen Boeckel <MathStuf@gmail.com>2009-02-28 01:08:15 -0500
commitefb2daeb653694f29e12ee09348ccf68c904cc83 (patch)
treea8bc3582870efe95f5b6364ea36635140a4e8e45
parent0f65eadc328acd2c1b9ca0a76284fecabcbd34d8 (diff)
downloadsigen-efb2daeb653694f29e12ee09348ccf68c904cc83.tar.gz
sigen-efb2daeb653694f29e12ee09348ccf68c904cc83.tar.xz
sigen-efb2daeb653694f29e12ee09348ccf68c904cc83.zip
Fixed setting of the widgets for Fraction
-rw-r--r--sigmodr/corewidgets/FractionWidget.cpp13
-rw-r--r--sigmodr/corewidgets/FractionWidget_p.h1
2 files changed, 10 insertions, 4 deletions
diff --git a/sigmodr/corewidgets/FractionWidget.cpp b/sigmodr/corewidgets/FractionWidget.cpp
index 327de025..3ba823df 100644
--- a/sigmodr/corewidgets/FractionWidget.cpp
+++ b/sigmodr/corewidgets/FractionWidget.cpp
@@ -86,8 +86,7 @@ QWidget* FractionWidget::Private::makeWidgets(FractionWidget* widget)
connect(ui_numerator, SIGNAL(valueChanged(int)), this, SLOT(numeratorChanged(int)));
connect(ui_denominator, SIGNAL(valueChanged(int)), this, SLOT(denominatorChanged(int)));
connect(this, SIGNAL(valueChanged(Sigcore::Fraction)), widget, SIGNAL(valueChanged(Sigcore::Fraction)));
- connect(this, SIGNAL(valueChanged(Sigcore::Fraction)), this, SLOT(updateValue()));
- connect(this, SIGNAL(valueChanged(Sigcore::Fraction)), this, SLOT(resetRanges()));
+ connect(widget, SIGNAL(valueChanged(Sigcore::Fraction)), this, SLOT(setGui()));
connect(widget, SIGNAL(behaviorChanged(Behavior)), this, SLOT(resetRanges()));
updateValue();
return formWidget;
@@ -105,6 +104,14 @@ void FractionWidget::Private::denominatorChanged(const int denominator)
emit(valueChanged(m_value));
}
+void FractionWidget::Private::setGui()
+{
+ resetRanges();
+ ui_numerator->setValue(m_value.numerator());
+ ui_denominator->setValue(m_value.denominator());
+ updateValue();
+}
+
void FractionWidget::Private::updateValue()
{
ui_value->setText(QString::number(double(m_value), 'g', 7));
@@ -112,8 +119,6 @@ void FractionWidget::Private::updateValue()
void FractionWidget::Private::resetRanges()
{
- ui_numerator->setValue(m_value.numerator());
- ui_denominator->setValue(m_value.denominator());
int numMin = 0;
int numMax = INT_MAX;
int denomMin = 1;
diff --git a/sigmodr/corewidgets/FractionWidget_p.h b/sigmodr/corewidgets/FractionWidget_p.h
index b7f02ce4..25b7d3ea 100644
--- a/sigmodr/corewidgets/FractionWidget_p.h
+++ b/sigmodr/corewidgets/FractionWidget_p.h
@@ -52,6 +52,7 @@ class FractionWidget::Private : public QObject
void numeratorChanged(const int numerator);
void denominatorChanged(const int denominator);
+ void setGui();
void updateValue();
void resetRanges();
private: