diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2014-06-08 12:26:52 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-06-08 15:00:04 +0200 |
commit | a9d9f43679cc0b85286ff7ed9457f79f5d9b1aab (patch) | |
tree | 00bae7fdcf0070180d82c1740755ec650852849a /src/core/qchangearbiter.cpp | |
parent | 364e9616b70ae3464fca64f541cdc7e666396e3b (diff) |
All Node subclasses now use same route to talk to QChangeArbiter
Node no longer inherits from QObservable as QObservable is meant for
use only by aspects.
Node stores a QChangeArbiter pointer directly so that we can call the
dedicated locking functions on it. The locking is needed for Node
subclasses as these live in the main thread which is not managed by
the QAspectmanager to work in sync with the QChangeArbiter.
Change-Id: I1151ca107b4cb29dd303371c0095c022c43bc008
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/core/qchangearbiter.cpp')
-rw-r--r-- | src/core/qchangearbiter.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/core/qchangearbiter.cpp b/src/core/qchangearbiter.cpp index 5bb349a21..508426969 100644 --- a/src/core/qchangearbiter.cpp +++ b/src/core/qchangearbiter.cpp @@ -96,8 +96,8 @@ void QChangeArbiter::distributeQueueChanges(ChangeQueue *changeQueue) break; } - case QSceneChange::ComponentType: { - Component *subject = change->m_subject.m_component; + case QSceneChange::NodeType: { + Node *subject = change->m_subject.m_node; if (m_componentObservations.contains(subject)) { QObserverList &observers = m_componentObservations[subject]; Q_FOREACH (const QObserverPair&observer, observers) { @@ -144,21 +144,21 @@ void QChangeArbiter::registerObserver(QObserverInterface *observer, } void QChangeArbiter::registerObserver(QObserverInterface *observer, - Component *component, + Node *node, ChangeFlags changeFlags) { qCDebug(ChangeArbiter) << Q_FUNC_INFO; - if (!observer || !component) + if (!observer || !node) return; // Store info about which observers are watching which observables. // Protect access as this could be called from any thread QMutexLocker locker(&m_mutex); - QObserverList &observers = m_componentObservations[component]; + QObserverList &observers = m_componentObservations[node]; observers.append(QObserverPair(changeFlags, observer)); // Register ourselves with the observable as the intermediary - component->registerChangeArbiter(this); + node->registerChangeArbiter(this); } void QChangeArbiter::unregisterObserver(QObserverInterface *observer, @@ -174,7 +174,7 @@ void QChangeArbiter::unregisterObserver(QObserverInterface *observer, } } -void QChangeArbiter::unregisterObserver(QObserverInterface *observer, Component *subject) +void QChangeArbiter::unregisterObserver(QObserverInterface *observer, Node *subject) { QMutexLocker locker(&m_mutex); if (m_componentObservations.contains(subject)) { |