X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiVSpace.cpp;h=dc08bc0c3188f630b2f7b55d82eb09f1f771054e;hb=43c09d723435a5b203f2ac0c39e2086de836b386;hp=7901590c0bd184c1f431635c2d5324f585522469;hpb=a1cec91afaca91968b46e695533c10ad2a3f73d3;p=lyx.git diff --git a/src/frontends/qt4/GuiVSpace.cpp b/src/frontends/qt4/GuiVSpace.cpp index 7901590c0b..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. */ @@ -16,80 +16,51 @@ #include #include "GuiVSpace.h" -#include "Qt2BC.h" -#include "CheckedLineEdit.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 "controllers/ControlVSpace.h" -#include "controllers/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::GuiVSpaceDialog(GuiVSpace * form) - : form_(form) +GuiVSpace::GuiVSpace(QWidget * parent) : InsetParamsWidget(parent) { setupUi(this); - connect(okPB, SIGNAL(clicked()), form_, SLOT(slotOK())); - connect(applyPB, SIGNAL(clicked()), form_, SLOT(slotApply())); - connect(closePB, SIGNAL(clicked()), form_, 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())); + this, SIGNAL(changed())); - valueLE->setValidator(unsignedLengthValidator(valueLE)); -} - - -void GuiVSpaceDialog::closeEvent(QCloseEvent * e) -{ - form_->slotWMHide(); - e->accept(); -} + connect(spacingCO, SIGNAL(activated(int)), + this, SLOT(enableCustom(int))); + valueLE->setValidator(unsignedGlueLengthValidator(valueLE)); -void GuiVSpaceDialog::change_adaptor() -{ - form_->changed(); + // initialize the length validator + addCheckedWidget(valueLE, valueL); } -void GuiVSpaceDialog::enableCustom(int selection) +void GuiVSpace::enableCustom(int selection) { bool const enable = selection == 5; valueLE->setEnabled(enable); @@ -97,12 +68,6 @@ void GuiVSpaceDialog::enableCustom(int selection) } -///////////////////////////////////////////////////////////////////// -// -// GuiVSpace -// -///////////////////////////////////////////////////////////////////// - static void setWidgetsFromVSpace(VSpace const & space, QComboBox * spacing, QLineEdit * value, @@ -111,30 +76,17 @@ 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::VFILL: item = 4; break; + case VSpace::LENGTH: item = 5; break; } 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); @@ -150,31 +102,17 @@ static void setWidgetsFromVSpace(VSpace const & space, static VSpace setVSpaceFromWidgets(int spacing, - QLineEdit * value, - LengthCombo * unit, - bool keep) + QLineEdit * value, LengthCombo * unit, bool keep) { 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::VFILL); break; + case 5: space = VSpace(GlueLength(widgetsToLength(value, unit))); break; } space.setKeep(keep); @@ -182,67 +120,28 @@ static VSpace setVSpaceFromWidgets(int spacing, } -typedef QController > VSpaceBase; - -GuiVSpace::GuiVSpace(Dialog & parent) - : VSpaceBase(parent, _("Vertical Space Settings")) -{} - - -void GuiVSpace::build_dialog() +docstring GuiVSpace::dialogToParams() const { - // the tabbed folder - dialog_.reset(new GuiVSpaceDialog(this)); - - // Manage the ok, apply, restore and cancel/close buttons - bcview().setOK(dialog_->okPB); - bcview().setApply(dialog_->applyPB); - bcview().setCancel(dialog_->closePB); - - // disable for read-only documents - bcview().addReadOnly(dialog_->spacingCO); - bcview().addReadOnly(dialog_->valueLE); - bcview().addReadOnly(dialog_->unitCO); - bcview().addReadOnly(dialog_->keepCB); - - // initialize the length validator - addCheckedLineEdit(bcview(), dialog_->valueLE, dialog_->valueL); - - // remove the %-items from the unit choice - dialog_->unitCO->noPercents(); -} - - -void GuiVSpace::apply() -{ - // spacing // If a vspace choice is "Length" but there's no text in // the input field, do not insert a vspace at all. - if (dialog_->spacingCO->currentIndex() == 5 - && dialog_->valueLE->text().isEmpty()) - return; - - VSpace const space = - setVSpaceFromWidgets(dialog_->spacingCO->currentIndex(), - dialog_->valueLE, - dialog_->unitCO, - dialog_->keepCB->isChecked()); + if (spacingCO->currentIndex() == 5 && valueLE->text().isEmpty()) + return docstring(); - controller().params() = space; + VSpace const params = setVSpaceFromWidgets(spacingCO->currentIndex(), + valueLE, unitCO, keepCB->isChecked()); + return from_ascii(InsetVSpace::params2string(params)); } -void GuiVSpace::update_contents() +void GuiVSpace::paramsToDialog(Inset const * inset) { - setWidgetsFromVSpace(controller().params(), - dialog_->spacingCO, - dialog_->valueLE, - dialog_->unitCO, - dialog_->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"