summaryrefslogtreecommitdiffstats
path: root/src/corelib/animation/qabstractanimation.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Revert "Remove timeStep parameter from QAnimationDrive::advanceAnimation"Lars Knoll11 days1-12/+16
| | | | | | | | | | This reverts commit f51b690e91bb2d7c8a03c5cef42abca37d97f8bb. The commit made all animation tests in qtdeclarative on macOS flaky. Change-Id: I4ccaa879df7e2ba7e253657de01cbabc9b2c655f Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Remove timeStep parameter from QAnimationDrive::advanceAnimationVolker Hilsheimer2020-09-031-16/+12
| | | | | | | | | | | | | | Addresses ### Qt 6 comment, and documentation pointing out that the parameter value is ignored. It wasn't ignored in the code, but that's the kind of change we can make now. With this change, QUnifiedTimer::updateAnimationTimers is only called with -1 as the currentTick input parameter, also from Qt Declarative. Make it default, so that leaf modules can be fixed. Once that it done, the parameter can be removed completely. Change-Id: I80c57ff92f3b615b932dd73d711cf6397347efd8 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* QAnimationDriver: remove deprecated startTime(), setStartTime()Edward Welbourne2020-08-281-31/+0
| | | | | | | Deprecated since 5.13 Change-Id: Ie833647e4bd87698a882352f89b4727790ffeeaa Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Another round of 0->nullptr cleanupAllan Sandfeld Jensen2020-07-311-2/+2
| | | | | Change-Id: Ic8db7dc252f8fea46eb5a4f334726d6c7f4645a6 Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
* Tidy nullptr usageAllan Sandfeld Jensen2019-12-061-4/+4
| | | | | | | | | | | Move away from using 0 as pointer literal. Done using clang-tidy. This is not complete as run-clang-tidy can't handle all of qtbase in one go. Change-Id: I1076a21f32aac0dab078af6f175f7508145eece0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Merge remote-tracking branch 'origin/5.12' into devLiang Qi2019-06-251-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/gui/painting/qdrawhelper.cpp src/gui/text/qdistancefield.cpp src/gui/text/qdistancefield_p.h src/network/ssl/qsslsocket_openssl.cpp src/plugins/platforms/android/qandroidinputcontext.cpp src/widgets/styles/qstylesheetstyle.cpp Done-With: Timur Pocheptsov <timur.pocheptsov@qt.io> Change-Id: Ia7daad21f077ea889898f17734ec46303e71fe6b
| * Report correct state change when destroying QAbstractAnimationTor Arne Vestbø2019-06-201-1/+1
| | | | | | | | | | Change-Id: Ibe5310e20268d1baa5b329a4d02a3dc38d875008 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Merge remote-tracking branch 'origin/5.13' into devLiang Qi2019-06-141-0/+2
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: qmake/generators/makefile.cpp qmake/generators/unix/unixmake2.cpp src/corelib/thread/qthread_unix.cpp tests/auto/corelib/tools/qsharedpointer/tst_qsharedpointer.cpp Change-Id: I1df0d4ba20685de7f9300bf07458c13376493408
| * | Fix invalid vptr during destruction of animationsAllan Sandfeld Jensen2019-05-231-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes UBSAN warnings about objects used after partial destruction. Change-Id: Iceea083a77d47335ef595c0ff97b87f35f42e56f Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-04-051-1/+1
|\ \ \ | |/ / | | | | | | Change-Id: If4974bbf0a166de244dd57cb71b05fa28bcc34ce
| * | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-04-041-1/+1
| |\ \ | | |/ | | | | | | Change-Id: Ia7328524f2cd9d5995ac8705f0fe0bf570b2e831
| | * Doc: Use the \nullptr macro instead of 0Venugopal Shivashankar2019-04-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | This enables overriding the macro so that it translates to 'None' in the Qt for Python context. Change-Id: Ib3cecf57eeb0405a1929309b71e9f012a07f11cf Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
* | | Use QScopedValueRollback more as a reentrancy guardAllan Sandfeld Jensen2019-03-261-8/+8
|/ / | | | | | | | | | | | | It is documented for the use, but we were rarely using it. Change-Id: I812b9e6c8fbf204aba43ce2b79eca308ca75de88 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | QAnimationDriver: mark obsolete functions as deprecatedChristian Ehrlicher2019-02-051-0/+2
|/ | | | | | | | | Mark the two long obsolete (and empty) functions as deprecated so they can be removed with Qt6: - setStartTime()/startTime() Change-Id: I7ee1d99ff194860e41723909f81adc181a71ec7c Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Merge remote-tracking branch 'origin/5.11' into 5.12Liang Qi2018-10-171-4/+0
|\ | | | | | | | | | | | | | | Conflicts: src/plugins/platformthemes/platformthemes.pro src/printsupport/kernel/qplatformprintdevice.cpp Change-Id: Iac01729ad954bb1c7af5867d982eb243b2139ee6
| * Modernize the "animation" featureLiang Qi2018-10-121-4/+0
| | | | | | | | | | | | Change-Id: Ibc164b3df3cf87db569ef4813de458a9067b7f7d Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | Modernize the "thread" featureUlf Hermann2018-08-171-10/+2
|/ | | | | | | | | | Add it to configure.json and replace all occurrences of QT_NO_THREAD with QT_CONFIG(thread). Add conditions for other features that depend on thread support. Remove conditions where we can use the QMutex and QThreadStorage stubs. Change-Id: I284e5d794fda9a4c6f4a1ab29e55aa686272a0eb Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* doc: Add missing return types to \fn commands, fix mis-specified onesMartin Smith2018-01-181-4/+4
| | | | | | | | | | | This update corrects several qdoc warnings about undocumented parameters, which are actually caused when the return type is not included in the \fn command, or when the return type is mis-specified (includes static, or lacks needed template parameters). Change-Id: Ic49139b88424e93609fbd01bc0836436d13a8f9a Reviewed-by: Topi Reiniö <topi.reinio@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Use a custom QAnimationDriver to take control over timeJan Arve Sæther2017-12-021-2/+2
| | | | | | | This should reduce flakyness of tests. Change-Id: I26e0a97f7cd3e7cee2ffb44188300c37578cddd7 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
* QtCore: include mocsThiago Macieira2017-05-051-0/+1
| | | | | | | | | | | | | | | | | | | Compilation and link times in CPU seconds with GCC 7, using precompiled headers (not including moc, rcc, uic, etc. steps or headersclean): Before After Debug -O0 198,1 180,3 Debug -Og 240,7 229,2 Release -O3 267,1 249,2 Release LTO 239,4 229,8 QtCore required a little manual adjusting because some files are bootstrapped into moc itself and into qmake. Change-Id: I84e363d735b443cb9beefffd14b8b57c10e7da36 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Avoid compile warnings in qabstractanimation.cppUlf Hermann2017-01-031-0/+2
| | | | | | Change-Id: I57f90fc335b50231fb2093f096ad38168d476145 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Updated license headersJani Heikkinen2016-01-151-14/+20
| | | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: I046ec3e47b1876cd7b4b0353a576b352e3a946d9 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Animation classes: micro-optimize loops.Friedemann Kleint2015-02-141-4/+7
| | | | | | | | Don't use index-based iteration, but use iterators assigning end() to a variable. Change-Id: Ia87532349855fa3baa748b62224fc8adf3395dc0 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Update copyright headersJani Heikkinen2015-02-111-7/+7
| | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Outdated header.LGPL removed (use header.LGPL21 instead) Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing combination. New header.LGPL-COMM taken in the use file which were using old header.LGPL3 (src/plugins/platforms/android/extract.cpp) Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license combination Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
* Update license headers and add new license filesMatti Paaso2014-09-241-19/+11
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 - Removed LICENSE.GPL Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2 Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
* Use a dedicated timer for the animation driver.Gunnar Sletta2014-09-111-3/+3
| | | | | | | | | | | | | | | | | QUnifiedTimer::elapsed() was implemented using driverStartTime + time.elapsed() while the driver was running, but time.elapsed already contains driverStartTime so that was counted twice. This caused repeating timers to fire immediately once they first had fired, if the animation driver was started while it was running. Separate the two timers. Animation driver time restarts from 0 every time it starts. Change-Id: Icf5cd0381b121b2355d7c6ec3edd0997721cbcdf Task-number: QTBUG-41198 Reviewed-by: Michael Brasser <michael.brasser@live.com>
* Incorporate fixes from QQmlAnimationTimer into QAnimationTimer.Michael Brasser2014-08-221-16/+13
| | | | | | | | | | | | | | Incorporates animation timer fixes in: * 7da483bfbefcaabb1dbbf3e2f1d5b5f7aadc3b06 * b02eeeee586abe343b8866385c1327ac009b3ef0 * 59d5c5cf555a51cd7559cea197a198ef3a792614 from qtdeclarative. With these changes, we no longer need to call updateAnimationTimers in QUnifiedTimer::startTimers. Change-Id: Ic24501cfdc3cb572bd891d84f684f11c3bef1b50 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Rework how animationsystem interoperate with an animation driver.Gunnar Sletta2014-08-201-36/+85
| | | | | | | | | | | | | | | | | We need to keep track of both wall time which are used for pauses and actual animation driver time which is used for actual animations. When switching between these, we need to also maintain the temporal drift potentially introduced by the driver and also the time that has passed in wall-time from when a pause has started until an action animation takes over. This change introduces a well defined elapsed() function in QUnifiedTimer which will return the right value based on which mode we are currently in. It also introduces start/stopAnimationDriver functions which helps us maintain the temporal drift and pause-delta. Change-Id: I5b5100432a6db444a413d1bca4f2d5f800e8cf3e Reviewed-by: Michael Brasser <michael.brasser@live.com>
* Allow to control animations frame rate from a custom QAnimationDriverTimur Artikov2014-04-291-3/+4
| | | | | | | | | | Don't use time from the global timer (QUnifiedTimer::time.elapsed()) for animations updating when an user overrides QAnimationDriver::elapsed() Task-number: QTBUG-38390 Change-Id: Ic1470b43d8bbc0ee0a2bbb87f7173f97ba03f852 Reviewed-by: Michael Brasser <michael.brasser@live.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Prevent QUnifiedTimer from ticking backwards.Michael Brasser2014-04-081-4/+6
| | | | | | | | | | | | | | | This could happen in the following situation: * a custom animation driver with fixed delta * a triple-buffering scheme (rendering ahead a frame) * a second animation timer starting while a first was active This would cause QUnifiedTimer::startTimers() to trigger QUnifiedTimer::updateAnimationTimers(-1), and use the current time from the QElapsedTimer rather than the animation driver. This time could be less than the last reported time from the animation driver. Change-Id: Ibf1796fcb99f288d4946b30e5e7225695aa61781 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Doc: Adding mark-up to boolean default values.Jerome Pasion2013-10-081-1/+1
| | | | | | | | | | | | | | | | | Default values should have mark-up to denote that they are code. This commit changes: -"property is true" to "property is \c true". -"Returns true" to "Returns \c true". -"property is false" to "property is \c false". -"returns true" to "returns \c true". -"returns false" to "returns \c false". src/3rdparty and non-documentation instances were ignored. Task-number: QTBUG-33360 Change-Id: Ie87eaa57af947caa1230602b61c5c46292a4cf4e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Emit animation driver signals after we change the state.Gunnar Sletta2013-04-171-2/+2
| | | | | Change-Id: I4d5d6efdcb519cd4bb53626ae9412a4f5f130689 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-181-1/+1
| | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-221-24/+24
| | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* Doc: Add \inmodule QtCore to all QtCore class doc bodiesThiago Macieira2012-08-231-0/+4
| | | | | Change-Id: I19100755c97cc155c76a859e19940e9f9222d34e Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Fix some spelling errorsSergio Ahumada2012-07-111-2/+2
| | | | | | Change-Id: I19d3b2e9a5180b13deb828b55195404ef20be295 Reviewed-by: Daniel Teske <daniel.teske@nokia.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Use QPointer instead of QWeakPointer.Stephen Kelly2012-06-051-1/+1
| | | | | | | | The use of QWeakPointer for tracking QObject pointers is to be deprecated. Change-Id: If460ca7f515db77af24030152f4bd56e1a5fae7c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Make sure animation drivers knows about the temporal offset after a pauseGunnar Sletta2012-05-111-0/+28
| | | | | | Change-Id: I932e469389241f6a12816b52180936f061cd78f8 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@nokia.com> Reviewed-by: J-P Nurmi <j-p.nurmi@nokia.com>
* Avoid advancing animations outside the animation "tick"Gunnar Sletta2012-02-091-1/+7
| | | | | | | | | | | | | | | We have logic to prevent animations from starting in the middle of an animation as a result of a previously slow frame. This was based on current time, not the animation driver time and would cause severe jumping when custom animation drivers were being used. Also, this logic would trigger multiple animation runs per frame, which is very bad for performance, so this change introduces a threshold of 50ms to compensate for that. 50ms because that is triplebuffer limit. Change-Id: I1c7ebac30060e849d03c14d62411c2b953854d98 Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
* Remove "All rights reserved" line from license headers.Jason McDonald2012-01-301-1/+1
| | | | | | | | | | As in the past, to avoid rewriting various autotests that contain line-number information, an extra blank line has been inserted at the end of the license text to ensure that this commit does not change the total number of lines in the license header. Change-Id: I311e001373776812699d6efc045b5f742890c689 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Update contact information in license headers.Jason McDonald2012-01-231-1/+1
| | | | | | | Replace Nokia contact email address with Qt Project website. Change-Id: I431bbbf76d7c27d8b502f87947675c116994c415 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Abstract QUnifiedTimer.Michael Brasser2012-01-121-104/+337
| | | | | | | | | | | | | QUnifiedTimer now controls QAbstractAnimationTimers, which in turn can be used to drive specific animation systems. The purpose of this change is to allow the QML animation system to be rewritten so that it does not depend on QAbstractAnimation. Change-Id: If06475002e41ba85b1b86b5dd4788de6d27d035d Reviewed-by: Martin Jones <martin.jones@nokia.com> Reviewed-by: Yunqiao Yin <charles.yin@nokia.com>
* Use explicit Qt::TimerTypes when starting animation timers.Bradley T. Hughes2012-01-051-2/+6
| | | | | | | | | | | | | | | Similar to commit 4e1ad49998cf782ccc88e7e80fbd05c722658a16, we know that CoarseTimers are worst in their first firing, so we prefer a PreciseTimer for short pause animations to avoid inaccuracies. If the timeout is too big, we use a CoarseTimer anyway (current threshold is 2000ms). The timer that drives the QDefaultAnimationDriver is always a PreciseTimer. Change-Id: I0939357d768b804f9f9bab3adf5ed1d0f7e012e7 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* Update copyright year in license headers.Jason McDonald2012-01-051-1/+1
| | | | | Change-Id: I02f2c620296fcd91d4967d58767ea33fc4e1e7dc Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Fix possible jump in animation timer.Michael Brasser2011-12-141-0/+4
| | | | | | | | | | | | When starting new animations with existing animations running, ensure we force an update to the timer first, so that the new animations can't mistakenly start with a very large delta. This fixes tst_qdeclarativeanimations::alwaysRunToEndRestartBug failure on slow machines. Change-Id: Ida4e5dcf0ff792e6bfe0d244b6e969d04d0b20fa Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Stop animation driver in the appropriate place.Michael Brasser2011-12-131-2/+2
| | | | | | | | | Calling stop from restartAnimationTimer was incorrect (it was initially added as a fix after the introduction of QAnimationDriver, but this is a better location for the fix). Change-Id: I2507096b846ada061e36a9ece6aa814d801ddd53 Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* Only call profiler callback once per animation tick.Michael Brasser2011-12-131-3/+2
| | | | | Change-Id: I369afdf34ded2c6327ce36cdb80fab51bf89a1b5 Reviewed-by: Christiaan Janssen <christiaan.janssen@nokia.com>
* Cleanup pause timer handling in QUnifiedTimer.Michael Brasser2011-12-131-11/+10
| | | | | | | | | The animationTimer is now only used for pauses, so can be renamed to pauseTimer, and directly queried for whether it is active. Change-Id: I3d9319b6ee76158e875ab43657126a0aa0a1cf2e Reviewed-by: Leonardo Sobral Cunha <leo.cunha@nokia.com> Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Fix possible jump in animation timer.Michael Brasser2011-12-131-24/+40
| | | | | | | | | | | | If both a stop and start happen within an event loop, ensure they are processed in order. Based on a patch from Charles Yin. Task-number: QTBUG-22865 Change-Id: I6131bd43a6ba5ad4fa37c863a9f4598bf2ac0e01 Reviewed-by: Leonardo Sobral Cunha <leo.cunha@nokia.com> Reviewed-by: Martin Jones <martin.jones@nokia.com>
* Fixed QUnifiedTimer cleanup.Kim Motoyoshi Kalland2011-11-281-2/+2
| | | | | | | | | | When destroying QUnifiedTimer's instance, its default animation driver is destroyed as well. This patch avoids creating another QUnifiedTimer instance when the animation driver's destructor calls QUnifiedTimer::instance(). Change-Id: I9cf254a9d04d79447baa8f27625c3890c3645f08 Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>