aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/controls/universal
Commit message (Collapse)AuthorAgeFilesLines
* CMake: Regenerate projectswip/cmakeAlexandru Croitor2020-03-171-0/+158
| | | | | | Change-Id: Ifd6b2289de6465a010f5f2a32789221767b4d5be Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Merge remote-tracking branch 'origin/dev' into wip/cmakeAlexandru Croitor2020-03-174-7/+146
|\ | | | | | | Change-Id: Ieb9bcfba9651d646509afd065ce2389ef74448cc
| * Merge remote-tracking branch 'origin/5.15' into devSimon Hausmann2020-03-103-1/+139
| |\ | | | | | | | | | | | | | | | | | | Conflicts: src/imports/controls/qtquickcontrols2plugin.cpp Change-Id: Ifc09ea9f71fdba119fe8eed99f0bdcb402444f27
| | * HeaderView: set implicitSize on the style itemsv5.15.0-beta2Richard Moe Gustavsen2020-03-102-4/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By setting an implicit size, the user don't need to set a width or height on a HeaderView himself, but it will get the default size recommended by the style. By doing it the way it's done in the patch we achieve the following: 1. A HeaderView will by default be resized to be the same size as the delegate. 2. If the application sets a size on HeaderView it that is larger than the implicit size of the delegate, the delegate will be resized to have the same size (effectively filling out the free space in the header). 3. If the size of HeaderView is smaller than the implicit size of the delegate, the delegate will simply be clipped. (effectivly saying that the implicitSize of the delegate is also it's minimum size). If this is not acceptable for the application, it will need to use a custom delegate. Since a HeaderView delegate is a component and not an item, it should not be a part of the sanity checks we do to avoid using internal IDs. Hence we blacklist until we have a better way of handling such cases. Task-number: QTPM-1300 Change-Id: I30ca3e13ce5e1371b60f5c4ecf742a7d7e794a36 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| | * Add HorizontalHeaderView and VerticalHeaderViewv5.15.0-alpha1Yulong Bai2020-02-113-1/+125
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][Controls] Add HorizontalHeaderView and VerticalHeaderView. They are controls associated with TableView. Support flicking synchronization Support default, fusion, imagine, material and universal delegate styles. Fixes: QTPM-1300 Change-Id: Ie3f913dd616cda0d4e5a22a3d95baf71692370fe Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
| * | Merge remote-tracking branch 'origin/5.15' into devQt Forward Merge Bot2019-12-141-6/+7
| |\| | | | | | | | | | Change-Id: I53a6326a91c2de5a6016df7322df4a6159f2330e
| | * ComboBox: add selectTextByMouse propertyMitch Curtis2019-12-121-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allows configuring the selectByMouse property of the underlying TextField for editable combo boxes. Named selectTextByMouse instead of selectByMouse to avoid confusion with selection of the items themselves. [ChangeLog][Controls][ComboBox] Added selectTextByMouse property. Change-Id: I852e4cd44ebe6b2a1ed2535513ea2fc35cbe0a32 Fixes: QTBUG-71406 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | | Merge remote-tracking branch 'origin/dev' into wip/cmakeLeander Beernaert2019-11-2519-15/+212
|\| | | | | | | | | | | Change-Id: I61919fabd4a3a07ed374f2c3c1fae2d589d6e124
| * | Merge remote-tracking branch 'origin/5.15' into devQt Forward Merge Bot2019-11-231-1/+1
| |\| | | | | | | | | | Change-Id: I65b34cc9ac31ecf2b768ec8e45ac635df7e9cba4
| | * Make ToolTips wrapMitch Curtis2019-11-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Otherwise the text will go outside the window. Change-Id: I3d50a195b1ee6c9b5d49952ef6c49d17c61372fa Fixes: QTBUG-62350 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| * | Merge remote-tracking branch 'origin/5.15' into devQt Forward Merge Bot2019-11-1616-0/+0
| |\| | | | | | | | | | Change-Id: I647fa31fafdaea46c341c515f97b7f793ddf4b31
| | * Merge remote-tracking branch 'origin/5.13' into 5.14v5.14.0-beta3Qt Forward Merge Bot2019-11-0516-0/+0
| | |\ | | | | | | | | | | | | Change-Id: I4b970036bdb5d312b0dc5cb1bcbd8e161e3d4c7e
| | | * Run optipng on all imagesMitch Curtis2019-11-0416-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | find . -name "*.png" -exec optipng -o 7 -strip all {} \; Change-Id: I2238b2dd38813d33ed48d79817f872f922cfa28d Fixes: QTBUG-79275 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * | | Merge remote-tracking branch 'origin/5.15' into devQt Forward Merge Bot2019-11-021-1/+201
| |\| | | | | | | | | | | | | | Change-Id: I89a29c7040e233314885eb37731f53dba8ed6c1a
| | * | Update plugins.qmltypes for 5.14Kai Koehne2019-10-211-1/+201
| | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-78690 Change-Id: I0e421232f4335a7a351562f23134eccdd0b1c674 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * | | Merge remote-tracking branch 'origin/5.15' into devQt Forward Merge Bot2019-10-191-13/+10
| |\| | | | | | | | | | | | | | Change-Id: I770f99d20878ddf16ab3f4b1a5422e7192622f64
| | * | Merge remote-tracking branch 'origin/5.13' into 5.14Qt Forward Merge Bot2019-10-121-13/+10
| | |\| | | | | | | | | | | | | Change-Id: I0b00323007dc02adf98dc581e2694e44b298da29
| | | * Universal: disable wrapping for TabBarMitch Curtis2019-10-111-13/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The wrapping behavior makes for a poor user experience. Use ListView as other styles do. [ChangeLog][Universal][TabBar] Disabled wrapping. The Universal style TabBar now behaves like TabBar from other styles. Change-Id: I0a37490cdc2b81ff864ec682256f469a1a930628 Fixes: QTBUG-50027 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* | | | Regenerate projects to be in syncAlexandru Croitor2019-11-152-8/+3
| | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I3a57449c9025e22414b8337fcffdeb0f4d769af2 Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | | Update QtQuickControls2 project filesLeander Beernaert2019-10-082-81/+218
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Re-run pro2cmake on all the project files. Change-Id: I8d349cf34d6cc8e26c76193d9ef220fa85b16bb8 Reviewed-by: Qt CMake Build Bot Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | | | Merge remote-tracking branch 'origin/wip/qt6' into wip/cmakeAlexandru Croitor2019-08-151-2/+2
|\| | | | | | | | | | | | | | | Change-Id: I62feb82fcf389bf83c92f83e2ed1a6783d3179ba
| * | | Fix Qt6 buildAlexandru Croitor2019-08-051-2/+2
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Modify all the qmlRegisterModule calls to use minor version 15 because minor version zero from 6.0.0 would make tests fail. This is similar to what was done in qtdeclarative in c147b20a2c1299b2d659fe7c9472ae3866b6a425. Change-Id: I0ef33024ead0f7b4782023e34ce1232ba987e62a Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | | Fix build after resent add_qml_module and add_qt_resource API changesSimon Hausmann2019-08-091-3/+0
| | | | | | | | | | | | | | | | | | | | | Re-generate the files. Change-Id: Iba8ab6f3701b8a5c8b26e34ce98845a8da22a9e4 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | | Initial CMake conversion for QtQuickControls2Leander Beernaert2019-08-061-0/+131
|/ / | | | | | | | | | | | | | | The CMake setup only covers everything under the src directory. Tests and examples will follow in separate patches. Change-Id: Ic4dbf6efa3128d0eea3af99117ba87690cb51077 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Qualify unqualified id lookup in controlsFabian Kosmale2019-06-1112-48/+51
| | | | | | | | | | | | | | | | | | This is a preparation for https://codereview.qt-project.org/c/qt/qtdeclarative/+/259561 and also avoids walking up the contexts Change-Id: I9f016b7346db088dfe1519924c9770e486b46ec9 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | Add valueRole API to ComboBoxMitch Curtis2019-04-231-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows the user to conveniently manage data for a role associated with the text role. A common example of this is an enum stored in a backend with nicely formatted text displayed to the user. Before this patch, developers would have to write code like this: ComboBox { textRole: "text" onActivated: backend.modifier = model[currentIndex].value Component.onCompleted: currentIndex = findValue(backend.modifier) model: [ { value: Qt.NoModifier, text: qsTr("No modifier") }, { value: Qt.ShiftModifier, text: qsTr("Shift") }, { value: Qt.ControlModifier, text: qsTr("Control") } ] function findValue(value) { for (var i = 0; i < model.length; ++i) { if (model[i].value === value) return i } return -1 } } With this patch, the code becomes much simpler: ComboBox { textRole: "text" valueRole: "value" onActivated: backend.modifier = currentValue Component.onCompleted: currentIndex = indexOfValue(backend.modifier) model: [ { value: Qt.NoModifier, text: qsTr("No modifier") }, { value: Qt.ShiftModifier, text: qsTr("Shift") }, { value: Qt.ControlModifier, text: qsTr("Control") } ] } [ChangeLog][Controls][ComboBox] Added valueRole, currentValue and indexOfValue(). These allow convenient management of data for a role associated with the text role. Change-Id: I0ed19bd0ba9cf6b044a8113ff1a8782d43065449 Fixes: QTBUG-73491 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-03-211-2/+3
|\| | | | | | | Change-Id: I48383fc70de754394259d5dfd19c7b25f1280f67
| * Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-03-161-2/+3
| |\ | | | | | | | | | Change-Id: If27c142786ad2457a80ce1ef65220834eda81e94
| | * Fix DialogButtonBox content size calculationMitch Curtis2019-03-151-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some history: - f1f884d3 worked around an issue in DialogButtonBox. - c2fd8f7d fixed it by using contentWidth; i.e. the implicit width of the contentItem. It caused QTBUG-72372. - I tried to fix QTBUG-72372 with 6476de0b, but created (or exposed) QTBUG-73860. The problem in QTBUG-73860 can be seen with the following example: Dialog { id: dialog visible: true standardButtons: Dialog.Ok } The single 'Ok' button here will go outside of the dialog. The underlying issue can be seen by looking into DialogButtonBox.qml: implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, (control.count === 1 ? contentWidth * 2 : contentWidth) + leftPadding + rightPadding) implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, contentHeight + topPadding + bottomPadding) The implicit width of the box in this case is contentWidth * 2 (there is one button, so control.count === 1). This should result in the button taking half the width of the box and being aligned to the right: alignment: count === 1 ? Qt.AlignRight : undefined ... delegate: Button { width: control.count === 1 ? control.availableWidth / 2 : undefined } What actually happens is that the contentItem (ListView) is temporarily 0 until it gets its final size of 100. However, QQuickDialogButtonBox doesn't respond to this change in the ListView's contentWidth. This problem can be fixed by returning to c2fd8f7d's resizeContent() implementation, which uses contentWidth. Then, there is a second issue: Dialog { id: dialog visible: true standardButtons: Dialog.Ok width: 300 } The button here is also positioned outside of the box. The problem is that the contentWidth is based on implicitContentWidth: QQuickContainerPrivate::updateContentWidth() { // ... contentWidth = implicitContentWidth; // ... } implicitContentWidth is calculated by calling getContentWidth(): void QQuickControlPrivate::updateImplicitContentWidth() { // ... implicitContentWidth = getContentWidth(); // ... } In the case of horizontal alignment, QQuickDialogButtonBoxPrivate::getContentWidth() uses the implicit width of the largest button: for (int i = 0; i < count; ++i) { QQuickItem *item = q->itemAt(i); if (item) { totalWidth += item->implicitWidth(); maxWidth = qMax(maxWidth, item->implicitWidth()); } } // ... if ((alignment & Qt::AlignHorizontal_Mask) == 0) totalWidth = qMax(totalWidth, count * maxWidth + totalSpacing); The Default style button has an implicitWidth of 100. The DialogButtonBox in the example above is 300 pixels wide, so the button should be 150, and it is, thanks to its width binding. However, the DialogButtonBox uses contentWidth to size its contentItem (ListView), and the contentWidth is, as mentioned, 100: the implicit width of the button. So, the button ends up hanging over the side of the box, as it's larger than the box thinks it is. This problem is fixed by setting DialogButtonBox's contentWidth to the contentWidth of the contentItem (ListView). This makes DialogButtonBox use the explicit widths of the buttons rather than their implicit widths. Since the contentWidth is no longer implicit, we must also change any use of contentWidth in the implicitWidth binding to implicitContentWidth. While writing auto tests for this, they caught an issue where contentWidth wasn't updated, so now we call resizeContent() in QQuickContainer::setContentWidth(). Change-Id: I99ffda21b47aeb14d4382e453e87c4312f343a1c Fixes: QTBUG-72886 Fixes: QTBUG-73860 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-03-124-8/+93
|\| | | | | | | | | | | Change-Id: I79759d4101b5267c5d9d74ccb81e994da002b0ef
| * | Update plugins.qmltypes for Qt 5.13Kai Koehne2019-03-073-3/+88
| | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-73484 Change-Id: I5c6019ec015a7d423dcc103d1acf23383c5b6239 Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * | SplitView: fix revisions, imports and \since versionsMitch Curtis2019-03-071-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | Work was probably started before 5.12 but the patch ended up getting merged in time for 5.13. It seems that I forgot to update the versions. Change-Id: I19edf08158cca0967a7a536b3aee326e3b393d4c Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-03-051-0/+2
|\| | | | | | | | | | | Change-Id: Ia4c5ae4b49beb24b7abb0502990b79bd54ca74ec
| * | Explicitly set import namesKai Koehne2019-03-041-0/+2
| | | | | | | | | | | | | | | | | | | | | This makes sure the qmltypes target for qml_plugin's works. Change-Id: I4a7624aa2db2eb40b9b44f158e099c651b1249cb Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | | ScrollBar: set a default minimumSize for all stylesRichard Moe Gustavsen2019-03-041-0/+1
|/ / | | | | | | | | | | | | | | | | | | If you don't specify a minimumSize, the scrollbar handles will be "invisible" when the size of the content view is much larger than the viewport. Since having hidden handles is pointless, set a default minimum size to be the same as the height of the handle. Change-Id: Ia486a616308b5edfd6aa6a29f34a6fc9030c276b Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into devLiang Qi2019-01-1050-149/+150
|\| | | | | | | | | | | | | | | Conflicts: .qmake.conf src/imports/controls/qtquickcontrols2plugin.cpp Change-Id: I27f1260b539354e084beb28be78385e57fda63e1
| * Make it visually clear which ComboBox item is the current itemMitch Curtis2018-12-121-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Do as the Default style does and make the current item bold. If we don't do this, it can be impossible to distinguish the current item from the highlighted item, especially when the popup obscures the button. Change-Id: If40b9c73c207d07fb5669564cdcfcea29ebed2f1 Fixes: QTBUG-68794 Reviewed-by: Nils Jeisecke <nils.jeisecke@saltation.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
| * Tie minor version of all imports to Qt's minor versionMitch Curtis2018-11-0250-149/+149
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Add SplitViewMitch Curtis2018-11-132-0/+57
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SplitView is an important tool for desktop applications that do not want to use a dock widget-style approach for their user interface. It allows users to have some degree of control over the sizing of elements in the UI, as well as the ability to conveniently serialize those sizes so that they're remembered across sessions. The main differences between this and the SplitView in Qt Quick Controls 1 are: - Has its own SplitView attached properties, rather than relying on the Layout attached properties (which required an additional import). - Uses the attached preferredWidth and preferredHeight properties as well as Item's implicitWidth/implicitHeight properties for the preferred size of items, rather than using the width and height properties. - Inherits from Container, so supports most of its API (though some parts of the API, like the currentIndex-related stuff, make no sense for SplitView). - Uses attached SplitHandle properties for the handle delegate to visualize hovered/pressed effects. - Offers convenience API for serializing the user's preferred sizes. [ChangeLog][Controls][SplitView] Introduced SplitView, a control that lays out items horizontally or vertically with a draggable splitter between each item. Task-number: QTBUG-56318 Change-Id: I3da91643ab312eb9ef5b0567da4e758f17747192 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Merge remote-tracking branch 'origin/5.11' into devLiang Qi2018-07-031-2/+2
|\ | | | | | | | | | | | | | | | | | | | | Conflicts: src/imports/controls/Menu.qml src/imports/controls/fusion/Menu.qml src/imports/controls/imagine/Menu.qml src/imports/controls/material/Menu.qml src/imports/controls/universal/Menu.qml Change-Id: I017949e5ac617c1cdeece71204e5aa519776fb39
| * Menu: fix items not being scrollable when using WindowMitch Curtis2018-06-251-2/+2
| | | | | | | | | | | | | | | | | | | | Use Window.window instead of ApplicationWindow.window, as the former will always result in a window regardless of which type of window is in use. Task-number: QTBUG-68858 Change-Id: I3bdb60350d92b13621b0f4db9085bf067b6ff6e2 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into devLiang Qi2018-06-252-0/+2
|\| | | | | | | | | | | | | | | | | Conflicts: src/imports/controls/imagine/TextArea.qml src/imports/controls/imagine/TextField.qml tests/auto/controls/data/tst_tumbler.qml Change-Id: I25a8228a4299fb7a53db70b7223663a1637ed933
| * TextArea, TextField: use the control's renderType in placeholder textMitch Curtis2018-06-132-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | The placeholder text's renderType should cohere to the renderType of the control. This is already the case for font, and sometimes color too. This solution avoids the need to expose a new property. Task-number: QTBUG-68769 Change-Id: I6711aea83b7b8ee27f56b9c905aa4870465e3fd9 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | Create and init QQuickTheme from QtQuickControls2PluginJ-P Nurmi2018-05-223-19/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of creating and setting the QQuickTheme instance from each style plugin (e.g. QtQuickControls2MaterialStylePlugin), create the QQuickTheme instance in QtQuickControls2Plugin when the style is being resolved, and just pass the instance to be initialized by the style plugin(s). This avoids the problem that QQuickTheme API was virtual, and sub-classes created from plugins would have vtables destroyed before the QQuickTheme was destroyed. Task-number: QTBUG-67062 Task-number: QTBUG-68087 Change-Id: I19e9ced5296b708c2668c30163389cb3da6be7cf Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | QQuickTheme: add setters to make getters non-virtualJ-P Nurmi2018-05-222-24/+9
| | | | | | | | | | | | | | | | | | | | This allows us to add more themable attributes (on the side of fonts and palettes) after the QQuickTheme API has been made public, because it won't require adding virtuals. Only the resolve() method is virtual. Task-number: QTBUG-67062 Change-Id: I6a5cc8d15aeaa5a9a0fe9b6d2591077f8822daac Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Add Qt Quick Compiler support for external stylesJ-P Nurmi2018-05-131-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Qt Quick Controls 2 selects its style when the main QtQuick.Controls plugin is loaded. The style selection procedure resolves styled QML files, such as Button.qml and Slider.qml, from the requested style. The problem was that external styles were not able to embed styled QML files into resources, because the external style plugin had not yet been loaded when the style selection was performed. Only after Button.qml & friends had been registered, and an instance was created, those types would import the style (e.g. QtQuick.Controls.Material). This patch solves the problem by manually loading the external style plugin from the main Qt Quick Controls 2 plugin, in order to gain access to its styled QML files in the resources. The name of the style plugin is read from the qmldir file. Change-Id: I5095ca129e909fb48fd106c87946a6ab9ae88931 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | QQuickStylePlugin: prepare for Qt Quick CompilerJ-P Nurmi2018-05-121-3/+3
| | | | | | | | | | | | | | | | | | | | Don't hardcode the URL (QRC in static vs. FS in dynamic), but make use of QQuickFileSelector so the appropriate URL gets chosen "for free". This way, we can later add Qt Quick Compiler support for the internal QML files, such as CheckIndicator.qml. Change-Id: Ie1c55f3d82fbf92d0116966b354298338ef5ace6 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into devQt Forward Merge Bot2018-05-076-31/+29
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/quicktemplates2/qquickabstractbutton_p_p.h src/quicktemplates2/qquickcombobox.cpp src/quicktemplates2/qquickcontainer.cpp src/quicktemplates2/qquickcontrol.cpp src/quicktemplates2/qquickcontrol_p_p.h src/quicktemplates2/qquickdialog_p_p.h src/quicktemplates2/qquickdialogbuttonbox.cpp src/quicktemplates2/qquickdialogbuttonbox_p_p.h src/quicktemplates2/qquickdrawer.cpp src/quicktemplates2/qquickmenubar.cpp src/quicktemplates2/qquickmenubar_p_p.h src/quicktemplates2/qquickpage.cpp src/quicktemplates2/qquickpage_p_p.h src/quicktemplates2/qquickpane.cpp src/quicktemplates2/qquickpane_p_p.h src/quicktemplates2/qquickpopup.cpp src/quicktemplates2/qquickpopup_p_p.h src/quicktemplates2/qquickrangeslider.cpp src/quicktemplates2/qquickscrollview.cpp src/quicktemplates2/qquickslider.cpp src/quicktemplates2/qquickspinbox.cpp src/quicktemplates2/qquickswipeview.cpp src/quicktemplates2/qquicktabbar.cpp src/quicktemplates2/qquicktextarea_p_p.h src/quicktemplates2/qquicktextfield_p_p.h src/quicktemplates2/qquicktheme_p.h Change-Id: I6e2b8fe99e51e3e26c87546aa66af045bc429ec4
| * Styles: use C++11 default member initializationJ-P Nurmi2018-05-046-31/+29
| | | | | | | | | | Change-Id: Ifd7521b8a7bfd7da91808dd00ebdcb59f2ba46dc Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | TextArea: add support for background insetsJ-P Nurmi2018-05-021-2/+2
| | | | | | | | | | | | | | | | | | | | | | Same as 5adce042 for QQuickControl. [ChangeLog][Controls][TextArea] Added topInset, bottomInset, leftInset, and rightInset properties to control the geometry of the background similarly to how paddings control the geometry of the contentItem. Change-Id: I1e1b3a79a9f477ec7b64ec4c6cc8021bbf48adc0 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>