paysages : Disable form fields when no layer is selected.
git-svn-id: https://subversion.assembla.com/svn/thunderk/paysages@368 b1fd45b6-86a6-48da-8261-f70d1f35bdcc
This commit is contained in:
parent
73e6c40f75
commit
b067dbebba
5 changed files with 35 additions and 5 deletions
1
TODO
1
TODO
|
@ -5,7 +5,6 @@ Technology Preview 2 :
|
|||
=> Find a proper model for night sky (maybe Shirley)
|
||||
- InputInt doesn't honor small_step.
|
||||
- Keep skydome lights in cache for a render.
|
||||
- Disable form fields when no layer is selected.
|
||||
- Add buttons to restore "auto" default values in tabs and dialogs.
|
||||
- Replace zone ranges with curves (with curve input and curve dialog).
|
||||
- Interface for textures thickness, slope_range and thickness_transparency (and correct slider ranges).
|
||||
|
|
|
@ -143,7 +143,14 @@ void BaseForm::configChangeEvent()
|
|||
QList<BaseInput*> inputs = form->findChildren<BaseInput*>("_form_input_");
|
||||
for (int i = 0; i < inputs.size(); i++)
|
||||
{
|
||||
inputs[i]->checkVisibility();
|
||||
if (with_layers && layer_list->count() == 0)
|
||||
{
|
||||
inputs[i]->checkVisibility(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
inputs[i]->checkVisibility(true);
|
||||
}
|
||||
}
|
||||
|
||||
if (auto_update_previews)
|
||||
|
@ -372,6 +379,7 @@ void BaseForm::layerSelectedEvent(int layer)
|
|||
for (int i = 0; i < inputs.size(); i++)
|
||||
{
|
||||
inputs[i]->revert();
|
||||
inputs[i]->checkVisibility(layer >= 0);
|
||||
}
|
||||
|
||||
QList<BasePreview*> list_previews = previews->findChildren<BasePreview*>("_form_preview_");
|
||||
|
|
|
@ -10,6 +10,7 @@ BaseInput::BaseInput(QWidget* form, QString label):
|
|||
|
||||
_visibility_value = NULL;
|
||||
_visible = true;
|
||||
_enabled = true;
|
||||
}
|
||||
|
||||
void BaseInput::setVisibilityCondition(int* value, int condition)
|
||||
|
@ -33,7 +34,7 @@ void BaseInput::revert()
|
|||
updatePreview();
|
||||
}
|
||||
|
||||
void BaseInput::checkVisibility()
|
||||
void BaseInput::checkVisibility(bool enabled)
|
||||
{
|
||||
if (!_visibility_value || *_visibility_value == _visibility_condition)
|
||||
{
|
||||
|
@ -57,4 +58,25 @@ void BaseInput::checkVisibility()
|
|||
_control->hide();
|
||||
}
|
||||
}
|
||||
|
||||
if (enabled)
|
||||
{
|
||||
if (not _enabled)
|
||||
{
|
||||
_enabled = true;
|
||||
|
||||
_preview->setEnabled(true);
|
||||
_control->setEnabled(true);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (_enabled)
|
||||
{
|
||||
_enabled = false;
|
||||
|
||||
_preview->setEnabled(false);
|
||||
_control->setEnabled(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ public slots:
|
|||
virtual void updatePreview();
|
||||
virtual void revert();
|
||||
virtual void applyValue();
|
||||
void checkVisibility();
|
||||
void checkVisibility(bool enabled);
|
||||
|
||||
signals:
|
||||
void valueChanged();
|
||||
|
@ -31,6 +31,7 @@ protected:
|
|||
int* _visibility_value;
|
||||
int _visibility_condition;
|
||||
bool _visible;
|
||||
bool _enabled;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
<translation>Annuler les modifications</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui_qt/baseform.cpp" line="342"/>
|
||||
<location filename="../gui_qt/baseform.cpp" line="349"/>
|
||||
<source>Layer %1</source>
|
||||
<translation>Niveau %1</translation>
|
||||
</message>
|
||||
|
|
Loading…
Reference in a new issue