]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetRef.cpp
Phantom is fragile (#9456)
[lyx.git] / src / insets / InsetRef.cpp
index 9bfb3d488c03806ef6a7b9baf1b5e076b521712e..bd6b2ecfec204952e81dd455d152a3bd4bad227a 100644 (file)
@@ -16,6 +16,7 @@
 #include "Cursor.h"
 #include "DispatchResult.h"
 #include "InsetLabel.h"
+#include "Language.h"
 #include "LaTeXFeatures.h"
 #include "LyX.h"
 #include "OutputParams.h"
@@ -139,10 +140,10 @@ docstring InsetRef::getEscapedLabel(OutputParams const & rp) const
 
 void InsetRef::latex(otexstream & os, OutputParams const & rp) const
 {
-       string const cmd = getCmdName();
-       docstring const data = getEscapedLabel(rp);
+       string const cmd = getCmdName();
+       docstring const data = getEscapedLabel(rp);
 
-       if (rp.inulemcmd)
+       if (rp.inulemcmd > 0)
                os << "\\mbox{";
 
        if (cmd == "eqref" && buffer().params().use_refstyle) {
@@ -167,7 +168,7 @@ void InsetRef::latex(otexstream & os, OutputParams const & rp) const
                os << p.getCommand(rp);
        }
 
-       if (rp.inulemcmd)
+       if (rp.inulemcmd > 0)
                os << "}";
 }
 
@@ -206,7 +207,7 @@ int InsetRef::docbook(odocstream & os, OutputParams const & runparams) const
 }
 
 
-docstring InsetRef::xhtml(XHTMLStream & xs, OutputParams const &) const
+docstring InsetRef::xhtml(XHTMLStream & xs, OutputParams const & op) const
 {
        docstring const & ref = getParam("reference");
        InsetLabel const * il = buffer().insetLabel(ref);
@@ -223,9 +224,8 @@ docstring InsetRef::xhtml(XHTMLStream & xs, OutputParams const &) const
                        display_string = value;
                else if (cmd == "pageref" || cmd == "vpageref")
                        // normally would be "on page #", but we have no pages.
-                       // FIXME this is wrong, as it should be the current language,
-                       // but it is better than _(), which is what we had before.
-                       display_string = buffer().B_("elsewhere");
+                       display_string = translateIfPossible(from_ascii("elsewhere"),
+                               op.local_font->language()->lang());
                else if (cmd == "eqref")
                        display_string = '(' + value + ')';
                else if (cmd == "formatted")
@@ -235,8 +235,8 @@ docstring InsetRef::xhtml(XHTMLStream & xs, OutputParams const &) const
                        // properly in XHTML output yet (bug #8599).
                        // It might not be that hard to do. We have the InsetLabel,
                        // and we can presumably find its paragraph using the TOC.
-                       // We could then output the contents of the paragraph using
-                       // something?
+                       // But the label might be referencing a section, yet not be
+                       // in that section. So this is not trivial.
                        display_string = il->prettyCounter();
        } else 
                        display_string = ref;
@@ -260,7 +260,7 @@ void InsetRef::toString(odocstream & os) const
 }
 
 
-void InsetRef::forToc(docstring & os, size_t) const
+void InsetRef::forOutliner(docstring & os, size_t) const
 {
        // There's no need for details in the TOC, and a long label
        // will just get in the way.
@@ -351,7 +351,7 @@ void InsetRef::validate(LaTeXFeatures & features) const
 }
 
 
-InsetRef::type_info InsetRef::types[] = {
+InsetRef::type_info const InsetRef::types[] = {
        { "ref",       N_("Standard"),              N_("Ref: ")},
        { "eqref",     N_("Equation"),              N_("EqRef: ")},
        { "pageref",   N_("Page Number"),           N_("Page: ")},
@@ -378,4 +378,9 @@ string const & InsetRef::getName(int type)
 }
 
 
+docstring InsetRef::getTOCString() const 
+{
+       return tooltip_.empty() ? screen_label_ : tooltip_;
+}
+
 } // namespace lyx