summaryrefslogtreecommitdiffstats
path: root/src/core/qchangearbiter.cpp
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2014-07-29 19:01:09 +0200
committerSean Harmer <sean.harmer@kdab.com>2014-08-14 15:17:28 +0200
commit33a8bcde37006fbe86afe4c1a396434728d91284 (patch)
treef4f3e7a68c6630d96417a4b15aab9a58c4b24d6d /src/core/qchangearbiter.cpp
parent1db5550224e29419c30b1aa17c8120a649748d5b (diff)
Allow observers + scene observers to monitor NodeCreated/NodeDeleted
Change-Id: Ie8e2d662d7b2bd7ef4335bdb7fcc3eb54572448a Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/core/qchangearbiter.cpp')
-rw-r--r--src/core/qchangearbiter.cpp55
1 files changed, 22 insertions, 33 deletions
diff --git a/src/core/qchangearbiter.cpp b/src/core/qchangearbiter.cpp
index 9a5b808aa..069043316 100644
--- a/src/core/qchangearbiter.cpp
+++ b/src/core/qchangearbiter.cpp
@@ -111,53 +111,42 @@ void QChangeArbiter::distributeQueueChanges(ChangeQueue *changeQueue)
if (change.isNull())
continue;
- switch (change->type()) {
-
- case NodeCreated: {
+ if (change->type() == NodeCreated) {
Q_FOREACH (QSceneObserverInterface *observer, d->m_sceneObservers)
observer->sceneNodeAdded(change);
- break;
}
-
- case NodeDeleted:
- case NodeAboutToBeDeleted: {
+ else if (change->type() == NodeAboutToBeDeleted || change->type() == NodeDeleted) {
Q_FOREACH (QSceneObserverInterface *observer, d->m_sceneObservers)
observer->sceneNodeRemoved(change);
- break;
}
- default : {
- switch (change->observableType()) {
-
- case QSceneChange::Observable: {
- QObservableInterface *subject = change->subject().m_observable;
- if (d->m_aspectObservations.contains(subject)) {
- QObserverList &observers = d->m_aspectObservations[subject];
- Q_FOREACH (const QObserverPair &observer, observers) {
- if ((change->type() & observer.first))
- observer.second->sceneChangeEvent(change);
- }
+ switch (change->observableType()) {
+
+ case QSceneChange::Observable: {
+ QObservableInterface *subject = change->subject().m_observable;
+ if (d->m_aspectObservations.contains(subject)) {
+ QObserverList &observers = d->m_aspectObservations[subject];
+ Q_FOREACH (const QObserverPair &observer, observers) {
+ if ((change->type() & observer.first))
+ observer.second->sceneChangeEvent(change);
}
- break;
}
+ break;
+ }
- case QSceneChange::Node: {
- QNode *subject = change->subject().m_node;
- if (d->m_nodeObservations.contains(subject->uuid())) {
- QObserverList &observers = d->m_nodeObservations[subject->uuid()];
- Q_FOREACH (const QObserverPair&observer, observers) {
- if ((change->type() & observer.first))
- observer.second->sceneChangeEvent(change);
- }
+ case QSceneChange::Node: {
+ QNode *subject = change->subject().m_node;
+ if (d->m_nodeObservations.contains(subject->uuid())) {
+ QObserverList &observers = d->m_nodeObservations[subject->uuid()];
+ Q_FOREACH (const QObserverPair&observer, observers) {
+ if ((change->type() & observer.first))
+ observer.second->sceneChangeEvent(change);
}
- break;
}
-
- } // observableType switch
break;
- } // default
+ }
- } // change type switch
+ } // observableType switch
}
}