diff options
author | Liang Qi <liang.qi@qt.io> | 2017-04-21 11:08:23 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2017-04-21 11:08:24 +0200 |
commit | 0aaca005c0bb6267ddd14a84634c33c813e2d2c4 (patch) | |
tree | 2c09a2498618830b32e92f13450fab2210aae446 /src/quick/util | |
parent | 186cbe30939947e3a2d33b250fc861cbee361dfe (diff) | |
parent | 749a7212e903d8e8c6f256edb1836b9449cc7fe1 (diff) |
Merge remote-tracking branch 'origin/5.9' into dev
Change-Id: Ibed6ee74d36b4ce37391c82db00a0abd30d09e7a
Diffstat (limited to 'src/quick/util')
-rw-r--r-- | src/quick/util/qquickanimatorjob.cpp | 14 | ||||
-rw-r--r-- | src/quick/util/qquickfontloader.cpp | 4 | ||||
-rw-r--r-- | src/quick/util/qquickglobal.cpp | 1 | ||||
-rw-r--r-- | src/quick/util/qquickshortcut_p.h | 1 |
4 files changed, 15 insertions, 5 deletions
diff --git a/src/quick/util/qquickanimatorjob.cpp b/src/quick/util/qquickanimatorjob.cpp index 89007cff1f..caf702bde5 100644 --- a/src/quick/util/qquickanimatorjob.cpp +++ b/src/quick/util/qquickanimatorjob.cpp @@ -140,6 +140,14 @@ QObject *QQuickAnimatorProxyJob::findAnimationContext(QQuickAbstractAnimation *a void QQuickAnimatorProxyJob::updateCurrentTime(int) { + if (m_internalState != State_Running) + return; + + // A proxy which is being ticked should be associated with a window, (see + // setWindow() below). If we get here when there is no more controller we + // have a problem. + Q_ASSERT(m_controller); + // We do a simple check here to see if the animator has run and stopped on // the render thread. isPendingStart() will perform a check against jobs // that have been scheduled for start, but that will not yet have entered @@ -150,8 +158,7 @@ void QQuickAnimatorProxyJob::updateCurrentTime(int) // we might get the wrong value for this update, but then we'll simply // pick it up on the next iterationm when the job is stopped and render // thread is no longer using it. - if (m_internalState == State_Running - && !m_controller->isPendingStart(m_job) + if (!m_controller->isPendingStart(m_job) && !m_job->isRunning()) { stop(); } @@ -167,9 +174,9 @@ void QQuickAnimatorProxyJob::updateState(QAbstractAnimationJob::State newState, } } else if (newState == Stopped) { - syncBackCurrentValues(); m_internalState = State_Stopped; if (m_controller) { + syncBackCurrentValues(); m_controller->cancel(m_job); } } @@ -193,6 +200,7 @@ void QQuickAnimatorProxyJob::setWindow(QQuickWindow *window) if (m_job && m_controller) m_controller->cancel(m_job); m_controller = nullptr; + stop(); } else if (!m_controller && m_job) { m_controller = QQuickWindowPrivate::get(window)->animationController; diff --git a/src/quick/util/qquickfontloader.cpp b/src/quick/util/qquickfontloader.cpp index 3761a37a6d..21e8eda365 100644 --- a/src/quick/util/qquickfontloader.cpp +++ b/src/quick/util/qquickfontloader.cpp @@ -236,7 +236,7 @@ QQuickFontLoader::~QQuickFontLoader() /*! \qmlproperty url QtQuick::FontLoader::source - The url of the font to load. + The URL of the font to load. */ QUrl QQuickFontLoader::source() const { @@ -317,7 +317,7 @@ void QQuickFontLoader::updateFontInfo(const QString& name, QQuickFontLoader::Sta \qmlproperty string QtQuick::FontLoader::name This property holds the name of the font family. - It is set automatically when a font is loaded using the \c url property. + It is set automatically when a font is loaded using the \l source property. Use this to set the \c font.family property of a \c Text item. diff --git a/src/quick/util/qquickglobal.cpp b/src/quick/util/qquickglobal.cpp index 20bb23338d..2070fd7ff0 100644 --- a/src/quick/util/qquickglobal.cpp +++ b/src/quick/util/qquickglobal.cpp @@ -810,6 +810,7 @@ public: #ifndef QT_NO_DESKTOPSERVICES return QDesktopServices::openUrl(url); #else + Q_UNUSED(url); return false; #endif } diff --git a/src/quick/util/qquickshortcut_p.h b/src/quick/util/qquickshortcut_p.h index 93430ad893..db918058b2 100644 --- a/src/quick/util/qquickshortcut_p.h +++ b/src/quick/util/qquickshortcut_p.h @@ -111,6 +111,7 @@ protected: bool event(QEvent *event) Q_DECL_OVERRIDE; struct Shortcut { + Shortcut() : id(0) { } bool matches(QShortcutEvent *event) const; int id; QVariant userValue; |