X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ftoc.C;h=f9080e0143187bc4f0109cf78f2cf9e27e385a7a;hb=69bee02a8901793b34ac5ca6d07e93910cef4005;hp=12bf0d9c03e0955081118d09776df8326a50b26f;hpb=462eca7d1a1c15d520b89288f8bd83201092a88d;p=lyx.git diff --git a/src/toc.C b/src/toc.C index 12bf0d9c03..f9080e0143 100644 --- a/src/toc.C +++ b/src/toc.C @@ -14,6 +14,7 @@ #include "toc.h" #include "buffer.h" +#include "bufferparams.h" #include "funcrequest.h" #include "iterators.h" #include "LyXAction.h" @@ -28,8 +29,8 @@ using std::vector; using std::max; -using std::endl; using std::ostream; +using std::string; namespace lyx { namespace toc { @@ -47,10 +48,9 @@ void TocItem::goTo(LyXView & lv_) const } -int TocItem::action() const +FuncRequest TocItem::action() const { - return lyxaction.getPseudoAction(LFUN_GOTO_PARAGRAPH, - tostr(id_)); + return FuncRequest(LFUN_GOTO_PARAGRAPH, tostr(id_)); } @@ -68,22 +68,16 @@ TocList const getTocList(Buffer const & buf) { TocList toclist; - LyXTextClass const & textclass = buf.params.getLyXTextClass(); + BufferParams const & bufparams = buf.params(); ParConstIterator pit = buf.par_iterator_begin(); ParConstIterator end = buf.par_iterator_end(); for (; pit != end; ++pit) { -#ifdef WITH_WARNINGS -#warning bogus type (Lgb) -#endif - char const labeltype = pit->layout()->labeltype; - - if (labeltype >= LABEL_COUNTER_CHAPTER - && labeltype <= LABEL_COUNTER_CHAPTER + buf.params.tocdepth) { - // insert this into the table of contents - const int depth = max(0, labeltype - textclass.maxcounter()); - TocItem const item(pit->id(), depth, - pit->asString(buf, true)); + + int const toclevel = pit->layout()->toclevel; + if (toclevel > 0 && toclevel <= bufparams.tocdepth) { + // insert this into the table of contents + TocItem const item(pit->id(), toclevel - 1, pit->asString(buf, true)); toclist["TOC"].push_back(item); }