aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* CMake: Regenerate projects before API changeAlexandru Croitor2020-09-2511-53/+87
| | | | | | | Task-number: QTBUG-86815 Change-Id: Ie0688d13b1787da3c1fc241a7d864aa014ca1d70 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* NativeStyle, macOS: don't draw focus from QStyleRichard Moe Gustavsen2020-09-252-160/+0
| | | | | | | | | We're no longer going to draw a static focus frame from QStyle. Subsequent patches will add a dynamic focus frame in combination with QML. Change-Id: I08b13b4c51cab74cd1bc6ec66b879b49774ad267 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* NativeStyle: rename 'nativeBackground' to '__nativeBackground'Richard Moe Gustavsen2020-09-2514-74/+70
| | | | | | | | | Since all properties that we add to the QML style files will bleed into the API of the control, prepend '__' to nativeBackground to mark it as private. Change-Id: I0cb474e054c3a3824985cf39b4bb675fb57b0696 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Doc: Add Qt 6 changes filesPaul Wicking2020-09-246-0/+138
| | | | | | Task-number: QTBUG-84051 Change-Id: Ibfd1750b571f65bf76a3922f89510b6c6fd4eff9 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Adjust testbench to properly support multiple stylesMitch Curtis2020-09-2414-31/+565
| | | | | | | | | | | | We need to split the uses of the Imagine style API out into file-selected files. We set Imagine.path so that the default assets are used for areas of the UI that are important to the functioning of the example, as using custom assets here could make it impossible to use the API if the assets were not created correctly. Change-Id: I2b6b683ffe65b7d573abf0ae793509a95417aead Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Remove binding to parent in testbenchMitch Curtis2020-09-241-1/+1
| | | | | | Task-number: QTBUG-82989 Change-Id: I5ce70afd395ecf0a0e91a70f19b2f1a04e1c1e6d Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Support compile-time style selectionMitch Curtis2020-09-2423-356/+514
| | | | | | | | | | | | | | By allowing importing styles without first importing QtQuick.Controls, which does runtime style selection. [ChangeLog][Styles] It's now possible to select a style at compile-time by importing that style explicitly instead of QtQuick.Controls. This avoids the need to do run-time style selection and hence deploy the QtQuick.Controls plugin with the application. Change-Id: I666d6dc7727fffd2c7b05743855f2086f076465a Fixes: QTBUG-86284 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Remove QtQuick.Controls imports from styles' QML filesMitch Curtis2020-09-24194-194/+0
| | | | | | | | | | This is necessary to support compile-time style selection. If we don't do this, QtQuickControls2Plugin (which is now only used for run-time style selection) will be loaded unnecessarily. Task-number: QTBUG-86284 Change-Id: Id5338f147e3e97f25574ec98377d26b111f8341a Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Rename "Default" style to "Basic"Mitch Curtis2020-09-24173-467/+463
| | | | | | | | | | | | [ChangeLog][Styles] The Default style was renamed to Basic to account for the introduction of the platform styles (macOS, Windows), which will be used by default (where possible) when no style is specified. Fixes: QTBUG-85984 Task-number: QTBUG-68814 Task-number: QTBUG-86403 Change-Id: I22b3199c8662e4ee5d55a1be1a51c9856ac62376 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Fix fallback styles overwriting themesMitch Curtis2020-09-2434-107/+317
| | | | | | | | | | | | | | | | | | | | | In Qt 5, QtQuickControls2Plugin::registerTypes() was responsible for calling initializeTheme() on each style plugin. Now that we delegate more work to the QML engine, each style plugin calls initializeTheme() via registerTypes(). To avoid fallback styles overwriting font and palette data set by the current style, we need to check if the theme has been intialized before calling initializeTheme(). To do this, we add a static "themeInitialized" bool that QQuickStylePlugin sets to true after calling intializeTheme() for the first time. It checks this value and avoids calling intializeTheme() if it's true. We also need to make QQuickStylePlugin ensure that the theme it's initializing belongs to the current style. Fixes: QTBUG-86303 Change-Id: Ie65e646677c78622829f4949c41cb79204cf5786 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* QtQuickControls2Plugin: store style values returned from QQuickStyle APIMitch Curtis2020-09-241-18/+26
| | | | | | | | | | | | | In follow-up commits, QQuickStylePlugin will be reponsible for calling QQuickStylePrivate::reset(), which may happen before ~QtQuickControls2Plugin is called. To avoid issues, we need to store anything we need from QQuickStyle APIs so that we can be sure that it's valid in QtQuickControls2Plugin::unregisterTypes(). This also avoids unnecessary calls to QQuickStyleSpec::resolve(). Change-Id: I7f659b432741b96ee58452c4867b7ecd12c6cfde Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* NativeStyle, TextField: add missing layoutRectRichard Moe Gustavsen2020-09-241-0/+1
| | | | | | | | | QQuickStyleItemTextField didn't set a layoutRect. This was just an oversight, and causes layout issues when trying to read it to position the focus frame. Change-Id: Ic959fd315da38e9700dc079c75993feca29c0c61 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Fix static buildEskil Abrahamsen Blomfeldt2020-09-231-1/+1
| | | | | | | | | | | | QQuickTextForeign was defined in both QQuick2Controls and QQuickTemplates, causing linking to fail when building statically. Since the type only exists to expose QML API, we just rename one of the classes. Change-Id: Id212602ada2f9eda3d7948474f600a954d26ddec Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Don't trigger a close due to a release if we did not get a pressAndy Shaw2020-09-181-0/+2
| | | | | | | | | | | If the drawer does not see the press point then it was not open at the time it was pressed. This ensures that when a touch is done on a button to trigger the opening of a drawer it does not think it should be closed due to the default close policy. Pick-to: 5.15 Change-Id: I0d1b11341e659dc14554d0d72aac70199bbb99fa Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* nativestyle: Port Windows XP styleJan Arve Sæther2020-09-178-458/+336
| | | | | | | Some controls needs more care, but that's for follow-up commits Change-Id: Ia7afeccf06f2f12dbef1402bf5975807cad8adcb Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Native style: support progressbars with a range from 0 - 1Richard Moe Gustavsen2020-09-171-0/+5
| | | | | | | | | | | | | | A ProgressBar is based on floating point numbers, meaning that it can have e.g from == 0.5, to == 1.5, and value == 0.8. A ProgressBar in QStyle on the other hand is integer-based. So add some extra code to convert floats to ints before passing the values to QStyle. But only do this for ranges smaller than 100, to ensure that we don't overflow ranges that are really large. And let "to" start at 0 in case the range ends close to Number.MAX_VALUE. Change-Id: I2707647911ee31c91b435697d4ae840b304c5c69 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Native style: implement implicit minimum sizeRichard Moe Gustavsen2020-09-176-10/+19
| | | | | | | | | | | | | | | | | | | | QStyle doesn't calculate a sensible minimum implicit size for us, only a implicit size that matches the size of the contents. This means that if the contents is empty (e.g a TextField that has no text), the implicit size will typically be smaller than what a sensible minimum should be. Note that for widgets, a sensible preffered size is set from the widgets themselves, and not QStyle. Which explains why the sizes we get from QStyle can sometimes be too small. Therefore, add a sensible minimum implicit size to all the controls that suffers from this problem. We let QStyle continue to calculate the actual minimum size given the contents as before (which will end up as the StyleItem's implicit size), and instead fix the recommended minimum size directly in the QML style files. Change-Id: Ic4097776e40d0de64312e4099d7fe4c7fc1ca9d1 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Remove "High-DPI Support in Qt Quick Controls" doc pageVolker Hilsheimer2020-09-163-69/+0
| | | | | | | | | | | It is probably wrong enough to require a thorough rewrite. Given that it has nuggest such as "There is currently no available solution for high-DPI support in applications wishing to mix Qt Quick Controls and Qt Quick Controls", starting from scratch seems best. Change-Id: Id1ae9d0bc58da452457cbf4bcdebf658f74cb377 Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Fix more compiler warnings from deprecated application attributesVolker Hilsheimer2020-09-1615-17/+0
| | | | | | | | | Also cleanup documentation, with the exception of the "High-DPI Support in Qt Quick Controls" page, which needs to be either removed or rewritten after some fact checking. Change-Id: I3cdf1f8554f8f26627a9a5f17c2ee0038c933468 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Update dependencies on 'dev' in qt/qtquickcontrols2Qt Submodule Update Bot2020-09-151-2/+2
| | | | | Change-Id: I99985639152688de3e7a116259bc56f54fc3c771 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Fix compile warnings from missing override attributeVolker Hilsheimer2020-09-151-16/+16
| | | | | | | Add it, and remove redundant virtual where it was used. Change-Id: I7e0635f8d9eafbad49de63302a5b8f5cd25c0080 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Fix compile warning from deprecated application attributesVolker Hilsheimer2020-09-159-12/+0
| | | | | | | | | | | AA_DisableHighDpiScaling and AA_UseHighDpiPixmaps have been deprecated. As of 90358f6042d1fe2db849e17e1b0c875fb0560b20 and 2dc46c09026362cc267b1183faf09fb29479ef93 in qtbase, respectively, these settings are deprecated and have no effect. Change-Id: I1eb1f77a64893dd077bd08216d26633d43e1e0e3 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Fix build after qtbase changesVolker Hilsheimer2020-09-158-10/+7
| | | | | Change-Id: I240b7410a409bb2f72213c02f50870f4ed99db9a Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Fix build after qtbase API changesLars Knoll2020-09-1511-16/+18
| | | | | | | Adjust to API changes in qtbase Change-Id: Ib7d97c9580651077103b8ddeca28c30fb4992cb6 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Allow the preparation of the exit transition even if it did have focusAndy Shaw2020-09-152-2/+21
| | | | | | | | | | | | | This amends 1a5a0a591c35dcf498a232a802087683f2244ecb so that it only sets the hadActiveFocusBeforeExitTransition variable if it is false, ensuring that it is correctly handled later on if it is true from before. This handles a case of closing, opening and then closing again in one function call. Pick-to: 5.15 Task-number: QTBUG-85884 Change-Id: Ied4ca33045b005f5f666e63d85fb603e9350d982 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Unregister the accessible observer before deleting the private objectAndy Shaw2020-09-151-3/+3
| | | | | | | | | | | By unregistering it in the destructor of the control and not the private object ensures that it does not react to any accessibility changes. This prevents any problems arising due to changes coming when the private object is deleted. Pick-to: 5.15 Change-Id: Icce0cc0cff54ce35ddf6be74e32bb0bdeff6d0fc Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Update the text when the inputted value is out of rangeAndy Shaw2020-09-112-13/+49
| | | | | | | | | | | | | | | | | | | When the inputted value is out of range but it would be fixed to the previous value then it would not update the text correctly to show the corrected value. This ensures that it is updated as appropriate. Before it would check if the value had actually changed after it had been fixed to the corrected value. So if it was corrected to the original value then it would not see it as having changed. Additionally the displayText also has the original text before the change, so we have to force through an update to ensure the contentItem's text is updated too. Change-Id: Ic38787d0803ab59cd998f4e2871c613f1642e764 Pick-to: 5.15 Fixes: QTBUG-85719 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Fix examples' usages of stylesMitch Curtis2020-09-1015-12/+128
| | | | | | | | | | | | | | | | | | | | | | | | After the type registration changes, importing a style explicitly will cause that style's QML types to be used, so applications should put style-specific code into file-selected directories if they need to support multiple styles. [ChangeLog][Important Behavior Changes] Due to the recent type registration changes, importing a style explicitly (e.g. "import QtQuick.Controls.Material") now registers that style's QML types in addition to making its API (attached, singleton, etc.) available. For this reason, it is now advised to have style-specific code in a separate QML file and use file selectors if your application supports more than one style. If your style only supports one style, importing that style explicitly will work as expected. For example, if you use Material.foreground in your QML code and your application supports more than one style, you should refactor the code that uses the binding into its own file; e.g. +Material/MyComponent.qml. Fixes: QTBUG-86263 Change-Id: I38e40ff4f20f61218550ad73945dafb912193466 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Remove the subControl property from ProgressBarJan Arve Sæther2020-09-105-64/+13
| | | | | | | | | | It shouldn't be needed in the API anymore, since a progress bar will either paint background and contentItem itself, or it won't paint any of those (therefore a custom progress bar have to provide both a background and a contentItem) Change-Id: Ic44fff97f5fc46453e9bbc9cada094b92fbe2aae Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Fix ProgressBar on WindowsJan Arve Sæther2020-09-096-37/+75
| | | | | | | | | | | | | | Also remove the two custom progress bars from the manual test where one has a custom background, and the other has a custom contentItem. If you want to customize a progress bar, you need to provide customizations for both the background and the contentItem. You cannot provide a custom background (or contentItem) alone, since its almost impossible to create a custom background that fits well with the contentItem of all the other possible styles it might be using. Change-Id: I82a87513e73f319bcecbfaed341ac4949f64c3bb Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Fix bug when interpreting environment variable QQC2_STYLEJan Arve Sæther2020-09-081-3/+3
| | | | | | | QString: :compare() return 0 if they are equal, just like strcmp... Change-Id: Ib79513fed158f5068f27d77dfabe18fcff597aee Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Use OpenType font weightsJonas Karlsson2020-09-081-6/+5
| | | | | | Task-number: QTBUG-42248 Change-Id: I75f3e0d5ddf847bfb6a4ebb197ab1691909681c4 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Native style: call QQuickStylePlugin::registerTypes() from style pluginsMitch Curtis2020-09-076-4/+125
| | | | | | | | This ensures that we received the warning we expect in tst_StyleImports::importStyleWithoutControls when run with native styles. Change-Id: I290f4e72222688e68ae36ace36f1d8be4bedaf31 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* QQuickToolTip: don't specify QML import version when creating instanceMitch Curtis2020-09-072-3/+3
| | | | | | | Not all styles will have a specific version, so don't specify it. Change-Id: I92f020314d76934f286ca2946e994e2d1c5d37e5 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Native style: fix warnings in QStyle codeMitch Curtis2020-09-071-2/+3
| | | | | | | | These break the build unless Qt is configured with -no-warnings-are-errors. Change-Id: I4a96efc0b29db60e7945fb9739a13da81f8d4c24 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Native style: temporarily disable the Windows style until it's completeRichard Moe Gustavsen2020-09-071-3/+4
| | | | | | | | | | Since the Windows style is not yet complete, it's best to disable it until it is, otherwise causes auto test failures that might already be fixed. Task-number: QTBUG-86399 Change-Id: I1acb130aa872e9effc82cc326e37a037024d49ca Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Native style: don't use ID's inside the stylesRichard Moe Gustavsen2020-09-072-7/+4
| | | | | | | Using ID's violates the rule we have for styles. Change-Id: I923199a62ed2dc3f8563ee9eda593905d8b076f9 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Native style: let windows/qmldir report the exact controls it containsRichard Moe Gustavsen2020-09-071-2/+0
| | | | | | | | This will ensure that the customization auto-test will not run for controls that are not available. Change-Id: Ia3164b847115cfb3bd0b34ff60630c06d8095b42 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Native style: don't use signal handlers inside the styleRichard Moe Gustavsen2020-09-072-15/+3
| | | | | | | Using signal handlers will break the sanity test. Change-Id: I1a522520e237a7821162f65f49e7d0e1d501ff94 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Native style: don't use anchors inside the styleRichard Moe Gustavsen2020-09-071-1/+4
| | | | | | | Using anchors will break the sanity test. Change-Id: I6f27e98ae95e811db5063f0bc3866f386dbbb16e Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Native style: only list available built-in stylesRichard Moe Gustavsen2020-09-071-0/+4
| | | | | | | | | | Don't add e.g Windows style to the list of built-in styles when running on other platforms than Windows. The Windows style is only available on Windows. Otherwise e.g the autotests will try to execute all the tests for a style that is not present. Change-Id: Iee8b052fd284840951a77d117071ab1b59ee92bc Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Native style: fix namespace buildsRichard Moe Gustavsen2020-09-072-2/+6
| | | | | Change-Id: I7ef28cc93fd4acad9849fecb3d4c2cab79f0acdb Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Native style: set a sensible default width for TextFieldRichard Moe Gustavsen2020-09-072-2/+4
| | | | | | | | | | Set the default width of an empty TextField to 90px (which is a number found by creating an NSTextField in XCode and measuring it with pixeltool). This should also make tst_QQuickPopup::macOS::cursorShape() pass. Change-Id: Ia2a059668c2e1eaea3eef20015a8ea99468dd8ad Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Merge "Merge remote-tracking branch 'nativestyle' into dev"Mitch Curtis2020-09-07151-7/+37371
|\
| * Merge remote-tracking branch 'nativestyle' into devMitch Curtis2020-09-04151-7/+37371
| |\ | | | | | | | | | Change-Id: I18a4fd46cf13c65fe6f4c3981b7c61ab52109b8d
| | * Native style: set the default system palette as QQuickTheme::System palettewip/nativestyleRichard Moe Gustavsen2020-08-281-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After introducing the new registration system in Controls, the theme palette picked up colors from the Default style. Until this is fixed, set the system palette explicitly. Task-number: QTBUG-86303 Change-Id: Ib4c90856bd5410c042160b532175a48fdaea0fbd Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| | * Native style, manual test: update location to Default styleRichard Moe Gustavsen2020-08-283-5/+5
| | | | | | | | | | | | | | | Change-Id: I3fb788ceba150664ed1c7b4040b73a0b7fdd7337 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| | * Native style: fix up qmldir files to comform to the new registration systemRichard Moe Gustavsen2020-08-284-31/+56
| | | | | | | | | | | | | | | Change-Id: Id28352b397e3fc48423856a7f9322f3475d642ef Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| | * Native style: move macOS and Windows into QtQuick/Controls instead of ↵Richard Moe Gustavsen2020-08-284-12/+10
| | | | | | | | | | | | | | | | | | | | | QtQuick/Controls.2 Change-Id: I12b0a3846a21cafac29615dbea53d88f9aed8e35 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| | * Native style: remove versioning from importsRichard Moe Gustavsen2020-08-2864-225/+225
| | | | | | | | | | | | | | | Change-Id: I73319d18ca6540227ce6bf4bdcf217a3c279c64c Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>