mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-10 16:14:40 +02:00
* Show a context menu when right-clicking tracks in the sidebar.
This commit is contained in:
@@ -34,6 +34,7 @@
|
|||||||
#include "TomahawkSettings.h"
|
#include "TomahawkSettings.h"
|
||||||
#include "ActionCollection.h"
|
#include "ActionCollection.h"
|
||||||
#include "ViewManager.h"
|
#include "ViewManager.h"
|
||||||
|
#include "ContextMenu.h"
|
||||||
|
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
@@ -682,10 +683,21 @@ SourceDelegate::editorEvent( QEvent* event, QAbstractItemModel* model, const QSt
|
|||||||
SourceItem* colItem = qobject_cast< SourceItem* >( index.data( SourcesModel::SourceTreeItemRole ).value< SourceTreeItem* >() );
|
SourceItem* colItem = qobject_cast< SourceItem* >( index.data( SourcesModel::SourceTreeItemRole ).value< SourceTreeItem* >() );
|
||||||
Q_ASSERT( colItem );
|
Q_ASSERT( colItem );
|
||||||
|
|
||||||
if ( event->type() == QEvent::MouseButtonRelease && hoveringTrack && colItem->source() && colItem->source()->currentTrack() )
|
if ( hoveringTrack && colItem->source() && colItem->source()->currentTrack() )
|
||||||
{
|
{
|
||||||
ViewManager::instance()->show( colItem->source()->currentTrack() );
|
const QMouseEvent* ev = static_cast< QMouseEvent* >( event );
|
||||||
return true;
|
if ( event->type() == QEvent::MouseButtonRelease && ev->button() == Qt::LeftButton )
|
||||||
|
{
|
||||||
|
ViewManager::instance()->show( colItem->source()->currentTrack() );
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if ( event->type() == QEvent::MouseButtonPress && ev->button() == Qt::RightButton )
|
||||||
|
{
|
||||||
|
Tomahawk::ContextMenu* contextMenu = new Tomahawk::ContextMenu( m_parent );
|
||||||
|
contextMenu->setQuery( colItem->source()->currentTrack() );
|
||||||
|
contextMenu->exec( QCursor::pos() );
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !colItem->source().isNull() && !colItem->source()->currentTrack().isNull() && !colItem->source()->isLocal() )
|
if ( !colItem->source().isNull() && !colItem->source()->currentTrack().isNull() && !colItem->source()->isLocal() )
|
||||||
|
Reference in New Issue
Block a user