]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiVSpace.cpp
Fix the tab ordering of PanelStack and PrefsUi.
[lyx.git] / src / frontends / qt4 / GuiVSpace.cpp
index 995393a9790dd9b42d8821057a5859078c11fb16..dc08bc0c3188f630b2f7b55d82eb09f1f771054e 100644 (file)
@@ -22,7 +22,7 @@
 #include "Validator.h"
 
 #include "Spacing.h"
-#include "FuncRequest.h"
+#include "VSpace.h"
 
 #include "insets/InsetVSpace.h"
 
@@ -39,51 +39,24 @@ using namespace std;
 namespace lyx {
 namespace frontend {
 
-GuiVSpace::GuiVSpace(GuiView & lv)
-       : GuiDialog(lv, "vspace", qt_("Vertical Space Settings"))
+GuiVSpace::GuiVSpace(QWidget * parent) : InsetParamsWidget(parent)
 {
        setupUi(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(QString)),
-               this, SLOT(change_adaptor()));
        connect(valueLE, SIGNAL(textChanged(QString)),
-               this, SLOT(change_adaptor()));
-       connect(spacingCO, SIGNAL(activated(int)),
-               this, SLOT(enableCustom(int)));
+               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();
-}
-
-
-void GuiVSpace::change_adaptor()
-{
-       changed();
+       addCheckedWidget(valueLE, valueL);
 }
 
 
@@ -147,47 +120,26 @@ static VSpace setVSpaceFromWidgets(int spacing,
 }
 
 
-void GuiVSpace::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;
-
-       params_ = setVSpaceFromWidgets(spacingCO->currentIndex(),
-                       valueLE, unitCO, keepCB->isChecked()); 
-}
+               return docstring();
 
-
-void GuiVSpace::updateContents()
-{
-       setWidgetsFromVSpace(params_, spacingCO, valueLE, unitCO, keepCB);
+       VSpace const params = setVSpaceFromWidgets(spacingCO->currentIndex(),
+                       valueLE, unitCO, keepCB->isChecked());
+       return from_ascii(InsetVSpace::params2string(params));
 }
 
 
-bool GuiVSpace::initialiseParams(string const & data)
+void GuiVSpace::paramsToDialog(Inset const * inset)
 {
-       InsetVSpace::string2params(data, params_);
-       setButtonsValid(true);
-       return true;
+       InsetVSpace const * vs = static_cast<InsetVSpace const *>(inset);
+       VSpace const & params = vs->space();
+       setWidgetsFromVSpace(params, spacingCO, valueLE, unitCO, keepCB);
 }
 
-
-void GuiVSpace::clearParams()
-{
-       params_ = VSpace();
-}
-
-
-void GuiVSpace::dispatchParams()
-{
-       dispatch(FuncRequest(getLfun(), InsetVSpace::params2string(params_)));
-}
-
-
-Dialog * createGuiVSpace(GuiView & lv) { return new GuiVSpace(lv); }
-
-
 } // namespace frontend
 } // namespace lyx