{"thread":{"id":"19713","subject":"[PATCH QGit 4/4] Create a separate submenu for tags","startedAt":"2009-06-06T11:57:51Z","lastAt":"2009-06-06T11:57:51Z","messageCount":1,"participants":["Markus Heidelberg"],"isPatch":true,"patchVersion":1,"patchTotal":4},"messages":[{"id":"115642","messageId":"1244289471-698-5-git-send-email-markus.heidelberg@web.de","threadId":"19713","inReplyTo":null,"subject":"[PATCH QGit 4/4] Create a separate submenu for tags","fromName":"Markus Heidelberg","fromEmail":"markus.heidelberg@web.de","sentAt":"2009-06-06T11:57:51Z","receivedAt":"2009-06-06T11:57:51Z","isPatch":true,"sender":{"key":"markus.heidelberg@web.de","avatar":"https://avatars.githubusercontent.com/u/6334512?v=4"},"body":"It is more logical and hierarchical correct not to begin listing tags in\nthe existing submenu. The remaining space of the main context menu is\nhalved for the branches and tags to be displayed before the submenu has\nto be created.\n\nA little downside is that now you can get 2 \"More...\" submenus for\nbranches and tags instead of only 1.\n\nSigned-off-by: Markus Heidelberg <markus.heidelberg@web.de>\n---\n src/mainimpl.cpp |   38 ++++++++++++++++++++++++++------------\n 1 files changed, 26 insertions(+), 12 deletions(-)\n\ndiff --git a/src/mainimpl.cpp b/src/mainimpl.cpp\nindex 38bbfbe..9613fac 100644\n--- a/src/mainimpl.cpp\n+++ b/src/mainimpl.cpp\n@@ -1138,7 +1138,8 @@ static int cntMenuEntries(const QMenu& menu) {\n void MainImpl::doContexPopup(SCRef sha) {\n \n \tQMenu contextMenu(this);\n-\tQMenu contextSubMenu(\"More...\", this);\n+\tQMenu contextBrnMenu(\"More branches...\", this);\n+\tQMenu contextTagMenu(\"More tags...\", this);\n \tQMenu contextRmtMenu(\"Remote branches\", this);\n \n \tconnect(&contextMenu, SIGNAL(triggered(QAction*)), this, SLOT(goRef_triggered(QAction*)));\n@@ -1193,35 +1194,48 @@ void MainImpl::doContexPopup(SCRef sha) {\n \t\tif (!contextRmtMenu.isEmpty())\n \t\t\tcontextMenu.addMenu(&contextRmtMenu);\n \n+\t\t// halve the possible remaining entries for branches and tags\n+\t\tint remainingEntries = (MAX_MENU_ENTRIES - cntMenuEntries(contextMenu));\n+\t\tint tagEntries = remainingEntries / 2;\n+\t\tint brnEntries = remainingEntries - tagEntries;\n+\n+\t\t// display more branches, if there are few tags\n+\t\tif (tagEntries > tn.count())\n+\t\t\ttagEntries = tn.count();\n+\n+\t\t// one branch less because of the \"More branches...\" submenu\n+\t\tif ((bn.count() > brnEntries) && tagEntries)\n+\t\t\ttagEntries++;\n+\n \t\tif (!bn.empty())\n \t\t\tcontextMenu.addSeparator();\n \n \t\tFOREACH_SL (it, bn) {\n-\t\t\tif (cntMenuEntries(contextMenu) < MAX_MENU_ENTRIES\n-\t\t\t\t\t|| (*it == bn.last() && contextSubMenu.isEmpty() && tn.empty()))\n+\t\t\tif (cntMenuEntries(contextMenu) < MAX_MENU_ENTRIES - tagEntries\n+\t\t\t\t\t|| (*it == bn.last() && contextBrnMenu.isEmpty()))\n \t\t\t\tact = contextMenu.addAction(*it);\n \t\t\telse\n-\t\t\t\tact = contextSubMenu.addAction(*it);\n+\t\t\t\tact = contextBrnMenu.addAction(*it);\n \n \t\t\tact->setData(\"Ref\");\n \t\t}\n+\t\tif (!contextBrnMenu.isEmpty())\n+\t\t\tcontextMenu.addMenu(&contextBrnMenu);\n+\n \t\tif (!tn.empty())\n-\t\t\tif (!contextSubMenu.isEmpty())\n-\t\t\t\tcontextSubMenu.addSeparator();\n-\t\t\telse\n-\t\t\t\tcontextMenu.addSeparator();\n+\t\t\tcontextMenu.addSeparator();\n \n \t\tFOREACH_SL (it, tn) {\n \t\t\tif (cntMenuEntries(contextMenu) < MAX_MENU_ENTRIES\n-\t\t\t\t\t|| (*it == tn.last() && contextSubMenu.isEmpty()))\n+\t\t\t\t\t|| (*it == tn.last() && contextTagMenu.isEmpty()))\n \t\t\t\tact = contextMenu.addAction(*it);\n \t\t\telse\n-\t\t\t\tact = contextSubMenu.addAction(*it);\n+\t\t\t\tact = contextTagMenu.addAction(*it);\n \n \t\t\tact->setData(\"Ref\");\n \t\t}\n-\t\tif (!contextSubMenu.isEmpty())\n-\t\t\tcontextMenu.addMenu(&contextSubMenu);\n+\t\tif (!contextTagMenu.isEmpty())\n+\t\t\tcontextMenu.addMenu(&contextTagMenu);\n \t}\n \tcontextMenu.exec(QCursor::pos());\n }\n-- \n1.6.3.2.213.g30b07\n"}]}