diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2017-01-20 12:55:54 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2017-01-20 12:55:54 +0100 |
commit | bc29da5c224d277dfa94ae4e188df1db325ae83a (patch) | |
tree | 19eef227a11ab099fd04b909d326201ae7df7d8d /src | |
parent | 5934c9670eaa6f0464c45857d72bcebf64902cc4 (diff) | |
parent | c1b1e9a69a5770a59d0a4e59650c6487b9cd5439 (diff) |
Merge remote-tracking branch 'origin/5.8' into dev
Conflicts:
src/quicktemplates2/qquickswitch.cpp
src/quicktemplates2/qquickswitchdelegate.cpp
tests/auto/controls/data/tst_dialogbuttonbox.qml
tests/auto/controls/data/tst_toolbutton.qml
Change-Id: I1da1d6de83c1d9ac854dfce1d6c9d6ba2c460404
Diffstat (limited to 'src')
14 files changed, 103 insertions, 21 deletions
diff --git a/src/imports/controls/designer/images/roundbutton-icon.png b/src/imports/controls/designer/images/roundbutton-icon.png Binary files differnew file mode 100644 index 00000000..35d28fab --- /dev/null +++ b/src/imports/controls/designer/images/roundbutton-icon.png diff --git a/src/imports/controls/designer/images/roundbutton-icon16.png b/src/imports/controls/designer/images/roundbutton-icon16.png Binary files differnew file mode 100644 index 00000000..5dc3a895 --- /dev/null +++ b/src/imports/controls/designer/images/roundbutton-icon16.png diff --git a/src/imports/controls/designer/images/roundbutton-icon16@2x.png b/src/imports/controls/designer/images/roundbutton-icon16@2x.png Binary files differnew file mode 100644 index 00000000..10c13149 --- /dev/null +++ b/src/imports/controls/designer/images/roundbutton-icon16@2x.png diff --git a/src/imports/controls/designer/images/roundbutton-icon@2x.png b/src/imports/controls/designer/images/roundbutton-icon@2x.png Binary files differnew file mode 100644 index 00000000..81150e3d --- /dev/null +++ b/src/imports/controls/designer/images/roundbutton-icon@2x.png diff --git a/src/imports/controls/designer/images/stackview-icon.png b/src/imports/controls/designer/images/stackview-icon.png Binary files differnew file mode 100644 index 00000000..bbd6783c --- /dev/null +++ b/src/imports/controls/designer/images/stackview-icon.png diff --git a/src/imports/controls/designer/images/stackview-icon16.png b/src/imports/controls/designer/images/stackview-icon16.png Binary files differnew file mode 100644 index 00000000..3f7ab00c --- /dev/null +++ b/src/imports/controls/designer/images/stackview-icon16.png diff --git a/src/imports/controls/designer/images/swipeview-icon.png b/src/imports/controls/designer/images/swipeview-icon.png Binary files differnew file mode 100644 index 00000000..bbd6783c --- /dev/null +++ b/src/imports/controls/designer/images/swipeview-icon.png diff --git a/src/imports/controls/designer/images/swipeview-icon16.png b/src/imports/controls/designer/images/swipeview-icon16.png Binary files differnew file mode 100644 index 00000000..3f7ab00c --- /dev/null +++ b/src/imports/controls/designer/images/swipeview-icon16.png diff --git a/src/imports/controls/designer/qtquickcontrols2.metainfo b/src/imports/controls/designer/qtquickcontrols2.metainfo index c697b3c2..35cfa0f2 100644 --- a/src/imports/controls/designer/qtquickcontrols2.metainfo +++ b/src/imports/controls/designer/qtquickcontrols2.metainfo @@ -440,4 +440,50 @@ MetaInfo { Property { name: "text"; type: "binding"; value: "qsTr(\"Tab Button\")" } } } + + Type { + name: "QtQuick.Controls.RoundButton" + icon: "images/roundbutton-icon16.png" + + ItemLibraryEntry { + name: "Round Button" + category: "Qt Quick - Controls 2" + libraryIcon: "images/roundbutton-icon.png" + version: "2.1" + requiredImport: "QtQuick.Controls" + Property { name: "text"; type: "string"; value: "+" } + } + } + + Type { + name: "QtQuick.Controls.StackView" + icon: "images/stackview-icon16.png" + + ItemLibraryEntry { + name: "stack View" + category: "Qt Quick - Views" + libraryIcon: "images/stackview-icon.png" + version: "2.1" + requiredImport: "QtQuick.Controls" + + Property { name: "width"; type: "int"; value: 200 } + Property { name: "height"; type: "int"; value: 200 } + } + } + + Type { + name: "QtQuick.Controls.SwipeView" + icon: "images/swipeview-icon16.png" + + ItemLibraryEntry { + name: "Swipe View" + category: "Qt Quick - Views" + libraryIcon: "images/swipeview-icon.png" + version: "2.0" + requiredImport: "QtQuick.Controls" + + Property { name: "width"; type: "int"; value: 200 } + Property { name: "height"; type: "int"; value: 200 } + } + } } diff --git a/src/imports/controls/material/ComboBox.qml b/src/imports/controls/material/ComboBox.qml index 2bdf9afa..0721e8f3 100644 --- a/src/imports/controls/material/ComboBox.qml +++ b/src/imports/controls/material/ComboBox.qml @@ -71,6 +71,8 @@ T.ComboBox { x: control.mirrored ? control.padding : control.width - width - control.padding y: control.topPadding + (control.availableHeight - height) / 2 source: "image://material/drop-indicator/" + (control.enabled ? control.Material.foreground : control.Material.hintTextColor) + sourceSize.width: width + sourceSize.height: height } contentItem: T.TextField { diff --git a/src/quicktemplates2/qquickdialogbuttonbox.cpp b/src/quicktemplates2/qquickdialogbuttonbox.cpp index 7606f26a..d125de91 100644 --- a/src/quicktemplates2/qquickdialogbuttonbox.cpp +++ b/src/quicktemplates2/qquickdialogbuttonbox.cpp @@ -499,7 +499,17 @@ void QQuickDialogButtonBox::setStandardButtons(QPlatformDialogHelper::StandardBu */ QQuickAbstractButton *QQuickDialogButtonBox::standardButton(QPlatformDialogHelper::StandardButton button) const { - Q_UNUSED(button); + Q_D(const QQuickDialogButtonBox); + if (Q_UNLIKELY(!(d->standardButtons & button))) + return nullptr; + for (int i = 0, n = count(); i < n; ++i) { + QQuickAbstractButton *btn = qobject_cast<QQuickAbstractButton *>(d->itemAt(i)); + if (Q_LIKELY(btn)) { + QQuickDialogButtonBoxAttached *attached = qobject_cast<QQuickDialogButtonBoxAttached *>(qmlAttachedPropertiesObject<QQuickDialogButtonBox>(btn, false)); + if (attached && QQuickDialogButtonBoxAttachedPrivate::get(attached)->standardButton == button) + return btn; + } + } return nullptr; } diff --git a/src/quicktemplates2/qquickspinbox.cpp b/src/quicktemplates2/qquickspinbox.cpp index 4dd7518c..d8d34d28 100644 --- a/src/quicktemplates2/qquickspinbox.cpp +++ b/src/quicktemplates2/qquickspinbox.cpp @@ -123,6 +123,7 @@ public: int boundValue(int value) const; void updateValue(); + bool setValue(int value); int effectiveStepSize() const; @@ -181,6 +182,24 @@ void QQuickSpinBoxPrivate::updateValue() } } +bool QQuickSpinBoxPrivate::setValue(int newValue) +{ + Q_Q(QQuickSpinBox); + if (q->isComponentComplete()) + newValue = boundValue(newValue); + + if (value == newValue) + return false; + + value = newValue; + + updateUpEnabled(); + updateDownEnabled(); + + emit q->valueChanged(); + return true; +} + int QQuickSpinBoxPrivate::effectiveStepSize() const { return from > to ? -1 * stepSize : stepSize; @@ -351,8 +370,12 @@ void QQuickSpinBox::setFrom(int from) d->from = from; emit fromChanged(); - if (isComponentComplete()) - setValue(d->value); + if (isComponentComplete()) { + if (!d->setValue(d->value)) { + d->updateUpEnabled(); + d->updateDownEnabled(); + } + } } /*! @@ -376,8 +399,12 @@ void QQuickSpinBox::setTo(int to) d->to = to; emit toChanged(); - if (isComponentComplete()) - setValue(d->value); + if (isComponentComplete()) { + if (!d->setValue(d->value)) { + d->updateUpEnabled(); + d->updateDownEnabled(); + } + } } /*! @@ -394,18 +421,7 @@ int QQuickSpinBox::value() const void QQuickSpinBox::setValue(int value) { Q_D(QQuickSpinBox); - if (isComponentComplete()) - value = d->boundValue(value); - - if (d->value == value) - return; - - d->value = value; - - d->updateUpEnabled(); - d->updateDownEnabled(); - - emit valueChanged(); + d->setValue(value); } /*! diff --git a/src/quicktemplates2/qquickswitch.cpp b/src/quicktemplates2/qquickswitch.cpp index 217b305d..f96fa391 100644 --- a/src/quicktemplates2/qquickswitch.cpp +++ b/src/quicktemplates2/qquickswitch.cpp @@ -186,10 +186,14 @@ void QQuickSwitch::mirrorChange() void QQuickSwitch::nextCheckState() { Q_D(QQuickSwitch); - if (keepMouseGrab()) + if (keepMouseGrab()) { d->toggle(d->position > 0.5); - else + // the checked state might not change => force a position update to + // avoid that the handle is left somewhere in the middle (QTBUG-57944) + setPosition(d->checked ? 1.0 : 0.0); + } else { QQuickAbstractButton::nextCheckState(); + } } void QQuickSwitch::buttonChange(ButtonChange change) diff --git a/src/quicktemplates2/qquickswitchdelegate.cpp b/src/quicktemplates2/qquickswitchdelegate.cpp index 0523e332..82c9594c 100644 --- a/src/quicktemplates2/qquickswitchdelegate.cpp +++ b/src/quicktemplates2/qquickswitchdelegate.cpp @@ -188,10 +188,14 @@ void QQuickSwitchDelegate::mirrorChange() void QQuickSwitchDelegate::nextCheckState() { Q_D(QQuickSwitchDelegate); - if (keepMouseGrab()) + if (keepMouseGrab()) { d->toggle(d->position > 0.5); - else + // the checked state might not change => force a position update to + // avoid that the handle is left somewhere in the middle (QTBUG-57944) + setPosition(d->checked ? 1.0 : 0.0); + } else { QQuickItemDelegate::nextCheckState(); + } } void QQuickSwitchDelegate::buttonChange(ButtonChange change) |