]> git.lyx.org Git - features.git/blobdiff - src/insets/insetfloatlist.C
move floatlist to textclass
[features.git] / src / insets / insetfloatlist.C
index 2bebacd11490036ede5cdc8dbf5eccedc8160321..6562e74bd2a59ef8ad587cb5ad724f7a42af00b4 100644 (file)
@@ -7,10 +7,12 @@
 #include "insetfloatlist.h"
 #include "FloatList.h"
 #include "LaTeXFeatures.h"
+#include "lyxlex.h"
 #include "frontends/Dialogs.h"
 #include "frontends/LyXView.h"
 #include "BufferView.h"
 #include "buffer.h"
+#include "toc.h"
 #include "gettext.h"
 #include "debug.h"
 
@@ -32,10 +34,11 @@ InsetFloatList::InsetFloatList(string const & type)
 }
 
 
-string const InsetFloatList::getScreenLabel(Buffer const *) const
+string const InsetFloatList::getScreenLabel(Buffer const * buf) const
 {
-       FloatList::const_iterator it = floatList[getCmdName()];
-       if (it != floatList.end())
+       FloatList const & floats = buf->params.getLyXTextClass().floats();
+       FloatList::const_iterator it = floats[getCmdName()];
+       if (it != floats.end())
                return _(it->second.listName());
        else
                return _("ERROR: Nonexistent float type!");
@@ -54,14 +57,15 @@ void InsetFloatList::write(Buffer const *, ostream & os) const
 }
 
 
-void InsetFloatList::read(Buffer const *, LyXLex & lex)
+void InsetFloatList::read(Buffer const * buf, LyXLex & lex)
 {
+       FloatList const & floats = buf->params.getLyXTextClass().floats();
        string token;
 
        if (lex.eatLine()) {
                setCmdName(lex.getString());
                lyxerr[Debug::INSETS] << "FloatList::float_type: " << getCmdName() << endl;
-               if (!floatList.typeExist(getCmdName()))
+               if (!floats.typeExist(getCmdName()))
                        lex.printError("InsetFloatList: Unknown float type: `$$Token'");
        } else
                lex.printError("InsetFloatList: Parse error: `$$Token'");
@@ -80,7 +84,7 @@ void InsetFloatList::read(Buffer const *, LyXLex & lex)
 
 void InsetFloatList::edit(BufferView * bv, int, int, mouse_button::state)
 {
-       bv->owner()->getDialogs()->showTOC(this);
+       bv->owner()->getDialogs().showTOC(this);
 }
 
 
@@ -90,11 +94,12 @@ void InsetFloatList::edit(BufferView * bv, bool)
 }
 
 
-int InsetFloatList::latex(Buffer const *, ostream & os, bool, bool) const
+int InsetFloatList::latex(Buffer const * buf, ostream & os, bool, bool) const
 {
-       FloatList::const_iterator cit = floatList[getCmdName()];
+       FloatList const & floats = buf->params.getLyXTextClass().floats();
+       FloatList::const_iterator cit = floats[getCmdName()];
 
-       if (cit != floatList.end()) {
+       if (cit != floats.end()) {
                if (cit->second.builtin()) {
                        // Only two different types allowed here:
                        string const type = cit->second.type();
@@ -121,16 +126,7 @@ int InsetFloatList::ascii(Buffer const * buffer, ostream & os, int) const
 {
        os << getScreenLabel(buffer) << "\n\n";
 
-       Buffer::Lists const toc_list = buffer->getLists();
-       Buffer::Lists::const_iterator cit =
-               toc_list.find(getCmdName());
-       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";
-       }
+       toc::asciiTocList(getCmdName(), buffer, os);
 
        os << "\n";
        return 0;