From 722aa1156372ee07edaf11b75ed3987308eb2727 Mon Sep 17 00:00:00 2001 From: Tobias Doerffel Date: Mon, 26 Oct 2009 16:21:55 +0100 Subject: [PATCH] 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. --- include/ResourceAction.h | 2 ++ src/core/ResourceAction.cpp | 15 +++++++++++++++ src/gui/ResourceBrowser.cpp | 20 +++----------------- 3 files changed, 20 insertions(+), 17 deletions(-) diff --git a/include/ResourceAction.h b/include/ResourceAction.h index 3960dcebe..0a627ceef 100644 --- a/include/ResourceAction.h +++ b/include/ResourceAction.h @@ -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: diff --git a/src/core/ResourceAction.cpp b/src/core/ResourceAction.cpp index 9d747c421..428234e25 100644 --- a/src/core/ResourceAction.cpp +++ b/src/core/ResourceAction.cpp @@ -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" diff --git a/src/gui/ResourceBrowser.cpp b/src/gui/ResourceBrowser.cpp index 14009079b..97430680f 100644 --- a/src/gui/ResourceBrowser.cpp +++ b/src/gui/ResourceBrowser.cpp @@ -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; } }