ResourcesProvider's now can tell their databases not to locally cache their

items in a file by overloading ResourcesProvider::cacheDatabase()
This commit is contained in:
Tobias Doerffel
2009-02-28 16:59:04 +01:00
parent aff61f16b0
commit e69709ae83
3 changed files with 13 additions and 7 deletions

View File

@@ -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 )
{

View File

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

View File

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