diff --git a/src/k3bdiroperator.h b/src/k3bdiroperator.h --- a/src/k3bdiroperator.h +++ b/src/k3bdiroperator.h @@ -66,11 +66,8 @@ public Q_SLOTS: void slotAddFilesToProject(); -protected Q_SLOTS: - /** - * reimplemented from KDirOperator - */ - void activatedMenu( const KFileItem&, const QPoint& ); +private Q_SLOTS: + void extendContextMenu( const KFileItem&, QMenu* ); private: KBookmarkMenu* m_bmMenu; diff --git a/src/k3bdiroperator.cpp b/src/k3bdiroperator.cpp --- a/src/k3bdiroperator.cpp +++ b/src/k3bdiroperator.cpp @@ -61,6 +61,8 @@ connect( this, SIGNAL(fileSelected(KFileItem)), this, SLOT(slotAddFilesToProject()) ); + connect( this, &KDirOperator::contextMenuAboutToShow, + this, &DirOperator::extendContextMenu ); } @@ -123,31 +125,20 @@ } -void K3b::DirOperator::activatedMenu( const KFileItem&, const QPoint& pos ) +void K3b::DirOperator::extendContextMenu( const KFileItem&, QMenu* menu ) { - // both from KDirOperator - setupMenu(); - updateSelectionDependentActions(); - - // insert our own actions - KActionMenu* dirOpMenu = qobject_cast( actionCollection()->action("popupMenu") ); - if (!dirOpMenu) { - return; - } - QAction* firstAction = dirOpMenu->menu()->actions().first(); - dirOpMenu->insertAction( firstAction, actionCollection()->action("add_file_to_project") ); - dirOpMenu->insertSeparator( firstAction ); - dirOpMenu->addSeparator(); - dirOpMenu->addAction( m_bmPopup ); + QAction* firstAction = menu->actions().first(); + menu->insertAction( firstAction, actionCollection()->action("add_file_to_project") ); + menu->insertSeparator( firstAction ); + menu->addSeparator(); + menu->addAction( m_bmPopup ); bool hasSelection = !selectedItems().isEmpty(); /* view() && view()->selectedItems() && !view()->selectedItems()->isEmpty(); */ actionCollection()->action("add_file_to_project")->setEnabled( hasSelection && k3bappcore->k3bMainWindow()->activeView() != 0 ); - - dirOpMenu->menu()->popup( pos ); }