From d45d7de8c35787423e071ef9bdac005b87701df6 Mon Sep 17 00:00:00 2001 From: Abdelrazak Younes Date: Fri, 2 Nov 2007 21:27:41 +0000 Subject: [PATCH] Further cleanup of collapsable insets. The layouts are now properly read and applied. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21392 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/Text3.cpp | 3 +++ src/insets/Inset.h | 5 +++++ src/insets/InsetBox.cpp | 1 - src/insets/InsetCollapsable.cpp | 13 +++---------- src/insets/InsetCollapsable.h | 4 +++- 5 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/Text3.cpp b/src/Text3.cpp index 3d77ab78f0..f51106448f 100644 --- a/src/Text3.cpp +++ b/src/Text3.cpp @@ -190,6 +190,9 @@ static bool doInsertInset(Cursor & cur, Text * text, if (!inset) return false; + if (InsetCollapsable * ci = inset->asInsetCollapsable()) + ci->setLayout(cur.bv().buffer().params()); + cur.recordUndo(); if (cmd.action == LFUN_INDEX_INSERT) { docstring ds = support::subst(text->getStringToIndex(cur), '\n', ' '); diff --git a/src/insets/Inset.h b/src/insets/Inset.h index aae34f8695..c38e44e67d 100644 --- a/src/insets/Inset.h +++ b/src/insets/Inset.h @@ -35,6 +35,7 @@ class Dimension; class FuncRequest; class FuncStatus; class InsetIterator; +class InsetCollapsable; class InsetLayout; class InsetList; class InsetMath; @@ -88,6 +89,10 @@ public: virtual InsetText * asTextInset() { return 0; } /// is this inset based on the TextInset class? virtual InsetText const * asTextInset() const { return 0; } + /// is this inset based on the InsetCollapsable class? + virtual InsetCollapsable * asInsetCollapsable() { return 0; } + /// is this inset based on the InsetCollapsable class? + virtual InsetCollapsable const * asInsetCollapsable() const { return 0; } /// the real dispatcher void dispatch(Cursor & cur, FuncRequest & cmd); diff --git a/src/insets/InsetBox.cpp b/src/insets/InsetBox.cpp index ed131d5093..b86d6f4852 100644 --- a/src/insets/InsetBox.cpp +++ b/src/insets/InsetBox.cpp @@ -199,7 +199,6 @@ void InsetBox::doDispatch(Cursor & cur, FuncRequest & cmd) //lyxerr << "InsetBox::dispatch MODIFY" << endl; InsetBoxMailer::string2params(to_utf8(cmd.argument()), params_); setLayout(cur.buffer().params()); - setButtonLabel(); break; } diff --git a/src/insets/InsetCollapsable.cpp b/src/insets/InsetCollapsable.cpp index 70e21e6e94..98e4a96ac4 100644 --- a/src/insets/InsetCollapsable.cpp +++ b/src/insets/InsetCollapsable.cpp @@ -81,8 +81,6 @@ InsetCollapsable::InsetCollapsable setAutoBreakRows(true); setDrawFrame(true); setFrameColor(Color_collapsableframe); - setButtonLabel(); - setLayout(bp); } @@ -108,15 +106,11 @@ void InsetCollapsable::setLayout(BufferParams const & bp) layout_.bgcolor = Color_background; layout_ = getLayout(bp); - if (layout_.labelfont != inherit_font) - return; // FIXME: put this in the InsetLayout parsing? - // Fallback for lacking inset layout labelfont. - layout_.labelfont = sane_font; - layout_.labelfont.decSize(); - layout_.labelfont.decSize(); - layout_.labelfont.setColor(Color_collapsable); + layout_.labelfont.realize(sane_font); + + setButtonLabel(); } @@ -170,7 +164,6 @@ void InsetCollapsable::read(Buffer const & buf, Lexer & lex) if (!token_found) status_ = isOpen() ? Open : Collapsed; - setButtonLabel(); setLayout(buf.params()); // Force default font, if so requested diff --git a/src/insets/InsetCollapsable.h b/src/insets/InsetCollapsable.h index df406e26ef..7803e86039 100644 --- a/src/insets/InsetCollapsable.h +++ b/src/insets/InsetCollapsable.h @@ -41,7 +41,9 @@ public: InsetCollapsable(BufferParams const &, CollapseStatus status = Inset::Open); /// InsetCollapsable(InsetCollapsable const & rhs); - /// + + InsetCollapsable * asInsetCollapsable() { return this; } + InsetCollapsable const * asInsetCollapsable() const { return this; } docstring name() const { return from_ascii("Collapsable"); } /// void setLayout(BufferParams const &); -- 2.39.2