aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items
Commit message (Collapse)AuthorAgeFilesLines
* Use the extended QQmlListProperty interface in a few placesUlf Hermann2020-02-074-5/+38
| | | | | | | Task-number: QTBUG-79263 Change-Id: If518f644b5b9eddbacfb1cb16fbb557127ffcfb2 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Privately export QQuickFlickablePrivate and QQuickTableViewPrivateMitch Curtis2020-02-062-2/+2
| | | | | | | | | We need this to implement header views (for TableView) in qtquickcontrols2. Task-number: QTPM-1300 Change-Id: I03068828cdf6dd79ec6a91c75f68eaf7c224d4a2 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2020-02-063-23/+168
|\ | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/qml/types/qqmlbind.cpp src/quick/items/qquicklistview.cpp tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp Change-Id: Id6805c13256ad13d5651011e5dd09bba0ec02987
| * Doc: Remove outdated noteJoni Poikelin2020-02-031-4/+0
| | | | | | | | | | | | | | The behavior described in the note does not apply to Qt 5. Change-Id: Ia4d45ca35d095d6cdc193f276bd52c7ad403b82f Reviewed-by: Paul Wicking <paul.wicking@qt.io>
| * Fix some ListView bugs related to snapping when it had a headerJan Arve Sæther2020-01-301-15/+153
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Most bugs were related to the PullBackHeader header positining mode, for instance the old code did not take into consideration that for the PullBackHeader it was sometimes not sufficient to scroll the view. The header also had to be scrolled independently from the view: We achieve this by hooking on to the same timeline that is used for scrolling the view. (This way, both animations are synchronized, and they start and end at the same time). Change-Id: I75708c0fd8d4741032c04ad9ee144d7a49cf3359 Fixes: QTBUG-76362 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| * QQuickFlickable: fix division by zeroMitch Curtis2020-01-291-4/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The issue could be seen when enabling exceptions and running the following QML code: Flickable { id: flickable anchors.fill: parent contentWidth: 1000 contentHeight: 1000 Text { text: flickable.visibleArea.xPosition } } Change-Id: I615f9f9dc84903fb3a902f416a55e3ce3fece64c Fixes: QTBUG-81098 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | QmlDebug: add new debugtranslationserviceTim Jenssen2020-02-051-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | Users were asking for having the possibility to see where the translated text will not fit in the reserved/available space. This is more a preparation patch to get the right connectors to change the visualization of findings or maybe log this to a file. Task-number: QDS-1463 Change-Id: Ic0a7a930141d6eeb79964e51c0a165c69888cf5d Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | QQmlInstanceModel: refactor recycling signals to base classRichard Moe Gustavsen2020-02-051-13/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that QQmlDelegateModel has an API that handles reusing delegate items (*), we should also move the related signals inside it to be consistent. This will also remove the need to cast the model type in the views before connecting. This patch will also remove warnings that stems from QQuickListView trying to connect to the reuse signals when the model is not a QQmlDelegateModel. *: E.g: virtual ReleaseFlags release(QObject *object, ReusableFlag reusableFlag = NotReusable) = 0; Fixes: QTBUG-81257 Change-Id: Ia8a8f0d68e6ef7edc6c45b414121aaa77632bcd3 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | QQuickPointerMouseEvent::asMouseEvent(): check for nullptrShawn Rutledge2020-01-311-0/+2
| | | | | | | | | | | | | | | | | | It could potentially crash if e.g. we're handling a Leave event, because QQuickWindowPrivate::clearHover() creates a QQuickPointerEvent in which m_event is null. Change-Id: I15d6db3c74fcd4979a36b3f1d0c935e6400032a6 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Add PointerHandler.cursorShape propertyShawn Rutledge2020-01-314-23/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also, QQuickItemPrivate::setHasCursorInChild() was unable to check the QQuickItemPrivate::hasCursor variable, because the function argument hasCursor was shadowing that, even though the comment "nope! sorry, I have a cursor myself" hints that the intention was to check that. So this change exposed a problem there, and we have to fix that too, in order to keep the tst_qquickwindow::cursor() test passing. [ChangeLog][Event Handlers] Pointer Handlers now have a cursorShape property to set the cursor when the handler is active and the mouse is hovering, and restore to the previous cursor when the mouse leaves. Fixes: QTBUG-68073 Change-Id: Ib5c66bd59c4691c4210ee5465e1c95e7bdcf5ae1 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* | Image ColorSpace bindings for Quick/QMLAllan Sandfeld Jensen2020-01-313-0/+27
| | | | | | | | | | | | | | | | | | | | Adds a ColorSpace type mapped to QColorSpace, and adds a property to Image nodes to read and change it, converting the image if necessary on read. Fixes: QTBUG-80616 Change-Id: Ie80c8bc045f66de01de3a5d2c4a9974f07d2871d Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | Add Image.sourceClipRect propertyShawn Rutledge2020-01-305-4/+82
| | | | | | | | | | | | | | | | | | | | | | | | Since we set sourceSize, we expect to use that coordinate system in sourceClipRect too. Therefore we use QImageReader::setScaledClipRect(), not setClipRect(). [ChangeLog][QtQuick][Image] Image now has a sourceClipRect property to render a clipped image from a region of the sourceSize. Change-Id: If08277df772c2ab1063dd88572e49de41b97bca4 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* | Teach QQuickPixmap to handle requests for image regionsShawn Rutledge2020-01-303-2/+3
| | | | | | | | | | | | | | | | | | | | For vector image formats that could take a long time to render (such as SVG and PDF), we need to be able to request smaller regions of the page. The region needs to be specified in original units (i.e. points in a PDF or pixels in an SVG). Change-Id: I9c9eecb22d929f6e7b2636a2a44f50c8eea4c6b2 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* | Merge "Merge remote-tracking branch 'origin/5.14' into 5.15"Qt Forward Merge Bot2020-01-291-0/+12
|\ \
| * | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2020-01-291-0/+12
| |\| | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/qmltooling/qmldbg_debugger/qqmlenginedebugservice.cpp Change-Id: I133bfd4bd9dd6f704252c956c90f05e8a8a40d6a
| | * Doc: document behavior and caveats of TextInput's padding propertiesMitch Curtis2020-01-281-0/+12
| | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-80699 Task-number: QTBUG-81679 Change-Id: I9c936a020ffa358dfa97d9b7044a90a27d3336dc Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | | QQuickItemView: only connect recycle signals to delegate modelRichard Moe Gustavsen2020-01-291-4/+8
|/ / | | | | | | | | | | | | | | | | | | Only QQmlDelegateModel has reused/pooled signals. So only connect/disconnect to those signals when the assigned model is of that type. Fixes: QTBUG-81257 Change-Id: I52a39a98ac0f557ff57307572581dc6c7a05af92 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Deprecate QQuickWindow::createTextureFromId()Laszlo Agocs2020-01-272-1/+9
| | | | | | | | | | | | Task-number: QTBUG-79268 Change-Id: I70f60ddf6e97e0b082f4df77e26a33f9305a4f0c Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Make QtQuick::Item::mapFrom/ToItem also accept point and rectAlbert Astals Cid2020-01-241-90/+104
| | | | | | | | | | | | | | | | [ChangeLog][QtQuick][Item] Item.mapToItem() and mapFromItem() now work with QPointF and QRectF types as well as with raw numbers. Change-Id: Ifeb5c36e1bc5a283df4e11c8cf2af960de3f287b Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Make QtQuick::Item::mapFrom/ToGlobal also accept pointAlbert Astals Cid2020-01-241-24/+50
| | | | | | | | | | | | | | | | [ChangeLog][QtQuick][Item] Item.mapToGlobal() and mapFromGlobal() now work with QPointF as well as with raw numeric coordinates. Change-Id: I6a335c95a014bc77a927c781586619e62dce2f02 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Deduplicate QQuickImageBase/QQuickBorderImage::loadPaolo Angelelli2020-01-233-147/+94
| | | | | | | | | | | | | | | | | | | | | | These two methods share a whole lot of duplicated logic, and already show signs of divergence due to maintenance going to the one and not the other. This patch removes the duplication. Change-Id: I6a83dd7f354a94547e44198ec679b323f2c5240e Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | QQuickTableView: make syncView/syncDirection/model private implementation ↵Yulong Bai2020-01-203-14/+25
| | | | | | | | | | | | | | | | | | | | virtual For usage in HeaderView, moving getters/setters/sych-ers in private implementation virtual, keep public APIs clean and also make private implementations overridable. Change-Id: I4ad04665b7268354a49dc9711944ee0c6fd2738f Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2020-01-204-64/+65
|\| | | | | | | | | | | | | Conflicts: src/quick/items/qquickitemview.cpp Change-Id: Ib9faebdbef5eebb80f4e6aeb5b15b5df7494b157
| * Text and TextEdit: document MarkdownText formatShawn Rutledge2020-01-172-62/+58
| | | | | | | | | | | | | | Task-number: QTBUG-81306 Change-Id: I8ee50727f4e75eee8c0997f17193d8c99e855551 Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
| * QQuickItemView: fix crash when changing modelWang Chuan2020-01-152-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When visible items become invisible, ListView will try to cache them and redisplay these items if necessary. However, we can't cache items when changing to a new model, since the old one will be deleted later Fix by adding a flag to let ListView know we are clearing items and prevent cache unnecessary items Fixes: QTBUG-80203 Change-Id: I50dcd3f0586c93496b143bdad0e59751360501a8 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | Don't use deprecated QMatrix class anymoreJarek Kobus2020-01-172-10/+12
| | | | | | | | | | | | Task-number: QTBUG-46653 Change-Id: I3570c84014788b7b66d9cb54b77f9964ae15af6d Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* | Replace QVariant::type with QVariant::userTypeOlivier Goffart2020-01-172-2/+2
| | | | | | | | | | | | | | | | | | | | | | as type is going to be deprecated. This change was done automatically with the help of clazy. In addition, ColumnRoleMetadata was changed to take an int instead of a QVariant::Type Change-Id: Ibc02d7b52e7d931a56c19fdebc4788b5e6df2a39 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Replace call to deprecated QNetworkReply::error methodFabian Kosmale2020-01-171-1/+1
| | | | | | | | | | | | Change-Id: I14198038a01acdd415e90fd733dc03b122591179 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | QQuickTextNodeEngine: reduce redundant rendering of glyphsWang Chuan2020-01-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The glyphs between two text blocks that have different text format will be rendered twice, and in this case the rich text will be display incorrectly.(e.g., the first text block is a superscript and the second is a normal text) Fixes this by reduce the redundant rendering of glyphs between two differently formatted text blocks Fixes: QTBUG-80759 Change-Id: I51ca3f7df1ad368d28df9beb6124a87bf50f0e01 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | QQmlListProperty: Add replace and removeLast functionsUlf Hermann2020-01-156-7/+7
| | | | | | | | | | | | | | | | | | | | | | This allows us to implement QmlListWrapper::virtualPut(). Also, the additional functions make the list properties useful in other contexts. Fixes: QTBUG-79263 Change-Id: I528bc69222ca7743f0fc3697c3aed2a3468b4d87 Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2020-01-143-15/+148
|\| | | | | | | | | | | | | | | Conflicts: src/quick/items/qquickitemsmodule.cpp src/quick/items/qquickitemview.cpp Change-Id: I02191959a5023c4320f5487a7fb3a71f8711195f
| * Register PointerScrollEvent and document the WheelHandler.wheel signalShawn Rutledge2020-01-132-3/+134
| | | | | | | | | | | | | | | | | | | | | | Writing an onWheel() handler script was working and mentioned briefly in docs; but PointerScrollEvent and the signal were not documented. Also fixed the type of QtQuick::WheelEvent::inverted: bool not int. Fixes: QTBUG-81302 Change-Id: I31342955c42e20ff52460a1b7ee95da325e38af6 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
| * QQuickItemView: Fix iteration/deletion logicUlf Hermann2020-01-101-12/+16
| | | | | | | | | | | | | | | | If a QVector has been modified from the outside, all its iterators are invalid. Therefore, we need to do index-based iteration here. Change-Id: I02b850daf6aadd8f8a81cc93b0d295e1170d7dd6 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Add PointerScrollEvent QML registrationShawn Rutledge2020-01-131-1/+5
| | | | | | | | | | | | | | | | | | | | Since registration of this type was neglected in 5.14 (yet was still usable in WheelHandler.onWheel() { } anyway), it didn't get included in cc1a604c704f848927b3fa0a97b0a50b0b79d2a4. Task-number: QTBUG-81302 Change-Id: I24645f4f982310655901c45aca6cdccfbafa911e Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | Generate registrations for all importsUlf Hermann2020-01-101-198/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that we can generate all QML type information at build time, we should also use it. Move the types for QtTest into the testlib import plugin. They don't need to be exported from QtQuickTest. Trigger the resource initialization of the shapes library from the plugin so that we retain a dependency and the linker doesn't optimize the module initialization away. Change-Id: Icc8cb338aa03ef1e3085e29356a5db7b73ba0a01 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2020-01-091-1/+1
|\| | | | | | | | | | | | | | | | | Conflicts: src/particles/qquickitemparticle.cpp src/qmlmodels/qqmladaptormodel.cpp tests/auto/particles/qquickitemparticle/tst_qquickitemparticle.cpp Change-Id: Ibd8fbb91da6893a09f4ffe61ad0b95d8149bbc87
| * QQuickWindow: make subFocusItem a QPointerFabian Kosmale2020-01-031-1/+1
| | | | | | | | | | | | | | | | | | While running the fuzz tester, a crash was found related to the fact that the subFocusItem was already partially deleted. Task-number: QTBUG-34779 Change-Id: I62c48cf40baabc9f0a81074cc6408e9073459165 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Optimize QQuickImagePrivate paddingShawn Rutledge2019-12-312-14/+7
| | | | | | | | | | | | | | | | | | | | | | | | Since the parent QQuickImageBasePrivate class ends with a bool bitfield, starting QQuickImagePrivate with its own bitfield seems to cause them to dovetail: at least the warnings about padding are eliminated. It's anyway nice to group variables by size (although in reverse order), group methods separately, and do header initialization as much as possible. Change-Id: I934e4ad682e338ebb62721ed40c60ff9d4465600 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Improve ListView.headerPositioning docsShawn Rutledge2019-12-231-12/+20
| | | | | | | | | | | | | | | | Explain the changes to fix QTBUG-74046 and improve grammar. Task-number: QTBUG-74046 Change-Id: Icd02387a2ffb3ff795521cb5eda95e41eabc21c7 Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* | QQuickTableView: reuse items also when using QQmlInstanceModelRichard Moe Gustavsen2019-12-191-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that QQmlInstanceModel has an API that supports delegate recycling, remove the special case from TableView. What this means in practice is that a TableView can now also reuse items when the model assigned is a DelegateModel. The recycling API in QQuickInstanceModel is already tested by the QQuickListView test. Change-Id: I08c9fe2ce230c2b41b40fe97efdfca78eb5dd296 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Fix Qt6 build in preparation of qt5 submodule updateAlexandru Croitor2019-12-193-19/+19
| | | | | | | | | | | | | | | | | | Fixes the QTextStream usages. Change-Id: I0c009a82fb644a9f3c3d42ec410d18b680977f23 (cherry picked from commit 1c5c5f7aadc2dcc73a21eeb818e95c4e1b7de70f) Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Add API to get the platform specific texture handlePaul Olav Tvete2019-12-171-1/+1
| | | | | | | | | | | | | | | | | | Also update the implementation of setTextureFromNativeObject to use the new API from QRhi Task-number: QTBUG-78570 Change-Id: Ic43371c4bb7a1dd14bfe5ef0d8ce2ef50e1d25d6 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | Make inputmask 'X' mask character require non-blank inputEirik Aavitsland2019-12-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The implementation for the X mask would accept any printable character. Since that includes the blank character, there was no difference in behavior between the requiring X and optional x: both would allow the input to be unset, i.e. blank. This change should be seen in conjunction with the doc improvement qtbase:da0af1e and the corresponding change to the QLineEdit widget, where the same input mask handling code is duplicated. This patch series also concludes the old task questioning whether text() should strip blanks even when they are valid input (answer: yes, continue to do that), and so a couple of XFAILS was removed from the autotest. [ChangeLog][QtQuick][TextInput] Inputmask X character now requires non-blank input. Task-number: QTBUG-76320 Change-Id: I606ae04259f29f748b3ce604048c6eb6f10c2ff9 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | QQuickItemView: Change QHash::insertMulti use to QMultiHash::insertMårten Nordheim2019-12-102-8/+7
| | | | | | | | | | Change-Id: Ib19365258269a01e203359e7dbe1207f14df3758 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2019-12-101-13/+34
|\| | | | | | | Change-Id: Iadbdd0fb63ca2a9e0b186343f8b730e4114cd71b
| * QQuickTableView: set empty content size when table is emptyRichard Moe Gustavsen2019-12-091-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | From before we would bail out early from the rebuild process if we detected an empty table. A result from this is that we left both contentWidth and contentHeight unchanged. This patch will set an empty content size when the table is empty. The effect will be that the user cannot flick the view around based on the old size. Fixes: QTBUG-80505 Change-Id: I3ac080476269fd5906ce79fa007eabb59b5ff4b1 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
| * QQuickTableView: ensure we release items in the old model and not the newRichard Moe Gustavsen2019-12-091-6/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As it stood, we would wait to release loaded items until we started the rebuild process, if the old model was a DelegateModel. But at that time, the model would alread have been changed, so we would release the items by calling out to the wrong model. This patch will ensure that we always release the items immediately when syncing the model, which will also cover the case when the model is a DelegateModel. Fixes: QTBUG-80570 Change-Id: I1b06011f4795727d04d9cd8c20381f65552b8fe8 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * QQuickTableView: support assigning a DelegateModelRichard Moe Gustavsen2019-12-091-7/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Normally you either assign a model to TableView that already has a delegate (or don't need one), like DelegateModel or ObjectModel. Or instead you assign a QAIM model and a delegate directly. But if you assign both a delegate and an ObjectModel, TableView would be confused, and ignore the assigned model and instead create an internal wrapper model that ends up empty. This patch will ensure that we don't create a wrapper model in such cases, but instead forward the delegate to whichever model is assigned, even if it ends up as a no-op for models that don't use one. Task-number: QTBUG-80534 Change-Id: Idd220df08617c379dc7808ee1f41c862b78cc201 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | QQuickListView: document delegate item recyclingRichard Moe Gustavsen2019-12-091-0/+47
| | | | | | | | | | Change-Id: I6777eb179643ca2d5fb14f96f5f5ac02f5f2fb04 Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2019-12-091-1/+3
|\| | | | | | | | | | | | | Conflicts: src/qml/common/qv4compileddata_p.h Change-Id: I1150c8cd0161f0e22137d383013751394ae64e18