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:
Tobias Doerffel
2009-10-26 16:21:55 +01:00
parent de1675f39e
commit 722aa11563
3 changed files with 20 additions and 17 deletions

View File

@@ -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:

View File

@@ -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"

View File

@@ -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;
}
}