diff --git a/include/ResourceBrowser.h b/include/ResourceBrowser.h index 961b9e312..03bc5cb5c 100644 --- a/include/ResourceBrowser.h +++ b/include/ResourceBrowser.h @@ -63,6 +63,7 @@ private slots: void updateFilterStatus(); void startItemPreview( const QModelIndex & _idx ); void stopItemPreview( const QModelIndex & _idx ); + void triggerDefaultAction( const QModelIndex & _idx ); private: diff --git a/src/gui/ResourceBrowser.cpp b/src/gui/ResourceBrowser.cpp index eb1694643..4ee9fb60d 100644 --- a/src/gui/ResourceBrowser.cpp +++ b/src/gui/ResourceBrowser.cpp @@ -110,6 +110,10 @@ ResourceBrowser::ResourceBrowser( QWidget * _parent ) : connect( m_treeView, SIGNAL( clicked( const QModelIndex & ) ), this, SLOT( stopItemPreview( const QModelIndex & ) ) ); + connect( m_treeView, + SIGNAL( doubleClicked( const QModelIndex & ) ), + this, + SLOT( triggerDefaultAction( const QModelIndex & ) ) ); PianoView * pianoView = new PianoView( contentParent() ); pianoView->setModel( m_previewer.pianoModel() ); @@ -244,6 +248,40 @@ void ResourceBrowser::stopItemPreview( const QModelIndex & _idx ) +void ResourceBrowser::triggerDefaultAction( const QModelIndex & _idx ) +{ + ResourceItem * item = m_treeModel.item( _idx ); + Actions action = NumActions; + switch( item->type() ) + { + case ResourceItem::TypeSample: + action = LoadInNewTrackBBEditor; + break; + case ResourceItem::TypePreset: + case ResourceItem::TypePluginSpecificPreset: + case ResourceItem::TypePlugin: + case ResourceItem::TypeSoundFont: + action = LoadInNewTrackSongEditor; + break; + case ResourceItem::TypeProject: + action = LoadProject; + break; + case ResourceItem::TypeForeignProject: + case ResourceItem::TypeMidiFile: + action = ImportFile; + break; + default: + break; + } + if( action != NumActions ) + { + triggerAction( action, item ); + } +} + + + + void ResourceBrowser::updateFilterStatus() { m_filterStatusLabel->setText( QString( "%1/%2" ).