Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions include/FileBrowser.h
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ private slots:
void openInNewInstrumentTrackSE( void );
void sendToActiveInstrumentTrack( void );
void updateDirectory( QTreeWidgetItem * item );
void openContainingFolder();

} ;

Expand Down
61 changes: 44 additions & 17 deletions src/gui/FileBrowser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
*/


#include <QDesktopServices>
#include <QHBoxLayout>
#include <QKeyEvent>
#include <QLineEdit>
Expand Down Expand Up @@ -363,25 +364,41 @@ QList<QString> FileBrowserTreeWidget::expandedDirs( QTreeWidgetItem * item ) con

void FileBrowserTreeWidget::contextMenuEvent(QContextMenuEvent * e )
{
FileItem * f = dynamic_cast<FileItem *>( itemAt( e->pos() ) );
if( f != NULL && ( f->handling() == FileItem::LoadAsPreset ||
f->handling() == FileItem::LoadByPlugin ) )
FileItem * f = dynamic_cast<FileItem *>(itemAt(e->pos()));
if (f == nullptr)
{
return;
}

if (f->handling() == FileItem::LoadAsPreset || f->handling() == FileItem::LoadByPlugin)
{
// Set the member to the current FileItem so that it is available during the
// execution of the slots of the context menu we are about to create and execute.
m_contextMenuItem = f;
QMenu contextMenu( this );
contextMenu.addAction( tr( "Send to active instrument-track" ),
this,
SLOT( sendToActiveInstrumentTrack() ) );
contextMenu.addAction( tr( "Open in new instrument-track/"
"Song Editor" ),
this,
SLOT( openInNewInstrumentTrackSE() ) );
contextMenu.addAction( tr( "Open in new instrument-track/"
"B+B Editor" ),
this,
SLOT( openInNewInstrumentTrackBBE() ) );
contextMenu.exec( e->globalPos() );
m_contextMenuItem = NULL;

QMenu contextMenu(this);

contextMenu.addAction(tr("Send to active instrument-track"),
this,
SLOT(sendToActiveInstrumentTrack()));
contextMenu.addAction(tr("Open in new instrument-track/Song Editor"),
this,
SLOT(openInNewInstrumentTrackSE()));
contextMenu.addAction(tr("Open in new instrument-track/B+B Editor"),
this,
SLOT(openInNewInstrumentTrackBBE()));

contextMenu.addSeparator();

contextMenu.addAction(QIcon(embed::getIconPixmap("folder")),
tr("Open containing folder"),
this,
SLOT(openContainingFolder()));

contextMenu.exec(e->globalPos());

// The context menu has been executed so we can reset this member back to nullptr.
m_contextMenuItem = nullptr;
}
}

Expand Down Expand Up @@ -671,6 +688,16 @@ void FileBrowserTreeWidget::openInNewInstrumentTrackSE( void )



void FileBrowserTreeWidget::openContainingFolder()
{
if (m_contextMenuItem)
{
QFileInfo fileInfo(m_contextMenuItem->fullName());
QDesktopServices::openUrl(QUrl::fromLocalFile(fileInfo.dir().path()));
}
}



void FileBrowserTreeWidget::sendToActiveInstrumentTrack( void )
{
Expand Down