Remove the test for "tableofcontents", since that is the only thing this

inset supports right now.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32999 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Richard Heck 2010-01-12 20:25:33 +00:00
parent dc4e9f102a
commit 2f728e45f8

View File

@ -85,66 +85,63 @@ docstring InsetTOC::xhtml(XHTMLStream &, OutputParams const & op) const
odocstringstream ods; odocstringstream ods;
XHTMLStream xs(ods); XHTMLStream xs(ods);
string const & cmdname = getCmdName(); Toc const & toc = buffer().tocBackend().toc("tableofcontents");
if (cmdname == "tableofcontents") { if (toc.empty())
Toc const & toc = buffer().tocBackend().toc("tableofcontents"); return docstring();
if (toc.empty())
return docstring(); xs << StartTag("div", "class='toc'");
xs << StartTag("div", tocattr)
xs << StartTag("div", "class='toc'"); << _("Table of Contents")
xs << StartTag("div", tocattr) << EndTag("div");
<< _("Table of Contents") Toc::const_iterator it = toc.begin();
<< EndTag("div"); Toc::const_iterator const en = toc.end();
Toc::const_iterator it = toc.begin(); int lastdepth = 0;
Toc::const_iterator const en = toc.end(); for (; it != en; ++it) {
int lastdepth = 0; Paragraph const & par = it->dit().innerParagraph();
for (; it != en; ++it) { int const depth = it->depth();
Paragraph const & par = it->dit().innerParagraph(); if (depth > buffer().params().tocdepth)
int const depth = it->depth(); continue;
if (depth > buffer().params().tocdepth) Font const dummy;
continue; if (depth > lastdepth) {
Font const dummy; xs.cr();
if (depth > lastdepth) { // open as many tags as we need to open to get to this level
xs.cr(); // this includes the tag for the current level
// open as many tags as we need to open to get to this level for (int i = lastdepth + 1; i <= depth; ++i) {
// this includes the tag for the current level
for (int i = lastdepth + 1; i <= depth; ++i) {
stringstream attr;
attr << "class='lyxtoc-" << i << "'";
xs << StartTag("div", attr.str());
}
lastdepth = depth;
}
else if (depth < lastdepth) {
// close as many as we have to close to get back to this level
// this includes closing the last tag at this level
for (int i = lastdepth; i >= depth; --i)
xs << EndTag("div");
// now open our tag
stringstream attr; stringstream attr;
attr << "class='lyxtoc-" << depth << "'"; attr << "class='lyxtoc-" << i << "'";
xs << StartTag("div", attr.str());
lastdepth = depth;
} else {
// no change of level, so close and open
xs << EndTag("div");
stringstream attr;
attr << "class='lyxtoc-" << depth << "'";
xs << StartTag("div", attr.str()); xs << StartTag("div", attr.str());
} }
string const parattr = "href='#" + par.magicLabel() + "' class='tocarrow'"; lastdepth = depth;
par.simpleLyXHTMLOnePar(buffer(), xs, op, dummy, true);
xs << " ";
xs << StartTag("a", parattr);
// FIXME XHTML
// There ought to be a simple way to customize this.
xs << XHTMLStream::NextRaw() << "&seArr;";
xs << EndTag("a");
} }
for (int i = lastdepth; i > 0; --i) else if (depth < lastdepth) {
// close as many as we have to close to get back to this level
// this includes closing the last tag at this level
for (int i = lastdepth; i >= depth; --i)
xs << EndTag("div");
// now open our tag
stringstream attr;
attr << "class='lyxtoc-" << depth << "'";
xs << StartTag("div", attr.str());
lastdepth = depth;
} else {
// no change of level, so close and open
xs << EndTag("div"); xs << EndTag("div");
xs << EndTag("div"); stringstream attr;
attr << "class='lyxtoc-" << depth << "'";
xs << StartTag("div", attr.str());
}
string const parattr = "href='#" + par.magicLabel() + "' class='tocarrow'";
par.simpleLyXHTMLOnePar(buffer(), xs, op, dummy, true);
xs << " ";
xs << StartTag("a", parattr);
// FIXME XHTML
// There ought to be a simple way to customize this.
xs << XHTMLStream::NextRaw() << "&seArr;";
xs << EndTag("a");
} }
for (int i = lastdepth; i > 0; --i)
xs << EndTag("div");
xs << EndTag("div");
return ods.str(); return ods.str();
} }