X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiCitation.cpp;h=5e35afca793dd75001c4aaa08f5f10c476b18493;hb=f973855bdea94f0c6edf8eace7548a440f005902;hp=c13e45ae9b43103fec33edb0d77805234b88770c;hpb=63d96191b1e8f2a1a5f746df9942e392ca197524;p=lyx.git diff --git a/src/frontends/qt4/GuiCitation.cpp b/src/frontends/qt4/GuiCitation.cpp index c13e45ae9b..5e35afca79 100644 --- a/src/frontends/qt4/GuiCitation.cpp +++ b/src/frontends/qt4/GuiCitation.cpp @@ -27,6 +27,7 @@ #include "TextClass.h" #include "FuncRequest.h" +#include "insets/InsetCitation.h" #include "insets/InsetCommand.h" #include "support/debug.h" @@ -92,7 +93,7 @@ static vector to_docstring_vector(QStringList const & qlist) GuiCitation::GuiCitation(GuiView & lv) : DialogView(lv, "citation", qt_("Citation")), - style_(QString()), literal_(false), params_(insetCode("citation")) + style_(QString()), params_(insetCode("citation")) { setupUi(this); @@ -135,9 +136,9 @@ GuiCitation::GuiCitation(GuiView & lv) connect(textAfterED, SIGNAL(textChanged(QString)), this, SLOT(updateStyles())); connect(textBeforeED, SIGNAL(returnPressed()), - this, SLOT(on_okPB_clicked())); + this, SLOT(on_buttonBox_accepted())); connect(textAfterED, SIGNAL(returnPressed()), - this, SLOT(on_okPB_clicked())); + this, SLOT(on_buttonBox_accepted())); selectionManager = new GuiSelectionManager(this, availableLV, selectedLV, addPB, deletePB, upPB, downPB, &available_model_, &selected_model_, 1); @@ -146,7 +147,7 @@ GuiCitation::GuiCitation(GuiView & lv) connect(selectionManager, SIGNAL(updateHook()), this, SLOT(updateControls())); connect(selectionManager, SIGNAL(okHook()), - this, SLOT(on_okPB_clicked())); + this, SLOT(on_buttonBox_accepted())); connect(filter_, SIGNAL(rightButtonClicked()), this, SLOT(resetFilter())); @@ -174,6 +175,8 @@ GuiCitation::GuiCitation(GuiView & lv) selectedLV->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); #endif + selectedLV->setToolTip(qt_("Ordered list of all cited references.\n" + "You can reorder, add and remove references with the buttons on the left.")); setFocusProxy(filter_); } @@ -201,13 +204,14 @@ void GuiCitation::applyView() void GuiCitation::showEvent(QShowEvent * e) { - filter_->clear(); + if (!filter_->text().isEmpty()) + filterPressed(); availableLV->setFocus(); DialogView::showEvent(e); } -void GuiCitation::on_okPB_clicked() +void GuiCitation::on_buttonBox_accepted() { applyView(); clearSelection(); @@ -215,29 +219,33 @@ void GuiCitation::on_okPB_clicked() } -void GuiCitation::on_cancelPB_clicked() +void GuiCitation::on_buttonBox_rejected() { clearSelection(); hide(); } -void GuiCitation::on_applyPB_clicked() +void GuiCitation::on_buttonBox_clicked(QAbstractButton * button) { - applyView(); -} - - -void GuiCitation::on_restorePB_clicked() -{ - init(); - updateFilterHint(); + switch (buttonBox->standardButton(button)) { + case QDialogButtonBox::Apply: + applyView(); + break; + case QDialogButtonBox::Reset: + init(); + updateFilterHint(); + filterPressed(); + break; + default: + break; + } } void GuiCitation::on_literalCB_clicked() { - literal_ = literalCB->isChecked(); + InsetCitation::last_literal = literalCB->isChecked(); changed(); } @@ -311,10 +319,10 @@ void GuiCitation::updateFormatting(CitationStyle const & currentStyle) forceuppercaseCB->setEnabled(force && haveSelection); if (force && haveSelection) - forceuppercaseCB->setToolTip("Force upper case in names (\"Del Piero\", not \"del Piero\")."); + forceuppercaseCB->setToolTip(qt_("Force upper case in names (\"Del Piero\", not \"del Piero\").")); else - forceuppercaseCB->setToolTip("Force upper case in names (\"Del Piero\", not \"del Piero\"), " - "if the current citation style supports this."); + forceuppercaseCB->setToolTip(qt_("Force upper case in names (\"Del Piero\", not \"del Piero\"), " + "if the current citation style supports this.")); starredCB->setEnabled(full && haveSelection); textBeforeED->setEnabled(textbefore && haveSelection); textBeforeLA->setEnabled(textbefore && haveSelection); @@ -351,6 +359,12 @@ void GuiCitation::updateFormatting(CitationStyle const & currentStyle) starredCB->setToolTip(qt_("Always list all authors (rather than using \"et al.\"), " "if the current citation style supports this.")); } + if (availableLV->selectionModel()->selectedIndexes().isEmpty()) + availableLV->setToolTip(qt_("All references available for citing.")); + else + availableLV->setToolTip(qt_("All references available for citing.\n" + "To add the selected one, hit Add, press Enter or double-click.\n" + "Hit Ctrl-Enter to add and close the dialog.")); } @@ -450,8 +464,8 @@ bool GuiCitation::isSelected(QModelIndex const & idx) void GuiCitation::setButtons() { int const srows = selectedLV->model()->rowCount(); - applyPB->setEnabled(srows > 0); - okPB->setEnabled(srows > 0); + buttonBox->button(QDialogButtonBox::Apply)->setEnabled(srows > 0); + buttonBox->button(QDialogButtonBox::Ok)->setEnabled(srows > 0); } @@ -573,9 +587,10 @@ void GuiCitation::regexChanged() void GuiCitation::updateFilterHint() { - QString const hint = instant_->isChecked() ? + QString hint = instant_->isChecked() ? qt_("Enter string to filter the list of available citations") : qt_("Enter string to filter the list of available citations and press "); + hint += qt_("\nThe down arrow key will get you into the list of filtered citations."); filter_->setToolTip(hint); } @@ -727,7 +742,7 @@ vector GuiCitation::getPostTexts() for (int i = 0; i != selected_model_.rowCount(); ++i) { QStandardItem const * key = selected_model_.item(i, 1); QStandardItem const * post = selected_model_.item(i, 2); - if (key && post) + if (key && post && !key->text().isEmpty() && !post->text().isEmpty()) res.push_back(qstring_to_ucs4(key->text()) + " " + qstring_to_ucs4(post->text())); } return res; @@ -768,7 +783,7 @@ void GuiCitation::init() // if this is a new citation, we set the literal checkbox // to its last set value. if (cited_keys_.isEmpty()) - literalCB->setChecked(literal_); + literalCB->setChecked(InsetCitation::last_literal); else literalCB->setChecked(params_["literal"] == "true"); @@ -800,8 +815,8 @@ void GuiCitation::init() } else availableLV->setFocus(); - applyPB->setEnabled(false); - okPB->setEnabled(false); + buttonBox->button(QDialogButtonBox::Apply)->setEnabled(false); + buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); } @@ -1061,7 +1076,7 @@ void GuiCitation::saveSession(QSettings & settings) const settings.setValue( sessionKey() + "/citestyle", style_); settings.setValue( - sessionKey() + "/literal", literal_); + sessionKey() + "/literal", InsetCitation::last_literal); } @@ -1073,7 +1088,8 @@ void GuiCitation::restoreSession() casesense_->setChecked(settings.value(sessionKey() + "/casesensitive").toBool()); instant_->setChecked(settings.value(sessionKey() + "/autofind", true).toBool()); style_ = settings.value(sessionKey() + "/citestyle").toString(); - literal_ = settings.value(sessionKey() + "/literal", false).toBool(); + InsetCitation::last_literal = + settings.value(sessionKey() + "/literal", false).toBool(); updateFilterHint(); }