commit f8e8877f839dcd0d133e6982d107b7d167c524c3 Author: Richard Heck <rgh...@lyx.org> Date: Thu Feb 22 15:24:28 2018 -0500
Respect "literal" setting when entering citation via LyX server. This requires moving the bool that tracks this somewhere that it is visible from BufferView. It seemed to make sense to put it as a static member of InsetCitation. --- src/BufferView.cpp | 2 ++ src/frontends/qt4/GuiCitation.cpp | 12 +++++++----- src/frontends/qt4/GuiCitation.h | 3 --- src/insets/InsetCitation.cpp | 6 ++++++ src/insets/InsetCitation.h | 2 ++ 5 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/BufferView.cpp b/src/BufferView.cpp index 7d7dc7f..f421d91 100644 --- a/src/BufferView.cpp +++ b/src/BufferView.cpp @@ -2049,6 +2049,8 @@ void BufferView::dispatch(FuncRequest const & cmd, DispatchResult & dr) icp["key"] = from_utf8(arg); if (!opt1.empty()) icp["before"] = from_utf8(opt1); + icp["literal"] = + from_ascii(InsetCitation::last_literal ? "true" : "false"); string icstr = InsetCommand::params2string(icp); FuncRequest fr(LFUN_INSET_INSERT, icstr); lyx::dispatch(fr); diff --git a/src/frontends/qt4/GuiCitation.cpp b/src/frontends/qt4/GuiCitation.cpp index 7428221..d7d225b 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<lyx::docstring> 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); @@ -237,7 +238,7 @@ void GuiCitation::on_restorePB_clicked() void GuiCitation::on_literalCB_clicked() { - literal_ = literalCB->isChecked(); + InsetCitation::last_literal = literalCB->isChecked(); changed(); } @@ -768,7 +769,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"); @@ -1061,7 +1062,7 @@ void GuiCitation::saveSession(QSettings & settings) const settings.setValue( sessionKey() + "/citestyle", style_); settings.setValue( - sessionKey() + "/literal", literal_); + sessionKey() + "/literal", InsetCitation::last_literal); } @@ -1073,7 +1074,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(); } diff --git a/src/frontends/qt4/GuiCitation.h b/src/frontends/qt4/GuiCitation.h index 008d2d5..4d85c03 100644 --- a/src/frontends/qt4/GuiCitation.h +++ b/src/frontends/qt4/GuiCitation.h @@ -183,9 +183,6 @@ private: /// last used citation style QString style_; - /// last set value for literal - /// this is used only for new citations - bool literal_; /// GuiSelectionManager * selectionManager; /// available keys. diff --git a/src/insets/InsetCitation.cpp b/src/insets/InsetCitation.cpp index e52e87a..e1f40ea 100644 --- a/src/insets/InsetCitation.cpp +++ b/src/insets/InsetCitation.cpp @@ -59,6 +59,12 @@ InsetCitation::~InsetCitation() } +// May well be over-ridden when session settings are loaded +// in GuiCitation. Unfortunately, that will not happen until +// such a dialog is created. +bool InsetCitation::last_literal = true; + + ParamInfo const & InsetCitation::findInfo(string const & /* cmdName */) { static ParamInfo param_info_; diff --git a/src/insets/InsetCitation.h b/src/insets/InsetCitation.h index 2974ad4..a8e9e18 100644 --- a/src/insets/InsetCitation.h +++ b/src/insets/InsetCitation.h @@ -88,6 +88,8 @@ public: std::vector<CitationStyle> const & valid_styles) const; /// std::map<docstring, docstring> getQualifiedLists(docstring const p) const; + /// + static bool last_literal; private: /// tries to make a pretty label and makes a basic one if not