On 02/26/2010 03:16 PM, rgh...@lyx.org wrote:
Author: rgheck
Date: Fri Feb 26 21:16:12 2010
New Revision: 33586
URL: http://www.lyx.org/trac/changeset/33586
Log:
Truncate long cross-references and show the whole thing in a tooltip.
This could go to branch, Jurgen.
rh
Modified:
lyx-devel/trunk/src/insets/InsetRef.cpp
lyx-devel/trunk/src/insets/InsetRef.h
Modified: lyx-devel/trunk/src/insets/InsetRef.cpp
==============================================================================
--- lyx-devel/trunk/src/insets/InsetRef.cpp Fri Feb 26 20:56:08 2010
(r33585)
+++ lyx-devel/trunk/src/insets/InsetRef.cpp Fri Feb 26 21:16:12 2010
(r33586)
@@ -68,12 +68,6 @@
}
-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::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 @@
{ "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: ")},
{ "", "", "" }
};
Modified: lyx-devel/trunk/src/insets/InsetRef.h
==============================================================================
--- lyx-devel/trunk/src/insets/InsetRef.h Fri Feb 26 20:56:08 2010
(r33585)
+++ lyx-devel/trunk/src/insets/InsetRef.h Fri Feb 26 21:16:12 2010
(r33586)
@@ -41,7 +41,10 @@
///
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 @@
bool isLatex;
///
mutable docstring screen_label_;
+ ///
+ mutable docstring tooltip_;
};
} // namespace lyx