aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/util
Commit message (Collapse)AuthorAgeFilesLines
* Remove QQmlV4HandleUlf Hermann2019-04-101-3/+3
| | | | | | | | This is just an alias for QV4::ReturnedValue. We can as well use the latter. Change-Id: Ibd2c038a3ca726b39a8f0f05e02922adb9fccbdb Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Remove unused includes of qv8engine_p.hUlf Hermann2019-04-091-1/+0
| | | | | Change-Id: Ic135a863581d29a3afb9c6c7f070d2630b3913b4 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QtDeclarative: replace deprecated functionsChristian Ehrlicher2019-02-133-3/+3
| | | | | | | | | | Replace the deprecated functions with it successors: - QFontMetrics::width() -> horizontalAdvance() - QLayout::setMargin() -> setContentsMargins() Change-Id: I2a2557cdb2eaec40e2c9955a0082372c582ec6b8 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* Merge remote-tracking branch 'origin/5.12' into devLiang Qi2019-01-291-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/3rdparty/masm/yarr/YarrJIT.cpp src/qml/compiler/qv4instr_moth.cpp src/quick/handlers/qquicksinglepointhandler_p.h src/quick/handlers/qquicktaphandler.cpp src/quick/items/context2d/qquickcontext2d.cpp Done-With: Ulf Hermann <ulf.hermann@qt.io> Change-Id: I109453131f9f0a05316ae37c7d6ed1edc8c0f9d4
| * Merge "Merge remote-tracking branch 'origin/5.12.1' into 5.12" into ↵Liang Qi2019-01-221-1/+1
| |\ | | | | | | | | | refs/staging/5.12
| | * Merge 5.12 into 5.12.1Kari Oikarinen2019-01-082-4/+28
| | |\ | | | | | | | | | | | | Change-Id: Ic746fbce93430867e2eda4bc7155d34e20a4aa2b
| | * | Fix typo in notify signal emissionRobert Griebl2018-12-101-1/+1
| | | | | | | | | | | | | | | | | | | | Change-Id: Ic2c298d14eb85ee8702eb751dd269eb0e3e11cc6 Reviewed-by: Michael Brasser <michael.brasser@live.com>
* | | | Merge remote-tracking branch 'origin/5.12' into devLiang Qi2019-01-221-1/+1
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf tests/auto/quick/qquickpathview/tst_qquickpathview.cpp Change-Id: Ic1f5e219a255d0613f7654368a5ce3eccb8f0ee9
| * | | Documentation: Start using the \nullptr macroFriedemann Kleint2019-01-211-1/+1
| | |/ | |/| | | | | | | | | | | | | Task-number: PYSIDE-903 Change-Id: I0c4640eb20157673eabb131e8834e79cbbf95d5c Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | | QML: Special case null as binding typeUlf Hermann2019-01-211-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This gives us the opportunity to map the JavaScript null to QVariant's concept of isNull(). [ChangeLog][QML] Assigning JavaScript null to incompatibly typed properties generates a compile error now, rather than a runtime error. Fixes: QTBUG-72098 Change-Id: I72fd1c30d84128c774230eaaea10455b2a0e064c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Merge remote-tracking branch 'origin/5.12' into devQt Forward Merge Bot2018-12-231-1/+9
|\| | | | | | | | | | | Change-Id: I9c3d282c11a556e616c5e1ba1b51e88b741327f6
| * | qquickpixmapcache: Fix invalidation of m_cache while iterating itRobin Burchell2018-12-221-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Releasing items from the cache modifies m_cache, which we cannot do with a range-for. Fixes: QTBUG-65077 Change-Id: I2efcf6a03b03982a54bb1aacff43c55c45782eaa Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * | nothread: do not delete reader thread object before it gets usedLorn Potter2018-12-131-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | exec is an empty function on nothread and returns right away, so the pixmap reader thread object gets deleted before it can download the url Task-number: QTBUG-72105 Change-Id: If205dbe12d0b5299b43a68e7d0d955a2b89b4af1 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* | | Avoid create an additional copy of an imageMikhail Svetkin2018-12-211-0/+12
| | | | | | | | | | | | | | | | | | | | | Try to convert an image in place instead of make a copy of the image. Change-Id: I6956c7002b1fac2c4f315b2c5396e5d7ca52d810 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Expose the target value in BehaviorsPaolo Angelelli2018-12-213-4/+26
| | | | | | | | | | | | | | | | | | | | | So that nested animation can use it. Change-Id: Ief40cda1dfe1ad9a38cf0d18fbf34456dc36e2ee Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Merge remote-tracking branch 'origin/5.12' into devQt Forward Merge Bot2018-12-121-3/+19
|\| | | | | | | | | | | | | | | | | | | | Conflicts: tests/auto/qml/debugger/qqmldebugjs/tst_qqmldebugjs.cpp Change-Id: Ic1dace832ad4b29023d24808b8617b5dcc915eb5
| * | Fix missing strike outDaniel Engelke2018-12-101-3/+19
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added <s></s> and <del></del> tag aka strike out to QQuickStyledText. QQuickStyledText covers the essential text decorations, apart from strike out. In order to use it, one had to switch to RichText, which comes with its own overhead and limitations. <s> for no longer accurate or no longer relevant content <del> for removed content Fixes: QTBUG-72376 Change-Id: I3c191d91d57afcc48090facc49d643f8ad708fb4 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into devQt Forward Merge Bot2018-11-011-2/+3
|\| | | | | | | Change-Id: I7a2b9bdb69512b2d52050d829b1b65f4fcd9d99d
| * [Micro]Optimize duplicate state name checkAlbert Astals Cid2018-10-251-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | With 9 states the benchmark showed QSet 0.00041 ms QVector 0.00016 ms QVLA 0.00015 ms Change-Id: Ie2de19bd8281b7fddd9ad4246035dcd0f3483102 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into devQt Forward Merge Bot2018-10-241-0/+8
|\| | | | | | | Change-Id: Ic67fa1536977310b15ba55ee2220536aacef2b3c
| * QQuickStateGroup: Warn if two states have the same nameAlbert Astals Cid2018-10-231-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | Otherwise it is silently ignored and given that we change states by name i think it's a thing the user would want to know that he made such a mistake, i know i would since i just lost some time figuring out why changes i made to a state didn't apply and it was because i had a duplicate state name in a long states definition Change-Id: I342e44829f7d32daf6eed0edad33f5b7a42ff5bf Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into devQt Forward Merge Bot2018-10-091-2/+4
|\| | | | | | | Change-Id: Ib37d3a31e34581fa542fa02d54fac77661d72614
| * Merge remote-tracking branch 'origin/5.11' into 5.12Liang Qi2018-10-081-2/+4
| |\ | | | | | | | | | | | | | | | | | | | | | Conflicts: src/3rdparty/masm/yarr/YarrJIT.h src/quick/items/qquickwindow.cpp Change-Id: I551404e1558d56c0b0626346ad1c86406bff0ec7
| | * Fix crash in QQuickAnimatorProxyJob::sceneGraphInitialized()Andrew Smolko2018-10-051-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | Check for null pointer to controller. Fixes: QTBUG-64402 Change-Id: Ic84bdc9c5cde0e65da436e1c85b40eaf6e3ed77a Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | | Merge remote-tracking branch 'origin/5.12' into devQt Forward Merge Bot2018-10-011-2/+0
|\| | | | | | | | | | | Change-Id: I2f106b4e5f73b8310bb57f81f1e325fa20db4538
| * | Doc: Remove references to Qt Quick 1Kai Koehne2018-10-011-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Qt Quick 1 is dead since Qt 5.0, so it doesn't make much sense anymore to link to different names there, or highlight behavioral differences. Task-number: QTBUG-70780 Change-Id: Iac5e0b226621f127714e722a11208ca1b21d977f Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | | QQuickPixmapReader: remove an unused QWaitConditionAndreas Hartmetz2018-09-131-3/+0
|/ / | | | | | | | | | | Change-Id: I309e934e1f58b9bda2d2a3453435befe4334caae Reviewed-by: Albert Astals Cid <aacid@kde.org> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Modernize loopsErik Verbruggen2018-08-161-36/+23
| | | | | | | | | | Change-Id: Iea29cc7abbfc73fb58b59f8ff4d9f8ba33ce09c3 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Encapsulate access to CompiledData::Object and CompiledData::ImportSimon Hausmann2018-07-311-5/+5
| | | | | | | | | | | | | | | | This will make it easier to move the data out of CompiledData::Unit and into a separate data structure. Change-Id: I32e6233a66f2279b44cc06ef7c3505db4a565f98 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Clean up compilation unit string resolutionSimon Hausmann2018-07-311-1/+1
| | | | | | | | | | | | | | | | | | Replace use of CompiledData::Unit::stringAt with CompilationUnit::stringAt as central place, in preparation for allowing derived compilation units to retrieve strings from base units. Change-Id: Ifafe6c18a9fd8d1e2259a60c17200124869b4c2d Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Clean up constant storage for CompiledData::BindingSimon Hausmann2018-07-311-3/+3
| | | | | | | | | | | | | | | | | | | | Store doubles in bindings in the constant table of the compilation unit instead of each binding. This removes one of the two 8 byte members of the value union and also allows for sharing of constants throughout a .qml file. Change-Id: I1d7daafdb7f24e34c14cd160d2dcb2c5aaac1c50 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Encapsulate the unit data in CompilationUnitSimon Hausmann2018-07-311-1/+1
| | | | | | | | | | | | | | | | This allows updating the constants table when the unit data is set / changes and removes the tie to the engine. Change-Id: Ice553650390589e30e18421c4e55422a55d0df89 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Clean up QQmlCustomParser APISimon Hausmann2018-07-302-10/+10
| | | | | | | | | | | | | | | | Consistently provide a smart pointer to the compilation unit in the two virtual functions. Change-Id: I2f43d4d17102082577f2502424d288d40eb7479d Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into devSimon Hausmann2018-07-171-1/+0
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/quick/demos/photoviewer/i18n/qml_de.ts examples/quick/demos/photoviewer/i18n/qml_fr.ts examples/quick/demos/photoviewer/photoviewer.pro examples/quick/demos/photoviewer/qml.qrc src/qml/compiler/qv4instr_moth_p.h tests/auto/quick/qquickanimations/tst_qquickanimations.cpp Change-Id: Ibea76b468577c2a68bd305cee82ae6444d0f8073
| * Revert "[Quick] Make sure an transition instance is stopped when destroyed"Simon Hausmann2018-07-171-1/+0
| | | | | | | | | | | | | | | | | | | | This reverts commit cf0b965aaab0ea7e777c1f8e8d35de3a73d7d08e because it causes crashes in qtquickcontrols tst_extras. Change-Id: I3809f2da84cf24b990b017a44837c02fc6c776d1 Task-number: QTBUG-69497 Task-number: QTBUG-38099 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into devQt Forward Merge Bot2018-07-161-0/+1
|\| | | | | | | | | | | | | | | Conflicts: src/quick/items/qquickloader.cpp tests/auto/quick/qquickanimations/tst_qquickanimations.cpp Change-Id: I0cb9f637d24ccd0ecfb50c455cc210119f744b02
| * [Quick] Make sure an transition instance is stopped when destroyedErik Verbruggen2018-07-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a running transition does not finish of natural causes (reached the end state due to e.g. the timer finishing), it can happen that it will never be marked as finished. Specifically, when an transition is running (e.g. an add animation for a ListView), and that transition is replaced by another transition (a displace transition, because another item got added to the ListView before the add transition was finished), the first animation was never marked as stopped. The effect was that the running property would stay "true" for forever. Task-number: QTBUG-38099 Change-Id: Id7d7053cb2fc1912127d9f5e71f27eb984ba7435 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Unify the get and getIndexed vtable functions of QV4::ObjectLars Knoll2018-07-021-1/+1
| | | | | | | | | | | | | | | | This finalizes the refactoring of Object's vtable API. Also added the receiver argument to the method as required by the ES7 spec. Change-Id: I36f9989211c47458788fe9f7e929862bcfe7b845 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Internal naming cleanupSimon Hausmann2018-06-291-3/+3
| | | | | | | | | | | | | | | | | | Rename QV4::CompiledData::Binding::containsTranslations() to isTranslationBinding() in an attempt to improve the readability of the code. Change-Id: I73898298c4295d0def812c0526d908254d73c243 Reviewed-by: Michael Brasser <michael.brasser@live.com>
* | Merge remote-tracking branch 'origin/5.11' into devUlf Hermann2018-06-2518-56/+45
|\| | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/qmltooling/packetprotocol/qpacketprotocol.cpp src/quick/handlers/qquickhandlerpoint.cpp src/quick/handlers/qquicksinglepointhandler.cpp tests/auto/qml/ecmascripttests/test262 Change-Id: I8908ec8c6116ca626fbd269af7625d4c429429ca
| * Doc: Move the code snippets to a separate snippet fileVenugopal Shivashankar2018-06-221-16/+5
| | | | | | | | | | Change-Id: I17671563f2beebe16ae1d08552854eaf44ae43ee Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| * Doc: Add missing dots (qtdeclarative)Paul Wicking2018-06-1917-40/+40
| | | | | | | | | | | | Task-number: QTBUG-68933 Change-Id: Ibb5aa227e82825085e7214e17dcffcb17fd44157 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | Fix race condition in async image response handlingSimon Hausmann2018-05-175-2/+101
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It may happen that the finished() signal is emitted from a super quick image loading thread in the implementation before we had a chance to connect to the signal in Qt Quick. In that case, record the emission through a private connection established in the constructor. The unit test simulates this scenario by emitting the signal before returning the object, but in a real world scenario it may happen that the response object is used in a separate thread that ends up emitting the signal. That may also happen before the thread that will try to connect to the signal runs. Task-number: QTBUG-59601 Change-Id: I14de9719db47f4bca2e8a2c6659343cfb4deb526 Reviewed-by: Albert Astals Cid <albert.astals.cid@kdab.com>
* | Remove bindings that have no dependenciesSimon Hausmann2018-05-162-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After the initial enabling of a binding we can quickly determine if there is a chance whether this binding will be re-evaluated again in the future as a consequence of dependency changes (properties or translations). If that is not the case, then we can save memory by removing that binding again. One implementation consequence of this change is that such constant bindings used with the "when" property of states require a proper reference count increase, which was previously implicit through the binding association with the target object. In tst_qqmlecmascript a test that verifies that we don't create run-time bindings for assignments of literal "null" to QObject pointer properties now also covers the more complex case where we don't know the property at parse time. We still evaluate the binding once though and perform one property assignment. Similarly on the QtQuick Designer Support API test side a binding such as x: Math.max(0, 200) will not create a persistent binding anymore and needs a tweak to remain. On a large scale application this optimization saved up to 5% of all bindings on start-up (~9000 of ~180000). On Linux x86-64 one binding is approximately 144 bytes, so the savings are in the range of ~1.2 MB of heap, as well as reduced fragmentation. Task-number: QTBUG-64541 Change-Id: Id3653008346fdf36611f5b4c4e82f5f78b5319aa Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Fix SVG shape path parsing to not crash when read-only stringsSimon Hausmann2018-05-151-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The SVG parser code copied from qsvg.cpp used to operate on QStringRef which had no zero termination guarantee. However it did operate on mutable underlying data, so a temporary insertion of a termination during path parsing was "fine". The copied parser here operates on a QString and with upcoming changes in QtQml, those strings may now be located in read-only memory. However QStrings are null terminated (unless carelessly constructed), so we don't need the hack here. Change-Id: If26b4a5168e4abc2e14bb37dcd631672f2a65e4b Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into devQt Forward Merge Bot2018-03-171-3/+6
|\| | | | | | | Change-Id: I2e3ba907a6afcaa69354a894259c7b7accf3e3ac
| * Scale up SVG images if source size is larger than original sizeAndy Shaw2018-03-151-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Since SVG images can be scaled up without any loss of quality then we should allow this to happen even though it is not done for other image formats. This restores the 5.9.x behavior for SVG images. Additionally the manual test is updated to showcase an embedded image inside a SVG one to indicate this is continuing to work as before too. Task-number: QTBUG-67019 Change-Id: Ia719899937f8146e8fab50aa85adf18e2f79aa98 Reviewed-by: Evangelos Foutras <evangelos@foutrelis.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Animation: add finished() signalMitch Curtis2018-03-093-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, Animation has a stopped() signal. This is executed even if the animation is stopped manually. To react to an animation finishing naturally, you currently have to do the following: onRunningChanged: if (!running) doStuff() This patch adds a dedicated signal: onFinished: doStuff() [ChangeLog][QtQuick][Animation] Added finished() signal to Animation as a convenient way to react to an animation finishing naturally. Change-Id: I8765d3e8e2b7bf7ef66a6acb69feafb43e9619d3 Reviewed-by: J-P Nurmi <jpnurmi@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into devQt Forward Merge Bot2018-03-038-30/+46
|\| | | | | | | Change-Id: I308b964d86ca01916f6af7d6e3f71557e3624eca
| * Fix: Do not read texture files when backend is not openglEirik Aavitsland2018-03-011-5/+21
| | | | | | | | | | | | | | | | | | | | | | | | The software backend would assert for the compressed GL texture files. Autotests updated for this functionality. Moved tests of the optional texture-file support out of qmltest (where it did not belong) and into tst_qquickimage, side by side with the tests of the optional svg format. Change-Id: I98c407093ccebeb70ba5a93ff0882dbd0b8060d5 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>