[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: koffice/libs/resources
From: Boudewijn Rempt <boud () valdyas ! org>
Date: 2009-09-27 10:13:30
Message-ID: 1254046410.436169.30201.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1028466 by rempt:
make it possible to cancel the loading of resources
M +11 -8 KoResourceServer.h
M +5 -0 KoResourceServerProvider.cpp
M +1 -1 KoResourceServerProvider.h
--- trunk/koffice/libs/resources/KoResourceServer.h #1028465:1028466
@@ -67,13 +67,16 @@
*/
QString extensions() { return m_extensions; }
+ void cancel() { m_cancelled = true; }
+
private:
QString m_type;
QString m_extensions;
protected:
- QMutex loadLock;
+ bool m_cancelled;
+ QMutex m_loadLock;
};
@@ -103,7 +106,7 @@
kDebug(30009) << "loading resources for type " << type();
QStringList uniqueFiles;
- while (!filenames.empty())
+ while (!filenames.empty() && !m_cancelled)
{
QString front = filenames.first();
filenames.pop_front();
@@ -115,7 +118,7 @@
// the resource to find out whether they are really the same, but for now this
// will prevent the same brush etc. showing up twice.
if (uniqueFiles.empty() || uniqueFiles.indexOf(fname) == -1) {
- loadLock.lock();
+ m_loadLock.lock();
uniqueFiles.append(fname);
T* resource = createResource(front);
if (resource->load() && resource->valid())
@@ -134,7 +137,7 @@
else {
delete resource;
}
- loadLock.unlock();
+ m_loadLock.unlock();
}
}
kDebug(30009) << "done loading resources for type " << type();
@@ -206,12 +209,12 @@
}
QList<T*> resources() {
- loadLock.lock();
+ m_loadLock.lock();
QList<T*> resourceList = m_resources;
foreach(T* r, m_resourceBlackList) {
resourceList.removeOne(r);
}
- loadLock.unlock();
+ m_loadLock.unlock();
return resourceList;
}
@@ -258,7 +261,7 @@
*/
void addObserver(KoResourceServerObserver<T>* observer, bool notifyLoadedResources = true)
{
- loadLock.lock();
+ m_loadLock.lock();
if(observer && !m_observers.contains(observer)) {
m_observers.append(observer);
@@ -268,7 +271,7 @@
}
}
}
- loadLock.unlock();
+ m_loadLock.unlock();
}
/**
--- trunk/koffice/libs/resources/KoResourceServerProvider.cpp #1028465:1028466
@@ -73,6 +73,11 @@
m_server->loadResources(m_fileNames);
}
+void KoResourceLoaderThread::cancel()
+{
+ m_server->cancel();
+}
+
QStringList KoResourceLoaderThread::getFileNames( const QString & extensions)
{
QStringList extensionList = extensions.split(':');
--- trunk/koffice/libs/resources/KoResourceServerProvider.h #1028465:1028466
@@ -46,9 +46,9 @@
/// loads the resources
void run();
+ void cancel();
private:
QStringList getFileNames( const QString & extensions);
-
KoResourceServerBase * m_server;
QStringList m_fileNames;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic