aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2017-04-21 17:30:01 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2017-04-24 09:01:21 +0000
commit46cd10b3a5be2557d40336ca5cc236690ce8398a (patch)
tree80f080b7584a0565f6b69dd94666f21a7f9f3fc5
parent2aa0c5015e26e1374f6b24ee7023adc58e380403 (diff)
QQuickIcon: fix the type of the source property
For example, something like: Button { icon.source: "../images/drawer.png" } did not work in the Gallery example, even though it works fine for Image elements etc. The URL needs to be resolved relative to the caller. By making the property an URL instead of a plain string, the QML engine does the correct thing automatically. Note: icon.source.length no longer works in auto tests, so it got replaced by a compare(). Change-Id: I5fdb3aa55003d2f04e5458b7636e4dae3fa9857c Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
-rw-r--r--src/quicktemplates2/qquickabstractbutton.cpp4
-rw-r--r--src/quicktemplates2/qquickaction.cpp2
-rw-r--r--src/quicktemplates2/qquickicon.cpp6
-rw-r--r--src/quicktemplates2/qquickicon_p.h9
-rw-r--r--tests/auto/controls/data/tst_abstractbutton.qml4
-rw-r--r--tests/auto/controls/data/tst_button.qml2
-rw-r--r--tests/auto/controls/data/tst_checkdelegate.qml2
-rw-r--r--tests/auto/controls/data/tst_itemdelegate.qml2
-rw-r--r--tests/auto/controls/data/tst_menuitem.qml2
-rw-r--r--tests/auto/controls/data/tst_radiodelegate.qml2
-rw-r--r--tests/auto/controls/data/tst_roundbutton.qml2
-rw-r--r--tests/auto/controls/data/tst_swipedelegate.qml2
-rw-r--r--tests/auto/controls/data/tst_switchdelegate.qml2
-rw-r--r--tests/auto/controls/data/tst_tabbutton.qml2
-rw-r--r--tests/auto/controls/data/tst_toolbutton.qml2
15 files changed, 23 insertions, 22 deletions
diff --git a/src/quicktemplates2/qquickabstractbutton.cpp b/src/quicktemplates2/qquickabstractbutton.cpp
index a308834c..9ce26990 100644
--- a/src/quicktemplates2/qquickabstractbutton.cpp
+++ b/src/quicktemplates2/qquickabstractbutton.cpp
@@ -625,7 +625,7 @@ void QQuickAbstractButton::setIndicator(QQuickItem *indicator)
/*!
\qmlpropertygroup QtQuick.Controls::AbstractButton::icon
\qmlproperty string QtQuick.Controls::AbstractButton::icon.name
- \qmlproperty string QtQuick.Controls::AbstractButton::icon.source
+ \qmlproperty url QtQuick.Controls::AbstractButton::icon.source
\qmlproperty int QtQuick.Controls::AbstractButton::icon.width
\qmlproperty int QtQuick.Controls::AbstractButton::icon.height
\qmlproperty color QtQuick.Controls::AbstractButton::icon.color
@@ -738,7 +738,7 @@ void QQuickAbstractButton::setAction(QQuickAction *action)
if (!name.isEmpty())
buttonIcon->setName(name);
- QString source = actionIcon->source();
+ QUrl source = actionIcon->source();
if (!source.isEmpty())
buttonIcon->setSource(source);
diff --git a/src/quicktemplates2/qquickaction.cpp b/src/quicktemplates2/qquickaction.cpp
index ee5f3387..cdf7c066 100644
--- a/src/quicktemplates2/qquickaction.cpp
+++ b/src/quicktemplates2/qquickaction.cpp
@@ -374,7 +374,7 @@ void QQuickAction::setText(const QString &text)
/*!
\qmlpropertygroup QtQuick.Controls::Action::icon
\qmlproperty string QtQuick.Controls::Action::icon.name
- \qmlproperty string QtQuick.Controls::Action::icon.source
+ \qmlproperty url QtQuick.Controls::Action::icon.source
\qmlproperty int QtQuick.Controls::Action::icon.width
\qmlproperty int QtQuick.Controls::Action::icon.height
\qmlproperty color QtQuick.Controls::Action::icon.color
diff --git a/src/quicktemplates2/qquickicon.cpp b/src/quicktemplates2/qquickicon.cpp
index cc513829..38d0b2af 100644
--- a/src/quicktemplates2/qquickicon.cpp
+++ b/src/quicktemplates2/qquickicon.cpp
@@ -52,7 +52,7 @@ public:
}
QString name;
- QString source;
+ QUrl source;
int width;
int height;
QColor color;
@@ -79,13 +79,13 @@ void QQuickIcon::setName(const QString &name)
emit nameChanged(name);
}
-QString QQuickIcon::source() const
+QUrl QQuickIcon::source() const
{
Q_D(const QQuickIcon);
return d->source;
}
-void QQuickIcon::setSource(const QString &source)
+void QQuickIcon::setSource(const QUrl &source)
{
Q_D(QQuickIcon);
if (source == d->source)
diff --git a/src/quicktemplates2/qquickicon_p.h b/src/quicktemplates2/qquickicon_p.h
index d4790579..4b1557a0 100644
--- a/src/quicktemplates2/qquickicon_p.h
+++ b/src/quicktemplates2/qquickicon_p.h
@@ -48,6 +48,7 @@
// We mean it.
//
+#include <QtCore/qurl.h>
#include <QtCore/qobject.h>
#include <QtQuickTemplates2/private/qtquicktemplates2global_p.h>
#include <QtGui/qcolor.h>
@@ -60,7 +61,7 @@ class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickIcon : public QObject
{
Q_OBJECT
Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged FINAL)
- Q_PROPERTY(QString source READ source WRITE setSource NOTIFY sourceChanged FINAL)
+ Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged FINAL)
Q_PROPERTY(int width READ width WRITE setWidth NOTIFY widthChanged FINAL)
Q_PROPERTY(int height READ height WRITE setHeight NOTIFY heightChanged FINAL)
Q_PROPERTY(QColor color READ color WRITE setColor RESET resetColor NOTIFY colorChanged FINAL)
@@ -71,8 +72,8 @@ public:
QString name() const;
void setName(const QString &name);
- QString source() const;
- void setSource(const QString &source);
+ QUrl source() const;
+ void setSource(const QUrl &source);
int width() const;
void setWidth(int width);
@@ -86,7 +87,7 @@ public:
Q_SIGNALS:
void nameChanged(const QString &name);
- void sourceChanged(const QString &source);
+ void sourceChanged(const QUrl &source);
void widthChanged(int width);
void heightChanged(int height);
void colorChanged(const QColor &color);
diff --git a/tests/auto/controls/data/tst_abstractbutton.qml b/tests/auto/controls/data/tst_abstractbutton.qml
index b797dfcb..8ab91e3a 100644
--- a/tests/auto/controls/data/tst_abstractbutton.qml
+++ b/tests/auto/controls/data/tst_abstractbutton.qml
@@ -184,8 +184,8 @@ TestCase {
var iconSourceSpy = signalSpy.createObject(control, { target: control.icon, signalName: "sourceChanged"} )
verify(iconSourceSpy.valid)
- control.icon.source = "test-source"
- compare(control.icon.source, "test-source")
+ control.icon.source = "qrc:/test-source"
+ compare(control.icon.source, "qrc:/test-source")
compare(iconSourceSpy.count, 1)
var iconWidthSpy = signalSpy.createObject(control, { target: control.icon, signalName: "widthChanged"} )
diff --git a/tests/auto/controls/data/tst_button.qml b/tests/auto/controls/data/tst_button.qml
index dd6742ec..2cf399f4 100644
--- a/tests/auto/controls/data/tst_button.qml
+++ b/tests/auto/controls/data/tst_button.qml
@@ -472,7 +472,7 @@ TestCase {
"LayoutMirroring.enabled": !!data.mirrored
})
verify(control)
- verify(control.icon.source.length > 0)
+ compare(control.icon.source, "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/check.png")
var iconImage = findChild(control.contentItem, "image")
var textLabel = findChild(control.contentItem, "label")
diff --git a/tests/auto/controls/data/tst_checkdelegate.qml b/tests/auto/controls/data/tst_checkdelegate.qml
index f13d6d49..9f92b4dc 100644
--- a/tests/auto/controls/data/tst_checkdelegate.qml
+++ b/tests/auto/controls/data/tst_checkdelegate.qml
@@ -130,7 +130,7 @@ TestCase {
"LayoutMirroring.enabled": !!data.mirrored
})
verify(control)
- verify(control.icon.source.length > 0)
+ compare(control.icon.source, "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/check.png")
var iconImage = findChild(control.contentItem, "image")
var textLabel = findChild(control.contentItem, "label")
diff --git a/tests/auto/controls/data/tst_itemdelegate.qml b/tests/auto/controls/data/tst_itemdelegate.qml
index 5f54b7e6..4e4ca0c4 100644
--- a/tests/auto/controls/data/tst_itemdelegate.qml
+++ b/tests/auto/controls/data/tst_itemdelegate.qml
@@ -122,7 +122,7 @@ TestCase {
"LayoutMirroring.enabled": !!data.mirrored
})
verify(control)
- verify(control.icon.source.length > 0)
+ compare(control.icon.source, "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/check.png")
var iconImage = findChild(control.contentItem, "image")
var textLabel = findChild(control.contentItem, "label")
diff --git a/tests/auto/controls/data/tst_menuitem.qml b/tests/auto/controls/data/tst_menuitem.qml
index b9aade54..d5de9e89 100644
--- a/tests/auto/controls/data/tst_menuitem.qml
+++ b/tests/auto/controls/data/tst_menuitem.qml
@@ -118,7 +118,7 @@ TestCase {
"LayoutMirroring.enabled": !!data.mirrored
})
verify(control)
- verify(control.icon.source.length > 0)
+ compare(control.icon.source, "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/check.png")
var iconImage = findChild(control.contentItem, "image")
var textLabel = findChild(control.contentItem, "label")
diff --git a/tests/auto/controls/data/tst_radiodelegate.qml b/tests/auto/controls/data/tst_radiodelegate.qml
index 2904506a..b1ee00db 100644
--- a/tests/auto/controls/data/tst_radiodelegate.qml
+++ b/tests/auto/controls/data/tst_radiodelegate.qml
@@ -130,7 +130,7 @@ TestCase {
"LayoutMirroring.enabled": !!data.mirrored
})
verify(control)
- verify(control.icon.source.length > 0)
+ compare(control.icon.source, "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/check.png")
var iconImage = findChild(control.contentItem, "image")
var textLabel = findChild(control.contentItem, "label")
diff --git a/tests/auto/controls/data/tst_roundbutton.qml b/tests/auto/controls/data/tst_roundbutton.qml
index 42e66a66..c772c85f 100644
--- a/tests/auto/controls/data/tst_roundbutton.qml
+++ b/tests/auto/controls/data/tst_roundbutton.qml
@@ -126,7 +126,7 @@ TestCase {
"LayoutMirroring.enabled": !!data.mirrored
})
verify(control)
- verify(control.icon.source.length > 0)
+ compare(control.icon.source, "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/check.png")
var iconImage = findChild(control.contentItem, "image")
var textLabel = findChild(control.contentItem, "label")
diff --git a/tests/auto/controls/data/tst_swipedelegate.qml b/tests/auto/controls/data/tst_swipedelegate.qml
index acf11596..d603bd7f 100644
--- a/tests/auto/controls/data/tst_swipedelegate.qml
+++ b/tests/auto/controls/data/tst_swipedelegate.qml
@@ -1612,7 +1612,7 @@ TestCase {
"LayoutMirroring.enabled": !!data.mirrored
})
verify(control)
- verify(control.icon.source.length > 0)
+ compare(control.icon.source, "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/check.png")
var iconImage = findChild(control.contentItem, "image")
var textLabel = findChild(control.contentItem, "label")
diff --git a/tests/auto/controls/data/tst_switchdelegate.qml b/tests/auto/controls/data/tst_switchdelegate.qml
index a1e6c072..8f240409 100644
--- a/tests/auto/controls/data/tst_switchdelegate.qml
+++ b/tests/auto/controls/data/tst_switchdelegate.qml
@@ -564,7 +564,7 @@ TestCase {
"LayoutMirroring.enabled": !!data.mirrored
})
verify(control)
- verify(control.icon.source.length > 0)
+ compare(control.icon.source, "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/check.png")
var iconImage = findChild(control.contentItem, "image")
var textLabel = findChild(control.contentItem, "label")
diff --git a/tests/auto/controls/data/tst_tabbutton.qml b/tests/auto/controls/data/tst_tabbutton.qml
index 05108992..3cb22ecd 100644
--- a/tests/auto/controls/data/tst_tabbutton.qml
+++ b/tests/auto/controls/data/tst_tabbutton.qml
@@ -138,7 +138,7 @@ TestCase {
"LayoutMirroring.enabled": !!data.mirrored
})
verify(control)
- verify(control.icon.source.length > 0)
+ compare(control.icon.source, "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/check.png")
var iconImage = findChild(control.contentItem, "image")
var textLabel = findChild(control.contentItem, "label")
diff --git a/tests/auto/controls/data/tst_toolbutton.qml b/tests/auto/controls/data/tst_toolbutton.qml
index ed76db13..9e79cb8c 100644
--- a/tests/auto/controls/data/tst_toolbutton.qml
+++ b/tests/auto/controls/data/tst_toolbutton.qml
@@ -203,7 +203,7 @@ TestCase {
"LayoutMirroring.enabled": !!data.mirrored
})
verify(control)
- verify(control.icon.source.length > 0)
+ compare(control.icon.source, "qrc:/qt-project.org/imports/QtQuick/Controls.2/images/check.png")
var iconImage = findChild(control.contentItem, "image")
var textLabel = findChild(control.contentItem, "label")