aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items
Commit message (Collapse)AuthorAgeFilesLines
* QQuickTableView: rename attached prop tableView to viewRichard Moe Gustavsen2018-08-132-10/+9
| | | | | | | | ListView calls the same attached property for 'view'. So do the same for TableView. Change-Id: I99034869813750e2fab56fe6ffcc4b4a6a4d9c52 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* QQuickTableView: remove cacheBuffer from the public APIRichard Moe Gustavsen2018-08-102-25/+0
| | | | | | | | | | | | | | | | | | As discussed during API review, remove cacheBuffer from the public API. The cache buffer was a feature inherited from ListView to avoid loading a lot of items (and affect performance) when the user started to flick. But now that TableView has support for reusing items, the point of the cache buffer is more or less gone. At least we choose to remove it from the public API until we have better understanding if this is really needed. Note that the cacheBuffer still plays a small role internally, so we don't remove it from the implementation. We want to preload an extra row and column for reuse at start-up, since you often cannot reuse the first row and column during the first flick (they will still be visible on the screen). Change-Id: Ie62835a04ac29a84c9a76151b73fe2f75d9ae844 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* QQuickTableView: add a 'forceLayout()' function to the public APIRichard Moe Gustavsen2018-08-102-5/+23
| | | | | | | | | | | | | | | | | This function needs to be called from the application whenever it needs to change column widths (or row heights) for the currently visible columns. Changing column widths is done by changing what values the columnWidthProvider returns. But TableView doesn't know that the assigned function has new values to return for the current columns. Calling 'forceLayout()' will inform about this, and trigger a re-layout. Change-Id: I3cf15bbfb522baf93c7e01a34841e54455a098b9 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: J-P Nurmi <jpnurmi@gmail.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* QQuickTableView: rename enforceFirstRowColumnAtOrigo to enforceTableAtOriginRichard Moe Gustavsen2018-08-102-3/+3
| | | | | Change-Id: Ib2a60bd8994bded2299ff96ac73137c9267398fa Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* QQuickTableView: override contentWidth/Height propertiesRichard Moe Gustavsen2018-08-093-6/+98
| | | | | | | | | | | | | | | | | TableView uses contentWidth/height to report the size of the table (this will e.g make scrollbars written for Flickable work out of the box). This value is continuously calculated, and will change/improve as more columns are loaded into view. At the same time, we want to open up for the possibility that the application can set the content width explicitly, in case it knows what the exact width should be from the start. We therefore override the contentWidth/height properties from QQuickFlickable, to be able to implement this combined behavior. This also lets us lazy build the table if the application needs to know the content size early on. The latter will also fix problems related to querying the content size from Component.onCompleted. Change-Id: Ife7ef551dc46cf15d6940e3c6dff78545a3e4330 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* QQuickTableView: change how we calculate content sizeRichard Moe Gustavsen2018-08-091-17/+17
| | | | | | | | | | The current calculations where a bit off. Change it to be precise, and add an auto test to verify the contentWidth/Height ends up correct as the flickable is flicked towards the end of the table. Change-Id: I784a1bba2ea8fddd09cee8ecda7e2089c8b5c74f Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Add missing header guardJędrzej Nowacki2018-08-081-0/+5
| | | | | Change-Id: I58aaa65047c3b7244cb69a84117b41453ff9ee0a Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* QQuickTableView: don't access the model from the destructorRichard Moe Gustavsen2018-08-072-20/+15
| | | | | | | | | | | | | | Calling clear() from the destructor is problematic, since clear() will try to access the application model, which has typically already been destructed at that point. Instead we should just clean-up any local resources. Since we don't really have a need for the clear() function anymore, we move the code where it belongs: into the beginRebuildTable() function. Task-number: QTBUG-69554 Change-Id: Ic43704c71407e805427de27cf10dbdeeae475ba8 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* QQuickTableView: improve draining of reuse poolRichard Moe Gustavsen2018-08-072-16/+55
| | | | | | | | | | | | It turns out that using a maxTime of 2 when draining the pool was a bit naive. If e.g the width of the table is greater than the height, it starts releasing pooled items to quickly. So change the logic to be more dynamic, and to calculate what the maxTime should be based on the geometry of the table. Change-Id: Ifeed62789575f98cff063f550f45eb54ef312fdb Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* QQuickWindow: obey AA_SynthesizeMouseForUnhandledTouchEventsShawn Rutledge2018-08-061-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | Until now, AA_SynthesizeMouseForUnhandledTouchEvents has only affected behavior of QGuiApplicationPrivate::processTouchEvent, but had no effect in Qt Quick. QQuickWindow also accepts the touch event just to make sure that QGuiApplication will not synthesize mouse from touch, because it would be redundant: QQuickWindow does that for itself. Now we make it have an effect in Qt Quick too: skip mouse synthesis if it is set to false. This provides a way to simplify the event delivery. If you set it false, then you cannot manipulate old mouse-only items like MouseArea and Flickable on a touchscreen. (You can of course use event handlers for that.) [ChangeLog][QtQuick][QQuickWindow] You can now disable touch->mouse event synthesis in QtQuick by calling qGuiApp.setAttribute(Qt::AA_SynthesizeMouseForUnhandledTouchEvents, false); This will simplify and speed up event delivery, and it will also prevent any and all interaction with mouse-only items like MouseArea and Flickable on a touchscreen. Task-number: QTBUG-52748 Change-Id: I71f1731b5abaeabd9dbce1112cd23bc97d24c12a Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* Mark non-notifying properties in event types CONSTANTShawn Rutledge2018-08-062-43/+43
| | | | | | | | | | | | | | Event objects are valid only within the context of a JS callback that receives the object as a signal parameter, and the object will not change during the runtime of that callback. It's not true that the properties will never change, because event objects are pooled and reused; but the QML is not allowed to keep a reference to an event, so the property changes during this reuse are not meant to be seen. QQuickMouseEvent is similar, and its properties were already marked CONSTANT. Change-Id: I4985e4a27bf192779629311eb8c6c1f63d22df3e Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* QQmlTableInstanceModel: handle model data changes more gracefullyRichard Moe Gustavsen2018-08-022-11/+0
| | | | | | | | | | | | | Equal to QQmlDelegateModel, we need to listen for changes done to existing model items, and notify existing delegate items about it. Otherwise, they will not stay in sync with the model. By accident, this sort of worked in QQuickTableView already, since it would rebuild the whole table for every model update. This is really slow, and completely unnecessary. Change-Id: I10750ff387f8b455d0f27c50a17926d9beb6dd03 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* TableView: don't try to grab the window when it's nullMitch Curtis2018-08-021-1/+1
| | | | | | | Task-number: QTBUG-69554 Change-Id: If094f213bf4daa383f8a5fd0ed22ad8100ab0675 Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
* QQuickTableView: implement support for reusing delegate itemsRichard Moe Gustavsen2018-08-023-9/+88
| | | | | | | | | | | | | | | | | | | | | | | | This patch will make use of the recent changes in QQmlTableInstanceModel to support reusing delegate items. The API in TableView to enable this will mainly be a new property "reuseItems". This property is true by default. By setting it to false, reusing items will never happen. When an item is reused, the signal "TableView.reused" is emitted after the fact, in case the delegate item needs to execute some extra code during the process. Likewise, a signal "TableView.pooled" is emitted when the item is pooled. From an implementation point of view, TableView only need to do two things to enable reusing of items. First, whenever it releases items, it provides a second argument to release(), informing QQmlTableInstanceModel if the item can be reused. Second, it needs to call drainReusePool() at appropriate times to ensure that no item will be kept alive in the pool for too long. Change-Id: I830e2eace776302ac58946733566208aa8954159 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Merge remote-tracking branch 'origin/5.11' into devQt Forward Merge Bot2018-08-011-4/+4
|\ | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I654a2a4b34dadc7cb7d85625b86f54691ad5904a
| * Doc: Add precision to scene graph descriptionPaul Wicking2018-07-301-4/+4
| | | | | | | | | | | | Task-number: QTBUG-60913 Change-Id: I3a9d8925337a12a849e39a70f168dbfc7f007e5f Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Increase fine-grained signals for some properties in TextAleix Pol2018-07-313-4/+11
| | | | | | | | | | | | | | | | | | | | | | | | Text.[content/painted][Width/Height] were being always notified of changes at bulk. This is can be harmful in performance of QML applications that will trigger change requests on the program whenever a property is modified. This introduces separate signals so it's not a problem anymore. Change-Id: I5b82cf13158298dbc91157b837d0ed4aadeb86cf Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
* | Increase fine-grained signals for some properties in FlickableAleix Pol2018-07-313-10/+25
| | | | | | | | | | | | | | | | | | | | | | | | Flickable.at[X/Y][Beginning/End] were being always notified of changes at bulk. This is can be harmful in performance of QML applications that will trigger change requests on the program whenever a property is modified. This introduces separate signals so it's not a problem anymore. Change-Id: I729852df665ec34f532812dd0a45507d053d624c Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
* | Merge "Merge remote-tracking branch 'origin/5.11' into dev" into ↵Kai Koehne2018-07-301-0/+1
|\ \ | | | | | | | | | refs/staging/dev
| * | Merge remote-tracking branch 'origin/5.11' into devQt Forward Merge Bot2018-07-301-0/+1
| |\| | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/quick/tableview/pixelator/main.cpp examples/quick/demos/ Change-Id: Id7eaae6584017a4ab4ec9dd97b56d5c1a417f0e3
| | * Remove const from QQuickPointerEvent::device propertyShawn Rutledge2018-07-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | A property never has const pointer as its type. Getting this wrong also causes problems with the QML type registration not matching the actual type. Task-number: QTBUG-61749 Change-Id: Ic3c47499cc4dff6df0beecf5b1413c76509ca6f5 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | * Doc: Fix broken link targetsPaul Wicking2018-07-251-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* | | QQuickTableView: be more careful when calling updatePolish() directlyRichard Moe Gustavsen2018-07-302-9/+17
|/ / | | | | | | | | | | | | | | | | | | | | Like QQuickListView, QQuickTableView also calls updatePolish() directly for a smoother drag/flick experience. But this can easily result in recursive callbacks to viewportMoved() if the application, upon receiving signals, changes contentX/Y. So add some extra code to protect from this. Change-Id: Ie4b29bdcf4dc650d89759f9a8a1e3378074ade6e Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | TapHandler: emit eventPoint from the tapped signalsShawn Rutledge2018-07-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Any JS callback using one of these signals probably needs to know which button was tapped. We do not want to require TapHandler.point.pressedButtons to tell a lie (temporarily hold the previous state even though a button was actually released). We could add a releasedButtons property, but it would be a bit weird to have it holding state indefinitely between events. We could add just a button parameter to these signals, which would not be so bad, but emitting the whole eventPoint opens up other possibilities, like doing filtering in JS based on the device. To be able to get the device property of the event in QML, it must not be a const pointer. Q_PROPERTY(const type* ...) is so far unprecedented in Qt Quick; and the device has only const properties anyway. This reverts 8dc02aab72a714b5195ccc641fbfb534c3ae9e98 Task-number: QTBUG-61749 Task-number: QTBUG-64847 Change-Id: I09067498b22cc86e9f68c5ff13d6aa5447faba3d Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* | Rearrange docs: Pointer Handlers -> Input HandlersShawn Rutledge2018-07-261-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At QtCS 2018 we decided to rename Pointer Handlers to Input Handlers and include the Keys attached property as part of this set (since we plan to have attached-property pointer handlers too, eventually). It's no longer a module, it's included in Qt Quick 2.12. We need to start promoting Input Handlers and reducing the visibility of legacy stuff like MouseArea and MultiPointTouchArea (in the hope of being able to deprecate them eventually). Task-number: QTBUG-66651 Change-Id: I801351ac2531191cbb1faac9318441c67a109af6 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io> Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* | Flickable: never react to a QMouseEvent with no buttons pressedShawn Rutledge2018-07-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | If a Flickable contains an Item with a HoverHandler and a DragHandler, and you drag it and release it, then during the next mouse move events, since Flickable is able to filter those while they are being sent to the HoverHandler, it would grab the mouse. Suddenly you'd be flicking even with no mouse buttons pressed. I think I've seen similar behavior in other scenarios too, at some point. Change-Id: If79c8af2b62dc69f085513e0b7c8bf9b4d504572 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* | Expand docs on SnapOneItemMichael Brasser2018-07-191-1/+5
| | | | | | | | | | | | Change-Id: Ia8b96edd49467c2c54ef4e1a0332a94c9a3986a9 Reviewed-by: Albert Astals Cid <aacid@kde.org> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | TableView: invalidate table when rows or columns are movedMitch Curtis2018-07-192-1/+23
| | | | | | | | | | | | | | | | Similar to e792c08ef2bb4d4676df2fe7cc4537ea993d07d2, except for rows and columns being moved. Change-Id: I2ffa18a7447730fdc32e298b2870cd3180c3bee8 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | Call clearGrabbers each time we get a press eventJan Arve Sæther2018-07-191-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is important in order for passive grabbers to be in the same order as if the points were pressed at the same time. In our case, the problem occurred when we had a single-point DragHandler together with a two-finger PinchHandler: * One finger was pressed and moved => DragHandler called setPassiveGrab() => point0->passiveGrabbers: [DragHandler] * A second finger was pressed and moved => PinchHandler called setPassiveGrab() for both points => point0->passiveGrabbers: [DragHandler,PinchHandler] => point1->passiveGrabbers: [PinchHandler] So then as one keeps on dragging the *two* fingers, the DragHandler will get the chance to do an exclusive grab first, (since its the first listed passive grabber of point0), and the PinchHandler won't get the opportunity to grab. This is not expected since their declaration order implies that the PinchHandler should get a chance to grab first. Change-Id: I4e82ed186eeb5bf1dae1679d393e5563072175d1 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Make DragHandler a MultiPointHandlerShawn Rutledge2018-07-192-0/+13
| | | | | | | | | | | | | | | | | | | | That is, minimumPointCount can now be set to a value > 1 to require multiple fingers to do the dragging, or to track the displacement of multiple fingers to adjust some value (such as the tilt of a map). Task-number: QTBUG-68106 Change-Id: Ib35823e36deb81c8b277d3070fcc758c7c019564 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* | QQuickTableView: set delegate parent early-onRichard Moe Gustavsen2018-07-191-5/+13
| | | | | | | | | | | | | | Set the parent before bindings are evaluated. Change-Id: I370524fe32c66699bd73aafeac55c58667b4dff1 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | QQuickTableView: remove TableView.cellWidth/HeightRichard Moe Gustavsen2018-07-182-34/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | The attached properties TableView.cellWidth/Height were added for corner cases where you couldn't set/override implicit size for a delegate item. But now that we have added rowHeightProvider and columnWidthProvider (and we know that we're going to offer a broader API to set row/column size from a HeaderView), you have a way out for those cases as well. So lets remove the attached properties until we know for sure if they will be needed. Change-Id: I7d20fb02c36aebd3f24964630ccb68d4c813e93e Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Qt Quick Table View: set the default row and column spacing to 0Nicolas Ettlin2018-07-182-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, in the TableView QML component, the initial row and column spacing is set to (-1, -1), as in the default QSizeF constructor. As the negative spacing was ignored when positioning the items, but taken in account when computing the total content size, it caused an issue where the user wouldn’t be able to scroll to the bottom right corner of the TableView. This commit fixes this issue by setting a default spacing to (0, 0). It also prevents the developer from using invalid spacing values (such as negative numbers, NaN or Infinite). Task-number: QTBUG-69454 Change-Id: I343475790c384954372afad0a778f8da7dff0b0d Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | QQuickTableView: change how tableview resolves column width and row heightRichard Moe Gustavsen2018-07-183-225/+135
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current solution of storing column widths as the user flicks around turns out to not scale so well for huge data models. We basically don't want to take on the responsibility of storing column widths and row heights for e.g 100 000 rows/columns. Instead, we now choose to ask the application for the sizes, whenever we need them. This way, the application developer can optimize how to store/calculate/determine/persist row and column sizes locally. To implement this functionality, we add two new properties: rowHeightProvider and columnWidthProvider. They both accept a javascript function that takes one argument (row or column), and returns the corresponing row height or column width. If no function is assigned to the properties, TableView will calculate the row height / column width based on the currently visible items, as before. Change-Id: I6e5552599f63c896531cf3963e8745658ba4d45a Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | [Quick] Make sure an transition instance is stopped when replacedErik Verbruggen2018-07-181-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Icbcc732f787ff23c72d843f1ecaa86a2cc9c75ec Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Port to qmlobject_connectVolker Krause2018-07-181-20/+20
| | | | | | | | | | | | | | | | | | | | These objects can exist in larger quantities in QML applications, and due to the large amount of connections here the allocations of the involved string operations actually become relevant. qmlobject_connect caches the signal/slot lookup, so we pay for this only once now. Change-Id: I13964f01f5b15dbddad4e24d5d2b4665c8c6ae6d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | TableView: invalidate table when model is resetMitch Curtis2018-07-172-0/+8
| | | | | | | | | | | | | | | | Signals like rowsInserted() were already accounted for in QQuickTableViewPrivate::connectToModel(), but modelReset() was not. Change-Id: I6b8248d745d507d4ea846e9bee717182915792b3 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | Get rid of Qt.labs.handlers import, merge into QtQuick 2.12Shawn Rutledge2018-07-171-0/+36
| | | | | | | | | | | | | | ... and clean up imports in examples, snippets and tests accordingly. Change-Id: I5bbe63afd2614cdc2c1ec7d179c9acd6bc03b167 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* | Fix compilation when building with qreal defined as floatLuca Carlon2018-07-171-1/+1
| | | | | | | | | | | | | | | | Avoid casting to qreal to prevent failure when building with qreal defined as float. Change-Id: I88b9d274a203a53c464c727fb668fbcbbda6027a Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | QQuikTableView: use TableViewModel instead of QQmlDelegateModelRichard Moe Gustavsen2018-07-172-37/+123
| | | | | | | | | | | | | | | | | | | | | | | | Swap out QQmlDelegateModel in favor of the new QQmlTableInstanceModel. QQmlTableInstanceModel skips using QQmlChangeSets all together, and lets us subscribe to model changes directly from the underlying QAIM instead. This will make it much easier to handle model changes more gracefully later. Change-Id: I0315e91f39671744fb48d1869e4b73b1becbb929 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into devQt Forward Merge Bot2018-07-164-4/+65
|\| | | | | | | | | | | | | | | Conflicts: src/quick/items/qquickloader.cpp tests/auto/quick/qquickanimations/tst_qquickanimations.cpp Change-Id: I0cb9f637d24ccd0ecfb50c455cc210119f744b02
| * QQuickRenderControl: Grab framebuffer with alpha if the window uses itAndy Shaw2018-07-121-1/+2
| | | | | | | | | | Change-Id: Ie11e86be997d749e6f82f0fb81a82bb0b50ab1f1 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
| * Item, QQuickItem: document which properties are used in map functionsMitch Curtis2018-07-101-0/+28
| | | | | | | | | | Change-Id: Idf3aecf88319a2967ca51985003be32c7e7ef42a Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
| * Don't leak components in QQuickLoaderColin Ogilvie2018-07-051-2/+6
| | | | | | | | | | | | | | | | | | | | | | Only create source component in loadFromSource if it does not already exist. Previously toggling the active status when loading from source would create a new source component every time active became true. [ChangeLog][QtQuick][Loader] Don't leak components when changing source url. Change-Id: I1e4cfd5613e3851fcb4f3f55e78981f7c070cc77 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| * Doc: add a section that demonstrates various contentX/contentY statesMitch Curtis2018-07-041-1/+26
| | | | | | | | | | | | | | This makes it easier to visualize how the properties work. Change-Id: I04cb1a99a1f831e5c892cb27e4a0cd127fe450e0 Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
| * Doc: clarify behavior of QQuickItem's constructorMitch Curtis2018-07-021-0/+3
| | | | | | | | | | | | | | | | It uses the parent argument as both a visual parent and a QObject parent. Change-Id: Ib6c645c072462501c77f27085cba7538703c5966 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Add LineStyle support to Context2dColin Ogilvie2018-07-124-0/+172
| | | | | | | | | | | | | | | | | | | | Allow Context2D lines to be drawn as dashed, dotted etc. [ChangeLog][QtQuick][Canvas] Added set/get lineDash and lineDashOffset to Context2D to allow non solid lines to be drawn. Task-number: QTBUG-31807 Change-Id: I9ffcc5d93dc352dbd0aec4ac8a616c999239c48d Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Add Flickable.synchronousDrag propertyShawn Rutledge2018-07-124-2/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When it is set true, Flickable begins dragging by making the content jump to the position where it would have been if there was no drag threshold: that is, the content moves exactly in sync with the mouse cursor or finger (as long as it's not hitting the bounds). [ChangeLog][QtQuick][Flickable] Added a synchronousDrag property that makes the content jump to the position it would have had if there was no drag threshold, as soon as dragging begins. Task-number: QTBUG-62902 Change-Id: I5f3b530956363172167896b0f19aec4a41bf82b3 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | QQWindowPriv::sendFilteredPointerEvent: don't clear hasFilteredShawn Rutledge2018-07-121-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It should be the caller's responsibility to do that when needed. In cases when sendFilteredPointerEvent is being called repeatedly in a loop, it doesn't make sense to allow the same ancestor item to filter the same event more than once. For example Flickable will decide to steal the grab the first time it sees a mouse movement that exceeds the drag threshold, but it is supposed to wait until the next event to actually steal the grab. But if it gets a chance to filter twice, it will steal the grab within the context of the delivery of one event. 5cb76fb3704947cfc4d575695b137460ecc8bbd9 took care of repeated filtering in case of two handlers belonging to the same Item; from one side, this patch is more general than that. But another purpose of that patch was also to prevent delivery to any more Pointer Handlers if an Item parent has already filtered the event. hasFiltered remembers which parents had a chance to filter; sendFilteredPointerEventResult remembers what each of them returned from the filter function. It would be nice if we could avoid needing both of these data structures. Task-number: QTBUG-64846 Change-Id: I4d26899224e8531ff3d74dbb35994a26e5e94763 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
* | Quick: Use devicePixelRatioF rather than devicePixelRatioUlf Hermann2018-07-121-1/+1
| | | | | | | | | | | | | | | | | | | | The integer version of devicePixelRatio cannot handle fractional ratios and will lead to arithmetic exceptions for ratios between 0 and 1. Change-Id: I4a06a12742fa85e6d2f0e24193ae796dec7e2f15 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>