[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: koffice/libs/resources
From: Jan Hambrecht <jaham () gmx ! net>
Date: 2009-06-30 21:45:50
Message-ID: 1246398350.250047.23127.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 989770 by jaham:
use the full filename as the key for identifying a resource
add a blacklist used for omitting resources that could not
be removed from the hard disk
M +21 -11 KoResourceServer.h
--- trunk/koffice/libs/resources/KoResourceServer.h #989769:989770
@@ -120,7 +120,7 @@
T* resource = createResource(front);
if (resource->load() && resource->valid())
{
- m_resourcesByFilename[fname] = resource;
+ m_resourcesByFilename[front] = resource;
if ( resource->name().isNull() ) {
resource->setName( fname );
@@ -147,8 +147,10 @@
kWarning(30009) << "Tried to add an invalid resource!";
return false;
}
- if( ! resource->save() )
+ if( ! resource->save() ) {
+ kWarning(30009) << "Could not save resource!";
return false;
+ }
Q_ASSERT( !resource->filename().isEmpty() || !resource->name().isEmpty() );
if ( resource->filename().isEmpty() ) {
@@ -168,12 +170,12 @@
/// Remove a resource from resourceserver and hard disk
bool removeResource(T* resource) {
-
- QString fname = QFileInfo(resource->filename()).fileName();
- if ( !m_resourcesByFilename.contains( fname ) ) {
+ if ( !m_resourcesByFilename.contains( resource->filename() ) ) {
return false;
}
+ bool removedFromDisk = true;
+
QFile file( resource->filename() );
if( ! file.remove() ) {
@@ -183,22 +185,30 @@
// app-start. But if we cannot remove a resource from the
// disk, remove it from the chooser at least.
- //return false;
+ removedFromDisk = false;
+ kWarning(30009) << "Could not remove resource!";
}
notifyRemovingResource(resource);
- //m_resourcesByName.remove[resource->name()];
- //m_resourcesByFilename.remove[resource->filename()];
+ if (removedFromDisk) {
+ m_resourcesByName.remove(resource->name());
+ m_resourcesByFilename.remove(resource->filename());
+ delete resource;
+ } else {
+ // TODO: save blacklist to config file and load it again on next start
+ m_resourceBlackList << resource;
+ }
- delete resource;
-
return true;
}
QList<T*> resources() {
loadLock.lock();
QList<T*> resourceList = m_resourcesByFilename.values();
+ foreach(T* r, m_resourceBlackList) {
+ resourceList.removeOne(r);
+ }
loadLock.unlock();
return resourceList;
}
@@ -313,7 +323,7 @@
QHash<QString, T*> m_resourcesByName;
QHash<QString, T*> m_resourcesByFilename;
-
+ QList<T*> m_resourceBlackList;
QList<KoResourceServerObserver<T>*> m_observers;
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic