From e69709ae83d55e8cb5710630544c0807f33019cc Mon Sep 17 00:00:00 2001 From: Tobias Doerffel Date: Sat, 28 Feb 2009 16:59:04 +0100 Subject: [PATCH] ResourcesProvider's now can tell their databases not to locally cache their items in a file by overloading ResourcesProvider::cacheDatabase() --- include/resources_provider.h | 6 +++++- src/core/resources_db.cpp | 10 ++++++---- src/core/resources_provider.cpp | 4 ++-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/include/resources_provider.h b/include/resources_provider.h index 00ebae9d3..3a24a1e86 100644 --- a/include/resources_provider.h +++ b/include/resources_provider.h @@ -45,13 +45,17 @@ public: virtual int dataSize( const ResourcesItem * _item ) const = 0; virtual QByteArray fetchData( const ResourcesItem * _item, int _maxSize = -1 ) const = 0; + virtual bool cacheDatabase( void ) const + { + return true; + } inline const QString & url( void ) const { return m_url; } - QString localCatalogueFile( void ) const; + QString localCacheFile( void ) const; ResourcesDB * database( void ) { diff --git a/src/core/resources_db.cpp b/src/core/resources_db.cpp index ffadb4ee5..8ce8bbfc8 100644 --- a/src/core/resources_db.cpp +++ b/src/core/resources_db.cpp @@ -44,7 +44,6 @@ ResourcesDB::ResourcesDB( ResourcesProvider * _provider ) : ResourcesDB::~ResourcesDB() { - save( m_provider->localCatalogueFile() ); } @@ -52,14 +51,17 @@ ResourcesDB::~ResourcesDB() void ResourcesDB::init( void ) { - if( QFileInfo( m_provider->localCatalogueFile() ).exists() ) + if( QFileInfo( m_provider->localCacheFile() ).exists() ) { - load( m_provider->localCatalogueFile() ); + load( m_provider->localCacheFile() ); } m_provider->updateDatabase(); - save( m_provider->localCatalogueFile() ); + if( m_provider->cacheDatabase() ) + { + save( m_provider->localCacheFile() ); + } } diff --git a/src/core/resources_provider.cpp b/src/core/resources_provider.cpp index 90a8cf0ae..e8a94228e 100644 --- a/src/core/resources_provider.cpp +++ b/src/core/resources_provider.cpp @@ -48,10 +48,10 @@ ResourcesProvider::~ResourcesProvider() -QString ResourcesProvider::localCatalogueFile( void ) const +QString ResourcesProvider::localCacheFile( void ) const { const QString dir = configManager::inst()->workingDir() + - "catalogs" + QDir::separator(); + ".resources" + QDir::separator(); if( !QDir( dir ).exists() ) { QDir().mkpath( dir );