diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-04-30 11:43:12 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-04-30 11:43:12 (GMT) |
commit | 6103c282707bac2d585473d45900d69d475cf0c2 (patch) | |
tree | c36bd5818b85bcdc62226b6f430576f08c303e1c /src/declarative/qml/qdeclarativeworkerscript.cpp | |
parent | 3e6a12e90d05d24bca68128d60215c207a416ef6 (diff) | |
parent | 0b7a84684e0b2065208172d7145e838c7a653b83 (diff) | |
download | Qt-6103c282707bac2d585473d45900d69d475cf0c2.zip Qt-6103c282707bac2d585473d45900d69d475cf0c2.tar.gz Qt-6103c282707bac2d585473d45900d69d475cf0c2.tar.bz2 |
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-qml into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-qml: (68 commits)
Don't create an anchors element so that we can check that there aren't any
Ensure eval and Function are in the correct scope
Add availableFonts.qml for fonts examples.
Add Qt.fontFamilies() method
Avoid regenerating PathView delegates needlessly
When a model delegate is released, remove it from the scene immediately.
Fix assignment of value types to javascript var.
More doc fixes
Make QDeclarativeParserStatus method pure virtual to encourage right code.
Doc fixes
Fix error string
Add QML value types for math3d types
Fix assert in qdeclarativepathview
Avoid divisions by zero in qdeclarativetimeline
Initialize variable.
Doc: mention that size of delegate affects flicking performance.
buffer new items on initialization.
Compile with QT_NO_GRAPHICSEFFECT.
Fix translation context when qsTr is used in PropertyChanges.
missed files
...
Diffstat (limited to 'src/declarative/qml/qdeclarativeworkerscript.cpp')
-rw-r--r-- | src/declarative/qml/qdeclarativeworkerscript.cpp | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/src/declarative/qml/qdeclarativeworkerscript.cpp b/src/declarative/qml/qdeclarativeworkerscript.cpp index 138d979..c55998f 100644 --- a/src/declarative/qml/qdeclarativeworkerscript.cpp +++ b/src/declarative/qml/qdeclarativeworkerscript.cpp @@ -538,7 +538,7 @@ void QDeclarativeWorkerScriptEngine::run() by the \tt onMessage() handler of \tt myWorker. */ QDeclarativeWorkerScript::QDeclarativeWorkerScript(QObject *parent) -: QObject(parent), m_engine(0), m_scriptId(-1) +: QObject(parent), m_engine(0), m_scriptId(-1), m_componentComplete(true) { } @@ -565,7 +565,7 @@ void QDeclarativeWorkerScript::setSource(const QUrl &source) m_source = source; - if (m_engine) + if (engine()) m_engine->executeUrl(m_scriptId, m_source); emit sourceChanged(); @@ -580,7 +580,7 @@ void QDeclarativeWorkerScript::setSource(const QUrl &source) */ void QDeclarativeWorkerScript::sendMessage(const QScriptValue &message) { - if (!m_engine) { + if (!engine()) { qWarning("QDeclarativeWorkerScript: Attempt to send message before WorkerScript establishment"); return; } @@ -588,13 +588,19 @@ void QDeclarativeWorkerScript::sendMessage(const QScriptValue &message) m_engine->sendMessage(m_scriptId, QDeclarativeWorkerScriptEnginePrivate::scriptValueToVariant(message)); } -void QDeclarativeWorkerScript::componentComplete() +void QDeclarativeWorkerScript::classBegin() { - if (!m_engine) { + m_componentComplete = false; +} + +QDeclarativeWorkerScriptEngine *QDeclarativeWorkerScript::engine() +{ + if (m_engine) return m_engine; + if (m_componentComplete) { QDeclarativeEngine *engine = qmlEngine(this); if (!engine) { - qWarning("QDeclarativeWorkerScript: componentComplete() called without qmlEngine() set"); - return; + qWarning("QDeclarativeWorkerScript: engine() called without qmlEngine() set"); + return 0; } m_engine = QDeclarativeEnginePrivate::get(engine)->getWorkerScriptEngine(); @@ -602,7 +608,16 @@ void QDeclarativeWorkerScript::componentComplete() if (m_source.isValid()) m_engine->executeUrl(m_scriptId, m_source); + + return m_engine; } + return 0; +} + +void QDeclarativeWorkerScript::componentComplete() +{ + m_componentComplete = true; + engine(); // Get it started now. } /*! |