summaryrefslogtreecommitdiffstats
path: root/tools/qmlviewer
diff options
context:
space:
mode:
authorWarwick Allison <warwick.allison@nokia.com>2009-05-15 06:12:34 (GMT)
committerWarwick Allison <warwick.allison@nokia.com>2009-05-15 06:12:34 (GMT)
commit0b36923501e0c5eaf28e25a928cf8aeea11b0062 (patch)
tree575e6c04ecb9d6d89eea634885ea62a60902081b /tools/qmlviewer
parent272c26b6daf3e48c3f338f4c78cc9e694ac7993f (diff)
downloadQt-0b36923501e0c5eaf28e25a928cf8aeea11b0062.zip
Qt-0b36923501e0c5eaf28e25a928cf8aeea11b0062.tar.gz
Qt-0b36923501e0c5eaf28e25a928cf8aeea11b0062.tar.bz2
Fix opening new XML when skinned.
Diffstat (limited to 'tools/qmlviewer')
-rw-r--r--tools/qmlviewer/qmlviewer.cpp29
-rw-r--r--tools/qmlviewer/qmlviewer.h1
2 files changed, 23 insertions, 7 deletions
diff --git a/tools/qmlviewer/qmlviewer.cpp b/tools/qmlviewer/qmlviewer.cpp
index 97e29f1..9bce7ed 100644
--- a/tools/qmlviewer/qmlviewer.cpp
+++ b/tools/qmlviewer/qmlviewer.cpp
@@ -112,6 +112,9 @@ void QmlViewer::createMenu(QMenuBar *menu, QMenu *flatmenu)
QDir dir(":/skins/","*.skin");
const QFileInfoList l = dir.entryInfoList();
QAction *skinAction = new QAction(tr("None"), parent);
+ skinAction->setCheckable(true);
+ if (currentSkin.isEmpty())
+ skinAction->setChecked(true);
skinActions->addAction(skinAction);
skinMenu->addAction(skinAction);
mapper->setMapping(skinAction, "");
@@ -123,6 +126,9 @@ void QmlViewer::createMenu(QMenuBar *menu, QMenu *flatmenu)
skinAction = new QAction(name, parent);
skinActions->addAction(skinAction);
skinMenu->addAction(skinAction);
+ skinAction->setCheckable(true);
+ if (file == currentSkin)
+ skinAction->setChecked(true);
mapper->setMapping(skinAction, file);
connect(skinAction, SIGNAL(triggered()), mapper, SLOT(map()));
}
@@ -237,7 +243,10 @@ void QmlViewer::openQml(const QString& fileName)
canvas->execute();
qWarning() << "Wall startup time:" << t.elapsed();
- resize(sizeHint());
+ canvas->resize(canvas->sizeHint());
+
+ if (!skin)
+ resize(sizeHint());
#ifdef QTOPIA
show();
@@ -260,6 +269,7 @@ public:
fit = fit.scale(qreal(size.width())/m_screenSize.width(),
qreal(size.height())/m_screenSize.height());
setTransform(fit);
+ QApplication::syncX();
}
QMenu* menu;
@@ -297,7 +307,6 @@ void PreviewDeviceSkin::setPreview(QWidget *formWidget)
void PreviewDeviceSkin::setPreviewAndScale(QWidget *formWidget)
{
setScreenSize(formWidget->sizeHint());
- formWidget->setFixedSize(formWidget->sizeHint());
formWidget->setParent(this, Qt::SubWindow);
formWidget->setAutoFillBackground(true);
setView(formWidget);
@@ -331,6 +340,11 @@ void QmlViewer::setSkin(const QString& skinDirectory)
// XXX have been signalled from an item in a menu we're replacing,
// XXX hence some rather convoluted resetting here...
+ if (currentSkin == skinDirectory)
+ return;
+
+ currentSkin = skinDirectory;
+
QString err;
if (skin) {
skin->hide();
@@ -339,15 +353,15 @@ void QmlViewer::setSkin(const QString& skinDirectory)
DeviceSkinParameters parameters;
if (!skinDirectory.isEmpty() && parameters.read(skinDirectory,DeviceSkinParameters::ReadAll,&err)) {
- if (menuBar())
- menuBar()->deleteLater();
+ layout()->setEnabled(false);
+ setMenuBar(0);
if (!err.isEmpty())
qWarning() << err;
skin = new PreviewDeviceSkin(parameters,this);
+ canvas->resize(canvas->sizeHint());
skin->setPreviewAndScale(canvas);
createMenu(0,skin->menu);
skin->show();
- QApplication::syncX();
} else {
skin = 0;
clearMask();
@@ -361,6 +375,7 @@ void QmlViewer::setSkin(const QString& skinDirectory)
setParent(0,windowFlags()); // recreate
canvas->move(0,menuBar()->sizeHint().height()+1);
setGeometry(g);
+ layout()->setEnabled(true);
show();
}
canvas->show();
@@ -395,8 +410,8 @@ void QmlViewer::setRecordPeriod(int ms)
void QmlViewer::sceneResized(QSize size)
{
if (size.width() > 0 && size.height() > 0) {
- //if (skin)
- //skin->setScreenSize(size);
+ if (skin)
+ skin->setScreenSize(size);
}
}
diff --git a/tools/qmlviewer/qmlviewer.h b/tools/qmlviewer/qmlviewer.h
index 8bbe275..74044b3 100644
--- a/tools/qmlviewer/qmlviewer.h
+++ b/tools/qmlviewer/qmlviewer.h
@@ -80,6 +80,7 @@ private:
int record_autotime;
bool devicemode;
QAction *recordAction;
+ QString currentSkin;
QFxTestEngine *testEngine;
};