From a481922f6e64f42630a86cded76375cbf058dd63 Mon Sep 17 00:00:00 2001 From: Sotonye Atemie Date: Sun, 2 Mar 2025 13:18:03 -0500 Subject: [PATCH] Spruce up the context menu a bit --- src/gui/FileBrowser.cpp | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/src/gui/FileBrowser.cpp b/src/gui/FileBrowser.cpp index 93561dea288..096b839de7d 100644 --- a/src/gui/FileBrowser.cpp +++ b/src/gui/FileBrowser.cpp @@ -565,30 +565,29 @@ void FileBrowserTreeWidget::contextMenuEvent(QContextMenuEvent* e) QString fileManager = tr("file manager"); #endif - QTreeWidgetItem* item = itemAt(e->pos()); - if (item == nullptr) { return; } // program hangs when right-clicking on empty space otherwise + auto item = itemAt(e->pos()); + if (item == nullptr) { return; } - QMenu contextMenu(this); + auto header = new QAction{item->text(0)}; + header->setDisabled(true); + + auto contextMenu = QMenu{this}; + contextMenu.addAction(header); + contextMenu.addSeparator(); switch (item->type()) { case TypeFileItem: { auto file = dynamic_cast(item); - auto header = new QAction(file->text(0)); - - header->setDisabled(true); - contextMenu.addAction(header); + contextMenu.addAction(QIcon(embed::getIconPixmap("folder")), tr("Show in %1").arg(fileManager), + [file] { FileRevealer::reveal(file->fullName()); }); if (file->isTrack()) { contextMenu.addAction( tr("Send to active instrument-track"), [=, this] { sendToActiveInstrumentTrack(file); }); - contextMenu.addSeparator(); } - contextMenu.addAction(QIcon(embed::getIconPixmap("folder")), tr("Show in %1").arg(fileManager), - [=] { FileRevealer::reveal(file->fullName()); }); - auto songEditorHeader = new QAction(tr("Song Editor"), nullptr); songEditorHeader->setDisabled(true); contextMenu.addAction(songEditorHeader); @@ -602,13 +601,8 @@ void FileBrowserTreeWidget::contextMenuEvent(QContextMenuEvent* e) } case TypeDirectoryItem: { auto dir = dynamic_cast(item); - auto header = new QAction(dir->text(0)); - - header->setDisabled(true); - contextMenu.addAction(header); - contextMenu.addAction(QIcon(embed::getIconPixmap("folder")), tr("Open in %1").arg(fileManager), - [=] { FileRevealer::openDir(dir->fullName()); }); + [dir] { FileRevealer::openDir(dir->fullName()); }); break; } }