From 636440b8a8b198d2783a61b4798364e563f08b9c Mon Sep 17 00:00:00 2001 From: Richard Heck Date: Wed, 2 Feb 2011 22:57:00 +0000 Subject: [PATCH] Finally, disentangle IsPredefined and UsesFloatPkg. Now achemso gives us the option to insert a List of Schemes, etc. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37436 a592a061-630c-0410-9148-cb99ea01b6c8 --- lib/layouts/achemso.layout | 6 +++--- src/LaTeXFeatures.cpp | 2 +- src/frontends/qt4/Menus.cpp | 25 +++++++++++++++---------- src/insets/InsetFloatList.cpp | 2 +- 4 files changed, 20 insertions(+), 15 deletions(-) diff --git a/lib/layouts/achemso.layout b/lib/layouts/achemso.layout index c6cffb932d..b854318bfd 100644 --- a/lib/layouts/achemso.layout +++ b/lib/layouts/achemso.layout @@ -61,7 +61,7 @@ Float Style plain ListName "List of Schemes" IsPredefined true - UsesFloatPkg false + UsesFloatPkg true End InsetLayout scheme @@ -83,7 +83,7 @@ Float Style plain ListName "List of Charts" IsPredefined true - UsesFloatPkg false + UsesFloatPkg true End InsetLayout chart @@ -105,7 +105,7 @@ Float Style plain ListName "List of Graphs" IsPredefined true - UsesFloatPkg false + UsesFloatPkg true End InsetLayout graph diff --git a/src/LaTeXFeatures.cpp b/src/LaTeXFeatures.cpp index bcbe4f0278..ac9c1ca4a4 100644 --- a/src/LaTeXFeatures.cpp +++ b/src/LaTeXFeatures.cpp @@ -1297,7 +1297,7 @@ void LaTeXFeatures::getFloatDefinitions(odocstream & os) const Floating const & fl = floats.getType(cit->first); // For builtin floats we do nothing. - if (!fl.usesFloatPkg()) + if (fl.isPredefined()) continue; // We have to special case "table" and "figure" diff --git a/src/frontends/qt4/Menus.cpp b/src/frontends/qt4/Menus.cpp index 70379d9582..b3ec59ff0e 100644 --- a/src/frontends/qt4/Menus.cpp +++ b/src/frontends/qt4/Menus.cpp @@ -1096,16 +1096,21 @@ void MenuDefinition::expandFloatListInsert(Buffer const * buf) FloatList::const_iterator end = floats.end(); set seen; for (; cit != end; ++cit) { - // Different floats could declare the same ListCommand. We only - // want it on the list once, though. - string const & list_cmd = cit->second.listCommand(); - // This form of insert returns an iterator pointing to the newly - // inserted element OR the existing element with that value, and - // a bool indicating whether we inserted a new element. So we can - // see if one is there and insert it if not all at once. - pair::iterator, bool> ret = seen.insert(list_cmd); - if (!ret.second) - continue; + if (!cit->second.usesFloatPkg()) { + // Different floats could declare the same ListCommand. We only + // want it on the list once, though. + string const & list_cmd = cit->second.listCommand(); + if (list_cmd.empty()) + // we do not know how to generate such a list + continue; + // This form of insert returns an iterator pointing to the newly + // inserted element OR the existing element with that value, and + // a bool indicating whether we inserted a new element. So we can + // see if one is there and insert it if not all at once. + pair::iterator, bool> ret = seen.insert(list_cmd); + if (!ret.second) + continue; + } string const & list_name = cit->second.listName(); addWithStatusCheck(MenuItem(MenuItem::Command, qt_(list_name), FuncRequest(LFUN_FLOAT_LIST_INSERT, cit->second.floattype()))); diff --git a/src/insets/InsetFloatList.cpp b/src/insets/InsetFloatList.cpp index 70224f8427..b5cdb616c4 100644 --- a/src/insets/InsetFloatList.cpp +++ b/src/insets/InsetFloatList.cpp @@ -167,7 +167,7 @@ docstring InsetFloatList::xhtml(XHTMLStream &, OutputParams const &) const { // If so, then they should define ListName, as non-builtin floats do, and // then we can use that. // Really, all floats should define that. - if (!cit->second.usesFloatPkg()) { + if (cit->second.isPredefined()) { // Only two different types allowed here: string const type = cit->second.floattype(); if (type == "table") { -- 2.39.2