commit 1d3b7e5085638f5a8a739cd3549a20a3ea687cf2
Author: Juergen Spitzmueller <[email protected]>
Date: Mon May 11 11:35:02 2015 +0200
Fix enabling/disabling in InsetParams derived dialogs (#9541)
diff --git a/src/frontends/qt4/FloatPlacement.cpp
b/src/frontends/qt4/FloatPlacement.cpp
index d8fc52b..1f0e6e9 100644
--- a/src/frontends/qt4/FloatPlacement.cpp
+++ b/src/frontends/qt4/FloatPlacement.cpp
@@ -222,7 +222,7 @@ void FloatPlacement::changedSlot()
}
-void FloatPlacement::checkAllowed()
+void FloatPlacement::checkAllowed() const
{
bool const defaults = defaultsCB->isChecked();
bool const ignore = topCB->isChecked() || bottomCB->isChecked()
@@ -254,11 +254,14 @@ void FloatPlacement::checkAllowed()
bool FloatPlacement::checkWidgets(bool readonly) const
{
- floatTypeCO->setEnabled(!readonly);
- defaultsCB->setEnabled(!readonly);
- options->setEnabled(!readonly);
- spanCB->setEnabled(!readonly);
- sidewaysCB->setEnabled(!readonly);
+ if (readonly) {
+ floatTypeCO->setEnabled(false);
+ defaultsCB->setEnabled(false);
+ options->setEnabled(false);
+ spanCB->setEnabled(false);
+ sidewaysCB->setEnabled(false);
+ } else
+ checkAllowed();
return InsetParamsWidget::checkWidgets();
}
diff --git a/src/frontends/qt4/FloatPlacement.h
b/src/frontends/qt4/FloatPlacement.h
index 5aeecc2..a720a4e 100644
--- a/src/frontends/qt4/FloatPlacement.h
+++ b/src/frontends/qt4/FloatPlacement.h
@@ -54,7 +54,7 @@ private Q_SLOTS:
private:
///
- void checkAllowed();
+ void checkAllowed() const;
///
std::string const get(bool & wide, bool & sideways) const;
///
diff --git a/src/frontends/qt4/GuiHSpace.cpp b/src/frontends/qt4/GuiHSpace.cpp
index a85037a..93de4bb 100644
--- a/src/frontends/qt4/GuiHSpace.cpp
+++ b/src/frontends/qt4/GuiHSpace.cpp
@@ -99,7 +99,7 @@ void GuiHSpace::changedSlot()
}
-void GuiHSpace::enableWidgets()
+void GuiHSpace::enableWidgets() const
{
QString const selection =
spacingCO->itemData(spacingCO->currentIndex()).toString();
bool const custom = selection == "custom";
@@ -301,11 +301,17 @@ docstring GuiHSpace::dialogToParams() const
bool GuiHSpace::checkWidgets(bool readonly) const
{
- spacingCO->setEnabled(!readonly);
- unitCO->setEnabled(!readonly);
- fillPatternCO->setEnabled(!readonly);
- keepCB->setEnabled(!readonly);
valueLE->setReadOnly(readonly);
+
+ if (readonly) {
+ spacingCO->setEnabled(false);
+ unitCO->setEnabled(false);
+ fillPatternCO->setEnabled(false);
+ keepCB->setEnabled(false);
+ valueLE->setEnabled(false);
+ } else
+ enableWidgets();
+
if (!InsetParamsWidget::checkWidgets())
return false;
return spacingCO->itemData(spacingCO->currentIndex()).toString() !=
"custom"
diff --git a/src/frontends/qt4/GuiHSpace.h b/src/frontends/qt4/GuiHSpace.h
index cc1a80f..5b09d7a 100644
--- a/src/frontends/qt4/GuiHSpace.h
+++ b/src/frontends/qt4/GuiHSpace.h
@@ -29,7 +29,7 @@ private Q_SLOTS:
///
void changedSlot();
///
- void enableWidgets();
+ void enableWidgets() const;
private:
/// \name InsetParamsWidget inherited methods
diff --git a/src/frontends/qt4/GuiPrintNomencl.cpp
b/src/frontends/qt4/GuiPrintNomencl.cpp
index 93e00e9..a70a9e0 100644
--- a/src/frontends/qt4/GuiPrintNomencl.cpp
+++ b/src/frontends/qt4/GuiPrintNomencl.cpp
@@ -53,13 +53,8 @@ GuiPrintNomencl::GuiPrintNomencl(QWidget * parent) :
InsetParamsWidget(parent)
}
-void GuiPrintNomencl::on_setWidthCO_activated(int i)
+void GuiPrintNomencl::on_setWidthCO_activated(int /*i*/)
{
- bool const custom =
- (setWidthCO->itemData(i).toString() == "custom");
- valueLE->setEnabled(custom);
- unitLC->setEnabled(custom);
- valueLA->setEnabled(custom);
changed();
}
@@ -68,15 +63,9 @@ void GuiPrintNomencl::paramsToDialog(InsetCommandParams
const & params)
{
setWidthCO->setCurrentIndex(
setWidthCO->findData(toqstr(params["set_width"])));
-
+
lengthToWidgets(valueLE, unitLC,
params["width"], Length::defaultUnit());
-
- bool const custom =
- (setWidthCO->itemData(setWidthCO->currentIndex()).toString() ==
"custom");
- valueLE->setEnabled(custom);
- unitLC->setEnabled(custom);
- valueLA->setEnabled(custom);
}
@@ -104,8 +93,18 @@ docstring GuiPrintNomencl::dialogToParams() const
bool GuiPrintNomencl::checkWidgets(bool readonly) const
{
valueLE->setReadOnly(readonly);
- setWidthCO->setEnabled(!readonly);
- unitLC->setEnabled(!readonly);
+ if (readonly) {
+ setWidthCO->setEnabled(false);
+ unitLC->setEnabled(false);
+ valueLA->setEnabled(false);
+ } else {
+ bool const custom =
+
(setWidthCO->itemData(setWidthCO->currentIndex()).toString() == "custom");
+ valueLE->setEnabled(custom);
+ unitLC->setEnabled(custom);
+ valueLA->setEnabled(custom);
+ }
+
if (!InsetParamsWidget::checkWidgets())
return false;
return setWidthCO->itemData(
diff --git a/src/frontends/qt4/GuiTabular.cpp b/src/frontends/qt4/GuiTabular.cpp
index 55c3eda..8f1118b 100644
--- a/src/frontends/qt4/GuiTabular.cpp
+++ b/src/frontends/qt4/GuiTabular.cpp
@@ -199,7 +199,7 @@ void GuiTabular::on_interlinespaceCO_activated(int index)
}
-void GuiTabular::checkEnabled()
+void GuiTabular::enableWidgets() const
{
// if there is a LaTeX argument, the width and alignment will be
overwritten
// therefore disable them in this case
@@ -320,7 +320,12 @@ void GuiTabular::checkEnabled()
multirowOffsetLA->setEnabled(enable_mr);
multirowOffsetED->setEnabled(enable_mr);
multirowOffsetUnitLC->setEnabled(enable_mr);
+}
+
+void GuiTabular::checkEnabled()
+{
+ enableWidgets();
changed();
}
@@ -1016,37 +1021,41 @@ bool GuiTabular::checkWidgets(bool readonly) const
{
tabularRowED->setReadOnly(readonly);
tabularColumnED->setReadOnly(readonly);
- multicolumnCB->setEnabled(!readonly);
- multirowCB->setEnabled(!readonly);
- specialAlignmentED->setReadOnly(readonly);
- rotateCellCB->setEnabled(!readonly);
- rotateCellAngleSB->setEnabled(!readonly);
- rotateTabularCB->setEnabled(!readonly);
- rotateTabularAngleSB->setEnabled(!readonly);
- longTabularCB->setEnabled(!readonly);
- borders->setEnabled(!readonly);
tabularWidthED->setReadOnly(readonly);
- tabularWidthUnitLC->setEnabled(!readonly);
+ specialAlignmentED->setReadOnly(readonly);
columnWidthED->setReadOnly(readonly);
- columnWidthUnitLC->setEnabled(!readonly);
multirowOffsetED->setReadOnly(readonly);
- multirowOffsetUnitLC->setEnabled(!readonly);
- setBordersGB->setEnabled(!readonly);
- allBordersGB->setEnabled(!readonly);
- borderStyleGB->setEnabled(!readonly);
- booktabsRB->setEnabled(!readonly);
- topspaceCO->setEnabled(!readonly);
- topspaceUnitLC->setEnabled(!readonly);
- bottomspaceCO->setEnabled(!readonly);
- bottomspaceUnitLC->setEnabled(!readonly);
- interlinespaceCO->setEnabled(!readonly);
- interlinespaceUnitLC->setEnabled(!readonly);
- hAlignCO->setEnabled(!readonly);
decimalPointED->setReadOnly(readonly);
- vAlignCO->setEnabled(!readonly);
- TableAlignCO->setEnabled(!readonly);
- longtableGB->setEnabled(!readonly);
- alignmentGB->setEnabled(!readonly);
+
+ if (readonly) {
+ multicolumnCB->setEnabled(false);
+ multirowCB->setEnabled(false);
+ rotateCellCB->setEnabled(false);
+ rotateCellAngleSB->setEnabled(false);
+ rotateTabularCB->setEnabled(false);
+ rotateTabularAngleSB->setEnabled(false);
+ longTabularCB->setEnabled(false);
+ borders->setEnabled(false);
+ tabularWidthUnitLC->setEnabled(false);
+ columnWidthUnitLC->setEnabled(false);
+ multirowOffsetUnitLC->setEnabled(false);
+ setBordersGB->setEnabled(false);
+ allBordersGB->setEnabled(false);
+ borderStyleGB->setEnabled(false);
+ booktabsRB->setEnabled(false);
+ topspaceCO->setEnabled(false);
+ topspaceUnitLC->setEnabled(false);
+ bottomspaceCO->setEnabled(false);
+ bottomspaceUnitLC->setEnabled(false);
+ interlinespaceCO->setEnabled(false);
+ interlinespaceUnitLC->setEnabled(false);
+ hAlignCO->setEnabled(false);
+ vAlignCO->setEnabled(false);
+ TableAlignCO->setEnabled(false);
+ longtableGB->setEnabled(false);
+ alignmentGB->setEnabled(false);
+ } else
+ enableWidgets();
return InsetParamsWidget::checkWidgets();
}
diff --git a/src/frontends/qt4/GuiTabular.h b/src/frontends/qt4/GuiTabular.h
index a354a4a..c19e066 100644
--- a/src/frontends/qt4/GuiTabular.h
+++ b/src/frontends/qt4/GuiTabular.h
@@ -48,6 +48,8 @@ private:
//@}
///
+ void enableWidgets() const;
+ ///
void setHAlign(std::string & param_str) const;
///
void setVAlign(std::string & param_str) const;
diff --git a/src/frontends/qt4/GuiVSpace.cpp b/src/frontends/qt4/GuiVSpace.cpp
index 3756b15..4ac4c69 100644
--- a/src/frontends/qt4/GuiVSpace.cpp
+++ b/src/frontends/qt4/GuiVSpace.cpp
@@ -150,10 +150,18 @@ void GuiVSpace::paramsToDialog(Inset const * inset)
bool GuiVSpace::checkWidgets(bool readonly) const
{
valueLE->setReadOnly(readonly);
- spacingCO->setEnabled(!readonly);
- unitCO->setEnabled(!readonly);
keepCB->setEnabled(!readonly);
+ if (readonly) {
+ spacingCO->setEnabled(false);
+ unitCO->setEnabled(false);
+ } else {
+ bool const enable = (spacingCO->currentIndex() == 5);
+ valueLE->setEnabled(enable);
+ valueL->setEnabled(enable);
+ unitCO->setEnabled(enable);
+ }
+
return InsetParamsWidget::checkWidgets();
}