paysages : InputInt now honor its small_step value.

git-svn-id: https://subversion.assembla.com/svn/thunderk/paysages@431 b1fd45b6-86a6-48da-8261-f70d1f35bdcc
This commit is contained in:
Michaël Lemaire 2012-10-01 15:36:41 +00:00 committed by ThunderK
parent cc21b63966
commit 4b85289ac7
3 changed files with 10 additions and 42 deletions

1
TODO
View file

@ -9,7 +9,6 @@ Technology Preview 2 :
- Finalize Preetham's model usage - Finalize Preetham's model usage
=> Apply model to atmosphere (aerial perspective) => Apply model to atmosphere (aerial perspective)
=> Find a proper model for night sky (maybe Shirley) => Find a proper model for night sky (maybe Shirley)
- InputInt doesn't honor small_step.
- Keep skydome lights in cache for a render. - Keep skydome lights in cache for a render.
- Add buttons to restore "auto" default values in tabs and dialogs (with several auto presets). - Add buttons to restore "auto" default values in tabs and dialogs (with several auto presets).
- Clouds should keep distance to ground. - Clouds should keep distance to ground.

View file

@ -3,54 +3,27 @@
#include <QLabel> #include <QLabel>
InputInt::InputInt(QWidget* form, QString label, int* value, int min, int max, int small_step, int large_step): InputInt::InputInt(QWidget* form, QString label, int* value, int min, int max, int small_step, int large_step):
BaseInput(form, label) InputDouble(form, label, &_dvalue, (double)min, (double)max, (double)small_step, (double)large_step)
{ {
_value = value; _value = value;
_min = min; _dvalue = (double)(*value);
_max = max;
_small_step = small_step;
_large_step = large_step;
_slider = new QSlider(form);
_slider->setOrientation(Qt::Horizontal);
_slider->setMinimumWidth(150);
_slider->setMaximumWidth(400);
_slider->setMinimum(min);
_slider->setMaximum(max);
_slider->setValue(*value);
_slider->setTickInterval(large_step);
_slider->setTickPosition(QSlider::TicksBelow);
connect(_slider, SIGNAL(valueChanged(int)), this, SLOT(applyValue()));
_preview = new QLabel(form);
((QLabel*)_preview)->setAlignment(Qt::AlignCenter);
_control = _slider;
} }
void InputInt::updatePreview() void InputInt::updatePreview()
{ {
((QLabel*)_preview)->setText(QString("%1").arg(*_value)); ((QLabel*)_preview)->setText(QString("%1").arg(_dvalue, 0, 'f', 0));
BaseInput::updatePreview();
} }
void InputInt::applyValue() void InputInt::applyValue()
{ {
*_value = (int)_slider->value(); *_value = (int)_dvalue;
BaseInput::applyValue(); InputDouble::applyValue();
} }
void InputInt::revert() void InputInt::revert()
{ {
if (*_value != _slider->value()) _dvalue = (double)(*_value);
{
_slider->setValue(*_value);
}
BaseInput::revert(); InputDouble::revert();
} }

View file

@ -3,9 +3,9 @@
#include <QWidget> #include <QWidget>
#include <QSlider> #include <QSlider>
#include "baseinput.h" #include "inputdouble.h"
class InputInt:public BaseInput class InputInt:public InputDouble
{ {
Q_OBJECT Q_OBJECT
@ -18,12 +18,8 @@ public slots:
virtual void revert(); virtual void revert();
private: private:
QSlider* _slider;
int* _value; int* _value;
int _min; double _dvalue;
int _max;
int _small_step;
int _large_step;
}; };
#endif #endif