Code review changes

Move openContainingFolder to the end of the method block.

Adjust FileBrowserTreeWidget::contextMenuEvent to the coding conventions
and also make the code more readable by splitting up some conditions.

Add comments to clarify as to why the member m_contextMenuItem is set to
nullptr at the end of the execution of contextMenuEvent. Please note
that this implementation is not exception safe and should be changed in
the future, e.g. by passing the FileItem as a parameter of the slot.
This commit is contained in:
Michael Gregorius
2020-04-19 22:08:09 +02:00
parent 2aea19fff1
commit b85aef2f33
2 changed files with 33 additions and 22 deletions

View File

@@ -125,9 +125,9 @@ private slots:
void activateListItem( QTreeWidgetItem * item, int column );
void openInNewInstrumentTrackBBE( void );
void openInNewInstrumentTrackSE( void );
void openContainingFolder();
void sendToActiveInstrumentTrack( void );
void updateDirectory( QTreeWidgetItem * item );
void openContainingFolder();
} ;

View File

@@ -364,30 +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.addSeparator();
contextMenu.addAction( QIcon(embed::getIconPixmap( "folder" )),
tr( "Open containing folder" ),
QMenu contextMenu(this);
contextMenu.addAction(tr("Send to active instrument-track"),
this,
SLOT( openContainingFolder() ) );
contextMenu.exec( e->globalPos() );
m_contextMenuItem = NULL;
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;
}
}