summaryrefslogtreecommitdiff
path: root/src/filetree.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/filetree.cpp')
-rw-r--r--src/filetree.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/filetree.cpp b/src/filetree.cpp
index 7128665d..543be82b 100644
--- a/src/filetree.cpp
+++ b/src/filetree.cpp
@@ -540,7 +540,19 @@ void FileTree::showShellMenu(QPoint pos)
auto& menu = menus.begin()->second;
menu.exec(m_tree, m_tree->viewport()->mapToGlobal(pos));
} else {
+ env::ShellMenuCollection mc;
+ for (auto&& m : menus) {
+ const auto* origin = m_core.directoryStructure()->findOriginByID(m.first);
+ if (!origin) {
+ log::error("origin {} not found for merged menus", m.first);
+ continue;
+ }
+
+ mc.add(QString::fromStdWString(origin->getName()), std::move(m.second));
+ }
+
+ mc.exec(m_tree, m_tree->viewport()->mapToGlobal(pos));
}
}