]> git.lyx.org Git - features.git/commitdiff
Change how branches are displayed on the menus.
authorRichard Kimberly Heck <rikiheck@lyx.org>
Thu, 23 May 2019 01:32:32 +0000 (21:32 -0400)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Thu, 18 Jun 2020 13:48:30 +0000 (15:48 +0200)
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

index 08e2ad628d4a474f23d024e9ac6ebbb019f61143..dc6a2fd96195dbaebb6595a7f8e68d32eec0bbf7 100644 (file)
@@ -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);
        }
 }