From bab72866f444443632528fadd240eea6f79d66e2 Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Thu, 30 Apr 2009 12:46:45 +1000 Subject: Compress sizeChanged signal to give width and height. --- src/declarative/util/qfxview.cpp | 16 ++++++++++++++-- src/declarative/util/qfxview.h | 1 + 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/declarative/util/qfxview.cpp b/src/declarative/util/qfxview.cpp index e285890..42047b6 100644 --- a/src/declarative/util/qfxview.cpp +++ b/src/declarative/util/qfxview.cpp @@ -49,6 +49,7 @@ #include "qicon.h" #include "qurl.h" #include "qboxlayout.h" +#include "qbasictimer.h" #include "qmlbindablevalue.h" #include "qml.h" @@ -100,6 +101,8 @@ public: QmlEngine engine; QmlComponent *component; + QBasicTimer resizetimer; + void init(); }; @@ -282,8 +285,17 @@ void QFxView::continueExecute() void QFxView::sizeChanged() { - if (d->root) - emit sceneResized(QSize(d->root->width(),d->root->height())); + // delay, so we catch both width and height changing. + d->resizetimer.start(0,this); +} + +void QFxView::timerEvent(QTimerEvent* e) +{ + if (e->timerId() == d->resizetimer.timerId()) { + if (d->root) + emit sceneResized(QSize(d->root->width(),d->root->height())); + d->resizetimer.stop(); + } } QFxItem* QFxView::addItem(const QString &xml, QFxItem* parent) diff --git a/src/declarative/util/qfxview.h b/src/declarative/util/qfxview.h index 3c4be20..c658f07 100644 --- a/src/declarative/util/qfxview.h +++ b/src/declarative/util/qfxview.h @@ -95,6 +95,7 @@ protected: virtual void resizeEvent(QResizeEvent *); void focusInEvent(QFocusEvent *); void focusOutEvent(QFocusEvent *); + void timerEvent(QTimerEvent*); private: friend class QFxViewPrivate; -- cgit v0.12