summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/declarative/util/qfxview.cpp16
-rw-r--r--src/declarative/util/qfxview.h1
-rw-r--r--tools/duiviewer/qfxviewer.cpp12
-rw-r--r--tools/duiviewer/qfxviewer.h1
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;