X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiIndex.cpp;h=0f25c93da72f4f3d32825e568e4d8857c8f444fd;hb=425d092204118ea6c24c28e85fdf03fcf2bb51a4;hp=c7e3409239eb03bba22d45cf1c9f3e6577f9b72c;hpb=9a95d2a936748c057db94a3083c4b9e6587eea0b;p=lyx.git diff --git a/src/frontends/qt4/GuiIndex.cpp b/src/frontends/qt4/GuiIndex.cpp index c7e3409239..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,122 +14,94 @@ #include "GuiIndex.h" -#include "debug.h" #include "qt_helpers.h" -#include -#include -#include -#include +#include "Buffer.h" +#include "BufferParams.h" +#include "FuncRequest.h" +#include "IndicesList.h" +#include "insets/InsetIndex.h" -using std::string; +#include -///////////////////////////////////////////////////////////////////// -// -// GuiIndexDialog -// -///////////////////////////////////////////////////////////////////// +using namespace std; namespace lyx { namespace frontend { -GuiIndexDialog::GuiIndexDialog(GuiIndex * form) - : form_(form) +GuiIndex::GuiIndex(GuiView & lv) + : GuiDialog(lv, "index", qt_("Index Entry Settings")) { setupUi(this); - connect(okPB, SIGNAL(clicked()), form, SLOT(slotOK())); - connect(closePB, SIGNAL(clicked()), form, SLOT(slotClose())); - connect(keywordED, SIGNAL(textChanged(const QString &)), - this, SLOT(change_adaptor())); - - setFocusProxy(keywordED); - - 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(okPB, SIGNAL(clicked()), this, SLOT(slotOK())); + connect(cancelPB, SIGNAL(clicked()), this, SLOT(slotClose())); + connect(indicesCO, SIGNAL(activated(int)), this, SLOT(change_adaptor())); -void GuiIndexDialog::change_adaptor() -{ - form_->changed(); + bc().setPolicy(ButtonPolicy::NoRepeatedApplyReadOnlyPolicy); + bc().setOK(okPB); + bc().setCancel(cancelPB); } -void GuiIndexDialog::reject() +void GuiIndex::change_adaptor() { - form_->slotClose(); + changed(); } -void GuiIndexDialog::closeEvent(QCloseEvent * e) +void GuiIndex::updateContents() { - form_->slotWMHide(); - e->accept(); -} + typedef IndicesList::const_iterator const_iterator; + IndicesList const & indiceslist = buffer().params().indiceslist(); + docstring const cur_index = params_.index; -///////////////////////////////////////////////////////////////////// -// -// GuiIndex -// -///////////////////////////////////////////////////////////////////// + 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()))); -GuiIndex::GuiIndex(GuiDialog & parent, docstring const & title, - QString const & label) - : GuiView(parent, title), label_(label) -{ + int const pos = indicesCO->findData(toqstr(cur_index)); + indicesCO->setCurrentIndex(pos); } -void GuiIndex::build_dialog() +void GuiIndex::applyView() { - dialog_.reset(new GuiIndexDialog(this)); - - dialog_->keywordLA->setText(label_); - - bc().setOK(dialog_->okPB); - bc().setCancel(dialog_->closePB); - bc().addReadOnly(dialog_->keywordED); + QString const index = indicesCO->itemData( + indicesCO->currentIndex()).toString(); + params_.index = qstring_to_ucs4(index); } -void GuiIndex::update_contents() +bool GuiIndex::initialiseParams(string const & data) { - docstring const contents = controller().params()["name"]; - dialog_->keywordED->setText(toqstr(contents)); - - bc().setValid(!contents.empty()); + InsetIndex::string2params(data, params_); + return true; } -void GuiIndex::applyView() +void GuiIndex::clearParams() { - controller().params()["name"] = qstring_to_ucs4(dialog_->keywordED->text()); + params_ = InsetIndexParams(); } -bool GuiIndex::isValid() +void GuiIndex::dispatchParams() { - return !dialog_->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"