From: Richard Heck Date: Thu, 22 Feb 2018 20:24:28 +0000 (-0500) Subject: Respect "literal" setting when entering citation via LyX server. X-Git-Tag: lyx-2.4.0dev-acb2ca7b~3808 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=f8e8877f839dcd0d133e6982d107b7d167c524c3;p=features.git 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. --- diff --git a/src/BufferView.cpp b/src/BufferView.cpp index 7d7dc7fee5..f421d91544 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 74282210c1..d7d225b5f2 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); @@ -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 008d2d556d..4d85c0315a 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 e52e87a6b7..e1f40eaebf 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 2974ad44ea..a8e9e1853d 100644 --- a/src/insets/InsetCitation.h +++ b/src/insets/InsetCitation.h @@ -88,6 +88,8 @@ public: std::vector const & valid_styles) const; /// std::map getQualifiedLists(docstring const p) const; + /// + static bool last_literal; private: /// tries to make a pretty label and makes a basic one if not