From 88421aaeda8e99e298826bf311101d764e73bafe Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=BCrgen=20Spitzm=C3=BCller?= Date: Fri, 27 Mar 2009 11:44:40 +0000 Subject: [PATCH] Fix bug 5851: Branch definitions not shown in Insert>Branch menu if master is set. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28934 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/frontends/qt4/Menus.cpp | 35 +++++++++++++++++++++++++++++++---- src/insets/InsetBranch.cpp | 4 ++++ 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/src/frontends/qt4/Menus.cpp b/src/frontends/qt4/Menus.cpp index 5d8cfe0e5d..d323c7b313 100644 --- a/src/frontends/qt4/Menus.cpp +++ b/src/frontends/qt4/Menus.cpp @@ -1044,14 +1044,15 @@ void MenuDefinition::expandBranches(Buffer const * buf) if (!buf) return; - BufferParams const & params = buf->masterBuffer()->params(); - if (params.branchlist().empty()) { + BufferParams const & master_params = buf->masterBuffer()->params(); + BufferParams const & params = buf->params(); + if (params.branchlist().empty() && master_params.branchlist().empty() ) { add(MenuItem(MenuItem::Help, qt_("No branches set for document!"))); return; } - BranchList::const_iterator cit = params.branchlist().begin(); - BranchList::const_iterator end = params.branchlist().end(); + BranchList::const_iterator cit = master_params.branchlist().begin(); + BranchList::const_iterator end = master_params.branchlist().end(); for (int ii = 1; cit != end; ++cit, ++ii) { docstring label = cit->branch(); @@ -1063,6 +1064,32 @@ void MenuDefinition::expandBranches(Buffer const * buf) FuncRequest(LFUN_BRANCH_INSERT, cit->branch()))); } + + if (buf == buf->masterBuffer()) + return; + + MenuDefinition child_branches; + + BranchList::const_iterator ccit = params.branchlist().begin(); + BranchList::const_iterator cend = params.branchlist().end(); + + for (int ii = 1; ccit != cend; ++ccit, ++ii) { + docstring label = ccit->branch(); + if (ii < 10) { + label = convert(ii) + ". " + label + + char_type('|') + convert(ii); + } + child_branches.addWithStatusCheck(MenuItem(MenuItem::Command, + toqstr(label), + FuncRequest(LFUN_BRANCH_INSERT, + ccit->branch()))); + } + + if (!child_branches.empty()) { + MenuItem item(MenuItem::Submenu, qt_("Child Document")); + item.setSubmenu(child_branches); + add(item); + } } diff --git a/src/insets/InsetBranch.cpp b/src/insets/InsetBranch.cpp index 68dfe19385..001ea68621 100644 --- a/src/insets/InsetBranch.cpp +++ b/src/insets/InsetBranch.cpp @@ -84,6 +84,10 @@ docstring InsetBranch::toolTip(BufferView const &, int, int) const docstring const InsetBranch::buttonLabel(BufferView const & bv) const { docstring s = _("Branch: ") + params_.branch; + Buffer const & realbuffer = *buffer().masterBuffer(); + BranchList const & branchlist = realbuffer.params().branchlist(); + if (!branchlist.find(params_.branch)) + s = _("Branch (child only): ") + params_.branch; if (!params_.branch.empty()) { // FIXME UNICODE ColorCode c = lcolor.getFromLyXName(to_utf8(params_.branch)); -- 2.39.2