diff --git a/include/engine.h b/include/engine.h index 62d167ab1..d21236e49 100644 --- a/include/engine.h +++ b/include/engine.h @@ -44,7 +44,7 @@ class MainWindow; class mixer; class pianoRoll; class projectNotes; -class UnifiedResourceProvider; +class ResourceDB; class song; class songEditor; class ladspa2LMMS; @@ -100,9 +100,19 @@ public: return s_projectJournal; } - static UnifiedResourceProvider * resourceProvider() + static ResourceDB * workingDirResourceDB() { - return s_resourceProvider; + return s_workingDirResourceDB; + } + + static ResourceDB * webResourceDB() + { + return s_webResourceDB; + } + + static ResourceDB * mergedResourceDB() + { + return s_mergedResourceDB; } // GUI @@ -200,7 +210,9 @@ private: static mixer * s_mixer; static fxMixer * s_fxMixer; static song * s_song; - static UnifiedResourceProvider * s_resourceProvider; + static ResourceDB * s_workingDirResourceDB; + static ResourceDB * s_webResourceDB; + static ResourceDB * s_mergedResourceDB; static bbTrackContainer * s_bbTrackContainer; static projectJournal * s_projectJournal; static dummyTrackContainer * s_dummyTC; diff --git a/src/core/engine.cpp b/src/core/engine.cpp index f87063e31..0a2967daa 100644 --- a/src/core/engine.cpp +++ b/src/core/engine.cpp @@ -62,7 +62,9 @@ fxMixerView * engine::s_fxMixerView = NULL; MainWindow * engine::s_mainWindow = NULL; bbTrackContainer * engine::s_bbTrackContainer = NULL; song * engine::s_song = NULL; -UnifiedResourceProvider * engine::s_resourceProvider = NULL; +ResourceDB * engine::s_workingDirResourceDB = NULL; +ResourceDB * engine::s_webResourceDB = NULL; +ResourceDB * engine::s_mergedResourceDB = NULL; songEditor * engine::s_songEditor = NULL; automationEditor * engine::s_automationEditor = NULL; AutomationRecorder * engine::s_automationRecorder = NULL; @@ -92,22 +94,22 @@ void engine::init( const bool _has_gui ) // init resource framework - LocalResourceProvider * workingDirResource = - new LocalResourceProvider( ResourceItem::BaseWorkingDir, - QString() ); - LocalResourceProvider * shippedResource = - new LocalResourceProvider( ResourceItem::BaseDataDir, - QString() ); - WebResourceProvider * webResource = - new WebResourceProvider( "http://lmms.sourceforge.net" ); + s_workingDirResourceDB = + ( new LocalResourceProvider( ResourceItem::BaseWorkingDir, + QString() ) )->database(); + ResourceDB * shippedResourceDB = + ( new LocalResourceProvider( ResourceItem::BaseDataDir, + QString() ) )->database(); + s_webResourceDB = + ( new WebResourceProvider( "http://lmms.sourceforge.net" ) ) + ->database(); - UnifiedResourceProvider * unifiedResource = - new UnifiedResourceProvider; - unifiedResource->addDatabase( workingDirResource->database() ); - unifiedResource->addDatabase( shippedResource->database() ); - unifiedResource->addDatabase( webResource->database() ); + UnifiedResourceProvider * unifiedResource = new UnifiedResourceProvider; + unifiedResource->addDatabase( s_workingDirResourceDB ); + unifiedResource->addDatabase( shippedResourceDB ); + unifiedResource->addDatabase( s_webResourceDB ); - s_resourceProvider = unifiedResource; + s_mergedResourceDB = unifiedResource->database(); s_fxMixer = new fxMixer; @@ -191,8 +193,8 @@ void engine::destroy( void ) delete s_automationRecorder; s_automationRecorder = NULL; - delete s_resourceProvider; - s_resourceProvider = NULL; + delete s_mergedResourceDB->provider(); + s_mergedResourceDB = NULL; delete configManager::inst(); } diff --git a/src/gui/InstrumentView.cpp b/src/gui/InstrumentView.cpp index e4126394a..8c1c46383 100644 --- a/src/gui/InstrumentView.cpp +++ b/src/gui/InstrumentView.cpp @@ -29,7 +29,6 @@ #include "instrument_track.h" #include "ResourceDB.h" #include "string_pair_drag.h" -#include "UnifiedResourceProvider.h" InstrumentView::InstrumentView( instrument * _instrument, QWidget * _parent ) : @@ -84,7 +83,7 @@ void InstrumentView::dragEnterEvent( QDragEnterEvent * _dee ) if( stringPairDrag::decodeKey( _dee ) == ResourceItem::mimeKey() ) { const ResourceItem * item = - engine::resourceProvider()->database()-> + engine::mergedResourceDB()-> itemByHash( stringPairDrag::decodeValue( _dee ) ); if( item && model()->getDescriptor()->supportsFileType( @@ -103,7 +102,7 @@ void InstrumentView::dropEvent( QDropEvent * _de ) if( stringPairDrag::decodeKey( _de ) == ResourceItem::mimeKey() ) { const ResourceItem * item = - engine::resourceProvider()->database()-> + engine::mergedResourceDB()-> itemByHash( stringPairDrag::decodeValue( _de ) ); model()->loadResource( item ); _de->accept(); diff --git a/src/gui/QuickLoadDialog.cpp b/src/gui/QuickLoadDialog.cpp index 79e6084d9..382c8a7a1 100644 --- a/src/gui/QuickLoadDialog.cpp +++ b/src/gui/QuickLoadDialog.cpp @@ -24,7 +24,6 @@ #include "QuickLoadDialog.h" #include "ResourceListModel.h" -#include "UnifiedResourceProvider.h" #include "engine.h" #include "ui_QuickLoadDialog.h" @@ -34,8 +33,7 @@ QuickLoadDialog::QuickLoadDialog( QWidget * _parent ) : QDialog( _parent ), ui( new Ui::QuickLoadDialog ), - m_listModel( new ResourceListModel( - engine::resourceProvider()->database(), this ) ) + m_listModel( new ResourceListModel( engine::mergedResourceDB(), this ) ) { ui->setupUi( this ); @@ -47,7 +45,7 @@ QuickLoadDialog::QuickLoadDialog( QWidget * _parent ) : // connect filter edit with model connect( ui->filterEdit, SIGNAL( textChanged( const QString & ) ), - m_listModel, SLOT( setFilter( const QString & ) ) ); + m_listModel, SLOT( setKeywordFilter( const QString & ) ) ); } diff --git a/src/gui/ResourceBrowser.cpp b/src/gui/ResourceBrowser.cpp index 14b2ee232..6d4058160 100644 --- a/src/gui/ResourceBrowser.cpp +++ b/src/gui/ResourceBrowser.cpp @@ -33,7 +33,6 @@ #include "ResourceFileMapper.h" #include "ResourceTreeModel.h" #include "ResourceTreeView.h" -#include "UnifiedResourceProvider.h" #include "engine.h" #include "embed.h" #include "MainWindow.h" @@ -79,7 +78,7 @@ ResourceBrowser::ResourceBrowser( QWidget * _parent ) : _parent ), m_previewer(), m_filterEdit( NULL ), - m_treeModel( engine::resourceProvider()->database() ) + m_treeModel( engine::mergedResourceDB() ) { // create a model which represents our database as a tree diff --git a/src/gui/track_container_view.cpp b/src/gui/track_container_view.cpp index 4e5df5af2..3c23fc711 100644 --- a/src/gui/track_container_view.cpp +++ b/src/gui/track_container_view.cpp @@ -34,7 +34,6 @@ #include "ResourceDB.h" #include "ResourceItem.h" #include "ResourceFileMapper.h" -#include "UnifiedResourceProvider.h" #include "track_container_view.h" #include "track_container.h" @@ -404,8 +403,7 @@ void trackContainerView::dropEvent( QDropEvent * _de ) if( type == ResourceItem::mimeKey() ) { const ResourceItem * item = - engine::resourceProvider()->database()-> - itemByHash( value ); + engine::mergedResourceDB()->itemByHash( value ); if( item ) { ResourceAction action( item ); @@ -415,15 +413,13 @@ void trackContainerView::dropEvent( QDropEvent * _de ) case ResourceItem::TypePreset: action.loadPreset( dynamic_cast( - track::create( track::InstrumentTrack, - m_tc ) ) ); + track::create( track::InstrumentTrack, m_tc ) ) ); break; case ResourceItem::TypeSample: case ResourceItem::TypePluginSpecificResource: action.loadByPlugin( dynamic_cast( - track::create( track::InstrumentTrack, - m_tc ) ) ); + track::create( track::InstrumentTrack, m_tc ) ) ); break; case ResourceItem::TypeForeignProject: action.importProject( m_tc ); diff --git a/src/tracks/instrument_track.cpp b/src/tracks/instrument_track.cpp index 714ce86cc..b4d54729f 100644 --- a/src/tracks/instrument_track.cpp +++ b/src/tracks/instrument_track.cpp @@ -40,7 +40,6 @@ #include "ResourceAction.h" #include "ResourceDB.h" -#include "UnifiedResourceProvider.h" #include "instrument_track.h" #include "AudioPort.h" @@ -1505,8 +1504,7 @@ void instrumentTrackWindow::dropEvent( QDropEvent * _de ) else if( type == ResourceItem::mimeKey() ) { const ResourceItem * item = - engine::resourceProvider()->database()-> - itemByHash( value ); + engine::mergedResourceDB()->itemByHash( value ); if( !item ) { return;