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);
}
}