diff options
-rw-r--r-- | src/declarative/util/qfxview.cpp | 16 | ||||
-rw-r--r-- | src/declarative/util/qfxview.h | 1 | ||||
-rw-r--r-- | tools/duiviewer/qfxviewer.cpp | 12 | ||||
-rw-r--r-- | tools/duiviewer/qfxviewer.h | 1 |
4 files changed, 25 insertions, 5 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; diff --git a/tools/duiviewer/qfxviewer.cpp b/tools/duiviewer/qfxviewer.cpp index 7b39f53..b15a8bf 100644 --- a/tools/duiviewer/qfxviewer.cpp +++ b/tools/duiviewer/qfxviewer.cpp @@ -55,7 +55,7 @@ QFxViewer::QFxViewer(QFxTestEngine::TestMode testMode, const QString &testDir, Q QObject::connect(canvas, SIGNAL(sceneResized(QSize)), this, SLOT(sceneResized(QSize))); canvas->setFixedSize(width, height); - setFixedSize(width, height); + resize(width, height); } void QFxViewer::reload() @@ -217,15 +217,21 @@ void QFxViewer::setRecordPeriod(int ms) void QFxViewer::sceneResized(QSize size) { - if(size.width() > 0 && size.height() > 0) { + if (size.width() > 0 && size.height() > 0) { canvas->setFixedSize(size.width(), size.height()); if (skin) skin->setScreenSize(size); else - setFixedSize(size); + resize(size); } } +void QFxViewer::resizeEvent(QResizeEvent *) +{ + if (!skin) + canvas->setFixedSize(width(),height()); +} + void QFxViewer::keyPressEvent(QKeyEvent *event) { if (event->key() == Qt::Key_0 && devicemode) diff --git a/tools/duiviewer/qfxviewer.h b/tools/duiviewer/qfxviewer.h index 5733591..7a190c5 100644 --- a/tools/duiviewer/qfxviewer.h +++ b/tools/duiviewer/qfxviewer.h @@ -49,6 +49,7 @@ public slots: protected: virtual void keyPressEvent(QKeyEvent *); virtual void timerEvent(QTimerEvent *); + virtual void resizeEvent(QResizeEvent *); private: QString currentFileName; |