diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2017-04-21 17:30:01 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2017-04-24 09:01:21 +0000 |
commit | 46cd10b3a5be2557d40336ca5cc236690ce8398a (patch) | |
tree | 80f080b7584a0565f6b69dd94666f21a7f9f3fc5 | |
parent | 2aa0c5015e26e1374f6b24ee7023adc58e380403 (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.cpp | 4 | ||||
-rw-r--r-- | src/quicktemplates2/qquickaction.cpp | 2 | ||||
-rw-r--r-- | src/quicktemplates2/qquickicon.cpp | 6 | ||||
-rw-r--r-- | src/quicktemplates2/qquickicon_p.h | 9 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_abstractbutton.qml | 4 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_button.qml | 2 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_checkdelegate.qml | 2 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_itemdelegate.qml | 2 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_menuitem.qml | 2 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_radiodelegate.qml | 2 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_roundbutton.qml | 2 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_swipedelegate.qml | 2 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_switchdelegate.qml | 2 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_tabbutton.qml | 2 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_toolbutton.qml | 2 |
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") |