ResourceBrowser: move implementation of default actions to ResourceAction
Again there's no need for duplicated functionality. Adding a ResourceAction::defaultTrigger() method allows to separate all functionality from ResourceBrowser and possibly use it in other places as well.
This commit is contained in:
@@ -59,6 +59,8 @@ public:
|
||||
bool loadByPlugin( InstrumentTrack * _target );
|
||||
bool loadPreset( InstrumentTrack * _target );
|
||||
bool importProject( trackContainer * _target );
|
||||
// most actions can be triggered without any further information
|
||||
bool defaultTrigger();
|
||||
|
||||
|
||||
private:
|
||||
|
||||
@@ -98,6 +98,21 @@ bool ResourceAction::importProject( trackContainer * _target )
|
||||
|
||||
|
||||
|
||||
bool ResourceAction::defaultTrigger()
|
||||
{
|
||||
switch( m_action )
|
||||
{
|
||||
case LoadProject:
|
||||
return loadProject();
|
||||
case ImportFile:
|
||||
return importProject( engine::getSong() );
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#include "moc_ResourceAction.cxx"
|
||||
|
||||
|
||||
@@ -364,25 +364,11 @@ void ResourceBrowser::manageDirectories()
|
||||
void ResourceBrowser::triggerAction( ResourceAction::Action _action,
|
||||
ResourceItem * _item )
|
||||
{
|
||||
ResourceAction action( _item, _action );
|
||||
switch( _action )
|
||||
{
|
||||
case ResourceAction::LoadProject:
|
||||
if( engine::mainWindow()->mayChangeProject() )
|
||||
{
|
||||
ResourceFileMapper mapper( _item );
|
||||
if( _item->isLocalResource() )
|
||||
{
|
||||
engine::getSong()->loadProject( mapper.fileName() );
|
||||
}
|
||||
else
|
||||
{
|
||||
engine::getSong()->
|
||||
createNewProjectFromTemplate( mapper.fileName() );
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ResourceAction::ImportFile:
|
||||
ResourceAction( _item ).importProject( engine::getSong() );
|
||||
default:
|
||||
action.defaultTrigger();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user