diff --git a/src/widget/wtrackmenu.cpp b/src/widget/wtrackmenu.cpp index bbcfbcc5ab78..6c3caa90a465 100644 --- a/src/widget/wtrackmenu.cpp +++ b/src/widget/wtrackmenu.cpp @@ -105,6 +105,11 @@ void WTrackMenu::popup(const QPoint& pos, QAction* at) { } void WTrackMenu::createMenus() { + if (featureIsEnabled(Feature::AutoDJ)) { + m_pAutoDJMenu = new QMenu(this); + m_pAutoDJMenu->setTitle(tr("Add to Auto DJ queue")); + } + if (featureIsEnabled(Feature::LoadTo)) { m_pLoadToMenu = new QMenu(this); m_pLoadToMenu->setTitle(tr("Load to")); @@ -185,9 +190,10 @@ void WTrackMenu::createMenus() { }); } - if (featureIsEnabled(Feature::RemoveFromDisk)) { - m_pRemoveFromDiskMenu = new QMenu(this); - m_pRemoveFromDiskMenu->setTitle(tr("Delete Track Files")); + if (featureIsEnabled(Feature::RemoveFromDisk) || + featureIsEnabled(Feature::FileBrowser)) { + m_pFileMenu = new QMenu(this); + m_pFileMenu->setTitle(tr("Track Files")); } } @@ -198,13 +204,13 @@ void WTrackMenu::createActions() { kPropertiesShortcutKey); if (featureIsEnabled(Feature::AutoDJ)) { - m_pAutoDJBottomAct = new QAction(tr("Add to Auto DJ Queue (bottom)"), this); + m_pAutoDJBottomAct = new QAction(tr("Add to Auto DJ Queue (bottom)"), m_pAutoDJMenu); connect(m_pAutoDJBottomAct, &QAction::triggered, this, &WTrackMenu::slotAddToAutoDJBottom); - m_pAutoDJTopAct = new QAction(tr("Add to Auto DJ Queue (top)"), this); + m_pAutoDJTopAct = new QAction(tr("Add to Auto DJ Queue (top)"), m_pAutoDJMenu); connect(m_pAutoDJTopAct, &QAction::triggered, this, &WTrackMenu::slotAddToAutoDJTop); - m_pAutoDJReplaceAct = new QAction(tr("Add to Auto DJ Queue (replace)"), this); + m_pAutoDJReplaceAct = new QAction(tr("Add to Auto DJ Queue (replace)"), m_pAutoDJMenu); connect(m_pAutoDJReplaceAct, &QAction::triggered, this, &WTrackMenu::slotAddToAutoDJReplace); } @@ -245,8 +251,13 @@ void WTrackMenu::createActions() { connect(m_pPurgeAct, &QAction::triggered, this, &WTrackMenu::slotPurge); } + if (featureIsEnabled(Feature::FileBrowser)) { + m_pFileBrowserAct = new QAction(tr("Open in File Browser"), m_pFileMenu); + connect(m_pFileBrowserAct, &QAction::triggered, this, &WTrackMenu::slotOpenInFileBrowser); + } + if (featureIsEnabled(Feature::RemoveFromDisk)) { - m_pRemoveFromDiskAct = new QAction(tr("Delete Files from Disk"), m_pRemoveFromDiskMenu); + m_pRemoveFromDiskAct = new QAction(tr("Delete Files from Disk"), m_pFileMenu); connect(m_pRemoveFromDiskAct, &QAction::triggered, this, @@ -268,11 +279,6 @@ void WTrackMenu::createActions() { connect(m_pPropertiesAct, &QAction::triggered, this, &WTrackMenu::slotShowDlgTrackInfo); } - if (featureIsEnabled(Feature::FileBrowser)) { - m_pFileBrowserAct = new QAction(tr("Open in File Browser"), this); - connect(m_pFileBrowserAct, &QAction::triggered, this, &WTrackMenu::slotOpenInFileBrowser); - } - if (featureIsEnabled(Feature::SelectInLibrary)) { m_pSelectInLibraryAct = new QAction(tr("Select in Library"), this); connect(m_pSelectInLibraryAct, &QAction::triggered, this, &WTrackMenu::slotSelectInLibrary); @@ -450,9 +456,10 @@ void WTrackMenu::setupActions() { } if (featureIsEnabled(Feature::AutoDJ)) { - addAction(m_pAutoDJBottomAct); - addAction(m_pAutoDJTopAct); - addAction(m_pAutoDJReplaceAct); + m_pAutoDJMenu->addAction(m_pAutoDJBottomAct); + m_pAutoDJMenu->addAction(m_pAutoDJTopAct); + m_pAutoDJMenu->addAction(m_pAutoDJReplaceAct); + addMenu(m_pAutoDJMenu); addSeparator(); } @@ -589,13 +596,14 @@ void WTrackMenu::setupActions() { } } - if (featureIsEnabled(Feature::RemoveFromDisk)) { - m_pRemoveFromDiskMenu->addAction(m_pRemoveFromDiskAct); - addMenu(m_pRemoveFromDiskMenu); - } - - if (featureIsEnabled(Feature::FileBrowser)) { - addAction(m_pFileBrowserAct); + if (m_pFileMenu) { + if (featureIsEnabled(Feature::FileBrowser)) { + m_pFileMenu->addAction(m_pFileBrowserAct); + } + if (featureIsEnabled(Feature::RemoveFromDisk)) { + m_pFileMenu->addAction(m_pRemoveFromDiskAct); + } + addMenu(m_pFileMenu); } if (featureIsEnabled(Feature::Properties)) { diff --git a/src/widget/wtrackmenu.h b/src/widget/wtrackmenu.h index 2808ed79d32a..2ab7a291749f 100644 --- a/src/widget/wtrackmenu.h +++ b/src/widget/wtrackmenu.h @@ -215,6 +215,7 @@ class WTrackMenu : public QMenu { const ControlProxy* m_pNumPreviewDecks{}; // Submenus + QMenu* m_pAutoDJMenu{}; QMenu* m_pLoadToMenu{}; QMenu* m_pDeckMenu{}; QMenu* m_pSamplerMenu{}; @@ -228,7 +229,7 @@ class WTrackMenu : public QMenu { QMenu* m_pColorMenu{}; WCoverArtMenu* m_pCoverMenu{}; parented_ptr m_pSearchRelatedMenu; - QMenu* m_pRemoveFromDiskMenu{}; + QMenu* m_pFileMenu{}; // Update ReplayGain from Track QAction* m_pUpdateReplayGainAct{};