commit 1842a11b3b3f68ba865de7d5e3a710b39b6f4824
Author: Richard Kimberly Heck <[email protected]>
Date:   Wed May 22 21:32:32 2019 -0400

    Change how branches are displayed on the menus.
    
    Show this document's branches first in the menu, and then show the
    master document's branches on a sub-menu.
---
 src/frontends/qt4/Menus.cpp |   22 +++++++++++++++-------
 1 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/src/frontends/qt4/Menus.cpp b/src/frontends/qt4/Menus.cpp
index 08e2ad6..dc6a2fd 100644
--- a/src/frontends/qt4/Menus.cpp
+++ b/src/frontends/qt4/Menus.cpp
@@ -1446,7 +1446,7 @@ void MenuDefinition::expandBranches(Buffer const * buf)
        }
 
        int ii = 1;
-       for (auto const & b : master_list) {
+       for (auto const & b : child_list) {
                docstring const & bname = b.branch();
                // NUM. Branch Name + "|", which triggers an empty shortcut in
                // case that character should be in the branch name
@@ -1463,22 +1463,30 @@ void MenuDefinition::expandBranches(Buffer const * buf)
        if (buf == buf->masterBuffer())
                return;
 
-       MenuDefinition child_branches;
+       // FIXME
+       // We should probably consider all parent branches, up the line.
+       // I.e., parents, grandparents, etc.
+       MenuDefinition master_branches;
        ii = 1;
-       for (auto const & b : child_list) {
+       for (auto const & b : master_list) {
                docstring const & bname = b.branch();
+               // do not add to child list if the branch already exists
+               // in the child document.
+               if (child_list.find(bname))
+                       continue;
+
                docstring label = convert<docstring>(ii) + ". " + bname + 
char_type('|');
                if (ii < 10) {
                        label += convert<docstring>(ii);
                }
-               child_branches.addWithStatusCheck(MenuItem(MenuItem::Command,
+               master_branches.addWithStatusCheck(MenuItem(MenuItem::Command,
                        toqstr(label), FuncRequest(LFUN_BRANCH_INSERT, bname)));
                ++ii;
        }
 
-       if (!child_branches.empty()) {
-               MenuItem item(MenuItem::Submenu, qt_("Child Document"));
-               item.setSubmenu(child_branches);
+       if (!master_branches.empty()) {
+               MenuItem item(MenuItem::Submenu, qt_("Master Document"));
+               item.setSubmenu(master_branches);
                add(item);
        }
 }

Reply via email to