mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-10 20:04:46 +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");
|
docstring const & label = getParam("reference");
|
||||||
Toc & toc = buf.tocBackend().toc("label");
|
Toc & toc = buf.tocBackend().toc("label");
|
||||||
Toc::const_iterator it = toc.begin();
|
Toc::iterator it = toc.begin();
|
||||||
Toc::const_iterator end = toc.end();
|
Toc::iterator end = toc.end();
|
||||||
for (; it != end; ++it) {
|
for (; it != end; ++it) {
|
||||||
if (it->str() == label)
|
if (it->str() == label)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (it == end)
|
|
||||||
//FIXME: this is an orphan, is this really possible?
|
|
||||||
return;
|
|
||||||
|
|
||||||
docstring const reflabel = getScreenLabel(buf);
|
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;
|
++it;
|
||||||
while (it->str() == reflabel && it != end)
|
while (it->str() == reflabel && it != end)
|
||||||
++it;
|
++it;
|
||||||
|
Loading…
Reference in New Issue
Block a user