]> git.lyx.org Git - features.git/commitdiff
Disable unsupported ref types in mathed.
authorJuergen Spitzmueller <spitz@lyx.org>
Wed, 14 Feb 2018 16:18:24 +0000 (17:18 +0100)
committerJuergen Spitzmueller <spitz@lyx.org>
Thu, 15 Feb 2018 05:48:38 +0000 (06:48 +0100)
Also repair prettyref in InsetMathRef.

Part of #9798

(cherry picked from commit 47e85b37eb898ae5e1876e7b3dcd846956676d80)

src/frontends/qt4/GuiRef.cpp
src/insets/InsetRef.cpp

index ae440b05adcc8b22b8be37ce360570c9fafe40f1..c07ce5ce87037c894a3f1813d9187cf2670001b2 100644 (file)
@@ -18,6 +18,8 @@
 #include "Buffer.h"
 #include "BufferParams.h"
 #include "BufferList.h"
+#include "BufferView.h"
+#include "Cursor.h"
 #include "FuncRequest.h"
 
 #include "qt_helpers.h"
@@ -293,10 +295,26 @@ void GuiRef::closeEvent(QCloseEvent * e)
 
 void GuiRef::updateContents()
 {
-       int orig_type = typeCO->currentIndex();
+       QString const orig_type =
+               typeCO->itemData(typeCO->currentIndex()).toString();
 
        referenceED->clear();
        nameED->clear();
+       typeCO->clear();
+
+       // FIXME Bring InsetMathRef on par with InsetRef
+       // (see #9798)
+       typeCO->addItem(qt_("<reference>"), "ref");
+       typeCO->addItem(qt_("(<reference>)"), "eqref");
+       typeCO->addItem(qt_("<page>"), "pageref");
+       typeCO->addItem(qt_("on page <page>"), "vpageref");
+       typeCO->addItem(qt_("<reference> on page <page>"), "vref");
+       if (bufferview()->cursor().inTexted()) {
+               typeCO->addItem(qt_("Formatted reference"), "formatted");
+               typeCO->addItem(qt_("Textual reference"), "nameref");
+               typeCO->addItem(qt_("Label only"), "labelonly");
+       } else
+               typeCO->addItem(qt_("Formatted reference"), "prettyref");
 
        referenceED->setText(toqstr(params_["reference"]));
        nameED->setText(toqstr(params_["name"]));
@@ -305,10 +323,15 @@ void GuiRef::updateContents()
 
        // restore type settings for new insets
        bool const new_inset = params_["reference"].empty();
-       if (new_inset)
-               typeCO->setCurrentIndex(orig_type);
+       if (new_inset) {
+               int index = typeCO->findData(orig_type);
+               if (index == -1)
+                       index = 0;
+               typeCO->setCurrentIndex(index);
+       }
        else
-               typeCO->setCurrentIndex(InsetRef::getType(params_.getCmdName()));
+               typeCO->setCurrentIndex(
+                       typeCO->findData(toqstr(params_.getCmdName())));
        typeCO->setEnabled(typeAllowed() && !isBufferReadonly());
        if (!typeAllowed())
                typeCO->setCurrentIndex(0);
@@ -350,7 +373,7 @@ void GuiRef::applyView()
 {
        last_reference_ = referenceED->text();
 
-       params_.setCmdName(InsetRef::getName(typeCO->currentIndex()));
+       params_.setCmdName(fromqstr(typeCO->itemData(typeCO->currentIndex()).toString()));
        params_["reference"] = qstring_to_ucs4(last_reference_);
        params_["name"] = qstring_to_ucs4(nameED->text());
        params_["plural"] = pluralCB->isChecked() ?
index 4a49cfbac83d964963fc01d84829bda0e2a564b7..44770e80524141baa3f243b18c3a92cfa0803fb1 100644 (file)
@@ -56,6 +56,7 @@ bool InsetRef::isCompatibleCommand(string const & s) {
                || s == "vref"
                || s == "vpageref"
                || s == "formatted"
+               || s == "prettyref" // for InsetMathRef FIXME
                || s == "eqref"
                || s == "nameref"
                || s == "labelonly";