]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetCounter.cpp
InsetFloat: pass back inset-modify that is addressed to other inset
[lyx.git] / src / insets / InsetCounter.cpp
index d0aa10877a064daa888d28b3ba82105c76abf837..4aa109d3ae77e5a6b69f355e0e20351de204759c 100644 (file)
@@ -17,7 +17,7 @@
 #include "LaTeXFeatures.h"
 #include "OutputParams.h"
 #include "output_xhtml.h"
-#include "sgml.h"
+#include "xml.h"
 #include "texstream.h"
 #include "TextClass.h"
 
@@ -58,7 +58,7 @@ InsetCounter::InsetCounter(InsetCounter const & ir)
 {}
 
 
-const map<string, string> InsetCounter::counterTable =
+const vector<pair<string, string>> InsetCounter::counterTable =
 {
        {"set", N_("Set counter to ...")},
        {"addto", N_("Increase counter by ...")},
@@ -68,8 +68,13 @@ const map<string, string> InsetCounter::counterTable =
 };
 
 
-bool InsetCounter::isCompatibleCommand(string const & s) {
-       return counterTable.count(s);
+bool InsetCounter::isCompatibleCommand(string const & s)
+{
+       for (auto & i : counterTable) {
+               if (i.first == s)
+                       return true;
+       }
+       return false;
 }
 
 
@@ -179,17 +184,16 @@ void InsetCounter::trackCounters(string const & cmd) const
        }
 }
 
-int InsetCounter::docbook(odocstream &, OutputParams const &) const
+void InsetCounter::docbook(XMLStream &, OutputParams const &) const
 {
        // Here, we need to track counter values ourselves,
        // since unlike in the LaTeX case, there is no external
        // mechanism for doing that.
        trackCounters(getCmdName());
-       return 0;
 }
 
 
-docstring InsetCounter::xhtml(XHTMLStream &, OutputParams const &) const
+docstring InsetCounter::xhtml(XMLStream &, OutputParams const &) const
 {
        // Here, we need to track counter values ourselves,
        // since unlike in the LaTeX case, there is no external
@@ -204,32 +208,36 @@ void InsetCounter::updateBuffer(ParIterator const &, UpdateType, bool const)
        string const cmd = getCmdName();
        docstring cntr = getParam("counter");
        Counters & cnts = buffer().params().documentClass().counters();
-       map<string, string>::const_iterator cit = counterTable.find(cmd);
-       LASSERT(cit != counterTable.end(), return);
-       string const label = cit->second;
+       string label;
+       for (auto & i : counterTable) {
+               if (i.first == cmd)
+                       label = i.second;
+       }
+       LASSERT(!label.empty(), return);
        docstring const tlabel = translateIfPossible(from_ascii(label));
 
+       docstring guiname = translateIfPossible(cnts.guiName(cntr));
        if (cmd == "set") {
                docstring const & val = getParam("value");
                cnts.set(cntr, convert<int>(val));
-               screen_label_ = bformat(_("Counter: Set %1$s"), cntr);
+               screen_label_ = bformat(_("Counter: Set %1$s"), guiname);
                tooltip_ = bformat(_("Set value of counter %1$s to %2$s"), cntr, val);
        } else if (cmd == "addto") {
                docstring const & val = getParam("value");
                cnts.addto(cntr, convert<int>(val));
-               screen_label_ = bformat(_("Counter: Add to %1$s"), cntr);
+               screen_label_ = bformat(_("Counter: Add to %1$s"), guiname);
                tooltip_ = bformat(_("Add %1$s to value of counter %2$s"), val, cntr);
        } else if (cmd == "reset") {
                cnts.reset(cntr);               
-               screen_label_ = bformat(_("Counter: Reset %1$s"), cntr);
+               screen_label_ = bformat(_("Counter: Reset %1$s"), guiname);
                tooltip_ = bformat(_("Reset value of counter %1$s"), cntr);
        } else if (cmd == "save") {
                cnts.saveValue(cntr);
-               screen_label_ = bformat(_("Counter: Save %1$s"), cntr);
+               screen_label_ = bformat(_("Counter: Save %1$s"), guiname);
                tooltip_ = bformat(_("Save value of counter %1$s"), cntr);
        } else if (cmd == "restore") {
                cnts.restoreValue(cntr);
-               screen_label_ = bformat(_("Counter: Restore %1$s"), cntr);
+               screen_label_ = bformat(_("Counter: Restore %1$s"), guiname);
                tooltip_ = bformat(_("Restore value of counter %1$s"), cntr);
        }
 }