diff --git a/src/Gui/PrefWidgets.cpp b/src/Gui/PrefWidgets.cpp index 77d7408d6f..8aad82aeec 100644 --- a/src/Gui/PrefWidgets.cpp +++ b/src/Gui/PrefWidgets.cpp @@ -457,6 +457,39 @@ void PrefColorButton::savePreferences() // -------------------------------------------------------------------- +PrefUnitSpinBox::PrefUnitSpinBox ( QWidget * parent ) + : QuantitySpinBox(parent), PrefWidget() +{ +} + +PrefUnitSpinBox::~PrefUnitSpinBox() +{ +} + +void PrefUnitSpinBox::restorePreferences() +{ + if (getWindowParameter().isNull()) { + Console().Warning("Cannot restore!\n"); + return; + } + + double fVal = (double)getWindowParameter()->GetFloat( entryName() ,rawValue() ); + setValue(fVal); +} + +void PrefUnitSpinBox::savePreferences() +{ + if (getWindowParameter().isNull()) { + Console().Warning("Cannot save!\n"); + return; + } + + double q = rawValue(); + getWindowParameter()->SetFloat( entryName(), q ); +} + +// -------------------------------------------------------------------- + namespace Gui { class PrefQuantitySpinBoxPrivate { diff --git a/src/Gui/PrefWidgets.h b/src/Gui/PrefWidgets.h index 643ef265ba..4bcf497cfe 100644 --- a/src/Gui/PrefWidgets.h +++ b/src/Gui/PrefWidgets.h @@ -275,6 +275,28 @@ protected: void savePreferences(); }; +/** The PrefUnitSpinBox class. + * \author wandererfan + * a simple Unit aware spin box. + * See also \ref PrefQuantitySpinBox + */ +class GuiExport PrefUnitSpinBox : public QuantitySpinBox, public PrefWidget +{ + Q_OBJECT + + Q_PROPERTY( QByteArray prefEntry READ entryName WRITE setEntryName ) + Q_PROPERTY( QByteArray prefPath READ paramGrpPath WRITE setParamGrpPath ) + +public: + PrefUnitSpinBox ( QWidget * parent = 0 ); + virtual ~PrefUnitSpinBox(); + +protected: + // restore from/save to parameters + void restorePreferences(); + void savePreferences(); +}; + class PrefQuantitySpinBoxPrivate; /** diff --git a/src/Gui/PropertyPage.cpp b/src/Gui/PropertyPage.cpp index df043142c3..161282e9a4 100644 --- a/src/Gui/PropertyPage.cpp +++ b/src/Gui/PropertyPage.cpp @@ -175,6 +175,7 @@ void PreferenceUiForm::loadSettings() loadPrefWidgets(); loadPrefWidgets(); loadPrefWidgets(); + loadPrefWidgets(); } void PreferenceUiForm::saveSettings() @@ -192,6 +193,7 @@ void PreferenceUiForm::saveSettings() savePrefWidgets(); savePrefWidgets(); savePrefWidgets(); + savePrefWidgets(); } // ---------------------------------------------------------------- diff --git a/src/Gui/resource.cpp b/src/Gui/resource.cpp index d61f4a4660..68c2a75747 100644 --- a/src/Gui/resource.cpp +++ b/src/Gui/resource.cpp @@ -96,6 +96,8 @@ WidgetFactorySupplier::WidgetFactorySupplier() new WidgetProducer; new WidgetProducer; new WidgetProducer; + new WidgetProducer; + new WidgetProducer; new WidgetProducer; new WidgetProducer; new WidgetProducer;