From b16f0030f348965a81698063b7f8a0a82de5a1e6 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Thu, 19 Apr 2018 15:26:56 +0200 Subject: Platform: make icon a grouped property [ChangeLog][Platform][Menu] Deprecated iconName and iconSource properties in favor of icon.name and icon.source grouped properties. [ChangeLog][Platform][MenuItem] Deprecated iconName and iconSource properties in favor of icon.name and icon.source grouped properties. [ChangeLog][Platform][SystemTrayIcon] Deprecated iconName and iconSource properties in favor of icon.name and icon.source grouped properties. Task-number: QTBUG-67730 Change-Id: I08bbb2bb5ed2aaae02f9264c63fb6cfa04240a74 Reviewed-by: Mitch Curtis --- .../platform/qquickplatformsystemtrayicon.cpp | 73 +++++++++++++++------- 1 file changed, 49 insertions(+), 24 deletions(-) (limited to 'src/imports/platform/qquickplatformsystemtrayicon.cpp') diff --git a/src/imports/platform/qquickplatformsystemtrayicon.cpp b/src/imports/platform/qquickplatformsystemtrayicon.cpp index 0663e878..a27e2245 100644 --- a/src/imports/platform/qquickplatformsystemtrayicon.cpp +++ b/src/imports/platform/qquickplatformsystemtrayicon.cpp @@ -67,7 +67,7 @@ QT_BEGIN_NAMESPACE \code SystemTrayIcon { visible: true - iconSource: "qrc:/images/tray-icon.png" + icon.source: "qrc:/images/tray-icon.png" onActivated: { window.show() @@ -88,7 +88,7 @@ QT_BEGIN_NAMESPACE \code SystemTrayIcon { visible: true - iconSource: "qrc:/images/tray-icon.png" + icon.source: "qrc:/images/tray-icon.png" menu: Menu { MenuItem { @@ -111,7 +111,7 @@ QT_BEGIN_NAMESPACE \code SystemTrayIcon { visible: true - iconSource: "qrc:/images/tray-icon.png" + icon.source: "qrc:/images/tray-icon.png" onMessageClicked: console.log("Message clicked") Component.onCompleted: showMessage("Message title", "Something important came up. Click this to know more.") @@ -254,49 +254,43 @@ void QQuickPlatformSystemTrayIcon::setVisible(bool visible) /*! \qmlproperty url Qt.labs.platform::SystemTrayIcon::iconSource - - This property holds the url of the system tray icon. - - \sa iconName + \deprecated Use icon.source instead. + \sa icon */ QUrl QQuickPlatformSystemTrayIcon::iconSource() const { - if (!m_iconLoader) - return QUrl(); - - return m_iconLoader->iconSource(); + return icon().source(); } void QQuickPlatformSystemTrayIcon::setIconSource(const QUrl& source) { - if (source == iconSource()) + QQuickPlatformIcon newIcon = icon(); + if (source == newIcon.source()) return; - iconLoader()->setIconSource(source); + newIcon.setSource(source); + iconLoader()->setIcon(newIcon); emit iconSourceChanged(); } /*! \qmlproperty string Qt.labs.platform::SystemTrayIcon::iconName - - This property holds the theme name of the system tray icon. - - \sa iconSource, QIcon::fromTheme() + \deprecated Use icon.name instead. + \sa icon */ QString QQuickPlatformSystemTrayIcon::iconName() const { - if (!m_iconLoader) - return QString(); - - return m_iconLoader->iconName(); + return icon().name(); } void QQuickPlatformSystemTrayIcon::setIconName(const QString& name) { - if (name == iconName()) + QQuickPlatformIcon newIcon = icon(); + if (name == newIcon.name()) return; - iconLoader()->setIconName(name); + newIcon.setName(name); + iconLoader()->setIcon(newIcon); emit iconNameChanged(); } @@ -360,6 +354,37 @@ QRect QQuickPlatformSystemTrayIcon::geometry() const return m_handle ? m_handle->geometry() : QRect(); } +/*! + \since Qt.labs.platform 1.1 (Qt 5.12) + \qmlpropertygroup Qt.labs.platform::SystemTrayIcon::icon + \qmlproperty url Qt.labs.platform::SystemTrayIcon::icon.source + \qmlproperty string Qt.labs.platform::SystemTrayIcon::icon.name + + This property holds the system tray icon. + + \code + SystemTrayIcon { + icon.source: "qrc:/images/tray-icon.png" + } + \endcode +*/ +QQuickPlatformIcon QQuickPlatformSystemTrayIcon::icon() const +{ + if (!m_iconLoader) + return QQuickPlatformIcon(); + + return m_iconLoader->icon(); +} + +void QQuickPlatformSystemTrayIcon::setIcon(const QQuickPlatformIcon &icon) +{ + if (iconLoader()->icon() == icon) + return; + + iconLoader()->setIcon(icon); + emit iconChanged(); +} + /*! \qmlmethod void Qt.labs.platform::SystemTrayIcon::show() @@ -448,7 +473,7 @@ void QQuickPlatformSystemTrayIcon::updateIcon() const QRect oldGeometry = m_handle->geometry(); - m_handle->updateIcon(m_iconLoader->icon()); + m_handle->updateIcon(m_iconLoader->toQIcon()); if (oldGeometry != m_handle->geometry()) emit geometryChanged(); -- cgit v1.2.3