diff options
-rw-r--r-- | src/declarative/fx/qfxanchors.cpp | 8 | ||||
-rw-r--r-- | src/declarative/qml/qmlexpression.cpp | 4 | ||||
-rw-r--r-- | tools/qmlviewer/qmlviewer.cpp | 4 |
3 files changed, 10 insertions, 6 deletions
diff --git a/src/declarative/fx/qfxanchors.cpp b/src/declarative/fx/qfxanchors.cpp index 09776e5..085bbc7 100644 --- a/src/declarative/fx/qfxanchors.cpp +++ b/src/declarative/fx/qfxanchors.cpp @@ -181,6 +181,9 @@ void QFxAnchorsPrivate::centerInChanged() void QFxAnchorsPrivate::clearItem(QFxItem *item) { + Q_Q(QFxAnchors); + if (!item) + return; if (fill == item) fill = 0; if (centerIn == item) @@ -213,6 +216,9 @@ void QFxAnchorsPrivate::clearItem(QFxItem *item) baseline.item = 0; usedAnchors &= ~QFxAnchors::HasBaselineAnchor; } + QFxItemPrivate *p = + static_cast<QFxItemPrivate *>(QGraphicsItemPrivate::get(item)); + p->dependantAnchors.removeAll(q); } void QFxAnchorsPrivate::addDepend(QFxItem *item) @@ -232,7 +238,7 @@ void QFxAnchorsPrivate::remDepend(QFxItem *item) return; QFxItemPrivate *p = static_cast<QFxItemPrivate *>(QGraphicsItemPrivate::get(item)); - p->dependantAnchors.removeAll(q); + p->dependantAnchors.removeOne(q); } bool QFxAnchorsPrivate::isItemComplete() const diff --git a/src/declarative/qml/qmlexpression.cpp b/src/declarative/qml/qmlexpression.cpp index b07ee4c..d2bf4a8 100644 --- a/src/declarative/qml/qmlexpression.cpp +++ b/src/declarative/qml/qmlexpression.cpp @@ -109,7 +109,7 @@ void QmlExpressionPrivate::init(QmlContext *ctxt, void *expr, QmlRefCount *rc, QmlEngine *engine = ctxt->engine(); QmlEnginePrivate *ep = QmlEnginePrivate::get(engine); QScriptEngine *scriptEngine = QmlEnginePrivate::getScriptEngine(engine); -#ifndef Q_OS_SYMBIAN //XXX Why doesn't this work? +#if !defined(Q_OS_SYMBIAN) && !defined(Q_OS_WIN32) //XXX Why doesn't this work? if (!dd->programs.at(progIdx)) { dd->programs[progIdx] = new QScriptProgram(scriptEngine->compile(data->expression, data->fileName, data->line)); @@ -119,7 +119,7 @@ void QmlExpressionPrivate::init(QmlContext *ctxt, void *expr, QmlRefCount *rc, QScriptContext *scriptContext = scriptEngine->pushCleanContext(); scriptContext->pushScope(ep->contextClass->newContext(ctxt, me)); -#ifndef Q_OS_SYMBIAN +#if !defined(Q_OS_SYMBIAN) && !defined(Q_OS_WIN32) data->expressionFunction = scriptEngine->evaluate(*dd->programs[progIdx]); #else data->expressionFunction = scriptEngine->evaluate(data->expression); diff --git a/tools/qmlviewer/qmlviewer.cpp b/tools/qmlviewer/qmlviewer.cpp index a8034cf..60fa13a 100644 --- a/tools/qmlviewer/qmlviewer.cpp +++ b/tools/qmlviewer/qmlviewer.cpp @@ -606,10 +606,8 @@ void QmlViewer::reload() void QmlViewer::open() { QString fileName = QFileDialog::getOpenFileName(this, tr("Open QML file"), currentFileName, tr("QML Files (*.qml)")); - if (!fileName.isEmpty()) { + if (!fileName.isEmpty()) openQml(fileName); - QTimer::singleShot(0, this, SLOT(reload())); - } } void QmlViewer::executeErrors() |