commit ab98adf9250bc4711baa6172b180bafe741e2fc0
Author: Guillaume Munch <g...@lyx.org>
Date:   Mon Nov 30 15:27:43 2015 +0000

    Move Tocs to the "Other lists" submenu based on a blacklist
    
    This causes user-defined Tocs to appear in the main list
---
 src/TocBackend.cpp          |   22 ++++++++++++++++++++++
 src/TocBackend.h            |    3 +++
 src/frontends/qt4/Menus.cpp |    3 +--
 3 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/src/TocBackend.cpp b/src/TocBackend.cpp
index 2b13d1f..3992784 100644
--- a/src/TocBackend.cpp
+++ b/src/TocBackend.cpp
@@ -339,4 +339,26 @@ docstring TocBackend::outlinerName(string const & type) 
const
 }
 
 
+bool TocBackend::isOther(std::string const & type)
+{
+       // This is where having an Enum of types would have been more elegant...
+       return type == "graphics"
+               || type == "note"
+               || type == "branch"
+               || type == "change"
+               || type == "label"
+               || type == "citation"
+               || type == "equation"
+               || type == "footnote"
+               || type == "marginalnote"
+               || type == "nomencl"
+               || type == "listings"
+               || type == "math-macro"
+               || type == "external"
+               || type == "senseless"
+               || type == "index"
+               || type.substr(0,6) == "index:";
+}
+
+
 } // namespace lyx
diff --git a/src/TocBackend.h b/src/TocBackend.h
index 10bfff1..eaa1ce9 100644
--- a/src/TocBackend.h
+++ b/src/TocBackend.h
@@ -180,6 +180,9 @@ public:
                odocstringstream & os, size_t max_length) const;
        ///
        docstring outlinerName(std::string const & type) const;
+       /// Whether a toc type is less important and appears in the "Other 
lists"
+       /// submenu
+       static bool isOther(std::string const & type);
 
 private:
        ///
diff --git a/src/frontends/qt4/Menus.cpp b/src/frontends/qt4/Menus.cpp
index de0c887..c442b9b 100644
--- a/src/frontends/qt4/Menus.cpp
+++ b/src/frontends/qt4/Menus.cpp
@@ -1310,7 +1310,6 @@ void MenuDefinition::expandToc(Buffer const * buf)
        }
 
        MenuDefinition other_lists;
-       FloatList const & floatlist = buf->params().documentClass().floats();
        TocList const & toc_list = buf->tocBackend().tocs();
        TocList::const_iterator cit = toc_list.begin();
        TocList::const_iterator end = toc_list.end();
@@ -1328,7 +1327,7 @@ void MenuDefinition::expandToc(Buffer const * buf)
                MenuItem item(MenuItem::Submenu, guiName(cit->first, 
buf->params()));
                item.setSubmenu(submenu);
                // deserves to be in the main menu?
-               if (floatlist.typeExist(cit->first) || cit->first == "child")
+               if (!TocBackend::isOther(cit->first))
                        add(item);
                else
                        other_lists.add(item);

Reply via email to