summaryrefslogtreecommitdiff
path: root/src/filetree.cpp
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2020-01-22 03:29:40 -0500
committerisanae <14251494+isanae@users.noreply.github.com>2020-02-04 03:33:22 -0500
commit412165fcfbbd27d679a7400ebdef75ff3a9d6aa7 (patch)
tree2237075dd6d2023b9a180c2295133d759d36de64 /src/filetree.cpp
parent2a0e78e3cf0c1106a1fb7e470148f6e0b093b2b1 (diff)
show file counts when there are discrepancies
Diffstat (limited to 'src/filetree.cpp')
-rw-r--r--src/filetree.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/filetree.cpp b/src/filetree.cpp
index 4e3db1f7..a826ed9a 100644
--- a/src/filetree.cpp
+++ b/src/filetree.cpp
@@ -487,6 +487,7 @@ void FileTree::showShellMenu(QPoint pos)
// menus by origin
std::map<int, env::ShellMenu> menus;
+ int totalFiles = 0;
for (auto&& index : m_tree->selectionModel()->selectedRows()) {
auto* item = m_model->itemFromIndex(index);
@@ -500,6 +501,7 @@ void FileTree::showShellMenu(QPoint pos)
}
itor->second.addFile(item->realPath());
+ ++totalFiles;
if (item->isConflicted()) {
const auto file = m_core.directoryStructure()->searchFile(
@@ -549,6 +551,7 @@ void FileTree::showShellMenu(QPoint pos)
menu.exec(m_tree->viewport()->mapToGlobal(pos));
} else {
env::ShellMenuCollection mc(mw);
+ bool hasDiscrepancies = false;
for (auto&& m : menus) {
const auto* origin = m_core.directoryStructure()->findOriginByID(m.first);
@@ -557,7 +560,18 @@ void FileTree::showShellMenu(QPoint pos)
continue;
}
- mc.add(QString::fromStdWString(origin->getName()), std::move(m.second));
+ QString caption = QString::fromStdWString(origin->getName());
+ if (m.second.fileCount() < totalFiles) {
+ const auto d = m.second.fileCount();
+ caption += " " + tr("(only has %1 file(s))").arg(d);
+ hasDiscrepancies = true;
+ }
+
+ mc.add(caption, std::move(m.second));
+ }
+
+ if (hasDiscrepancies) {
+ mc.addDetails(tr("%1 file(s) selected").arg(totalFiles));
}
mc.exec(m_tree->viewport()->mapToGlobal(pos));