summaryrefslogtreecommitdiffstats
path: root/examples
Commit message (Collapse)AuthorAgeFilesLines
* doc: Clarify that DelegateModel is a kind of proxy modelShawn Rutledge2019-02-261-2/+3
| | | | | | | | | | | | | | | | | It was not quite clear in the GridView DnD example that the ListModel doesn't get reordered, so if new ListElements are inserted after reordering the DelegateModel by DnD, predicting the position where new delegates will appear becomes a bit of a riddle. Also: - the QQmlDelegateModelAttached::model is a model, not an int - disambiguate the properties that have the same names in QQmlDelegateModel and QQmlDelegateModelAttached, using \keyword for linking. Task-number: QTBUG-34891 Change-Id: I485fd632f67d607652428b4e3c9ca528e57f7348 Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* Remove old 'Getting started with Qt Quick' exampleKai Koehne2018-10-1522-1785/+0
| | | | | | | | | | | The example is actually not very easy to build, and arguably too complex for a 'getting started' example. qtdoc commit 1df7011858 therefore replaced it by the alarms example in the documentation. Task-number: QTBUG-66064 Change-Id: I2f2776c649410575aef71948f64b358d60233022 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Nico Vertriest <nico.vertriest@qt.io>
* Examples: Use XmlHttpRequest to fetch flickr public photosVenugopal Shivashankar2018-10-1111-85/+186
| | | | | | | | | | | | | | | | | | This change is to facilite moving the XmlListModel code to the qtxmlpatterns repo, but still keep all the Particles examples together. Also fixed: - the old TODO about darkening images according to depth, and make it generally look a bit better. - move the visualdatamodel examples to a directory called delegatemodel, since that's how they work now. And add them to the main "views" example launcher so that they become more visible to users. Change-Id: I78f9f19e1e110608580adedcf4cd3be554222515 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Replace more vestiges of VisualDataModel, *Group and VisualItemModelShawn Rutledge2018-10-032-2/+2
| | | | | | | | | | | | VisualDataModel, VisualDataGroup, and VisualItemModel are replaced with DelegateModel, DelegateModelGroup, and ObjectModel respectively (since 7cad0e52c5a020bd29635e9912fd8946a6b48124), so shouldn't be mentioned anymore, in preparation for removal. Task-number: QTBUG-37725 Change-Id: I9a01ec8db748f817efca638383b7a278c7b562cd Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* Example: Update the shared UI controls to use input handlersVenugopal Shivashankar2018-10-036-62/+58
| | | | | | Change-Id: I077754d9d9d713d01c7711175eb1b5da5e1f6869 Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Doc: Fix QDoc warningsPaul Wicking2018-10-012-13/+13
| | | | | Change-Id: I19545953bde10d4ccc2f37843dcda2569dc77df4 Reviewed-by: Martin Smith <martin.smith@qt.io>
* QQuickTableView: override fixup() to preserve contentX/Y at start-upRichard Moe Gustavsen2018-09-111-5/+2
| | | | | | | | | | | | | | | | Flickable::fixup() will be called from Flickable::componentComplete(). fixup() is a virtual function that subclasses can override to e.g ensure that cells snap to grid etc (which is not yet supported by TableView). The default implementation will check if the assigned contentX/Y is within the current content item size, and adjust it back to 0,0 if not. The problem is that during componentComplete(), the table has not yet been built. And we don't want Flickable to reset any assignments to contentX/Y until that has happened. So override the function and block it from doing any adjustments before the table has been built. Change-Id: Id6c5a3b5f053f71bf1854573cd5b9dc3ecc9f246 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* QQuickTableView: don't rebuild table upon querying content sizeRichard Moe Gustavsen2018-09-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | Overriding contentWidth/Height was done to be able to force build the table early if the app needed to know the size of the table already at Component.onCompleted (to e.g center the viewport on the center of the table). But now that we have a forceLayout() function, it's better to require that that function should be called before querying contentWidth/Height at this stage. By not building the table on the fly, we allow the application to bind expressions directly to contentWidth/Height, without being concerned about potential binding loops that can occur as a result of us rebuilding the whole table behind his back. The benefit of this overshadows the need to call forceLayout() explicit for some corner cases. Note that we still redefine the contentWidth/Height properties in TableView so that we can catch if the application sets an explicit contentWidth/Height (which is tested by checkExplicitContentWidthAndHeight()). Change-Id: Ic4499b3939af1cb3a543e4c006023d0d6f12fd3b Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Merge remote-tracking branch 'origin/5.11' into 5.12Qt Forward Merge Bot2018-09-111-2/+0
|\ | | | | | | Change-Id: Ieaf0811cf045af1e6df4db4ab67d7c38ba0d1fbf
| * examples: Fix LauncherList page components being hidden on window resizeTor Arne Vestbø2018-09-071-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The binding for x to -width will take effect after the enter-transition finishes animating x from -page.width to 0, but will not update the x value for some reason, so the item stays at the correct position at the end of the transition, even if the binding is still active. Once the window is resized though, and the new window width gets propagated to the page component, the x-value will be re-evaluated and the page component ends up on -width again, hiding it. It doesn't look like the explicit property binding adds anything to the example, as the transition takes care of starting at -width, so by removing it we fix the issue. Change-Id: If0e693ae85fe3e0aa49f59832cbb1ba2804b7b6b Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Example, GameOfLife: bump import to QtQuick 2.12Richard Moe Gustavsen2018-08-271-1/+1
| | | | | | | | | | | | | | | | Otherwise TableView will not be available. Change-Id: I57fe6ae5dd28064f87dca8cb4c3b957de25713e1 Reviewed-by: Nicolas Ettlin <nicolas.ettlin@me.com> Reviewed-by: hjk <hjk@qt.io>
* | QQuickTableView: move TableView from Qt.labs to QtQuickRichard Moe Gustavsen2018-08-222-2/+0
| | | | | | | | | | | | | | | | | | | | | | TableView is now ready for Qt-5.12. The only thing missing is documentation, which is currently being written, and on the way. So remove the temporary labs plugin that used to register TableView, and register it together with the other QtQuick items. Change-Id: I7f360eac3934d228904a4133363e336afe0c451a Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Port WorkerScript threading examples to use ES modulesSimon Hausmann2018-08-216-6/+6
| | | | | | | | | | | | | | | | | | This is the more modern way of doing things, so demonstrate that in our examples and documentation. Change-Id: Icd5316fbeeb00c34d470c8d871851945dc831244 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Allow DelegateModel-based views to support multiple delegate typesPaolo Angelelli2018-08-175-0/+210
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds a specific abstract QQmlComponent subclass, QQmlAbstractDelegateComponent, and a default implementation, DelegateChooser, that, together with the type DelegateChoice allows determining the delegate type by role and/or index. The patch also adds QQmlAbstractDelegateComponent support to QQmlTableInstanceModel, that is a simplified version of the delegate model, currently only used in the new table view. DelegateChoosers are intended to behave just like Components in the context of the view. This means that they can be declared outside of the view, and also in separate files, and the same delegate component can be used at the same time in multiple views. [ChangeLog][QtQuick][Item Views] Added a DelegateChooser Component to host DelegateChoice instances to choose different delegates in an Item View (e.g. TableView) depending on model roles. Done-with: Michael Brasser <michael.brasser@live.com> Task-number: QTBUG-26681 Change-Id: Ibe24a31daf9142c8a9ff45ef6c65da0aec8a14dc Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | TableView Conway's Game of Life exampleNicolas Ettlin2018-08-099-1/+688
| | | | | | | | | | | | | | | | | | | | This new example shows how a Conway's Game of Life implementation can be created with QML and the new TableView component. Change-Id: I940210c5e5a0554e6f052ff109070e69e59cab56 Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | Modify grid example to use DragHandlerShawn Rutledge2018-08-061-17/+23
| | | | | | | | | | | | | | | | It shows that DnD is still possible even though DragHandler doesn't do anything specifically to enable it. Change-Id: I600e16c4f0f601d504fcf6b6b32ff865af2a2d67 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* | Remove parallax exampleFrederik Gladhorn2018-07-3121-990/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | The example was part of the views example, except it was not even listed in the application, so it would not be discovered by anyone in the first place. Together with 3rd party assets that would need to be documented, and it being broken after samegame was moved, there is no reason to keep this. Task-number: QTBUG-69660 Change-Id: Ib701bd8987fd1d8473e1073bf4d701dbb087fdba Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into devQt Forward Merge Bot2018-07-303-9/+5
|\ \ | |/ | | | | | | | | | | | | Conflicts: examples/quick/tableview/pixelator/main.cpp examples/quick/demos/ Change-Id: Id7eaae6584017a4ab4ec9dd97b56d5c1a417f0e3
| * Examples: Remove the metadata from some docs screen shotsAlessandro Portale2018-07-275-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | The Welcome/Examples screen in Qt Creator would otherwise emit: "libpng warning: iCCP: known incorrect sRGB profile" The metadata was removed with the command optipng -o7 -strip all <file.png> Change-Id: Ic51155fd4e20193e77e20559f2acdc0319c19b8f Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
| * Doc: Fix broken link targetsPaul Wicking2018-07-251-5/+5
| | | | | | | | | | | | | | | | | | * Rename two section titles that caused confusion for the autolinker. * Add see also link to correct location from SpriteSequence QML type. Task-number: QTBUG-58640 Change-Id: I62b941d00198ac56d998ca14b926c7bb37f6c91e Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * photoviewer: Use QLocale::uiLanguages() for finding translationsKai Koehne2018-07-181-1/+1
| | | | | | | | | | | | | | | | | | | | Now that we ship en translations, we can use the QTranslator::load(QLocale, ...) overload to correctly find translated files. Task-number: QTBUG-69196 Change-Id: Ic7f7a2c70763f0c7200782d6e46644f2b3f7f3ef Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Get rid of Qt.labs.handlers import, merge into QtQuick 2.12Shawn Rutledge2018-07-173-8/+5
| | | | | | | | | | | | | | ... and clean up imports in examples, snippets and tests accordingly. Change-Id: I5bbe63afd2614cdc2c1ec7d179c9acd6bc03b167 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into devSimon Hausmann2018-07-176-6/+14
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | 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
| * i18n examples: Add en translation dummiesKai Koehne2018-07-175-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We endorse using QTranslator::install(const QLocale&...), because it tries loading translations from all QLocale::uiLanguages() instead of the commonly used QLocale::system().name() setup. Anyhow, the first method requires an English translation - otherwise a second favorite language might be used. Pave the way to making the switch by adding (empty) English translations to our examples. Task-number: QTBUG-69196 Change-Id: Ie85be875e34e29e80c1693bbf477b962e35a7d87 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
| * i18n examples: Update .ts filesKai Koehne2018-07-175-16/+16
| | | | | | | | | | Change-Id: I3c1987bac8251b087fab98d6caaaba267dcc4be8 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | Make a subdirectory for TableView examplesMichael Winkelmann2018-07-1310-21/+25
| | | | | | | | | | | | | | | | This makes more room for more tableview examples. I also added the tableview directory to the quick.pro subdirs. Change-Id: Ia136150ded99c2ec627e122aa676e24a519683a9 Reviewed-by: hjk <hjk@qt.io>
* | Move demos to qtdoc repositoryFrederik Gladhorn2018-07-12314-17651/+1
| | | | | | | | | | | | | | | | | | | | | | These demos use several modules and moving them allows to use for example Qt Quick Controls 2 in them. Change-Id: I1f352671dec672665e9fdb6a9c2a7c6e25a002b0 Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io> Reviewed-by: Nico Vertriest <nico.vertriest@qt.io> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
* | TableView pixelator exampleMichael Winkelmann2018-07-108-0/+488
| | | | | | | | | | | | | | | | Example of a QML TableView with custom table model. Inspired from the original pixelator example from the widget world. Change-Id: Ic33e6d2e9320fe135d56dde92326dd8a606fe109 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into devUlf Hermann2018-06-2510-23/+19
|\ \ | |/ | | | | | | | | | | | | | | | | 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-4/+0
| | | | | | | | | | Change-Id: I17671563f2beebe16ae1d08552854eaf44ae43ee Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| * Doc: Add missing dots (qtdeclarative)Paul Wicking2018-06-199-19/+19
| | | | | | | | | | | | Task-number: QTBUG-68933 Change-Id: Ibb5aa227e82825085e7214e17dcffcb17fd44157 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into devQt Forward Merge Bot2018-04-271-1/+2
|\ \ | |/ | | | | Change-Id: I280d42b8926c0cada1f35d322b80aaf2b0ef0a73
| * Clarify ownership around QQmlEngine::setNAMFMårten Nordheim2018-04-261-1/+2
| | | | | | | | | | | | | | | | | | | | | | We were leaking an instance of MyNetworkAccessManagerFactory in the "NetworkAccessManagerFactory"-example. To add to this the documentation around QQmlEngine::setNetworkAccessManagerFactory did not specify whether or not it took ownership, causing confusion. Change-Id: Ic9eee2c45682c752bcb4aa98943fc0af2b630795 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | window example: close window on 'X' button press, not just hide itTor Arne Vestbø2018-04-251-1/+1
|/ | | | | Change-Id: Ice699b3350b223db25e4865c930caf6e3afb647c Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Examples: remove bogus returnv5.11.0-beta3J-P Nurmi2018-04-031-1/+1
| | | | | Change-Id: I653974c80c6767d9af95b9157a73c09dbdeb76cc Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* rename containsMask to containmentMaskShawn Rutledge2018-02-271-1/+1
| | | | | | | | | It was pointed out that containsMask sounds like it ought to be a boolean property. Change-Id: I2b56823b60d64f9903b0d5108c6428e691c09ed0 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
* use the override keyword consistently and correctly (clang-tidy)Shawn Rutledge2018-02-2713-40/+40
| | | | | Change-Id: If9e28d143f8cba3df3c757476b4f2265e2eb8b2a Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* AnimatedSprite: set implicit size based on implicit frame sizeMitch Curtis2018-02-261-2/+0
| | | | | | | | | | | | | | By doing so, users no longer need to set an implicit or explicit size for AnimatedSprite. [ChangeLog][QtQuick][AnimatedSprite] AnimatedSprite's implicitWidth and implicitHeight are now based on frameWidth and frameHeight, respectively. This means it is no longer necessary to explicitly size AnimatedSprite. Task-number: QTBUG-36341 Change-Id: I3eb87e9b1c6bb93b3c667123c345341f34e2eee8 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* init variables where they are declared when possible (clang-tidy)Shawn Rutledge2018-02-263-11/+11
| | | | | | | | clang-tidy -p compile_commands.json $file -checks='-*,modernize-use-default-member-init,readability-redundant-member-init' -config='{CheckOptions: [{key: modernize-use-default-member-init.UseAssignment, value: "1"}]}' -header-filter='qtdeclarative' -fix Change-Id: I705f3235ff129ba68b0d8dad54a083e29fcead5f Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* use nullptr consistently (clang-tidy)Shawn Rutledge2018-02-2626-61/+61
| | | | | | | | | | | | | From now on we prefer nullptr instead of 0 to clarify cases where we are assigning or testing a pointer rather than a numeric zero. Also, replaced cases where 0 was passed as Qt::KeyboardModifiers with Qt::NoModifier (clang-tidy replaced them with nullptr, which waas wrong, so it was just as well to make the tests more readable rather than to revert those lines). Change-Id: I4735d35e4d9f42db5216862ce091429eadc6e65d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Merge remote-tracking branch 'origin/5.10' into 5.11Liang Qi2018-02-1228-236/+3026
|\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/imports/shapes/qquickshape.cpp src/imports/shapes/qquickshape_p_p.h src/qml/compiler/qqmlpropertycachecreator_p.h src/qml/jsruntime/qv4value_p.h src/quick/items/qquickloader_p.h tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp tools/qmlprofiler/qmlprofilerapplication.cpp Change-Id: Iafc66ae84bf78630ed72a986acb678e9d19e3a69
| * Example: Switch to offine datasetVenugopal Shivashankar2018-01-3128-236/+3026
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Added offline dataset from quandl instead of the Google finance API - Reduced the no. of stocks - Removed the JS library as it was not required with the offline dataset - Updated documentation and application's image to reflect the change Task-number: QTBUG-64432 Change-Id: I4d117de71ab07bf9b2654f5d61afc3ed0e9ce084 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Merge remote-tracking branch 'origin/5.10' into devLiang Qi2018-02-025-31/+34
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/qmltooling/qmldbg_profiler/qqmlprofilerservice.cpp src/qml/compiler/qqmlirbuilder.cpp src/qml/compiler/qqmlirbuilder_p.h src/qml/compiler/qqmltypecompiler.cpp src/qml/compiler/qv4codegen.cpp src/qml/compiler/qv4codegen_p.h src/qml/compiler/qv4compileddata_p.h src/qml/compiler/qv4compiler.cpp src/qml/compiler/qv4compilercontext_p.h src/qml/compiler/qv4isel_moth.cpp src/qml/compiler/qv4jsir.cpp src/qml/compiler/qv4jsir_p.h src/qml/jit/qv4isel_masm.cpp src/qml/jsruntime/qv4engine.cpp src/qml/jsruntime/qv4functionobject.cpp src/qml/jsruntime/qv4runtimecodegen.cpp src/qml/jsruntime/qv4script.cpp src/qml/jsruntime/qv4script_p.h src/qml/qml/qqmltypeloader.cpp src/quick/items/qquickanimatedimage.cpp src/quick/items/qquickanimatedimage_p_p.h src/quick/scenegraph/compressedtexture/qsgpkmhandler.cpp tests/auto/qml/qmlplugindump/qmlplugindump.pro tests/auto/qml/qmlplugindump/tst_qmlplugindump.cpp tools/qmlcachegen/qmlcachegen.cpp tools/qmljs/qmljs.cpp Done-with: Shawn Rutledge <shawn.rutledge@qt.io> Done-with: Lars Knoll <lars.knoll@qt.io> Done-with: Ulf Hermann <ulf.hermann@qt.io> Change-Id: I010e6525440a85f3b9a10bb9083f8e4352751b1d
| * Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2018-01-245-31/+34
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/qml/compiler/qv4codegen.cpp src/qml/compiler/qv4compileddata_p.h src/qml/debugger/qqmlprofiler_p.h src/qml/jsruntime/qv4engine.cpp src/qml/memory/qv4mm.cpp src/qml/qml/qqmlcomponent.cpp src/qml/qml/qqmlobjectcreator.cpp src/qml/qml/qqmlobjectcreator_p.h src/qml/types/qqmldelegatemodel.cpp src/quick/items/qquickitem_p.h src/quick/items/qquickwindow.cpp tests/auto/quick/touchmouse/BLACKLIST tests/benchmarks/qml/holistic/tst_holistic.cpp Change-Id: I520f349ab4b048dd337d9647113564fc257865c2
| | * externaldraganddrop example: add checkbox to control accepting dropShawn Rutledge2017-12-273-23/+28
| | | | | | | | | | | | | | | | | | | | | | | | DropArea.onEntered can reject the drop - this will provide cursor and color change feedback showing whether dropping is allowed. Change-Id: I2203cda79cf381bbb71724cdcd6aecd8f001d62d Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| | * threadedanimation: fix custom item animation when in a QQuickWidgetMitch Curtis2017-12-201-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | As with 64a01ff5b5d1eaadb1e60013673ac25459b79e14 in qtquickcontrols2, we ensure that custom scenegraph item animations still run if within a QQuickWidget. Change-Id: I3630ee34c039420640000c9a58ed1ec186bbe82c Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
| | * Let platform decide what the default show action isTor Arne Vestbø2017-12-191-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The platform handles this through the ShowIsMaximized and ShowIsFullScreen platform integration style-hints, as well as QPlatformIntegration::defaultWindowState(), which was added specifically so that we wouldn't have to hard-code the behavior in user code. Change-Id: Ic019ccc2edd871a78bf94fd5fe572b9659416582 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | | demonstrate containsMask in the tapableTriangle Shape exampleShawn Rutledge2018-01-261-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This isn't an improvement in behvior, it just shows that a Shape can be used as a mask on some other Item. But Shape.containsMode is still important so that when the outer Rectangle's contains() calls Shape.contains(), the latter will do the right thing. Change-Id: I1bd127784e708f30561945a4958e4d5f0c1c0b85 Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
* | | AnimatedImage example: allow setting speed to 0Shawn Rutledge2018-01-251-1/+1
| | | | | | | | | | | | | | | | | | | | | It's OK after the fix for QTBUG-65758. Change-Id: I132bec5db250cd0cd57e6048649ab25cb360144b Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | | QQuickShape: override contains(QPointF); demonstrate in examplesShawn Rutledge2018-01-255-12/+114
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QQuickItem::contains() only checks the Item's bounding box by default. In the case of Shapes, that can be comically imprecise, but it's fast. So we add a containsMode property to control whether we will do that (the default) or actually check each of the QPainterPaths within to see whether they contain the point (FillContains). FillContains could be optimized later: use QRegion perhaps, or download the rendered texture from the GPU and test whether the pixel at the point is transparent. It may also be appropriate to add a StrokeContains option. The main motivation is to detect mouse (or touch) interaction within a shaped area. QQuickSinglePointHandler::wantsEventPoint() already checks whether its parent Item contains the event point. So if a Shape has a TapHandler for example, it will respond only within the visible bounds of the Shape rather than within the entire rectangular bounding box as long as containsMode is set to FillContains. Examples quick/shapes/content/tapableTriangle.qml and tiger.qml are modified to react when a press occurs inside, and the former is fixed to be able to run standalone via the qml runtime. The latter has an offset issue when run standalone but is OK within the shape gallery example. As a drive-by optimization, QQuickShapePrivate's variables are re-ordered by type so that the compiler can place the bools and enums into bitfields; and to facilitate reordering, the initialization is done C++11-style, in the header. [ChangeLog][QtQuick][Shape] A containsMode property is added. If it is set to FillContains, then Shape.contains() returns true only within the visible bounds, so its Pointer Handlers also respond only within those bounds. Change-Id: I31c85a9b08aa6945c58dc07febfe89ffef21274b Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>