Backport r33586 for branch. And status!

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_1_6_X@33611 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Richard Heck 2010-03-02 15:19:12 +00:00
parent 21947cd7e5
commit aa91ad06df
4 changed files with 32 additions and 15 deletions

View File

@ -324,8 +324,9 @@ void InsetCommandParams::write(ostream & os) const
bool InsetCommandParams::writeEmptyOptional(ParamInfo::const_iterator ci) const
{
if (!ci->isOptional())
if (!ci->isOptional()) {
LASSERT(false, /**/);
}
++ci; // we want to start with the next one
ParamInfo::const_iterator end = info_.end();
for (; ci != end; ++ci) {
@ -394,8 +395,9 @@ docstring InsetCommandParams::getFirstNonOptParam() const
ParamInfo::const_iterator it =
find_if(info_.begin(), info_.end(),
not1(mem_fun_ref(&ParamInfo::ParamData::isOptional)));
if (it == info_.end())
if (it == info_.end()) {
LASSERT(false, return docstring());
}
return (*this)[it->name()];
}

View File

@ -65,12 +65,6 @@ ParamInfo const & InsetRef::findInfo(string const & /* cmdName */)
}
docstring InsetRef::screenLabel() const
{
return screen_label_;
}
int InsetRef::latex(odocstream & os, OutputParams const &) const
{
// We don't want to output p_["name"], since that is only used
@ -123,22 +117,36 @@ void InsetRef::tocString(odocstream & os) const
void InsetRef::updateLabels(ParIterator const & it)
{
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_ += getParam("reference");
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("");
}

View File

@ -41,10 +41,13 @@ public:
///
bool isLabeled() const { return true; }
///
docstring screenLabel() const;
docstring screenLabel() const { return screen_label_; }
///
EDITABLE editable() const { return IS_EDITABLE; }
///
docstring toolTip(BufferView const &, int, int) const
{ return tooltip_; }
///
InsetCode lyxCode() const { return REF_CODE; }
///
DisplayType display() const { return Inline; }
@ -78,6 +81,8 @@ private:
bool isLatex;
///
mutable docstring screen_label_;
///
mutable docstring tooltip_;
};
} // namespace lyx

View File

@ -224,6 +224,8 @@ What's new
- Update correctly the toolbar after the spellchecker has made a
replacement (bug 6217).
- Abbreviate long cross-references (bug 6559).
* DOCUMENTATION AND LOCALIZATION