2
* Copyright 2013 Canonical Ltd.
4
* This program is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU Lesser General Public License as published by
6
* the Free Software Foundation; version 3.
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU Lesser General Public License for more details.
13
* You should have received a copy of the GNU Lesser General Public License
14
* along with this program. If not, see <http://www.gnu.org/licenses/>.
17
#ifndef SCENERECTWATCHER_H
18
#define SCENERECTWATCHER_H
27
class SceneRectWatcher : public QObject {
30
SceneRectWatcher(QObject *parent = 0);
31
void setItem(QQuickItem *target);
34
void sceneRectChanged();
37
void onAscendantChanged();
38
void notifySceneRectChange();
41
void listenToAscendantsChanges();
42
void disconnectFromAscendantsChanges();
44
QList<QMetaObject::Connection> m_connections;
45
QPointer<QQuickItem> m_target;
47
// We send sceneRectChanged() with a delay avoid flooding sceneRectChanged()
48
// listeners during animations and also because it's common that more than
49
// one property changes during the same event loop iteration (e.g. ancestor.x()
51
QTimer m_sceneRectChangedTimer;
54
#endif // SCENERECTWATCHER_H