aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.9' into 5.10J-P Nurmi2017-12-1540-96/+877
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf examples/quickcontrols2/quickcontrols2.pro src/imports/controls/ComboBox.qml src/quicktemplates2/qquickabstractbutton.cpp src/quicktemplates2/qquickabstractbutton_p.h src/quicktemplates2/qquickapplicationwindow_p.h src/quicktemplates2/qquickcombobox.cpp src/quicktemplates2/qquickcontainer.cpp src/quicktemplates2/qquickcontrol.cpp src/quicktemplates2/qquickcontrol_p.h src/quicktemplates2/qquickcontrol_p_p.h src/quicktemplates2/qquicklabel_p.h src/quicktemplates2/qquicklabel_p_p.h src/quicktemplates2/qquickslider_p.h src/quicktemplates2/qquickspinbox.cpp src/quicktemplates2/qquicktextarea_p.h src/quicktemplates2/qquicktextarea_p_p.h src/quicktemplates2/qquicktextfield_p.h src/quicktemplates2/qquicktextfield_p_p.h tests/auto/auto.pro tests/auto/controls/data/tst_combobox.qml Change-Id: I34cdd5a9794e34e0f38f70353f2a2d04dfc11074
| * Control: defer the execution of the content itemJ-P Nurmi2017-12-1515-57/+18
| | | | | | | | | | | | | | | | | | Tumbler is excluded because test_customContentItemAtConstruction() starts failing if deferred execution is enabled for the content item. Task-number: QTBUG-50992 Change-Id: I11022c3c380311396453cf6229e068e4aae2d82a Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * Control: defer the execution of the background itemJ-P Nurmi2017-12-1511-9/+2
| | | | | | | | | | | | Task-number: QTBUG-50992 Change-Id: I6372e143c68f0a5bf7212d759281acef3c81618e Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * Page: use deferred executionJ-P Nurmi2017-12-142-0/+5
| | | | | | | | | | Change-Id: Icb22f656893c89f61233bb547f03e63240bb8f97 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * SpinBox: use deferred executionJ-P Nurmi2017-12-142-15/+73
| | | | | | | | | | | | | | | | | | | | tst_controls::SpinBox::test_initialFocus() caught an issue that focus was not transferred as expected when the creation of the content item was deferred. Task-number: QTBUG-50992 Change-Id: I6b9f5684ab7141fa4ebfe4c7fe3e32528553b96d Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
| * GroupBox: use deferred executionJ-P Nurmi2017-12-142-4/+36
| | | | | | | | | | | | Task-number: QTBUG-50992 Change-Id: I3e5c8bf7cc39fae0e882440079bb43292ace1810 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * Pane: use deferred executionJ-P Nurmi2017-12-142-0/+13
| | | | | | | | | | | | Task-number: QTBUG-50992 Change-Id: Ibba0e79f8eaf76336dad3708606484a2846b2912 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * ComboBox: use deferred executionJ-P Nurmi2017-12-142-26/+81
| | | | | | | | | | | | | | | | | | | | | | | | As a special case, ComboBox defers the execution of the popup until the popup is either accessed or made visible. This gives a nice boost in creation time benchmarks (20->25, ~25%). The old optimization of setting the delegate model only when the popup is visible is no longer needed. Task-number: QTBUG-50992 Change-Id: Ifeaceb759ab676bb54c6bc09dc97810eade72ca1 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * ApplicationWindow: use deferred executionJ-P Nurmi2017-12-132-4/+27
| | | | | | | | | | | | Task-number: QTBUG-50992 Change-Id: Ia07055d2fa3d30c91bdf3c526cf7301c7ed1ce2b Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * RangeSlider: use deferred executionJ-P Nurmi2017-12-132-6/+44
| | | | | | | | | | | | Task-number: QTBUG-50992 Change-Id: Ibbc946c3402c65f9b100fc74dde04e4d439c8535 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * TextArea: use deferred executionJ-P Nurmi2017-12-133-4/+27
| | | | | | | | | | | | Task-number: QTBUG-50992 Change-Id: I6d205f8ea0c90986b18b7e6cedbf347f1ce38eec Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * TextField: use deferred executionJ-P Nurmi2017-12-133-4/+27
| | | | | | | | | | | | Task-number: QTBUG-50992 Change-Id: I99a8d97e7f25cfff398fb30e365c7b245b738c37 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * Label: use deferred executionJ-P Nurmi2017-12-133-4/+27
| | | | | | | | | | | | Task-number: QTBUG-50992 Change-Id: I8e626d1a0585f93cbd612aca39a1e9050f5e0ed3 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * Dial: use deferred executionJ-P Nurmi2017-12-132-4/+27
| | | | | | | | | | | | Task-number: QTBUG-50992 Change-Id: I432be00d81344ce129bc8906370555b134fdf423 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * Slider: use deferred executionJ-P Nurmi2017-12-132-4/+27
| | | | | | | | | | | | | | | | | | | | | | Note: It is important to repeat the names of the deferred properties in base classes. The QML engine ask for the class info from the meta- object. A class info declaration in a sub-class overshadows the class info declaration by the same name in the base class. Task-number: QTBUG-50992 Change-Id: Ib674b943db2f0bf196c9386ea22b511715c0a98f Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * Migitate the performance regression caused by deferred executionJ-P Nurmi2017-12-126-29/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 458eb65f7 introduced a performance regression. Before 458eb65f7, qmlbench delegates_button.qml results were around 40 frames on a TX1. After 458eb65f, it dropped to 32. This patch is unfortunately not able to bring it on the original level, but at least improves the results to 37. For QQuickText, it is extremely important that implicitWidth() gets called before the component is completed, to avoid doing implicit size calculation multiple times. Deferred execution caused a performance regression by creating contentItem in "one go". We need to split the deferred execution to two parts so that bindings get first setup, and later enabled upon completion. This way, we utilize QQuickText's performance optimization for implicit size calculation. Task-number: QTBUG-50992 Change-Id: I4bf00af71b6d7dbf1d4b58b00fe547c6c321f8ed Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * Buttons: defer the execution of the delegatesJ-P Nurmi2017-12-119-11/+442
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In practice, deferring the execution of the delegates (until accessed) means that the default delegate item does not get created at all, when a custom control replaces it at construction time. Button { background: Rectangle { ... } } Before, such custom Button would never be faster than the original one, because the default delegate was first created and then thrown away at construction time. Originally, this was not considered a huge problem, because the plan was to keep the default delegates so light- weight that it wouldn't matter. However, then came the fancy styles with shadows and effects and thus, heavier default delegates. There's also a growing demand for more features, and the default delegates are slowly getting heavier... Now, after this patch, if you replace a heavy default delegate with a light and simple custom delegate, the result is a much faster control. For example, replacing Material style Button's background, which has a shadow effect, with a plain Rectangle gives a ~10x boost, because the default background with its heavy shadow effect is not executed at all. At the same time, deferring the execution of the default delegates avoids troubles with asynchronous incubation, because we don't need to destroy an object in the middle of the incubation process. Task-number: QTBUG-50992 Change-Id: I2274bff99b9ff126d3748278d58d859222910c98 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * watch for the actual render window if there is a QQuickRenderControlMarco Martin2017-11-221-0/+3
| | | | | | | | | | | | | | | | | | | | | | if the scene is rendered by a QQuickRenderControl and we have a different target window (for instance QQuickWidget) we check the target window of the render control instead of the own window, this fixes window keyboard shortcuts for QQuickWidget Task-number: QTBUG-64548 Change-Id: I7614be580f2a707c752189e4c9b53a5d5f0159d7 Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
* | Fix double toggling through Action with checked AbstractButtonJoni Poikelin2017-12-133-6/+18
| | | | | | | | | | | | | | | | | | | | | | Action caused checked state of the button to be reset back to its original value if checked status had been change through click or key press. To avoid this, separate private function has been added to that does not change the status. Task-number: QTBUG-65108 Change-Id: I8a5aaa9aab739db3ba10d0202f5fb718cc7195bd Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
* | Doc: mention qtquickcontrols2.conf file in font docsMitch Curtis2017-12-111-3/+11
| | | | | | | | | | | | | | | | Currently, there's no explicit mention of being able to customize the font via the qtquickcontrols2.conf file. Change-Id: I0c62e19b721a2d652021c303f876aaaa1098b880 Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
* | Doc: mention qtquickcontrols2.conf file in palette docsMitch Curtis2017-12-111-3/+10
| | | | | | | | | | | | | | | | Currently, there's no explicit mention of being able to customize the palette via the qtquickcontrols2.conf file. Change-Id: I11f16a4e7dd759de2121e986df17ae9fdc651180 Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2017-11-152-12/+9
|\| | | | | | | Change-Id: Ide4b85626dd153b534c39a3afa2f3b9e732badf5
| * DialogButtonBox: micro optimization for resizeContent()Konstantin Ritt2017-11-081-9/+6
| | | | | | | | | | Change-Id: Ie72671fb92108dfaf5aaae4ea3ffb279e14b2f1a Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
| * Fix QQuickSlider::valueAt()J-P Nurmi2017-11-071-3/+3
| | | | | | | | | | | | Task-number: QTBUG-64065 Change-Id: Id77a85ce5b88c20795e9f7fe9d2ece974f46a315 Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
* | Re-order revision 3 members and add explanatory commentsJ-P Nurmi2017-11-0622-69/+117
| | | | | | | | | | | | | | | | | | | | | | | | We've come to realize that even though it's tempting to group similar properties together, organizing the API so that revisions are grouped together makes future maintenance more pleasant. It's a lot easier to to see what was added and when. The same was done for earlier revisions in 5.9 in commit 430fe83. Change-Id: I738d7fdadd348c21737228c37d0f31e39b37f8e7 Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into 5.10J-P Nurmi2017-11-0631-435/+520
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/quicktemplates2/qquickabstractbutton_p.h src/quicktemplates2/qquickbuttongroup_p.h src/quicktemplates2/qquickrangeslider.cpp src/quicktemplates2/qquickrangeslider_p.h src/quicktemplates2/qquickswipeview_p.h src/quicktemplates2/qquicktextarea.cpp src/quicktemplates2/qquicktextarea_p.h src/quicktemplates2/qquicktextfield_p.h Change-Id: I7cba8783b1dd85a4db534222e36572ee05dd01d0
| * Re-order all revisioned members and add explanatory commentsJ-P Nurmi2017-11-0628-396/+469
| | | | | | | | | | | | | | | | | | | | We've come to realize that even though it's tempting to group similar properties together, organizing the API so that revisions are grouped together makes future maintenance more pleasant. It's a lot easier to to see what was added and when. Change-Id: I47ba7725260f2c259048848cc2a9b17bce2f01c7 Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
| * DialogButtonBox: fix height calculation due to a trivial typoKonstantin Ritt2017-11-031-1/+1
| | | | | | | | | | Change-Id: I7bfb3505cf34b6e8a6f670abd81ee6e39084a1fc Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
| * QQuickSlider: migitate value rounding errorsJ-P Nurmi2017-11-031-1/+4
| | | | | | | | | | | | Task-number: QTBUG-64065 Change-Id: I7182cf24197250c927c8cc5227356e835e55a130 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * QQuickTextField: retain selection on right mouse button clickJ-P Nurmi2017-11-031-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | QQuickTextField wants to emit pressed(), released(), and pressAndHold() signals not only on left, but on all mouse button clicks. Therefore it explicitly sets accepted mouse buttons to all. However, the base class, QQuickTextInput, has only been prepared to handle left (selection) and middle (paste) mouse buttons. Don't pass right mouse button -only events to the base class to avoid it clearing selection on right click. Task-number: QTBUG-64048 Change-Id: I015820c78995cc8dd7cbeb16fca0f9b991040bad Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * Doc: mention the Side Panel example in Drawer's detailed descriptionJ-P Nurmi2017-11-031-0/+5
| | | | | | | | | | | | Task-number: QTBUG-64099 Change-Id: I6580f1779e2863e25980968b076f342a5d76d423 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Revert "QQuickTabBar: optimize layouting"J-P Nurmi2017-11-021-12/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 80f6b146e6a1b3e7164a728271c0e17eb25c3e98, because the optimizations caused a binding loop on the TabBar page in the Gallery example. qrc:/pages/TabBarPage.qml:90:13: QML TabBar: Binding loop detected for property "implicitHeight" As a result, the tabs are looking broken at least when running with the Imagine style. Change-Id: I231bf5b21ecf92000bac94782567301214b64fec Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Visualize mnemonicsJ-P Nurmi2017-11-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unfortunately this comes a bit late in the 5.10 cycle, but this should be released together with the rest of the mnemonics stuff going out in 5.10, because it affects the value of AbstractButton/Menu(Bar)Item::text. As the removed TODO comments and altered tests indicate, previously the ampersand was blatantly stripped out. It would be worse to change it later once people have already started using mnemonics and rely on the behavior in custom styles. The necessary modifications to QQuickText were added in qtdeclarative commit 65ef4ba. Task-number: QTBUG-61422 Change-Id: Iaa73da8c012e9a6019743cf98f5bdc02527064e5 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Optimize QQuickTumblerJ-P Nurmi2017-11-023-98/+119
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Listen to the relevant view changes once in QQuickTumbler and cache the offset/contentY instead of every QQuickTumblerAttached instance doing its own geometry and child tracking, and cache the view offset or contentY so that they are readily available while calculating displacements for attached property objects. This gives a 5% boost (40->42 frames in qmlbench) on TX1 in release mode. Change-Id: If1a77468e812e65bc07f32216ff9bf2e1dc5b935 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2017-10-301-0/+1
|\| | | | | | | | | | | | | Conflicts: src/imports/controls/MenuItem.qml Change-Id: Id4cae0e53a58796694ad1fc9f8380b317ee62984
| * Fix resource leakJesus Fernandez2017-10-251-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | The system resource will not be reclaimed and reused, reducing the future availability of the resource. In QQuickStackView::​componentComplete(): Leak of memory or pointers to system resources (CWE-404) Coverity-Id: 178431 Change-Id: Iff8f8e2d228042789faae56512fd3255c3e56498 Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
* | Document palette as a basic QML typeJ-P Nurmi2017-10-273-2/+4
| | | | | | | | | | | | | | | | | | | | Unfortunately we need to manually add some \sa "palette QML Basic Type" links as a workaround until auto-linking to basic QML types in QML property headers is fixed in QDoc. Task-number: QTBUG-63469 Change-Id: I2ea853bfeda31905468741eb720f4daa242e703d Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | QQuickSpinBox: fix internal setValue() argumentsJ-P Nurmi2017-10-271-2/+2
| | | | | | | | | | | | Task-number: QTBUG-64075 Change-Id: Ifd48b6d0075ab1930be3d759b18292b5038bcc17 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Docs: promote the icon docs on its own pageJ-P Nurmi2017-10-231-52/+2
| | | | | | | | | | | | | | | | | | | | - other controls (textfield, combobox, ...) will eventually gain support for icons too - advertise icon support on the index page amongst other important topics - document the steps for building an icon theme with high-dpi support Change-Id: I35ed76ef005d7e273beb5f5147ca92849adc0d90 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Docs: make button icons sound as worthy as text labelsJ-P Nurmi2017-10-234-11/+10
| | | | | | | | | | | | | | | | Advertise text and icon properties equally. The additional mention of the icon property make icons sound somehow less worthy. :) Change-Id: I564954091ba9d484abda702ce4ba46ddebe7a082 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into 5.10J-P Nurmi2017-10-225-13/+36
|\| | | | | | | Change-Id: I9188f94e40e2ecb4da1963ce2fcf915ab7a4b4fb
| * QQuickDialogButtonBox: fix potential crash in updateLayout()J-P Nurmi2017-10-201-2/+2
| | | | | | | | | | | | | | | | | | Don't dereference the contentItem pointer without checking. We can use availableWidth/Height as a fallback. Task-number: QTBUG-63898 Change-Id: I1ef7704e96e233036eacd6e3586f5bd0c72fac2d Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * QQuickContainer: fix itemSiblingOrderChanged()J-P Nurmi2017-10-173-11/+32
| | | | | | | | | | | | | | | | | | | | | | The problem was that QQuickContainer started already moving items while QQmlObjectModel was creating items and QQuickRepeater was initializing the order. Don't reorder items during the creation, but only after component completion. Task-number: QTBUG-61310 Change-Id: I13380c5ab6b3bddaad3fa03ef6fb028622b4cd11 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * QQuickToolTip: disable hoverJ-P Nurmi2017-10-121-0/+2
| | | | | | | | | | | | | | | | | | | | Tooltips are special popups that should not block hover, because it conflicts with the typical condition for showing tooltips on desktop platforms. Task-number: QTBUG-63644 Change-Id: Ie974aed23a7df8e4b926bec5fe717cb909d15842 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | qquickapplicationwindow_p.h: make REVISION comment qdoc-compatibleJ-P Nurmi2017-10-201-1/+1
| | | | | | | | | | | | | | | | qquickapplicationwindow_p.h:149: warning: Failed to parse token /*REVISION 3*/ in property declaration Change-Id: If63cb8a5beaa1e738ffe51b73b0a4817ce0c16fc Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Revert "SwipeDelegate: grab the mouse when accepting a press event"J-P Nurmi2017-10-191-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | This partially reverts commit 31d90e308e46d644d74e9434ce31dd664677bc59 without bringing back the blacklists that were added in commit 4d12ab2c6a62e2771e7cc9c2c67ab48962987421. These explicit grab calls are no longer needed. The root cause was fixed in qtdeclarative commit 2dd530ca35032465d4e928aa7c8f29563eb0c5da. Change-Id: Ie22b05ee00cd6e104d99732eddcd9d0652b6a7e0 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into 5.10J-P Nurmi2017-10-124-17/+19
|\| | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/quicktemplates2/qquickbuttongroup.cpp src/quicktemplates2/qquickoverlay.cpp tests/auto/controls/data/tst_buttongroup.qml Change-Id: Iae23aaf039c6095007966475294e93220dbead84
| * Doc: state which input devices cause certain signalsMitch Curtis2017-10-101-6/+6
| | | | | | | | | | Change-Id: Ib56041e69547e03d7db10974d4638748f99fd2bf Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
| * Fix the QML context of popup background dimmersJ-P Nurmi2017-10-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We were accidentally passing QQuickOverlay as a QML context parent for dynamically created popup background dimmers. There is only one overlay per window, and the overlay is not destroyed when a popup is destroyed. QQuickOverlay is just a visual parent item for popup background dimmers, but the actual owner is QQuickPopup. Make sure to pass the popup instance as a QML context parent to ensure that the popup background dimmer's QML context is cleaned up when the popup is destroyed. Task-number: QTBUG-63672 Change-Id: I5cabbcef5035cef40af3c9edbcd8f7ae3157bd8a Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * QQuickScrollView: fix binding loop with wrapping TextAreaJ-P Nurmi2017-09-281-3/+9
| | | | | | | | | | | | | | | | | | | | Start keeping track of the content size only after the component is complete, to avoid creation time ping pong with content size updates and content item resizing. Task-number: QTBUG-62325 Change-Id: I4b75dc398d0b746dd7e0b04291270f47f91bb7e6 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>