X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt%2FGuiVSpace.cpp;h=7163634441e7e56b1f49901d2909be0c57b8846c;hb=29a8097c3c14aad871c7e396a59542fe47e39ea1;hp=6eec95846bcf2000eb67ff4e900f03b7868f042e;hpb=c293be56bd12c5dc46e5cedd2828e33918fccef7;p=lyx.git diff --git a/src/frontends/qt/GuiVSpace.cpp b/src/frontends/qt/GuiVSpace.cpp index 6eec95846b..7163634441 100644 --- a/src/frontends/qt/GuiVSpace.cpp +++ b/src/frontends/qt/GuiVSpace.cpp @@ -66,7 +66,7 @@ GuiVSpace::GuiVSpace(QWidget * parent) : InsetParamsWidget(parent) void GuiVSpace::enableCustom(int selection) { - bool const enable = selection == 5; + bool const enable = selection == 7; valueLE->setEnabled(enable); if (enable) valueLE->setFocus(); @@ -84,12 +84,30 @@ static void setWidgetsFromVSpace(VSpace const & space, { int item = 0; switch (space.kind()) { - case VSpace::DEFSKIP: item = 0; break; - case VSpace::SMALLSKIP: item = 1; break; - case VSpace::MEDSKIP: item = 2; break; - case VSpace::BIGSKIP: item = 3; break; - case VSpace::VFILL: item = 4; break; - case VSpace::LENGTH: item = 5; break; + case VSpace::DEFSKIP: + item = 0; + break; + case VSpace::SMALLSKIP: + item = 1; + break; + case VSpace::MEDSKIP: + item = 2; + break; + case VSpace::BIGSKIP: + item = 3; + break; + case VSpace::HALFLINE: + item = 4; + break; + case VSpace::FULLLINE: + item = 5; + break; + case VSpace::VFILL: + item = 6; + break; + case VSpace::LENGTH: + item = 7; + break; } spacing->setCurrentIndex(item); keep->setChecked(space.keep()); @@ -115,12 +133,30 @@ static VSpace setVSpaceFromWidgets(int spacing, VSpace space; switch (spacing) { - case 0: space = VSpace(VSpace::DEFSKIP); break; - case 1: space = VSpace(VSpace::SMALLSKIP); break; - case 2: space = VSpace(VSpace::MEDSKIP); break; - case 3: space = VSpace(VSpace::BIGSKIP); break; - case 4: space = VSpace(VSpace::VFILL); break; - case 5: space = VSpace(GlueLength(widgetsToLength(value, unit))); break; + case 0: + space = VSpace(VSpace::DEFSKIP); + break; + case 1: + space = VSpace(VSpace::SMALLSKIP); + break; + case 2: + space = VSpace(VSpace::MEDSKIP); + break; + case 3: + space = VSpace(VSpace::BIGSKIP); + break; + case 4: + space = VSpace(VSpace::HALFLINE); + break; + case 5: + space = VSpace(VSpace::FULLLINE); + break; + case 6: + space = VSpace(VSpace::VFILL); + break; + case 7: + space = VSpace(GlueLength(widgetsToLength(value, unit))); + break; } space.setKeep(keep); @@ -132,7 +168,7 @@ docstring GuiVSpace::dialogToParams() const { // If a vspace choice is "Length" but there's no text in // the input field, do not insert a vspace at all. - if (spacingCO->currentIndex() == 5 && valueLE->text().isEmpty()) + if (spacingCO->currentIndex() == 7 && valueLE->text().isEmpty()) return docstring(); VSpace const params = setVSpaceFromWidgets(spacingCO->currentIndex(), @@ -152,18 +188,19 @@ void GuiVSpace::paramsToDialog(Inset const * inset) bool GuiVSpace::checkWidgets(bool readonly) const { - valueLE->setReadOnly(readonly); keepCB->setEnabled(!readonly); + keepL->setEnabled(!readonly); + spacingCO->setEnabled(!readonly); + spacingL->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); - } + valueLE->setReadOnly(readonly); + + bool const enable_custom = + !readonly && (spacingCO->currentIndex() == 7); + + valueL->setEnabled(enable_custom); + valueLE->setEnabled(enable_custom); + unitCO->setEnabled(enable_custom); return InsetParamsWidget::checkWidgets(); }