diff --git a/src/insets/InsetRef.cpp b/src/insets/InsetRef.cpp index 0b9227eff9..d6a594eec7 100644 --- a/src/insets/InsetRef.cpp +++ b/src/insets/InsetRef.cpp @@ -68,12 +68,6 @@ ParamInfo const & InsetRef::findInfo(string const & /* cmdName */) } -docstring InsetRef::screenLabel() const -{ - return screen_label_; -} - - int InsetRef::latex(odocstream & os, OutputParams const & runparams) const { // We don't want to output p_["name"], since that is only used @@ -163,22 +157,36 @@ void InsetRef::tocString(odocstream & os) const void InsetRef::updateLabels(ParIterator const & it, UpdateType) { - docstring const & label = getParam("reference"); + docstring const & ref = getParam("reference"); // register this inset into the buffer reference cache. - buffer().references(label).push_back(make_pair(this, it)); + buffer().references(ref).push_back(make_pair(this, it)); + docstring label; for (int i = 0; !types[i].latex_name.empty(); ++i) { if (getCmdName() == types[i].latex_name) { - screen_label_ = _(types[i].short_gui_name); + label = _(types[i].short_gui_name); break; } } - screen_label_ += label; + label += ref; if (!isLatex && !getParam("name").empty()) { - screen_label_ += "||"; - screen_label_ += getParam("name"); + label += "||"; + label += getParam("name"); } + + screen_label_ = label; + bool shortened = false; + unsigned int const maxLabelChars = 24; + if (screen_label_.size() > maxLabelChars) { + screen_label_.erase(maxLabelChars - 3); + screen_label_ += "..."; + shortened = true; + } + if (shortened) + tooltip_ = label; + else + tooltip_ = from_ascii(""); } @@ -213,7 +221,7 @@ InsetRef::type_info InsetRef::types[] = { { "pageref", N_("Page Number"), N_("Page: ")}, { "vpageref", N_("Textual Page Number"), N_("TextPage: ")}, { "vref", N_("Standard+Textual Page"), N_("Ref+Text: ")}, - { "prettyref", N_("PrettyRef"), N_("FormatRef: ")}, + { "prettyref", N_("PrettyRef"), N_("FrmtRef: ")}, { "", "", "" } }; diff --git a/src/insets/InsetRef.h b/src/insets/InsetRef.h index afcaaf4974..908d1aa1e5 100644 --- a/src/insets/InsetRef.h +++ b/src/insets/InsetRef.h @@ -41,7 +41,10 @@ public: /// bool isLabeled() const { return true; } /// - docstring screenLabel() const; + docstring screenLabel() const { return screen_label_; } + /// + docstring toolTip(BufferView const &, int, int) const + { return tooltip_; } /// bool hasSettings() const { return true; } /// @@ -80,6 +83,8 @@ private: bool isLatex; /// mutable docstring screen_label_; + /// + mutable docstring tooltip_; }; } // namespace lyx