Made UnifiedResourcesProvider actually pull ResourceItem's from its

merged databases into its own database (and also keep them up to date).

Furthermore added code to properly destroy merged databases and their
providers in desctrutor.
This commit is contained in:
Tobias Doerffel
2009-02-28 17:08:33 +01:00
parent e69709ae83
commit 18282e0de3
3 changed files with 82 additions and 11 deletions

View File

@@ -48,7 +48,7 @@ public:
void load( const QString & _file );
void save( const QString & _file );
ResourcesProvider * provider( void )
inline ResourcesProvider * provider( void )
{
return m_provider;
}
@@ -58,6 +58,11 @@ public:
return m_items;
}
inline ItemList & items( void )
{
return m_items;
}
inline ResourcesTreeItem * topLevelNode( void )
{
return &m_topLevelNode;

View File

@@ -34,9 +34,7 @@ class UnifiedResourcesProvider : public ResourcesProvider
Q_OBJECT
public:
UnifiedResourcesProvider();
virtual ~UnifiedResourcesProvider()
{
}
virtual ~UnifiedResourcesProvider();
void addDatabase( ResourcesDB * _db );
@@ -46,6 +44,7 @@ public:
}
virtual void updateDatabase( void );
virtual int dataSize( const ResourcesItem * _item ) const
{
if( _item->provider() != this )
@@ -54,6 +53,7 @@ public:
}
return 0;
}
virtual QByteArray fetchData( const ResourcesItem * _item,
int _maxSize = -1 ) const
{
@@ -64,14 +64,19 @@ public:
return QByteArray();
}
virtual bool cacheDatabase( void ) const
{
return false;
}
private slots:
void remergeItems( void );
private:
QList<ResourcesDB *> m_mergedDatabases;
signals:
void itemsChanged( void );
} ;