X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsettoc.C;h=c93c62e26acb11e63787d4aa6b65eab0022a139d;hb=4a5b7a5952ad2381fcdf4830511293e184c7c5a1;hp=d166b443193d626529f3085c2e8f70d365a2d34e;hpb=ba916a0f89d99dac83a584e60fd98c1b3d6d614d;p=lyx.git diff --git a/src/insets/insettoc.C b/src/insets/insettoc.C index d166b44319..c93c62e26a 100644 --- a/src/insets/insettoc.C +++ b/src/insets/insettoc.C @@ -12,80 +12,77 @@ #include "debug.h" #include "buffer.h" + +using std::vector; using std::ostream; -using std::endl; -string const InsetTOC::getScreenLabel() const + +string const InsetTOC::getScreenLabel(Buffer const *) const { - string cmdname( getCmdName() ); - if (cmdname == "tableofcontents" ) + string const cmdname(getCmdName()); + + if (cmdname == "tableofcontents") return _("Table of Contents"); - else if (cmdname == "listofalgorithms" ) - return _("List of Algorithms"); - else if (cmdname == "listoffigures" ) - return _("List of Figures"); - else - return _("List of Tables"); + return _("Unknown toc list"); } -Inset::Code InsetTOC::LyxCode() const +Inset::Code InsetTOC::lyxCode() const { - string cmdname( getCmdName() ); - if (cmdname == "tableofcontents" ) + string const cmdname(getCmdName()); + if (cmdname == "tableofcontents") return Inset::TOC_CODE; - else if (cmdname == "listofalgorithms" ) - return Inset::LOA_CODE; - else if (cmdname == "listoffigures" ) - return Inset::LOF_CODE; - else - return Inset::LOT_CODE; + return Inset::NO_CODE; } -void InsetTOC::Edit(BufferView * bv, int, int, unsigned int) +void InsetTOC::edit(BufferView * bv, int, int, unsigned int) { - bv->owner()->getDialogs()->showTOC( this ); + bv->owner()->getDialogs()->showTOC(this); } -int InsetTOC::Ascii(Buffer const * buffer, ostream & os, int) const + +void InsetTOC::edit(BufferView * bv, bool) +{ + edit(bv, 0, 0, 0); +} + + +int InsetTOC::ascii(Buffer const * buffer, ostream & os, int) const { - os << getScreenLabel() << endl << endl; - - Buffer::TocType type; - string cmdname = getCmdName(); - if (cmdname == "tableofcontents" ) - type = Buffer::TOC_TOC; - else if (cmdname == "listofalgorithms" ) - type = Buffer::TOC_LOA; - else if (cmdname == "listoffigures" ) - type = Buffer::TOC_LOF; - else - type = Buffer::TOC_LOT; - - vector > const toc_list = - buffer->getTocList(); - vector const & toc = toc_list[type]; - for (vector::const_iterator it = toc.begin(); - it != toc.end(); ++it) - os << string(4 * it->depth, ' ') << it->str << endl; - - os << endl; + os << getScreenLabel(buffer) << "\n\n"; + + string type; + string const cmdname = getCmdName(); + if (cmdname == "tableofcontents") + type = "TOC"; + Buffer::Lists const toc_list = buffer->getLists(); + Buffer::Lists::const_iterator cit = + toc_list.find(type); + if (cit != toc_list.end()) { + Buffer::SingleList::const_iterator ccit = cit->second.begin(); + Buffer::SingleList::const_iterator end = cit->second.end(); + for (; ccit != end; ++ccit) + os << string(4 * ccit->depth, ' ') + << ccit->str << "\n"; + } + + os << "\n"; return 0; } -int InsetTOC::Linuxdoc(Buffer const *, ostream & os) const +int InsetTOC::linuxdoc(Buffer const *, ostream & os) const { - if (getCmdName() == "tableofcontents" ) + if (getCmdName() == "tableofcontents") os << ""; return 0; } -int InsetTOC::DocBook(Buffer const *, ostream & os) const +int InsetTOC::docbook(Buffer const *, ostream & os) const { - if (getCmdName() == "tableofcontents" ) + if (getCmdName() == "tableofcontents") os << ""; return 0; }