summaryrefslogtreecommitdiffstats
path: root/sigmodr/widgets/FractionWidget.cpp
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2009-02-24 03:02:23 -0500
committerBen Boeckel <MathStuf@gmail.com>2009-02-24 03:02:23 -0500
commit4453d587364e38c11f218c46db482f0b2ebe93ae (patch)
treec1035338d94298316b2de0eb88e6f39ceef86210 /sigmodr/widgets/FractionWidget.cpp
parentc076cd60d8dc8b4a8f9636e5b8ce828f9aee3f7c (diff)
downloadsigen-4453d587364e38c11f218c46db482f0b2ebe93ae.tar.gz
sigen-4453d587364e38c11f218c46db482f0b2ebe93ae.tar.xz
sigen-4453d587364e38c11f218c46db482f0b2ebe93ae.zip
Converted some classes to load from the resource instead of using inheritence for forms
Diffstat (limited to 'sigmodr/widgets/FractionWidget.cpp')
-rw-r--r--sigmodr/widgets/FractionWidget.cpp41
1 files changed, 30 insertions, 11 deletions
diff --git a/sigmodr/widgets/FractionWidget.cpp b/sigmodr/widgets/FractionWidget.cpp
index 87893a99..85a1c306 100644
--- a/sigmodr/widgets/FractionWidget.cpp
+++ b/sigmodr/widgets/FractionWidget.cpp
@@ -18,12 +18,31 @@
// Header include
#include "FractionWidget.h"
+// KDE includes
+#include <KIntNumInput>
+#include <KLineEdit>
+
+// Qt includes
+#include <QtCore/QFile>
+#include <QtUiTools/QUiLoader>
+
+// C includes
+#include <climits>
+
Sigmodr::Widgets::FractionWidget::FractionWidget(QWidget* parent, const Sigcore::Fraction& value) :
QWidget(parent),
- m_behavior(Any),
- m_value(value)
+ m_value(value),
+ m_behavior(Any)
{
- setupUi(this);
+ QFile file(":/gui/weather.ui");
+ file.open(QFile::ReadOnly);
+ QWidget *formWidget = QUiLoader().load(&file, this);
+ file.close();
+ ui_numerator = formWidget->findChild<KIntNumInput*>("varNumerator");
+ ui_denominator = formWidget->findChild<KIntNumInput*>("varDenominator");
+ ui_value = formWidget->findChild<KLineEdit*>("varValue");
+ 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)), SLOT(updateValue()));
connect(this, SIGNAL(valueChanged(Sigcore::Fraction)), SLOT(resetRanges()));
connect(this, SIGNAL(behaviorChanged(Behavior)), SLOT(resetRanges()));
@@ -48,7 +67,7 @@ void Sigmodr::Widgets::FractionWidget::setBehavior(const Behavior behavior)
void Sigmodr::Widgets::FractionWidget::setValue(const Sigcore::Fraction& value)
{
- if (!varValue->text().isEmpty() && (m_value == value))
+ if (!ui_value->text().isEmpty() && (m_value == value))
return;
m_value = value;
emit(valueChanged(m_value));
@@ -56,16 +75,16 @@ void Sigmodr::Widgets::FractionWidget::setValue(const Sigcore::Fraction& value)
void Sigmodr::Widgets::FractionWidget::updateValue()
{
- varValue->setText(QString::number(double(m_value), 'g', 7));
+ ui_value->setText(QString::number(double(m_value), 'g', 7));
}
-void Sigmodr::Widgets::FractionWidget::on_varNumerator_valueChanged(const int numerator)
+void Sigmodr::Widgets::FractionWidget::numeratorChanged(const int numerator)
{
m_value.setNumerator(numerator);
emit(valueChanged(m_value));
}
-void Sigmodr::Widgets::FractionWidget::on_varDenominator_valueChanged(const int denominator)
+void Sigmodr::Widgets::FractionWidget::denominatorChanged(const int denominator)
{
m_value.setDenominator(denominator);
emit(valueChanged(m_value));
@@ -73,8 +92,8 @@ void Sigmodr::Widgets::FractionWidget::on_varDenominator_valueChanged(const int
void Sigmodr::Widgets::FractionWidget::resetRanges()
{
- varNumerator->setValue(m_value.numerator());
- varDenominator->setValue(m_value.denominator());
+ ui_numerator->setValue(m_value.numerator());
+ ui_denominator->setValue(m_value.denominator());
int numMin = 0;
int numMax = INT_MAX;
int denomMin = 1;
@@ -93,6 +112,6 @@ void Sigmodr::Widgets::FractionWidget::resetRanges()
default:
break;
}
- varNumerator->setRange(numMin, numMax);
- varDenominator->setRange(denomMin, denomMax);
+ ui_numerator->setRange(numMin, numMax);
+ ui_denominator->setRange(denomMin, denomMax);
}