return "listing";
return cmd;
}
-}
+} // namespace
InsetTOC::InsetTOC(Buffer * buf, InsetCommandParams const & p)
cur.dispatched();
}
break;
-
+
default:
InsetCommand::doDispatch(cur, cmd);
}
docstring InsetTOC::layoutName() const
{
- if (getCmdName() == "lstlistoflistings")
- return from_ascii("TOC:Listings");
+ if (getCmdName() == "lstlistoflistings") {
+ if (buffer().params().use_minted)
+ return from_ascii("TOC:MintedListings");
+ else
+ return from_ascii("TOC:Listings");
+ }
return from_ascii("TOC");
}
{
InsetCommand::validate(features);
features.useInsetLayout(getLayout());
- if (getCmdName() == "lstlistoflistings")
- features.require("listings");
+ if (getCmdName() == "lstlistoflistings") {
+ if (buffer().params().use_minted)
+ features.require("minted");
+ else
+ features.require("listings");
+ }
}
}
-void InsetTOC::makeTOCEntry(XHTMLStream & xs,
+void InsetTOC::makeTOCEntry(XHTMLStream & xs,
Paragraph const & par, OutputParams const & op) const
{
string const attr = "href='#" + par.magicLabel() + "' class='tocentry'";
}
-void InsetTOC::makeTOCWithDepth(XHTMLStream xs,
- Toc toc, OutputParams const & op) const
+void InsetTOC::makeTOCWithDepth(XHTMLStream & xs,
+ Toc const & toc, OutputParams const & op) const
{
Toc::const_iterator it = toc.begin();
Toc::const_iterator const en = toc.end();
// First, we need to manage increases and decreases of depth
// If there's no depth to deal with, we artifically set it to 1.
int const depth = it->depth();
-
+
// Ignore stuff above the tocdepth
if (depth > buffer().params().tocdepth)
continue;
-
+
if (depth > lastdepth) {
xs << html::CR();
// open as many tags as we need to open to get to this level
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)
+ for (int i = lastdepth; i >= depth; --i)
xs << html::EndTag("div") << html::CR();
// now open our tag
stringstream attr;
attr << "class='lyxtoc-" << depth << "'";
xs << html::StartTag("div", attr.str()) << html::CR();
}
-
+
// Now output TOC info for this entry
Paragraph const & par = it->dit().innerParagraph();
makeTOCEntry(xs, par, op);
}
- for (int i = lastdepth; i > 0; --i)
+ for (int i = lastdepth; i > 0; --i)
xs << html::EndTag("div") << html::CR();
}
-void InsetTOC::makeTOCNoDepth(XHTMLStream xs,
- Toc toc, const OutputParams & op) const
+void InsetTOC::makeTOCNoDepth(XHTMLStream & xs,
+ Toc const & toc, const OutputParams & op) const
{
Toc::const_iterator it = toc.begin();
Toc::const_iterator const en = toc.end();
Paragraph const & par = it->dit().innerParagraph();
makeTOCEntry(xs, par, op);
-
+
xs << html::EndTag("div");
}
}
LASSERT(false, return docstring());
}
- Toc const & toc = buffer().tocBackend().toc(cmd2type(command));
- if (toc.empty())
+ shared_ptr<Toc const> toc =
+ buffer().masterBuffer()->tocBackend().toc(cmd2type(command));
+ if (toc->empty())
return docstring();
// we'll use our own stream, because we are going to defer everything.
// Output of TOC
if (use_depth)
- makeTOCWithDepth(xs, toc, op);
+ makeTOCWithDepth(xs, *toc, op);
else
- makeTOCNoDepth(xs, toc, op);
+ makeTOCNoDepth(xs, *toc, op);
xs << html::EndTag("div") << html::CR();
return ods.str();