X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiVSpace.cpp;h=dc08bc0c3188f630b2f7b55d82eb09f1f771054e;hb=43c09d723435a5b203f2ac0c39e2086de836b386;hp=ebbb347de4dcc1f913e2f4766a6d5be4c9a52116;hpb=c9ea6e6eef090b863fb54445010f24443b15eb23;p=lyx.git diff --git a/src/frontends/qt4/GuiVSpace.cpp b/src/frontends/qt4/GuiVSpace.cpp index ebbb347de4..dc08bc0c31 100644 --- a/src/frontends/qt4/GuiVSpace.cpp +++ b/src/frontends/qt4/GuiVSpace.cpp @@ -3,12 +3,12 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author André Pönitz - * \author Jürgen Vigna + * \author André Pönitz + * \author Jürgen Vigna * \author Rob Lahaye * \author Angus Leeming * \author Edwin Leuven - * \author Jürgen Spitzmüller + * \author Jürgen Spitzmüller * * Full author contact details are available in file CREDITS. */ @@ -17,96 +17,50 @@ #include "GuiVSpace.h" -#include "ControlVSpace.h" #include "LengthCombo.h" #include "qt_helpers.h" #include "Validator.h" -#include "LyXRC.h" // to set the default length values #include "Spacing.h" #include "VSpace.h" -#include "ControlVSpace.h" -#include "frontend_helpers.h" +#include "insets/InsetVSpace.h" +#include "support/gettext.h" #include "support/lstrings.h" #include -#include #include #include #include -using std::string; - +using namespace std; namespace lyx { namespace frontend { -GuiVSpaceDialog::GuiVSpaceDialog(LyXView & lv) - : GuiDialog(lv, "vspace") +GuiVSpace::GuiVSpace(QWidget * parent) : InsetParamsWidget(parent) { setupUi(this); - setViewTitle(_("Vertical Space Settings")); - setController(new ControlVSpace(*this)); - - connect(okPB, SIGNAL(clicked()), this, SLOT(slotOK())); - connect(applyPB, SIGNAL(clicked()), this, SLOT(slotApply())); - connect(closePB, SIGNAL(clicked()), this, SLOT(slotClose())); - connect(spacingCO, SIGNAL(highlighted(const QString &)), - this, SLOT(change_adaptor())); - connect(valueLE, SIGNAL(textChanged(const QString &)), - this, SLOT(change_adaptor())); - connect(spacingCO, SIGNAL(activated(int)), - this, SLOT(enableCustom(int))); + connect(valueLE, SIGNAL(textChanged(QString)), + this, SIGNAL(changed())); connect(keepCB, SIGNAL(clicked()), - this, SLOT(change_adaptor())); + this, SIGNAL(changed())); connect(unitCO, SIGNAL(selectionChanged(lyx::Length::UNIT)), - this, SLOT(change_adaptor())); - - valueLE->setValidator(unsignedLengthValidator(valueLE)); + this, SIGNAL(changed())); - // Manage the ok, apply, restore and cancel/close buttons - bc().setPolicy(ButtonPolicy::OkApplyCancelReadOnlyPolicy); - bc().setOK(okPB); - bc().setApply(applyPB); - bc().setCancel(closePB); + connect(spacingCO, SIGNAL(activated(int)), + this, SLOT(enableCustom(int))); - // disable for read-only documents - bc().addReadOnly(spacingCO); - bc().addReadOnly(valueLE); - bc().addReadOnly(unitCO); - bc().addReadOnly(keepCB); + valueLE->setValidator(unsignedGlueLengthValidator(valueLE)); // initialize the length validator - bc().addCheckedLineEdit(valueLE, valueL); - - // remove the %-items from the unit choice - unitCO->noPercents(); + addCheckedWidget(valueLE, valueL); } -ControlVSpace & GuiVSpaceDialog::controller() const -{ - return static_cast(Dialog::controller()); -} - - -void GuiVSpaceDialog::closeEvent(QCloseEvent * e) -{ - slotWMHide(); - e->accept(); -} - - -void GuiVSpaceDialog::change_adaptor() -{ - changed(); -} - - -void GuiVSpaceDialog::enableCustom(int selection) +void GuiVSpace::enableCustom(int selection) { bool const enable = selection == 5; valueLE->setEnabled(enable); @@ -132,8 +86,7 @@ static void setWidgetsFromVSpace(VSpace const & space, spacing->setCurrentIndex(item); keep->setChecked(space.keep()); - Length::UNIT default_unit = - (lyxrc.default_papersize > 3) ? Length::CM : Length::IN; + Length::UNIT const default_unit = Length::defaultUnit(); bool const custom_vspace = space.kind() == VSpace::LENGTH; if (custom_vspace) { value->setEnabled(true); @@ -167,28 +120,28 @@ static VSpace setVSpaceFromWidgets(int spacing, } -void GuiVSpaceDialog::applyView() +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()) - return; - - VSpace const space = setVSpaceFromWidgets(spacingCO->currentIndex(), - valueLE, unitCO, keepCB->isChecked()); + return docstring(); - controller().params() = space; + VSpace const params = setVSpaceFromWidgets(spacingCO->currentIndex(), + valueLE, unitCO, keepCB->isChecked()); + return from_ascii(InsetVSpace::params2string(params)); } -void GuiVSpaceDialog::update_contents() +void GuiVSpace::paramsToDialog(Inset const * inset) { - setWidgetsFromVSpace(controller().params(), - spacingCO, valueLE, unitCO, keepCB); + InsetVSpace const * vs = static_cast(inset); + VSpace const & params = vs->space(); + setWidgetsFromVSpace(params, spacingCO, valueLE, unitCO, keepCB); } } // namespace frontend } // namespace lyx -#include "GuiVSpace_moc.cpp" +#include "moc_GuiVSpace.cpp"