From 409037f1bbc600bad048902cedc53471bf150465 Mon Sep 17 00:00:00 2001 From: Jean-Marc Lasgouttes Date: Tue, 25 Oct 2005 15:21:49 +0000 Subject: [PATCH] bug 2092: branches not propagated to child documents git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@10577 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/ChangeLog | 9 +++++++++ src/MenuBackend.C | 6 +++--- src/bufferparams.C | 4 ++-- src/insets/ChangeLog | 5 +++++ src/insets/insetbranch.C | 20 +++++++++----------- src/insets/insetbranch.h | 6 +++--- src/text3.C | 2 +- 7 files changed, 32 insertions(+), 20 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 3a762511c9..a6ecbd8d46 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,12 @@ +2005-10-25 Jean-Marc Lasgouttes + + * text3.C (getStatus): + * MenuBackend.C (expandBranches): take the branch list from the + master document (bug 2092). + + * MenuBackend.C (expandBranches): + * bufferparams.C (writeFile): use BranchList type. + 2005-10-25 Jean-Marc Lasgouttes * text3.C (dispatch, getStatus): diff --git a/src/MenuBackend.C b/src/MenuBackend.C index b2eb7ba10d..89101d55e6 100644 --- a/src/MenuBackend.C +++ b/src/MenuBackend.C @@ -737,10 +737,10 @@ void expandBranches(Menu & tomenu, LyXView const * view) if (!view || !view->buffer()) return; - BufferParams const & params = view->buffer()->params(); + BufferParams const & params = view->buffer()->getMasterBuffer()->params(); - std::list::const_iterator cit = params.branchlist().begin(); - std::list::const_iterator end = params.branchlist().end(); + BranchList::const_iterator cit = params.branchlist().begin(); + BranchList::const_iterator end = params.branchlist().end(); for (int ii = 1; cit != end; ++cit, ++ii) { string label = cit->getBranch(); diff --git a/src/bufferparams.C b/src/bufferparams.C index 087900c5b9..be159dc2a3 100644 --- a/src/bufferparams.C +++ b/src/bufferparams.C @@ -596,8 +596,8 @@ void BufferParams::writeFile(ostream & os) const << "\n\\paperorientation " << string_orientation[orientation] << '\n'; - std::list::const_iterator it = branchlist().begin(); - std::list::const_iterator end = branchlist().end(); + BranchList::const_iterator it = branchlist().begin(); + BranchList::const_iterator end = branchlist().end(); for (; it != end; ++it) { os << "\\branch " << it->getBranch() << "\n\\selected " << it->getSelected() diff --git a/src/insets/ChangeLog b/src/insets/ChangeLog index 2db19d0387..082b383ad2 100644 --- a/src/insets/ChangeLog +++ b/src/insets/ChangeLog @@ -1,3 +1,8 @@ +2005-10-25 Jean-Marc Lasgouttes + + * insetbranch.C (isBranchSelected): take a buffer as argument. + adapt to work with child documents (bug 2092). + 2005-10-21 Jean-Marc Lasgouttes * insettabular.C (doDispatch): get rid of annoying debug message. diff --git a/src/insets/insetbranch.C b/src/insets/insetbranch.C index e1f551517f..9a9fe58ed7 100644 --- a/src/insets/insetbranch.C +++ b/src/insets/insetbranch.C @@ -145,9 +145,7 @@ void InsetBranch::doDispatch(LCursor & cur, FuncRequest & cmd) case LFUN_INSET_TOGGLE: if (cmd.argument == "assign" || cmd.argument.empty()) { // The branch inset uses "assign". - BranchList const & branchlist = - cur.buffer().params().branchlist(); - if (isBranchSelected(branchlist)) { + if (isBranchSelected(cur.buffer())) { if (status() != Open) setStatus(cur, Open); else @@ -185,9 +183,7 @@ bool InsetBranch::getStatus(LCursor & cur, FuncRequest const & cmd, flag.enabled(true); else if (cmd.argument == "assign" || cmd.argument.empty()) { - BranchList const & branchlist = - cur.buffer().params().branchlist(); - if (isBranchSelected(branchlist)) + if (isBranchSelected(cur.buffer())) flag.enabled(status() != Open); else flag.enabled(status() != Collapsed); @@ -202,8 +198,10 @@ bool InsetBranch::getStatus(LCursor & cur, FuncRequest const & cmd, } -bool InsetBranch::isBranchSelected(BranchList const & branchlist) const +bool InsetBranch::isBranchSelected(Buffer const & buffer) const { + Buffer const & realbuffer = *buffer.getMasterBuffer(); + BranchList const & branchlist = realbuffer.params().branchlist(); BranchList::const_iterator const end = branchlist.end(); BranchList::const_iterator it = std::find_if(branchlist.begin(), end, @@ -217,7 +215,7 @@ bool InsetBranch::isBranchSelected(BranchList const & branchlist) const int InsetBranch::latex(Buffer const & buf, ostream & os, OutputParams const & runparams) const { - return isBranchSelected(buf.params().branchlist()) ? + return isBranchSelected(buf) ? InsetText::latex(buf, os, runparams) : 0; } @@ -225,7 +223,7 @@ int InsetBranch::latex(Buffer const & buf, ostream & os, int InsetBranch::linuxdoc(Buffer const & buf, std::ostream & os, OutputParams const & runparams) const { - return isBranchSelected(buf.params().branchlist()) ? + return isBranchSelected(buf) ? InsetText::linuxdoc(buf, os, runparams) : 0; } @@ -233,7 +231,7 @@ int InsetBranch::linuxdoc(Buffer const & buf, std::ostream & os, int InsetBranch::docbook(Buffer const & buf, std::ostream & os, OutputParams const & runparams) const { - return isBranchSelected(buf.params().branchlist()) ? + return isBranchSelected(buf) ? InsetText::docbook(buf, os, runparams) : 0; } @@ -241,7 +239,7 @@ int InsetBranch::docbook(Buffer const & buf, std::ostream & os, int InsetBranch::plaintext(Buffer const & buf, std::ostream & os, OutputParams const & runparams) const { - return isBranchSelected(buf.params().branchlist()) ? + return isBranchSelected(buf) ? InsetText::plaintext(buf, os, runparams): 0; } diff --git a/src/insets/insetbranch.h b/src/insets/insetbranch.h index dae9a5bf8d..44c2786627 100644 --- a/src/insets/insetbranch.h +++ b/src/insets/insetbranch.h @@ -15,7 +15,7 @@ #include "insetcollapsable.h" -class BranchList; +class Buffer; class InsetBranchParams { @@ -72,9 +72,9 @@ public: void setParams(InsetBranchParams const & params) { params_ = params; } /** \returns true if params_.branch is listed as 'selected' in - \c branchlist. + \c buffer. This handles the case of child documents. */ - bool isBranchSelected(BranchList const & branchlist) const; + bool isBranchSelected(Buffer const & buffer) const; /// bool getStatus(LCursor &, FuncRequest const &, FuncStatus &) const; diff --git a/src/text3.C b/src/text3.C index b63cf42a23..ec2fbe9462 100644 --- a/src/text3.C +++ b/src/text3.C @@ -1676,7 +1676,7 @@ bool LyXText::getStatus(LCursor & cur, FuncRequest const & cmd, break; case LFUN_INSERT_BRANCH: code = InsetBase::BRANCH_CODE; - if (buf->params().branchlist().empty()) + if (buf->getMasterBuffer()->params().branchlist().empty()) enable = false; break; case LFUN_INSERT_LABEL: -- 2.39.5