summaryrefslogtreecommitdiff
path: root/libresourceqt/src/resource-set.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libresourceqt/src/resource-set.cpp')
-rw-r--r--libresourceqt/src/resource-set.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/libresourceqt/src/resource-set.cpp b/libresourceqt/src/resource-set.cpp
index 80974d2..64f7645 100644
--- a/libresourceqt/src/resource-set.cpp
+++ b/libresourceqt/src/resource-set.cpp
@@ -144,3 +144,37 @@ void ResourceSet::setAlwaysReply()
alwaysReply = true;
}
+void ResourceSet::connectedHandler()
+{
+ if (pendingAcquire) {
+ resourceEngine->acquireResources();
+ }
+}
+
+void ResourceSet::handleAcquire(quint32 bitmaskOfGrantedResources)
+{
+ QList<ResourceType> optionalResources;
+ qDebug("Acquired resources: 0x%04x", bitmaskOfGrantedResources);
+ for(int i=0;i < NumberOfTypes; i++) {
+ ResourceType type = (ResourceType)i;
+ quint32 bitmask = resourceTypeToLibresourceType(type);
+ qDebug("Checking if resource %x(%x) is in the set", i, bitmask);
+ if ((bitmask & bitmaskOfGrantedResources) == bitmask) {
+ if (resourceSet[i]->isOptional()) {
+ optionalResources << type;
+ }
+ resourceSet[i]->setGranted();
+ }
+ }
+ emit resourcesGranted(optionalResources);
+}
+
+void ResourceSet::handleDeny()
+{
+ for(int i=0;i < NumberOfTypes; i++) {
+ if(resourceSet[i] != NULL) {
+ resourceSet[i]->unsetGranted();
+ }
+ }
+}
+