#include "Lexer.h"
#include "Paragraph.h"
#include "output_xhtml.h"
+#include "texstream.h"
#include "TextClass.h"
#include "TocBackend.h"
cur.dispatched();
}
break;
-
+
default:
InsetCommand::doDispatch(cur, cmd);
}
} else {
if (!fl.listCommand().empty())
os << "\\" << from_ascii(fl.listCommand()) << "\n";
- else
+ else
os << "%% "
<< bformat(_("LyX cannot generate a list of %1$s"), getParam("type"))
<< "\n";
// Other builtin floats should be handled here. But I'm not sure if that is
// even possible yet, since I'm not sure if we have a TOC for such things.
// If so, then they should define ListName, as non-builtin floats do, and
- // then we can use that.
+ // then we can use that.
// Really, all floats should define that.
if (cit->second.isPredefined()) {
// Only two different types allowed here:
op.local_font->language()->lang());
}
- // FIXME Do we need to check if it exists? If so, we need a new
- // routine in TocBackend to do that.
- Toc const & toc = buffer().tocBackend().toc(toctype);
- if (toc.empty())
+ shared_ptr<Toc const> toc = buffer().tocBackend().toc(toctype);
+ if (toc->empty())
return docstring();
// we want to look like a chapter, section, or whatever.
// so we're going to look for the layout with the minimum toclevel
- // number > 0---because we don't want Part.
+ // number > 0---because we don't want Part.
// we'll take the first one, just because.
// FIXME This could be specified in the layout file.
DocumentClass const & dc = buffer().params().documentClass();
lay = &*lit;
minlevel = level;
}
-
+
string const tocclass = lay ? " " + lay->defaultCSSClass(): "";
string const tocattr = "class='tochead toc-" + toctype + tocclass + "'";
-
+
// we'll use our own stream, because we are going to defer everything.
// that's how we deal with the fact that we're probably inside a standard
// paragraph, and we don't want to be.
string const & tag = il.htmltag();
xs << html::StartTag("div", "class='toc toc-floats'");
xs << html::StartTag(tag, tocattr)
- << toclabel
+ << toclabel
<< html::EndTag(tag);
-
- Toc::const_iterator it = toc.begin();
- Toc::const_iterator const en = toc.end();
+
+ Toc::const_iterator it = toc->begin();
+ Toc::const_iterator const en = toc->end();
for (; it != en; ++it) {
+ if (it->str().empty())
+ continue;
Paragraph const & par = it->dit().innerParagraph();
string const attr = "class='lyxtoc-floats lyxtoc-" + toctype + "'";
xs << html::StartTag("div", attr);
docstring InsetFloatList::layoutName() const
-{
+{
return "FloatList:" + getParam("type");
}