Some minor upgrades to r25555. Moved addLayoutIfNeeded() to DocumentClass, most importantly. This should not change any functionality, as the calls were via DocumentClass objects, anyway.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25639 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Richard Heck 2008-07-15 17:51:57 +00:00
parent ce13748eae
commit 8981e0bad6
2 changed files with 15 additions and 20 deletions

View File

@ -903,13 +903,6 @@ bool TextClass::hasLayout(docstring const & n) const
} }
void TextClass::addLayoutIfNeeded(docstring const & n) const
{
if (!hasLayout(n))
layoutlist_.push_back(createEmptyLayout(n, true));
}
Layout const & TextClass::operator[](docstring const & name) const Layout const & TextClass::operator[](docstring const & name) const
{ {
LASSERT(!name.empty(), /**/); LASSERT(!name.empty(), /**/);
@ -995,6 +988,13 @@ bool TextClass::load(string const & path) const
} }
void DocumentClass::addLayoutIfNeeded(docstring const & n) const
{
if (!hasLayout(n))
layoutlist_.push_back(createEmptyLayout(n, true));
}
InsetLayout const & DocumentClass::insetLayout(docstring const & name) const InsetLayout const & DocumentClass::insetLayout(docstring const & name) const
{ {
docstring n = name; docstring n = name;

View File

@ -96,11 +96,6 @@ public:
// NOTE: Layout pointers are directly assigned to paragraphs so a // NOTE: Layout pointers are directly assigned to paragraphs so a
// container that does not invalidate these pointers after insertion // container that does not invalidate these pointers after insertion
// is needed. // is needed.
//
// NOTE: It makes sense to add unknown layouts to DocumentClass
// and make them buffer-dependent. However, this requires
// reimplementation of a lot of functions such as hasLayout
// and operator[], with little benefit.
typedef std::list<Layout> LayoutList; typedef std::list<Layout> LayoutList;
/// The inset layouts available to this class /// The inset layouts available to this class
typedef std::map<docstring, InsetLayout> InsetLayouts; typedef std::map<docstring, InsetLayout> InsetLayouts;
@ -127,11 +122,6 @@ public:
bool isDefaultLayout(Layout const &) const; bool isDefaultLayout(Layout const &) const;
/// ///
bool isPlainLayout(Layout const &) const; bool isPlainLayout(Layout const &) const;
/// Create a default layout for this textclass.
/** \param unknown Set to true if this layout is a default layout used to
* represent an unknown layout
*/
Layout createEmptyLayout(docstring const & name, bool unknown = false) const;
/// returns a special layout for use when we don't really want one, /// returns a special layout for use when we don't really want one,
/// e.g., in table cells /// e.g., in table cells
Layout const & emptyLayout() const Layout const & emptyLayout() const
@ -143,8 +133,6 @@ public:
size_t layoutCount() const { return layoutlist_.size(); } size_t layoutCount() const { return layoutlist_.size(); }
/// ///
bool hasLayout(docstring const & name) const; bool hasLayout(docstring const & name) const;
/// add a default layout \c name if it does not exist in layoutlist_
void addLayoutIfNeeded(docstring const & name) const;
/// ///
Layout const & operator[](docstring const & vname) const; Layout const & operator[](docstring const & vname) const;
@ -201,7 +189,12 @@ protected:
TextClass(); TextClass();
/// ///
Layout & operator[](docstring const & vname); Layout & operator[](docstring const & vname);
/// Create an empty layout for this textclass.
/** \param unknown Set to true if this layout is a default layout used to
* represent an unknown layout
*/
Layout createEmptyLayout(docstring const & name, bool unknown = false) const;
/////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////
// non-const iterators // non-const iterators
/////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////
@ -347,6 +340,8 @@ public:
InsetLayout const & insetLayout(docstring const & name) const; InsetLayout const & insetLayout(docstring const & name) const;
/// an empty inset layout for use as a default /// an empty inset layout for use as a default
static InsetLayout const & emptyInsetLayout() { return empty_insetlayout_; } static InsetLayout const & emptyInsetLayout() { return empty_insetlayout_; }
/// add an empty layout \c name if it does not exist in layoutlist_
void addLayoutIfNeeded(docstring const & name) const;
/////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////
// accessors // accessors