summaryrefslogtreecommitdiffstats
path: root/tools/qmlviewer/qmlviewer.cpp
diff options
context:
space:
mode:
authorMartin Jones <martin.jones@nokia.com>2010-02-18 06:05:50 (GMT)
committerMartin Jones <martin.jones@nokia.com>2010-02-18 06:05:50 (GMT)
commitc8e266aaf21f470fd45ac61244466583b503fda2 (patch)
tree694c73b774cf77c590cecdfb1b6d14fcd5052a8b /tools/qmlviewer/qmlviewer.cpp
parent635b329592f26d64eeb6212b6056249b15293dcf (diff)
downloadQt-c8e266aaf21f470fd45ac61244466583b503fda2.zip
Qt-c8e266aaf21f470fd45ac61244466583b503fda2.tar.gz
Qt-c8e266aaf21f470fd45ac61244466583b503fda2.tar.bz2
QmlView API review. See QmlChanges.txt for details.
Diffstat (limited to 'tools/qmlviewer/qmlviewer.cpp')
-rw-r--r--tools/qmlviewer/qmlviewer.cpp37
1 files changed, 19 insertions, 18 deletions
diff --git a/tools/qmlviewer/qmlviewer.cpp b/tools/qmlviewer/qmlviewer.cpp
index 7c620ef..3cfbee2 100644
--- a/tools/qmlviewer/qmlviewer.cpp
+++ b/tools/qmlviewer/qmlviewer.cpp
@@ -80,6 +80,7 @@
#include <QAction>
#include <QFileDialog>
#include <QTimer>
+#include <QGraphicsObject>
#include <QNetworkProxyFactory>
#include <QKeyEvent>
#include <QMutex>
@@ -473,13 +474,12 @@ QmlViewer::QmlViewer(QWidget *parent, Qt::WindowFlags flags)
canvas = new QmlView(this);
canvas->setAttribute(Qt::WA_OpaquePaintEvent);
canvas->setAttribute(Qt::WA_NoSystemBackground);
- canvas->setContentResizable(!skin || !scaleSkin);
+ canvas->setResizeMode((!skin || !scaleSkin) ? QmlView::SizeRootObjectToView : QmlView::SizeViewToRootObject);
canvas->setFocus();
QObject::connect(canvas, SIGNAL(sceneResized(QSize)), this, SLOT(sceneResized(QSize)));
- QObject::connect(canvas, SIGNAL(initialSize(QSize)), this, SLOT(adjustSizeSlot()));
- QObject::connect(canvas, SIGNAL(errors(QList<QmlError>)), this, SLOT(executeErrors()));
- QObject::connect(canvas, SIGNAL(quit()), QCoreApplication::instance (), SLOT(quit()));
+ QObject::connect(canvas, SIGNAL(statusChanged(QmlView::Status)), this, SLOT(statusChanged()));
+ QObject::connect(canvas->engine(), SIGNAL(quit()), QCoreApplication::instance (), SLOT(quit()));
if (!(flags & Qt::FramelessWindowHint)) {
createMenu(menuBar(),0);
@@ -516,11 +516,6 @@ QmlViewer::~QmlViewer()
delete namFactory;
}
-void QmlViewer::adjustSizeSlot()
-{
- resize(sizeHint());
-}
-
QMenuBar *QmlViewer::menuBar() const
{
#if !defined(Q_OS_SYMBIAN)
@@ -731,7 +726,7 @@ void QmlViewer::setScaleSkin()
if (scaleSkin)
return;
scaleSkin = true;
- canvas->setContentResizable(!skin || !scaleSkin);
+ canvas->setResizeMode((!skin || !scaleSkin) ? QmlView::SizeRootObjectToView : QmlView::SizeViewToRootObject);
if (skin) {
canvas->setFixedSize(canvas->sizeHint());
skin->setScreenSize(canvas->sizeHint());
@@ -744,7 +739,7 @@ void QmlViewer::setScaleView()
return;
scaleSkin = false;
if (skin) {
- canvas->setContentResizable(!skin || !scaleSkin);
+ canvas->setResizeMode((!skin || !scaleSkin) ? QmlView::SizeRootObjectToView : QmlView::SizeViewToRootObject);
canvas->setMinimumSize(QSize(0,0));
canvas->setMaximumSize(QSize(16777215,16777215));
canvas->resize(skin->standardScreenSize());
@@ -889,7 +884,8 @@ void QmlViewer::openWgt(const QString& doc)
QUrl url(doc);
if (url.isRelative())
url = QUrl::fromLocalFile(doc);
- canvas->reset();
+ delete canvas->rootObject();
+ canvas->engine()->clearComponentCache();
QNetworkAccessManager * nam = canvas->engine()->networkAccessManager();
wgtreply = nam->get(QNetworkRequest(url));
connect(wgtreply,SIGNAL(finished()),this,SLOT(unpackWgt()));
@@ -971,7 +967,7 @@ void QmlViewer::unpackWgt()
void QmlViewer::openFile()
{
- QString cur = canvas->url().toLocalFile();
+ QString cur = canvas->source().toLocalFile();
if (useQmlFileBrowser) {
openQml("qrc:/content/Browser.qml");
} else {
@@ -983,9 +979,13 @@ void QmlViewer::openFile()
}
}
-void QmlViewer::executeErrors()
+void QmlViewer::statusChanged()
{
- if (tester) tester->executefailure();
+ if (canvas->status() == QmlView::Error && tester)
+ tester->executefailure();
+
+ if (canvas->status() == QmlView::Ready)
+ resize(sizeHint());
}
void QmlViewer::launch(const QString& file_or_url)
@@ -1008,7 +1008,8 @@ void QmlViewer::openQml(const QString& file_or_url)
if (!m_script.isEmpty())
tester = new QmlGraphicsTester(m_script, m_scriptOptions, canvas);
- canvas->reset();
+ delete canvas->rootObject();
+ canvas->engine()->clearComponentCache();
QmlContext *ctxt = canvas->rootContext();
ctxt->setContextProperty("qmlViewer", this);
#ifdef Q_OS_SYMBIAN
@@ -1058,7 +1059,7 @@ void QmlViewer::openQml(const QString& file_or_url)
}
}
- canvas->setUrl(url);
+ canvas->setSource(url);
QTime t;
t.start();
@@ -1125,7 +1126,7 @@ void QmlViewer::setSkin(const QString& skinDirOrName)
skin->deleteLater();
}
- canvas->setContentResizable(!skin || !scaleSkin);
+ canvas->setResizeMode((!skin || !scaleSkin) ? QmlView::SizeRootObjectToView : QmlView::SizeViewToRootObject);
DeviceSkinParameters parameters;
if (!skinDirectory.isEmpty() && parameters.read(skinDirectory,DeviceSkinParameters::ReadAll,&err)) {