mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-27 03:36:39 +00:00
InsetRef::addTocToc(): add an entry for the referenced label if not already present. Next step is to rebuild the Toc in InsetLabel::addTocToc() for this case.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23286 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
9b9080c0e9
commit
e14a0ad50f
@ -160,18 +160,24 @@ void InsetRef::addToToc(Buffer const & buf,
|
||||
{
|
||||
docstring const & label = getParam("reference");
|
||||
Toc & toc = buf.tocBackend().toc("label");
|
||||
Toc::const_iterator it = toc.begin();
|
||||
Toc::const_iterator end = toc.end();
|
||||
Toc::iterator it = toc.begin();
|
||||
Toc::iterator end = toc.end();
|
||||
for (; it != end; ++it) {
|
||||
if (it->str() == label)
|
||||
break;
|
||||
}
|
||||
|
||||
if (it == end)
|
||||
//FIXME: this is an orphan, is this really possible?
|
||||
return;
|
||||
|
||||
docstring const reflabel = getScreenLabel(buf);
|
||||
if (it == end) {
|
||||
// This label has not been parsed yet so we just add it temporarily.
|
||||
// InsetLabel::addTocToc() will fix that later.
|
||||
toc.push_back(TocItem(cpit, 0, label));
|
||||
toc.push_back(TocItem(cpit, 1, reflabel));
|
||||
return;
|
||||
}
|
||||
|
||||
// The Toc item for this label already exists so let's add
|
||||
// this inset to this node.
|
||||
++it;
|
||||
while (it->str() == reflabel && it != end)
|
||||
++it;
|
||||
|
Loading…
Reference in New Issue
Block a user