X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiIndex.cpp;h=0f25c93da72f4f3d32825e568e4d8857c8f444fd;hb=b7f6b979d0f889f08e735f35378bb20ba3788b4b;hp=2fcbbe57110ecc839ac07637ed164aa4c4ddba76;hpb=c9ea6e6eef090b863fb54445010f24443b15eb23;p=lyx.git diff --git a/src/frontends/qt4/GuiIndex.cpp b/src/frontends/qt4/GuiIndex.cpp index 2fcbbe5711..0f25c93da7 100644 --- a/src/frontends/qt4/GuiIndex.cpp +++ b/src/frontends/qt4/GuiIndex.cpp @@ -3,7 +3,9 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author John Levon + * \author Angus Leeming + * \author Martin Vermeer + * \author Jürgen Spitzmüller * * Full author contact details are available in file CREDITS. */ @@ -12,108 +14,94 @@ #include "GuiIndex.h" -#include "ControlCommand.h" - -#include "debug.h" #include "qt_helpers.h" -#include -#include -#include -#include +#include "Buffer.h" +#include "BufferParams.h" +#include "FuncRequest.h" +#include "IndicesList.h" -using std::string; +#include "insets/InsetIndex.h" + +#include +using namespace std; namespace lyx { namespace frontend { -GuiIndexDialogBase::GuiIndexDialogBase(LyXView & lv, - docstring const & title, QString const & label) - : GuiDialog(lv, "index") +GuiIndex::GuiIndex(GuiView & lv) + : GuiDialog(lv, "index", qt_("Index Entry Settings")) { - label_ = label; setupUi(this); - setViewTitle(title); - setController(new ControlCommand(*this, "index", "index")); connect(okPB, SIGNAL(clicked()), this, SLOT(slotOK())); - connect(closePB, SIGNAL(clicked()), this, SLOT(slotClose())); - connect(keywordED, SIGNAL(textChanged(const QString &)), - this, SLOT(change_adaptor())); - - setFocusProxy(keywordED); - - keywordLA->setText(label_); - - keywordED->setWhatsThis( qt_( - "The format of the entry in the index.\n" - "\n" - "An entry can be specified as a sub-entry of\n" - "another with \"!\":\n" - "\n" - "cars!mileage\n" - "\n" - "You can cross-refer to another entry like so:\n" - "\n" - "cars!mileage|see{economy}\n" - "\n" - "For further details refer to the local LaTeX\n" - "documentation.\n") - ); + connect(cancelPB, SIGNAL(clicked()), this, SLOT(slotClose())); + connect(indicesCO, SIGNAL(activated(int)), this, SLOT(change_adaptor())); bc().setPolicy(ButtonPolicy::NoRepeatedApplyReadOnlyPolicy); bc().setOK(okPB); - bc().setCancel(closePB); - bc().addReadOnly(keywordED); + bc().setCancel(cancelPB); } -ControlCommand & GuiIndexDialogBase::controller() const +void GuiIndex::change_adaptor() { - return static_cast(Dialog::controller()); + changed(); } -void GuiIndexDialogBase::change_adaptor() +void GuiIndex::updateContents() { - changed(); -} + typedef IndicesList::const_iterator const_iterator; + IndicesList const & indiceslist = buffer().params().indiceslist(); + docstring const cur_index = params_.index; -void GuiIndexDialogBase::reject() -{ - slotClose(); + indicesCO->clear(); + + const_iterator const begin = indiceslist.begin(); + const_iterator const end = indiceslist.end(); + for (const_iterator it = begin; it != end; ++it) + indicesCO->addItem(toqstr(it->index()), + QVariant(toqstr(it->shortcut()))); + + int const pos = indicesCO->findData(toqstr(cur_index)); + indicesCO->setCurrentIndex(pos); } -void GuiIndexDialogBase::closeEvent(QCloseEvent * e) +void GuiIndex::applyView() { - slotWMHide(); - e->accept(); + QString const index = indicesCO->itemData( + indicesCO->currentIndex()).toString(); + params_.index = qstring_to_ucs4(index); } -void GuiIndexDialogBase::update_contents() +bool GuiIndex::initialiseParams(string const & data) { - docstring const contents = controller().params()["name"]; - keywordED->setText(toqstr(contents)); - bc().setValid(!contents.empty()); + InsetIndex::string2params(data, params_); + return true; } -void GuiIndexDialogBase::applyView() +void GuiIndex::clearParams() { - controller().params()["name"] = qstring_to_ucs4(keywordED->text()); + params_ = InsetIndexParams(); } -bool GuiIndexDialogBase::isValid() +void GuiIndex::dispatchParams() { - return !keywordED->text().isEmpty(); + dispatch(FuncRequest(getLfun(), InsetIndex::params2string(params_))); } + +Dialog * createGuiIndex(GuiView & lv) { return new GuiIndex(lv); } + + } // namespace frontend } // namespace lyx -#include "GuiIndex_moc.cpp" +#include "moc_GuiIndex.cpp"