aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2017-01-20 12:55:54 +0100
committerJ-P Nurmi <jpnurmi@qt.io>2017-01-20 12:55:54 +0100
commitbc29da5c224d277dfa94ae4e188df1db325ae83a (patch)
tree19eef227a11ab099fd04b909d326201ae7df7d8d /src
parent5934c9670eaa6f0464c45857d72bcebf64902cc4 (diff)
parentc1b1e9a69a5770a59d0a4e59650c6487b9cd5439 (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')
-rw-r--r--src/imports/controls/designer/images/roundbutton-icon.pngbin0 -> 223 bytes
-rw-r--r--src/imports/controls/designer/images/roundbutton-icon16.pngbin0 -> 178 bytes
-rw-r--r--src/imports/controls/designer/images/roundbutton-icon16@2x.pngbin0 -> 219 bytes
-rw-r--r--src/imports/controls/designer/images/roundbutton-icon@2x.pngbin0 -> 310 bytes
-rw-r--r--src/imports/controls/designer/images/stackview-icon.pngbin0 -> 157 bytes
-rw-r--r--src/imports/controls/designer/images/stackview-icon16.pngbin0 -> 147 bytes
-rw-r--r--src/imports/controls/designer/images/swipeview-icon.pngbin0 -> 157 bytes
-rw-r--r--src/imports/controls/designer/images/swipeview-icon16.pngbin0 -> 147 bytes
-rw-r--r--src/imports/controls/designer/qtquickcontrols2.metainfo46
-rw-r--r--src/imports/controls/material/ComboBox.qml2
-rw-r--r--src/quicktemplates2/qquickdialogbuttonbox.cpp12
-rw-r--r--src/quicktemplates2/qquickspinbox.cpp48
-rw-r--r--src/quicktemplates2/qquickswitch.cpp8
-rw-r--r--src/quicktemplates2/qquickswitchdelegate.cpp8
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
new file mode 100644
index 00000000..35d28fab
--- /dev/null
+++ b/src/imports/controls/designer/images/roundbutton-icon.png
Binary files differ
diff --git a/src/imports/controls/designer/images/roundbutton-icon16.png b/src/imports/controls/designer/images/roundbutton-icon16.png
new file mode 100644
index 00000000..5dc3a895
--- /dev/null
+++ b/src/imports/controls/designer/images/roundbutton-icon16.png
Binary files differ
diff --git a/src/imports/controls/designer/images/roundbutton-icon16@2x.png b/src/imports/controls/designer/images/roundbutton-icon16@2x.png
new file mode 100644
index 00000000..10c13149
--- /dev/null
+++ b/src/imports/controls/designer/images/roundbutton-icon16@2x.png
Binary files differ
diff --git a/src/imports/controls/designer/images/roundbutton-icon@2x.png b/src/imports/controls/designer/images/roundbutton-icon@2x.png
new file mode 100644
index 00000000..81150e3d
--- /dev/null
+++ b/src/imports/controls/designer/images/roundbutton-icon@2x.png
Binary files differ
diff --git a/src/imports/controls/designer/images/stackview-icon.png b/src/imports/controls/designer/images/stackview-icon.png
new file mode 100644
index 00000000..bbd6783c
--- /dev/null
+++ b/src/imports/controls/designer/images/stackview-icon.png
Binary files differ
diff --git a/src/imports/controls/designer/images/stackview-icon16.png b/src/imports/controls/designer/images/stackview-icon16.png
new file mode 100644
index 00000000..3f7ab00c
--- /dev/null
+++ b/src/imports/controls/designer/images/stackview-icon16.png
Binary files differ
diff --git a/src/imports/controls/designer/images/swipeview-icon.png b/src/imports/controls/designer/images/swipeview-icon.png
new file mode 100644
index 00000000..bbd6783c
--- /dev/null
+++ b/src/imports/controls/designer/images/swipeview-icon.png
Binary files differ
diff --git a/src/imports/controls/designer/images/swipeview-icon16.png b/src/imports/controls/designer/images/swipeview-icon16.png
new file mode 100644
index 00000000..3f7ab00c
--- /dev/null
+++ b/src/imports/controls/designer/images/swipeview-icon16.png
Binary files differ
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)