From 219b55faa4848a4967bb34e34d4326a854b12e2a Mon Sep 17 00:00:00 2001 From: Mitch Curtis Date: Thu, 19 Sep 2019 13:23:10 +0200 Subject: tst_tumbler: adapt test after changes to PathView 3df387d63421f09533ab72e2a73fb5d259693120 changed the flicking behavior of PathView slightly, so we need to adapt this test to reflect those changes. Fixes: QTBUG-78471 Change-Id: I093bfea9a4d089b4f61c405ab41aa1f4ea77d422 Reviewed-by: Mitch Curtis Reviewed-by: Shawn Rutledge --- tests/auto/extras/data/tst_tumbler.qml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/auto/extras/data/tst_tumbler.qml b/tests/auto/extras/data/tst_tumbler.qml index e3e444714..54365f14d 100644 --- a/tests/auto/extras/data/tst_tumbler.qml +++ b/tests/auto/extras/data/tst_tumbler.qml @@ -349,8 +349,7 @@ Item { var pos = Qt.point(columnXCenter(tumbler, 0), tumbler.__style.padding.top); mouseDrag(tumbler, pos.x, pos.y, 0, tumbler.height - tumbler.__style.padding.bottom, Qt.LeftButton, Qt.NoModifier, 300); - // See QTBUG-78471 - //tryCompare(tumbler.__viewAt(0), "offset", Settings.styleName === "Flat" ? 6.0 : 4.0); + tryCompare(tumbler.__viewAt(0), "offset", Settings.styleName === "Flat" ? 5.0 : 3.0); tumbler.height += 100; var padding = tumbler.__style.padding; -- cgit v1.2.3 From da94d6586cbe6b9c12dec8ecc0f842aad807b0d3 Mon Sep 17 00:00:00 2001 From: Andy Shaw Date: Wed, 25 Sep 2019 10:21:42 +0200 Subject: Only calculate the height of the ListView when there are model entries When it tries to calculate the height of the listview then it depends on the model having entries. If there is no model or no entries in it then it will cause a warning to be outputted indicating that the model size is less than 0. This prevents it from occurring as a result. Fixes: QTBUG-72543 Change-Id: I7155a3a240fdcdf93caddfce332f0cc6bb0f0ec0 Reviewed-by: Mitch Curtis --- src/controls/Private/BasicTableView.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/controls/Private/BasicTableView.qml b/src/controls/Private/BasicTableView.qml index bc044eeb2..6c7c5511f 100644 --- a/src/controls/Private/BasicTableView.qml +++ b/src/controls/Private/BasicTableView.qml @@ -492,7 +492,7 @@ ScrollView { y: listView.contentHeight - listView.contentY + listView.originY width: parent.width visible: alternatingRowColors - height: viewport.height - listView.contentHeight + height: listView.model && listView.model.count ? (viewport.height - listView.contentHeight) : 0 Repeater { model: visible ? parent.paddedRowCount : 0 Loader { -- cgit v1.2.3 From 7c15a3bc25cdde1c4fe131b06e8c942afa7edf04 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Thu, 26 Sep 2019 10:30:32 +0200 Subject: Guard against flickableItem being null when scrolling Fixes error from qmlplugindump: ScrollViewHelper.qml:147: TypeError: Cannot read property 'originX' of null Change-Id: I1bef74acda8fb4e1850967c4d684ece7d458699b Reviewed-by: Fabian Kosmale Reviewed-by: Mitch Curtis --- src/controls/Private/ScrollViewHelper.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/controls/Private/ScrollViewHelper.qml b/src/controls/Private/ScrollViewHelper.qml index 4f1d59f0f..3f309bb0d 100644 --- a/src/controls/Private/ScrollViewHelper.qml +++ b/src/controls/Private/ScrollViewHelper.qml @@ -143,7 +143,7 @@ Item { } } onValueChanged: { - if (!blockUpdates) { + if (flickableItem && !blockUpdates) { flickableItem.contentX = value + flickableItem.originX } } -- cgit v1.2.3 From 6eac099fa98b6dbe5a01ad90e4a1348729b1332b Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Sat, 28 Sep 2019 13:26:47 +0300 Subject: Android: Always load qml files from resources The QML files on Android are now available in :/android_rcc_bundle/qml folder, this way we don't need to extract them at very first start up. [ChangeLog][Android] Always load qml files from resources (:/android_rcc_bundle/qml) Change-Id: Ib905e5d5e1577d99bb89e7e0d237fa8b24a1e95f Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/controls/Styles/Android/qquickandroidstyle.cpp | 6 +++--- src/controls/Styles/Android/qquickandroidstyle_p.h | 3 ++- src/controls/plugin.cpp | 20 ++++++++++++++------ 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/controls/Styles/Android/qquickandroidstyle.cpp b/src/controls/Styles/Android/qquickandroidstyle.cpp index 0c57d795a..36fe0e82a 100644 --- a/src/controls/Styles/Android/qquickandroidstyle.cpp +++ b/src/controls/Styles/Android/qquickandroidstyle.cpp @@ -85,11 +85,11 @@ QByteArray QQuickAndroidStyle1::data() const return m_data; } -QString QQuickAndroidStyle1::filePath(const QString &fileName) const +QUrl QQuickAndroidStyle1::filePath(const QString &fileName) const { if (!fileName.isEmpty()) - return m_path + QFileInfo(fileName).fileName(); - return QString(); + return QUrl::fromLocalFile(m_path + QFileInfo(fileName).fileName()); + return {}; } QColor QQuickAndroidStyle1::colorValue(uint value) const diff --git a/src/controls/Styles/Android/qquickandroidstyle_p.h b/src/controls/Styles/Android/qquickandroidstyle_p.h index 6911eb8d0..856b57539 100644 --- a/src/controls/Styles/Android/qquickandroidstyle_p.h +++ b/src/controls/Styles/Android/qquickandroidstyle_p.h @@ -41,6 +41,7 @@ #define QQUICKANDROIDSTYLE_P_H #include +#include #include QT_BEGIN_NAMESPACE @@ -57,7 +58,7 @@ public: QByteArray data() const; Q_INVOKABLE QColor colorValue(uint value) const; - Q_INVOKABLE QString filePath(const QString &fileName) const; + Q_INVOKABLE QUrl filePath(const QString &fileName) const; enum Gravity { NO_GRAVITY = 0x0000, diff --git a/src/controls/plugin.cpp b/src/controls/plugin.cpp index 82eef8001..6d34f2858 100644 --- a/src/controls/plugin.cpp +++ b/src/controls/plugin.cpp @@ -239,30 +239,38 @@ void QtQuickControls1Plugin::initializeEngine(QQmlEngine *engine, const char *ur QString QtQuickControls1Plugin::fileLocation() const { -#ifndef QT_STATIC +#ifdef Q_OS_ANDROID + return "qrc:/android_rcc_bundle/qml/QtQuick/Controls"; +#else +# ifndef QT_STATIC if (isLoadedFromResource()) return "qrc:/QtQuick/Controls"; return baseUrl().toString(); -#else +# else return "qrc:/qt-project.org/imports/QtQuick/Controls"; +# endif #endif } bool QtQuickControls1Plugin::isLoadedFromResource() const { -#ifdef QT_STATIC +#ifdef Q_OS_ANDROID + return true; +#else +# ifdef QT_STATIC // When static it is included automatically // for us. return false; -#endif -#if defined(ALWAYS_LOAD_FROM_RESOURCES) +# endif +# if defined(ALWAYS_LOAD_FROM_RESOURCES) return true; -#else +# else // If one file is missing, it will load all the files from the resource QFile file(baseUrl().toLocalFile() + "/ApplicationWindow.qml"); if (!file.exists()) return true; return false; +# endif #endif } -- cgit v1.2.3 From 59264fc24e3806a7e43379a2b8c610148f89cccb Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Wed, 2 Oct 2019 14:45:05 +0200 Subject: Make restoreMode on all Binding elements explicit The default is going to change in 5.15. Change-Id: Ib17500791476bd45ed2c7c3736186897fb63d7a0 Reviewed-by: Simon Hausmann --- examples/quickcontrols/extras/flat/main.qml | 4 +- src/controls/ApplicationWindow.qml | 31 ++++++-- src/controls/Button.qml | 7 +- src/controls/ComboBox.qml | 4 +- src/controls/MenuBar.qml | 4 +- src/controls/Private/BasicTableView.qml | 4 +- src/controls/Private/ColumnMenuContent.qml | 4 +- src/controls/Private/MenuContentItem.qml | 7 +- src/controls/Private/ScrollViewHelper.qml | 13 ++- src/controls/Private/TabBar.qml | 4 +- src/controls/Private/ToolMenuButton.qml | 7 +- src/controls/ScrollView.qml | 7 +- src/controls/Slider.qml | 4 +- .../Styles/Android/ApplicationWindowStyle.qml | 4 +- src/controls/Styles/Android/GroupBoxStyle.qml | 29 ++++++- src/controls/Styles/Android/SpinBoxStyle.qml | 29 ++++++- .../Styles/Android/drawables/DrawableLoader.qml | 92 +++++++++++++++++++--- src/controls/Styles/Desktop/MenuStyle.qml | 4 +- src/dialogs/DefaultFileDialog.qml | 7 +- src/extras/DelayButton.qml | 4 +- src/extras/Styles/Flat/ApplicationWindowStyle.qml | 5 +- src/extras/Styles/Flat/GroupBoxStyle.qml | 5 +- src/extras/Tumbler.qml | 4 +- .../tb_checkableActionWithinExclusiveGroup.qml | 7 +- 24 files changed, 233 insertions(+), 57 deletions(-) diff --git a/examples/quickcontrols/extras/flat/main.qml b/examples/quickcontrols/extras/flat/main.qml index d91c20633..661225eb7 100644 --- a/examples/quickcontrols/extras/flat/main.qml +++ b/examples/quickcontrols/extras/flat/main.qml @@ -48,6 +48,7 @@ ** ****************************************************************************/ +import QtQml 2.14 as Qml import QtQuick 2.4 import QtQuick.Layouts 1.0 import QtQuick.Controls 1.4 @@ -138,11 +139,12 @@ ApplicationWindow { height: parent.height // Don't let the menus become visible when resizing the window - Binding { + Qml.Binding { target: controlsMenu property: "x" value: container.x - controlsMenu.width when: !xBehavior.enabled && !xNumberAnimation.running && currentMenu == -1 + restoreMode: Binding.RestoreBinding } Behavior on x { diff --git a/src/controls/ApplicationWindow.qml b/src/controls/ApplicationWindow.qml index b739ecaeb..7d215556e 100644 --- a/src/controls/ApplicationWindow.qml +++ b/src/controls/ApplicationWindow.qml @@ -37,6 +37,7 @@ ** ****************************************************************************/ +import QtQml 2.14 as Qml import QtQuick.Window 2.2 import QtQuick 2.2 import QtQuick.Controls 1.2 @@ -171,19 +172,21 @@ Window { /*! \internal */ property real __width: 0 - Binding { + Qml.Binding { target: root property: "__width" when: (root.minimumWidth <= root.maximumWidth) && !contentArea.__noImplicitWidthGiven value: Math.max(Math.min(root.maximumWidth, contentArea.implicitWidth), root.minimumWidth) + restoreMode: Binding.RestoreBinding } /*! \internal */ property real __height: 0 - Binding { + Qml.Binding { target: root property: "__height" when: (root.minimumHeight <= root.maximumHeight) && !contentArea.__noImplicitHeightGiven value: Math.max(Math.min(root.maximumHeight, contentArea.implicitHeight + __topBottomMargins), root.minimumHeight) + restoreMode: Binding.RestoreBinding } /* As soon as an application developer writes width: 200 @@ -224,16 +227,32 @@ Window { onStatusChanged: if (status === Loader.Error) console.error("Failed to load Style for", root) } - Binding { target: toolBar; property: "parent"; value: __panel.toolBarArea } - Binding { target: statusBar; property: "parent"; value: __panel.statusBarArea } + Qml.Binding { + target: toolBar + property: "parent" + value: __panel.toolBarArea + restoreMode: Binding.RestoreBinding + } + Qml.Binding { + target: statusBar + property: "parent" + value: __panel.statusBarArea + restoreMode: Binding.RestoreBinding + } - Binding { + Qml.Binding { property: "parent" target: menuBar ? menuBar.__contentItem : null when: menuBar && !menuBar.__isNative value: __panel.menuBarArea + restoreMode: Binding.RestoreBinding + } + Qml.Binding { + target: menuBar + property: "__parentWindow" + value: root + restoreMode: Binding.RestoreBinding } - Binding { target: menuBar; property: "__parentWindow"; value: root } Keys.forwardTo: menuBar ? [menuBar.__contentItem, __panel] : [] diff --git a/src/controls/Button.qml b/src/controls/Button.qml index 71e657ece..73b3b349a 100644 --- a/src/controls/Button.qml +++ b/src/controls/Button.qml @@ -37,6 +37,7 @@ ** ****************************************************************************/ +import QtQml 2.14 as Qml import QtQuick 2.2 import QtQuick.Controls 1.2 import QtQuick.Controls.Private 1.0 @@ -93,16 +94,18 @@ BasicButton { style: Settings.styleComponent(Settings.style, "ButtonStyle.qml", button) - Binding { + Qml.Binding { target: menu property: "__minimumWidth" value: button.__panel.width + restoreMode: Binding.RestoreBinding } - Binding { + Qml.Binding { target: menu property: "__visualItem" value: button + restoreMode: Binding.RestoreBinding } Connections { diff --git a/src/controls/ComboBox.qml b/src/controls/ComboBox.qml index 7c6f93a7a..94bbc0cd6 100644 --- a/src/controls/ComboBox.qml +++ b/src/controls/ComboBox.qml @@ -37,6 +37,7 @@ ** ****************************************************************************/ +import QtQml 2.14 as Qml import QtQuick 2.2 import QtQuick.Controls 1.2 import QtQuick.Controls.Private 1.0 @@ -549,11 +550,12 @@ Control { } } - Binding { + Qml.Binding { target: input property: "text" value: popup.currentText when: input.editTextMatches + restoreMode: Binding.RestoreBinding } onTextRoleChanged: popup.resolveTextValue(textRole) diff --git a/src/controls/MenuBar.qml b/src/controls/MenuBar.qml index a98d0e810..2628d0643 100644 --- a/src/controls/MenuBar.qml +++ b/src/controls/MenuBar.qml @@ -37,6 +37,7 @@ ** ****************************************************************************/ +import QtQml 2.14 as Qml import QtQuick 2.2 import QtQuick.Controls 1.2 import QtQuick.Controls.Styles 1.1 @@ -130,11 +131,12 @@ MenuBarPrivate { width: implicitWidth || root.__contentItem.preferredWidth height: Math.max(row.height + d.heightPadding, item ? item.implicitHeight : 0) - Binding { + Qml.Binding { // Make sure the styled menu bar is in the background target: menuBarLoader.item property: "z" value: menuMouseArea.z - 1 + restoreMode: Binding.RestoreBinding } QtObject { diff --git a/src/controls/Private/BasicTableView.qml b/src/controls/Private/BasicTableView.qml index 6c7c5511f..48e6eadc3 100644 --- a/src/controls/Private/BasicTableView.qml +++ b/src/controls/Private/BasicTableView.qml @@ -48,6 +48,7 @@ // We mean it. // +import QtQml 2.14 as Qml import QtQuick 2.6 import QtQuick.Controls 1.5 import QtQuick.Controls.Private 1.0 @@ -426,7 +427,7 @@ ScrollView { && !transientScrollBars && Qt.platform.os === "osx" ? __verticalScrollBar.width + __scroller.scrollBarSpacing + root.__style.padding.right : 0 - Binding { + Qml.Binding { // On Mac, we reserve the vSB space in the contentItem because the vSB should // appear under the header. Unfortunately, the ListView header won't expand // beyond the ListView's boundaries, that's why we need to ressort to this. @@ -434,6 +435,7 @@ ScrollView { when: Qt.platform.os === "osx" property: "verticalScrollbarOffset" value: 0 + restoreMode: Binding.RestoreBinding } function incrementCurrentIndexBlocking() { diff --git a/src/controls/Private/ColumnMenuContent.qml b/src/controls/Private/ColumnMenuContent.qml index e130b2a2f..5f8b4d684 100644 --- a/src/controls/Private/ColumnMenuContent.qml +++ b/src/controls/Private/ColumnMenuContent.qml @@ -37,6 +37,7 @@ ** ****************************************************************************/ +import QtQml 2.14 as Qml import QtQuick 2.2 import QtQuick.Controls 1.2 import QtQuick.Controls.Private 1.0 @@ -242,9 +243,10 @@ Item { ? ListView.Center : ListView.Beginning) } - Binding { + Qml.Binding { target: scrollView.__verticalScrollBar property: "singleStep" value: itemHeight + restoreMode: Binding.RestoreBinding } } diff --git a/src/controls/Private/MenuContentItem.qml b/src/controls/Private/MenuContentItem.qml index fe8e77266..9fcb2f0f5 100644 --- a/src/controls/Private/MenuContentItem.qml +++ b/src/controls/Private/MenuContentItem.qml @@ -37,6 +37,7 @@ ** ****************************************************************************/ +import QtQml 2.14 as Qml import QtQuick 2.2 import QtQuick.Controls 1.2 import QtQuick.Controls.Styles 1.1 @@ -155,11 +156,12 @@ Loader { Keys.onReturnPressed: d.triggerCurrent() Keys.onEnterPressed: d.triggerCurrent() - Binding { + Qml.Binding { // Make sure the styled frame is in the background target: item property: "z" value: content.z - 1 + restoreMode: Binding.RestoreBinding } ColumnMenuContent { @@ -268,11 +270,12 @@ Loader { d.mnemonicsMap[title[ampersandPos + 1].toUpperCase()] = menuItemLoader } - Binding { + Qml.Binding { target: menuItemLoader.item property: "width" property alias menuItem: menuItemLoader.item value: menuItem ? Math.max(__menu.__minimumWidth, content.width) - 2 * menuItem.x : 0 + restoreMode: Binding.RestoreBinding } } } diff --git a/src/controls/Private/ScrollViewHelper.qml b/src/controls/Private/ScrollViewHelper.qml index 3f309bb0d..c16c55b88 100644 --- a/src/controls/Private/ScrollViewHelper.qml +++ b/src/controls/Private/ScrollViewHelper.qml @@ -37,6 +37,7 @@ ** ****************************************************************************/ +import QtQml 2.14 as Qml import QtQuick 2.2 import QtQuick.Controls 1.2 import QtQuick.Controls.Private 1.0 @@ -147,17 +148,19 @@ Item { flickableItem.contentX = value + flickableItem.originX } } - Binding { + Qml.Binding { target: hscrollbar.__panel property: "raised" value: vscrollbar.active || scrollHelper.active when: hscrollbar.isTransient + restoreMode: Binding.RestoreBinding } - Binding { + Qml.Binding { target: hscrollbar.__panel property: "visible" value: true when: !hscrollbar.isTransient || scrollHelper.active + restoreMode: Binding.RestoreBinding } function flash() { if (hscrollbar.isTransient) { @@ -201,17 +204,19 @@ Item { flickableItem.contentY = value + flickableItem.originY } } - Binding { + Qml.Binding { target: vscrollbar.__panel property: "raised" value: hscrollbar.active || scrollHelper.active when: vscrollbar.isTransient + restoreMode: Binding.RestoreBinding } - Binding { + Qml.Binding { target: vscrollbar.__panel property: "visible" value: true when: !vscrollbar.isTransient || scrollHelper.active + restoreMode: Binding.RestoreBinding } function flash() { if (vscrollbar.isTransient) { diff --git a/src/controls/Private/TabBar.qml b/src/controls/Private/TabBar.qml index bf76b9776..1186968dd 100644 --- a/src/controls/Private/TabBar.qml +++ b/src/controls/Private/TabBar.qml @@ -37,6 +37,7 @@ ** ****************************************************************************/ +import QtQml 2.14 as Qml import QtQuick 2.2 import QtQuick.Controls 1.2 import QtQuick.Controls.Private 1.0 @@ -170,11 +171,12 @@ FocusScope { focus: true enabled: modelData.enabled - Binding { + Qml.Binding { target: tabbar when: selected property: "__selectedTabRect" value: Qt.rect(x, y, width, height) + restoreMode: Binding.RestoreBinding } drag.target: tabsMovable ? tabloader : null diff --git a/src/controls/Private/ToolMenuButton.qml b/src/controls/Private/ToolMenuButton.qml index 2366d0c93..e6fba40c5 100644 --- a/src/controls/Private/ToolMenuButton.qml +++ b/src/controls/Private/ToolMenuButton.qml @@ -37,6 +37,7 @@ ** ****************************************************************************/ +import QtQml 2.14 as Qml import QtQuick 2.4 import QtQuick.Controls 1.3 import QtQuick.Controls.Private 1.0 @@ -110,15 +111,17 @@ FocusScope { } } - Binding { + Qml.Binding { target: menu property: "__minimumWidth" value: button.width + restoreMode: Binding.RestoreBinding } - Binding { + Qml.Binding { target: menu property: "__visualItem" value: button + restoreMode: Binding.RestoreBinding } } diff --git a/src/controls/ScrollView.qml b/src/controls/ScrollView.qml index b0df615ee..951fe65e4 100644 --- a/src/controls/ScrollView.qml +++ b/src/controls/ScrollView.qml @@ -37,6 +37,7 @@ ** ****************************************************************************/ +import QtQml 2.14 as Qml import QtQuick 2.2 import QtQuick.Controls 1.2 import QtQuick.Controls.Private 1.0 @@ -224,18 +225,20 @@ FocusScope { property alias __control: root } - Binding { + Qml.Binding { target: flickableItem property: "contentHeight" when: contentItem !== flickableItem value: contentItem ? contentItem.height : 0 + restoreMode: Binding.RestoreBinding } - Binding { + Qml.Binding { target: flickableItem when: contentItem !== flickableItem property: "contentWidth" value: contentItem ? contentItem.width : 0 + restoreMode: Binding.RestoreBinding } Connections { diff --git a/src/controls/Slider.qml b/src/controls/Slider.qml index 07ad74c45..ff2f0c234 100644 --- a/src/controls/Slider.qml +++ b/src/controls/Slider.qml @@ -37,6 +37,7 @@ ** ****************************************************************************/ +import QtQml 2.14 as Qml import QtQuick 2.2 import QtQuick.Controls 1.2 import QtQuick.Controls.Private 1.0 @@ -310,11 +311,12 @@ Control { // During the drag, we simply ignore the position set from the range, this // means that setting a value while dragging will not "interrupt" the // dragging activity. - Binding { + Qml.Binding { when: !mouseArea.drag.active target: fakeHandle property: __horizontal ? "x" : "y" value: range.position + restoreMode: Binding.RestoreBinding } WheelArea { diff --git a/src/controls/Styles/Android/ApplicationWindowStyle.qml b/src/controls/Styles/Android/ApplicationWindowStyle.qml index c8201de79..de1184fff 100644 --- a/src/controls/Styles/Android/ApplicationWindowStyle.qml +++ b/src/controls/Styles/Android/ApplicationWindowStyle.qml @@ -37,6 +37,7 @@ ** ****************************************************************************/ +import QtQml 2.14 as Qml import QtQuick 2.2 import QtQuick.Controls 1.2 import QtQuick.Controls.Styles 1.3 @@ -111,12 +112,13 @@ QtObject { items: control.menuBar ? control.menuBar.menus : [] } - Binding { + Qml.Binding { target: control.toolBar property: "__menu" value: proxyMenu.items.length > 1 ? proxyMenu : proxyMenu.items.length === 1 ? proxyMenu.items[0] : null when: hasToolBar + restoreMode: Binding.RestoreBinding } } } diff --git a/src/controls/Styles/Android/GroupBoxStyle.qml b/src/controls/Styles/Android/GroupBoxStyle.qml index bd077d5a0..f312870db 100644 --- a/src/controls/Styles/Android/GroupBoxStyle.qml +++ b/src/controls/Styles/Android/GroupBoxStyle.qml @@ -37,6 +37,7 @@ ** ****************************************************************************/ +import QtQml 2.14 as Qml import QtQuick 2.2 import QtQuick.Window 2.2 import QtQuick.Controls 1.2 @@ -54,10 +55,30 @@ GroupBoxStyle { readonly property real contentMargin: label.implicitHeight / 3 readonly property real topMargin: control.checkable ? indicator.height : label.height - Binding { target: root; property: "padding.top"; value: topMargin + contentMargin } - Binding { target: root; property: "padding.left"; value: contentMargin } - Binding { target: root; property: "padding.right"; value: contentMargin } - Binding { target: root; property: "padding.bottom"; value: contentMargin } + Qml.Binding { + target: root + property: "padding.top" + value: topMargin + contentMargin + restoreMode: Binding.RestoreBinding + } + Qml.Binding { + target: root + property: "padding.left" + value: contentMargin + restoreMode: Binding.RestoreBinding + } + Qml.Binding { + target: root + property: "padding.right" + value: contentMargin + restoreMode: Binding.RestoreBinding + } + Qml.Binding { + target: root + property: "padding.bottom" + value: contentMargin + restoreMode: Binding.RestoreBinding + } DrawableLoader { anchors.top: parent.top diff --git a/src/controls/Styles/Android/SpinBoxStyle.qml b/src/controls/Styles/Android/SpinBoxStyle.qml index 74126e9a0..82a63dd86 100644 --- a/src/controls/Styles/Android/SpinBoxStyle.qml +++ b/src/controls/Styles/Android/SpinBoxStyle.qml @@ -37,6 +37,7 @@ ** ****************************************************************************/ +import QtQml 2.14 as Qml import QtQuick 2.4 import QtQuick.Window 2.2 import QtQuick.Controls 1.2 @@ -72,10 +73,30 @@ Style { styleDef: panel.styleDef.View_background } - Binding { target: style; property: "padding.top"; value: bg.padding.top } - Binding { target: style; property: "padding.left"; value: bg.padding.left } - Binding { target: style; property: "padding.right"; value: bg.padding.right } - Binding { target: style; property: "padding.bottom"; value: bg.padding.bottom } + Qml.Binding { + target: style + property: "padding.top" + value: bg.padding.top + restoreMode: Binding.RestoreBinding + } + Qml.Binding { + target: style + property: "padding.left" + value: bg.padding.left + restoreMode: Binding.RestoreBinding + } + Qml.Binding { + target: style + property: "padding.right" + value: bg.padding.right + restoreMode: Binding.RestoreBinding + } + Qml.Binding { + target: style + property: "padding.bottom" + value: bg.padding.bottom + restoreMode: Binding.RestoreBinding + } readonly property alias font: label.font readonly property alias foregroundColor: label.color diff --git a/src/controls/Styles/Android/drawables/DrawableLoader.qml b/src/controls/Styles/Android/drawables/DrawableLoader.qml index e2d2873bc..bd5252531 100644 --- a/src/controls/Styles/Android/drawables/DrawableLoader.qml +++ b/src/controls/Styles/Android/drawables/DrawableLoader.qml @@ -37,6 +37,7 @@ ** ****************************************************************************/ +import QtQml 2.14 as Qml import QtQuick 2.2 import QtQuick.Controls 1.2 import QtQuick.Controls.Private 1.0 @@ -85,17 +86,82 @@ Loader { type === "rotate" ? Qt.createComponent("RotateDrawable.qml") : type === "stateslist" ? Qt.createComponent("StateDrawable.qml") : null - Binding { target: loader.item; property: "styleDef"; value: loader.styleDef } - Binding { target: loader.item; property: "focused"; value: loader.focused } - Binding { target: loader.item; property: "pressed"; value: loader.pressed } - Binding { target: loader.item; property: "checked"; value: loader.checked } - Binding { target: loader.item; property: "selected"; value: loader.selected } - Binding { target: loader.item; property: "accelerated"; value: loader.accelerated } - Binding { target: loader.item; property: "window_focused"; value: loader.window_focused } - Binding { target: loader.item; property: "level"; value: loader.level } - Binding { target: loader.item; property: "levelId"; value: loader.levelId } - Binding { target: loader.item; property: "orientations"; value: loader.orientations } - Binding { target: loader.item; property: "duration"; value: loader.duration } - Binding { target: loader.item; property: "excludes"; value: loader.excludes } - Binding { target: loader.item; property: "clippables"; value: loader.clippables } + Qml.Binding { + target: loader.item + property: "styleDef" + value: loader.styleDef + restoreMode: Binding.RestoreBinding + } + Qml.Binding { + target: loader.item + property: "focused" + value: loader.focused + restoreMode: Binding.RestoreBinding + } + Qml.Binding { + target: loader.item + property: "pressed" + value: loader.pressed + restoreMode: Binding.RestoreBinding + } + Qml.Binding { + target: loader.item + property: "checked" + value: loader.checked + restoreMode: Binding.RestoreBinding + } + Qml.Binding { + target: loader.item + property: "selected" + value: loader.selected + restoreMode: Binding.RestoreBinding + } + Qml.Binding { + target: loader.item + property: "accelerated" + value: loader.accelerated + restoreMode: Binding.RestoreBinding + } + Qml.Binding { + target: loader.item + property: "window_focused" + value: loader.window_focused + restoreMode: Binding.RestoreBinding + } + Qml.Binding { + target: loader.item + property: "level" + value: loader.level + restoreMode: Binding.RestoreBinding + } + Qml.Binding { + target: loader.item + property: "levelId" + value: loader.levelId + restoreMode: Binding.RestoreBinding + } + Qml.Binding { + target: loader.item + property: "orientations" + value: loader.orientations + restoreMode: Binding.RestoreBinding + } + Qml.Binding { + target: loader.item + property: "duration" + value: loader.duration + restoreMode: Binding.RestoreBinding + } + Qml.Binding { + target: loader.item + property: "excludes" + value: loader.excludes + restoreMode: Binding.RestoreBinding + } + Qml.Binding { + target: loader.item + property: "clippables" + value: loader.clippables + restoreMode: Binding.RestoreBinding + } } diff --git a/src/controls/Styles/Desktop/MenuStyle.qml b/src/controls/Styles/Desktop/MenuStyle.qml index 953f6a327..282860ae9 100644 --- a/src/controls/Styles/Desktop/MenuStyle.qml +++ b/src/controls/Styles/Desktop/MenuStyle.qml @@ -37,6 +37,7 @@ ** ****************************************************************************/ +import QtQml 2.14 as Qml import QtQuick 2.2 import QtQuick.Window 2.1 import QtQuick.Controls 1.2 @@ -78,10 +79,11 @@ Style { // ### The Screen attached property can only be set on an Item, // ### and will get its values only when put on a Window. readonly property int desktopAvailableHeight: Screen.desktopAvailableHeight - Binding { + Qml.Binding { target: styleRoot property: "__maxPopupHeight" value: desktopAvailableHeight * 0.99 + restoreMode: Binding.RestoreBinding } } diff --git a/src/dialogs/DefaultFileDialog.qml b/src/dialogs/DefaultFileDialog.qml index da273fc97..077b5acdd 100644 --- a/src/dialogs/DefaultFileDialog.qml +++ b/src/dialogs/DefaultFileDialog.qml @@ -37,6 +37,7 @@ ** ****************************************************************************/ +import QtQml 2.14 as Qml import QtQuick 2.2 import QtQuick.Controls 1.2 import QtQuick.Controls.Private 1.0 as ControlsPrivate @@ -153,15 +154,17 @@ AbstractFileDialog { implicitHeight: Math.min(root.__maximumDimension, Screen.pixelDensity * 80) color: root.palette.window - Binding { + Qml.Binding { target: view.model property: "folder" value: root.folder + restoreMode: Binding.RestoreBinding } - Binding { + Qml.Binding { target: currentPathField property: "text" value: root.urlToPath(root.folder) + restoreMode: Binding.RestoreBinding } Keys.onPressed: { event.accepted = true diff --git a/src/extras/DelayButton.qml b/src/extras/DelayButton.qml index 6bace4ed5..9a0c3a255 100644 --- a/src/extras/DelayButton.qml +++ b/src/extras/DelayButton.qml @@ -37,6 +37,7 @@ ** ****************************************************************************/ +import QtQml 2.14 as Qml import QtQuick 2.2 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 @@ -112,11 +113,12 @@ Button { } } - Binding { + Qml.Binding { // Force checkable to false to get full control over the checked -property target: root property: "checkable" value: false + restoreMode: Binding.RestoreBinding } onProgressChanged: { diff --git a/src/extras/Styles/Flat/ApplicationWindowStyle.qml b/src/extras/Styles/Flat/ApplicationWindowStyle.qml index f4fbd24ab..222c9f7cd 100644 --- a/src/extras/Styles/Flat/ApplicationWindowStyle.qml +++ b/src/extras/Styles/Flat/ApplicationWindowStyle.qml @@ -36,7 +36,7 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -import QtQuick 2.2 +import QtQuick 2.14 import QtQuick.Controls 1.2 import QtQuick.Controls.Styles 1.4 as Base import QtQuick.Controls.Styles.Flat 1.0 @@ -103,12 +103,13 @@ Base.ApplicationWindowStyle { items: control.menuBar ? control.menuBar.menus : [] } - Binding { + Qml.Binding { target: control.toolBar property: "__menu" value: proxyMenu.items.length > 1 ? proxyMenu : proxyMenu.items.length === 1 ? proxyMenu.items[0] : null when: hasToolBar + restoreMode: Binding.RestoreBinding } } } diff --git a/src/extras/Styles/Flat/GroupBoxStyle.qml b/src/extras/Styles/Flat/GroupBoxStyle.qml index c932262b3..797086a25 100644 --- a/src/extras/Styles/Flat/GroupBoxStyle.qml +++ b/src/extras/Styles/Flat/GroupBoxStyle.qml @@ -36,6 +36,8 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ + +import QtQml 2.14 as Qml import QtQuick 2.2 import QtQuick.Controls.Private 1.0 as Private import QtQuick.Controls.Styles.Flat 1.0 @@ -67,10 +69,11 @@ Private.GroupBoxStyle { } // TODO: - Binding { + Qml.Binding { target: root.padding property: "top" value: background.anchors.topMargin + root.spacing + restoreMode: Binding.RestoreBinding } CheckBoxDrawer { diff --git a/src/extras/Tumbler.qml b/src/extras/Tumbler.qml index 299ac83e6..a62087089 100644 --- a/src/extras/Tumbler.qml +++ b/src/extras/Tumbler.qml @@ -37,6 +37,7 @@ ** ****************************************************************************/ +import QtQml 2.14 as Qml import QtQuick 2.2 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 @@ -330,10 +331,11 @@ Control { visible: columnObject.visible clip: true - Binding { + Qml.Binding { target: columnObject property: "__currentIndex" value: columnPathView.currentIndex + restoreMode: Binding.RestoreBinding } // We add one here so that the delegate's don't just appear in the view instantly, diff --git a/tests/auto/controls/data/toolbutton/tb_checkableActionWithinExclusiveGroup.qml b/tests/auto/controls/data/toolbutton/tb_checkableActionWithinExclusiveGroup.qml index 591271552..7c9ebeac1 100644 --- a/tests/auto/controls/data/toolbutton/tb_checkableActionWithinExclusiveGroup.qml +++ b/tests/auto/controls/data/toolbutton/tb_checkableActionWithinExclusiveGroup.qml @@ -48,6 +48,7 @@ ** ****************************************************************************/ +import QtQml 2.14 as Qml import QtQuick 2.2 import QtQuick.Controls 1.2 @@ -75,15 +76,17 @@ Row { checked: textinput.font.underline } } - Binding { + Qml.Binding { target: textinput property: "font.bold" value: bold.checked + restoreMode: Binding.RestoreBinding } - Binding { + Qml.Binding { target: textinput property: "font.underline" value: underline.checked + restoreMode: Binding.RestoreBinding } ToolButton { id: _tb1 -- cgit v1.2.3