aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2/qquickpage.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Page: fix binding loopMitch Curtis2019-02-201-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When Dialog (which derives from Page) has only its title set, there'd be a binding loop. A simplified version of the call stack: - QQuickPopup::componentComplete - QQuickPopupPrivate::prepareEnterTransition - QQuickItem::setVisible - QQuickPagePrivate::itemVisibilityChanged - QQuickDialog::implicitHeaderWidthChanged - QQmlBinding::expressionChanged <== Dialog.qml's implicitWidth binding - QQmlPropertyData::readProperty - QQuickDialog::implicitHeaderWidth - QQuickPage::implicitHeaderWidth - QQuickItem::implicitWidth <== QQuickPagePrivate::header, aka Label - QQuickTextPrivate::getImplicitWidth - QQuickTextPrivate::updateSize - QQuickTextPrivate::setupTextLayout - QQuickItem::setImplicitSize - QQuickItemPrivate::implicitWidthChanged - QQuickPagePrivate::itemImplicitWidthChanged - QQuickDialog::implicitHeaderWidthChanged - QQmlBinding::expressionChanged - QQmlAbstractBinding::printBindingLoopError Fix the issue by not emitting change signals if we're already in the process of doing so. Change-Id: I37d6fa35b1e70420e436c0e001f55035d7630542 Fixes: QTBUG-66494 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
* QQuickPage: fix a typo to avoid a crashLiang Qi2018-11-091-1/+1
| | | | | | | | | when setting null to footer Fixes: QTBUG-71444 Change-Id: Id4b0a3fd7aa104357674b4e2be6206894f8878da Reviewed-by: J-P Nurmi <jpnurmi@gmail.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Tie minor version of all imports to Qt's minor versionMitch Curtis2018-11-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | This change makes all Qt Quick Controls 2 imports match the current Qt minor version, which is 12 as of this patch. It also updates all other Qt Quick imports to match. This will also make future version bumps easier as all version numbers in existing code/docs will match. The following commands were used to verify that no old versions remain: for i in `seq 0 11`; do git grep "import QtGraphicalEffects.*1.$i$"; done for i in `seq 0 11`; do git grep "import QtQuick 2.$i$"; done for i in `seq 0 11`; do git grep "import QtQuick.Layouts 1.$i$"; done for i in `seq 0 5`; do git grep "import QtQuick.Controls.*2.$i$"; done for i in `seq 0 11`; do git grep "import QtQuick.Templates 2.$i as T$"; done [ChangeLog] From Qt 5.12 onwards, all import versions in Qt Quick Controls 2 follow the same minor version as Qt's minor version number. For example, the import version for Qt 5.12 is: "import QtQuick.Controls 2.12". Change-Id: I6d87573f20912e041d9c3b7c773cc7bf7b152ec3 Fixes: QTBUG-71095 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Page: add implicit header and footer size propertiesJ-P Nurmi2018-04-191-1/+109
| | | | | | | | [ChangeLog][Controls][Page] Added implicitHeaderWidth, implicitHeaderHeight, implicitFooterWidth, and implicitFooterHeight properties. Change-Id: Ia6de025767e64dd2b44edafc2e7dfdf9a99e3b5f Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* QQuickPage: prepare for inheritanceJ-P Nurmi2018-04-181-18/+6
| | | | | | | Add a header for the private class, and a protected constructor. Change-Id: Id34b32dd614a430ec7e299c53341f21c4fba36d9 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Merge QQuickPageLayout to QQuickPageJ-P Nurmi2018-04-181-25/+141
| | | | | | | | | | | | | The idea of a separate QQuickPageLayout falls a bit short, because as a non-QObject it cannot e.g. emit signals when the headers and footers change as a result of being destroyed. Next, we want to add implicit header and footer sizes, which has the same problem. QQuickPageLayout is currently used by QQuickPage and QQuickDialog. We are now moving the functionality to QQuickPage, and will use QQuickPage in QQuickDialog instead. Change-Id: I869e6ba0056d424e617c48c2e4f591c75cde48e5 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Merge remote-tracking branch 'origin/5.11' into devQt Forward Merge Bot2018-03-101-1/+3
|\ | | | | | | Change-Id: Id5cd236e14238612647f7a897886be0202863132
| * Doc: add a "Focus Management in Qt Quick Controls 2" pageMitch Curtis2018-03-061-1/+3
| | | | | | | | | | | | | | | | This will list each control that is a focus scope, and have some relevant information about focus in Qt Quick Controls 2. Change-Id: I3126452bf73f7d7730d0522d616d61ad0da0dd74 Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
* | Inherit QQuickPage from QQuickPaneJ-P Nurmi2018-03-091-139/+9
|/ | | | | | | | This allows us to remove a lot of duplicate code, and Page gets the same automatic content size calculation that was added to Pane. Change-Id: I98dc3a5070d61c1720dc11003bc4076aba481b3a Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Control: defer the execution of the content itemJ-P Nurmi2017-12-151-6/+3
| | | | | | | | | 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-151-1/+0
| | | | | | Task-number: QTBUG-50992 Change-Id: I6372e143c68f0a5bf7212d759281acef3c81618e Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Page: use deferred executionJ-P Nurmi2017-12-141-0/+4
| | | | | Change-Id: Icb22f656893c89f61233bb547f03e63240bb8f97 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Re-order all revisioned members and add explanatory commentsJ-P Nurmi2017-11-061-45/+45
| | | | | | | | | | 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>
* Fix QQuickControlPrivate::getContentItem() overridesJ-P Nurmi2017-07-141-5/+3
| | | | | | | | | | | | | | | | | | | | When no content item is explicitly assigned, container type of controls (Page, Pane, Popup...) create a default content item on demand. Notice that the content item is created from within the contentItem() getter, so it must not emit contentItemChanged() to avoid binding loops. QQuickControl::setContentItem_helper() was introduced in 1eaebd0 to mitigate basically the same problem with QQuickScrollView, which has its own special lazy creation of a Flickable content item. Now, the problem is that the other container controls are not executing setContentItem_helper(), because they have already assigned contentItem and therefore it returns right away. Fix the issue by returning the new content item without assigning it to let setContentItem_helper() do its job. The issue was spotted while debugging QTBUG-61434. Change-Id: Id6f84748ec08bbdfd3bd934dda627e2619af7d2a Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Page: fix initial layouting of dynamically created instancesJ-P Nurmi2017-05-311-0/+7
| | | | | | Task-number: QTBUG-61109 Change-Id: I43d28a80ec1a46e836fa8a0f76ee65b0c1a24228 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Doc: add the Qt version to "\since QtQuick.Controls 2.x"J-P Nurmi2017-05-301-2/+2
| | | | | Change-Id: Ia7f237cb580bf9c332ff4741569a57fef4eb6079 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Set explicit cursors on all interactive controlsJ-P Nurmi2017-04-051-0/+3
| | | | | | | | | | | | For example, if you have a floating button on top of a text editor, hovering the button must change the cursor from the editor's ibeam cursor to an arrow cursor. This applies to all interactive controls that call setAcceptedMouseButtons(). If a control blocks mouse events, it should not use some random cursor from another control underneath. Task-number: QTBUG-59629 Change-Id: I8a6ae306bbc76a9b22377361cb19cf9c3a872d31 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Port from QT_NO_ACCESSIBILITY to QT_CONFIG(accessibility)J-P Nurmi2017-02-241-1/+1
| | | | | Change-Id: I03deebff661746d49e537af5b1c8899b938efb0d Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Re-format constructorsJ-P Nurmi2017-01-191-2/+2
| | | | | | | | | | | It was a bit inconsistent before. Admittedly the colon at the end was the most commonly used style in the quicktemplates2 code base, but some had a line-break before the colon. This is now chosen as the one true coding style of QQC2. ;) It makes the initializer list aligned so that it stands out from the constructor body. Change-Id: I66835e088df90d7219af04915176006d2a934ddc Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Welcome to 2017J-P Nurmi2017-01-091-1/+1
| | | | | Change-Id: If68cff4efacc7dc5719c8b8e61937e85e9076870 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Merge remote-tracking branch 'origin/5.7' into 5.8J-P Nurmi2016-11-021-1/+11
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/imports/controls/Drawer.qml src/imports/controls/Frame.qml src/imports/controls/GroupBox.qml src/imports/controls/Page.qml src/imports/controls/Pane.qml src/imports/controls/ToolBar.qml src/imports/controls/Tumbler.qml src/quicktemplates2/qquickapplicationwindow.cpp src/quicktemplates2/qquickpopup.cpp tests/auto/accessibility/data/busyindicator.qml tests/auto/accessibility/data/button.qml tests/auto/accessibility/data/checkbox.qml tests/auto/accessibility/data/control.qml tests/auto/accessibility/data/dial.qml tests/auto/accessibility/data/label.qml tests/auto/accessibility/data/menu.qml tests/auto/accessibility/data/pageindicator.qml tests/auto/accessibility/data/popup.qml tests/auto/accessibility/data/progressbar.qml tests/auto/accessibility/data/radiobutton.qml tests/auto/accessibility/data/rangeslider.qml tests/auto/accessibility/data/scrollbar.qml tests/auto/accessibility/data/scrollindicator.qml tests/auto/accessibility/data/slider.qml tests/auto/accessibility/data/spinbox.qml tests/auto/accessibility/data/switch.qml tests/auto/accessibility/data/tabbar.qml tests/auto/accessibility/data/tabbutton.qml tests/auto/accessibility/data/textarea.qml tests/auto/accessibility/data/textfield.qml tests/auto/accessibility/data/toolbar.qml tests/auto/accessibility/data/toolbutton.qml tests/auto/accessibility/tst_accessibility.cpp Change-Id: Ibc3f592162e97bef9147b35da8c9a79e73a907e6
| * Doc: revise brief descriptionsJ-P Nurmi2016-11-021-1/+1
| | | | | | | | | | | | Change-Id: If7bdd4c11aaeb2df87622c769b1a65ac82ac7e73 Task-number: QTBUG-55904 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * Page: fix accessibility supportJ-P Nurmi2016-11-011-0/+10
| | | | | | | | | | Change-Id: If7d15d914e35a675dcd456a4aa561a3280c2308a Reviewed-by: Liang Qi <liang.qi@qt.io>
* | Page: support spacingJ-P Nurmi2016-10-261-0/+7
| | | | | | | | | | | | | | | | | | | | Add spacing support into QQuickPageLayout. Having spacing and padding separately gives more fine-grained control over the layout. Spacing is inserted between the header, content, and footer, but only when the respective building blocks are visible. Change-Id: Ia26a4c33c2756a603ca6d53aefac3a66414b36d3 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Page: provide implicit sizeJ-P Nurmi2016-10-251-0/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Even though the control was designed to be used as full-screen page, it can be sometimes useful to have non-fullscreen pages. In order to make Page behave well in layouts, it must provide a suitable implicit size. [ChangeLog][Controls][Page] Page has been made to calculate its implicit size based on the implicit size of the header, content, and footer plus paddings, and the implicit size of the background item. Task-number: QTBUG-56709 Change-Id: I0f40897df6e54d7bde01a464e24f0398b12bc865 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Create contentItem lazily where possibleJ-P Nurmi2016-09-261-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The existence of a content item is obligatory for such controls that alias the contentData and contentChildren properties to the data and children properties of the content item. Even though we created empty content items in QML to ensure one always exists, it did not not guarantee that a content item would exist for custom styles. Furthermore, the empty content item was unnecessarily created and destroyed when the property was overridden for a customized control in QML. This change creates the content item lazily where required, ensuring that it always exists even for custom styles, but does not create it in case a content item is supplied from QML. Task-number: QTBUG-54347 Task-number: QTBUG-56038 Change-Id: I714ef4f8c366f0f449b922b2c16c0ec653fbd364 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-09-221-2/+45
|\| | | | | | | Change-Id: I37aab846346692fd4bff08b0dbab66db3a8e2716
| * Page: fix documentation review findingsMitch Curtis2016-09-211-2/+45
| | | | | | | | | | | | Change-Id: Ia63c5d34ccb239fb45c7445a4354e6594bfce812 Task-number: QTBUG-55904 Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
* | Merge remote-tracking branch 'origin/5.7' into devJ-P Nurmi2016-08-091-1/+0
|\| | | | | | | | | | | | | Conflicts: src/quicktemplates2/qquickpage.cpp Change-Id: I4c8b62fb1d7c20c6d3c870eb47e0402a20051098
| * Page: take header & footer visibility into account in relayout()J-P Nurmi2016-08-091-2/+2
| | | | | | | | | | | | Task-number: QTBUG-55143 Change-Id: I4176d0f8902ee417fd5cb938b0f0902d480e80f6 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Bump up all controls and templates imports to version 2.1J-P Nurmi2016-07-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Controls must import templates version 2.1 in order to "inherit" 1-revisioned properties, methods, and signals. So far, this has been done case by case, but it's less error prone and more clear to change them all. For example, if you ever see a source file pasted/linked somewhere, it's easy to identify the version it belongs to. Change-Id: I41609ec1a22bc05ac3e79f953a147ca42d9e0786 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Add internal QQuickPageLayout helperJ-P Nurmi2016-06-281-117/+13
| | | | | | | | | | | | | | | | Does the header/content/footer layout for Page, and will be shared with the upcoming Dialog. Change-Id: Ic550a87b5f4bb4eb44e2d08a4c977183f3b5bbff Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Add DialogButtonBoxJ-P Nurmi2016-06-151-4/+11
|/ | | | | | | | | | | [ChangeLog][Controls] Added DialogButtonBox to provide convenience for handling dialog buttons. DialogButtonBox is able to create a set of standard buttons with a single line of QML code, and provides convenient accepted() and rejected() signals. Task-number: QTBUG-51090 Change-Id: I9b3c6ba1b2836dadf9a2ac9086be1eba214e7c4d Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Doc: add missing \since 5.7 tagsJ-P Nurmi2016-05-251-0/+1
| | | | | Change-Id: Ie4680c5dfadc95278215b688f4fc28577f557933 Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* Introduce Page::titleKonstantin Ritt2016-04-271-0/+22
| | | | | | | | Useful i.e. for displaying the current page's title name somewhere. Change-Id: I3546a9e2d4bf5a0fb4aa3ed1db564254b1e11858 Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com> Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
* Doc: rename Qt.labs.controls 1.0 to QtQuick.Controls 2.0J-P Nurmi2016-04-211-5/+5
| | | | | | Change-Id: Id6c476424fa359d222f027584278346fc0984069 Task-number: QTBUG-52549 Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
* import Qt.labs.controls 1.0 => QtQuick.Controls 2.0J-P Nurmi2016-04-211-1/+1
| | | | | | | | | Docs, resources, .metainfo and plugins.qmltypes will be updated in follow up commits. Change-Id: I4438c5bfb8802bff0fa15c56431cfd288f179861 Task-number: QTBUG-52549 Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
* Templates: update license headersJ-P Nurmi2016-04-141-2/+2
| | | | | | | This file is part of the Qt Quick Templates 2 module of the Qt Toolkit. Change-Id: I39ef9cbb00f55a32b7a43f11ffbdfbb40b84e124 Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
* Doc: add 2-suffix to the image assets and snippetsJ-P Nurmi2016-04-131-1/+1
| | | | | Change-Id: Ib8050cb3baefe07d28c7e2dcec64af155d2d7c9b Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
* Templates: rename the C++ module to qtquicktemplates2J-P Nurmi2016-04-131-0/+321
Change-Id: I146da903b46f5c2caf865e37291c25376b49021a Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>