From a27c3913c9888b8bb0ca909573d43a015d6f0631 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Thu, 19 Apr 2018 15:28:32 +0200 Subject: Platform: add icon.mask [ChangeLog][Platform][Menu] Added icon.mask grouped property. [ChangeLog][Platform][MenuItem] Added icon.mask grouped property. [ChangeLog][Platform][SystemTrayIcon] Added icon.mask grouped property. Task-number: QTBUG-67730 Change-Id: Idf8031b39038fb6b6774ebd2a2dcb32297465a40 Reviewed-by: Mitch Curtis --- src/imports/platform/qquickplatformicon.cpp | 12 +++++++++++- src/imports/platform/qquickplatformicon_p.h | 5 +++++ src/imports/platform/qquickplatformiconloader.cpp | 4 +++- src/imports/platform/qquickplatformmenu.cpp | 1 + src/imports/platform/qquickplatformmenuitem.cpp | 2 ++ src/imports/platform/qquickplatformsystemtrayicon.cpp | 2 ++ 6 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/imports/platform/qquickplatformicon.cpp b/src/imports/platform/qquickplatformicon.cpp index 98fc045f..7096ff8a 100644 --- a/src/imports/platform/qquickplatformicon.cpp +++ b/src/imports/platform/qquickplatformicon.cpp @@ -58,9 +58,19 @@ void QQuickPlatformIcon::setName(const QString& name) m_name = name; } +bool QQuickPlatformIcon::isMask() const +{ + return m_mask; +} + +void QQuickPlatformIcon::setMask(bool mask) +{ + m_mask = mask; +} + bool QQuickPlatformIcon::operator==(const QQuickPlatformIcon &other) const { - return m_source == other.m_source && m_name == other.m_name; + return m_source == other.m_source && m_name == other.m_name && m_mask == other.m_mask; } bool QQuickPlatformIcon::operator!=(const QQuickPlatformIcon &other) const diff --git a/src/imports/platform/qquickplatformicon_p.h b/src/imports/platform/qquickplatformicon_p.h index 270b3000..9add9d6e 100644 --- a/src/imports/platform/qquickplatformicon_p.h +++ b/src/imports/platform/qquickplatformicon_p.h @@ -60,6 +60,7 @@ class QQuickPlatformIcon Q_GADGET Q_PROPERTY(QUrl source READ source WRITE setSource) Q_PROPERTY(QString name READ name WRITE setName) + Q_PROPERTY(bool mask READ isMask WRITE setMask) public: QUrl source() const; @@ -68,10 +69,14 @@ public: QString name() const; void setName(const QString &name); + bool isMask() const; + void setMask(bool mask); + bool operator==(const QQuickPlatformIcon &other) const; bool operator!=(const QQuickPlatformIcon &other) const; private: + bool m_mask = false; QUrl m_source; QString m_name; }; diff --git a/src/imports/platform/qquickplatformiconloader.cpp b/src/imports/platform/qquickplatformiconloader.cpp index 6d4d486e..c7b699b2 100644 --- a/src/imports/platform/qquickplatformiconloader.cpp +++ b/src/imports/platform/qquickplatformiconloader.cpp @@ -65,7 +65,9 @@ void QQuickPlatformIconLoader::setEnabled(bool enabled) QIcon QQuickPlatformIconLoader::toQIcon() const { QIcon fallback = QPixmap::fromImage(image()); - return QIcon::fromTheme(m_icon.name(), fallback); + QIcon icon = QIcon::fromTheme(m_icon.name(), fallback); + icon.setIsMask(m_icon.isMask()); + return icon; } QQuickPlatformIcon QQuickPlatformIconLoader::icon() const diff --git a/src/imports/platform/qquickplatformmenu.cpp b/src/imports/platform/qquickplatformmenu.cpp index c263f0a6..844fbbd9 100644 --- a/src/imports/platform/qquickplatformmenu.cpp +++ b/src/imports/platform/qquickplatformmenu.cpp @@ -613,6 +613,7 @@ void QQuickPlatformMenu::setFont(const QFont& font) \qmlpropertygroup Qt.labs.platform::MenuItem::icon \qmlproperty url Qt.labs.platform::MenuItem::icon.source \qmlproperty string Qt.labs.platform::MenuItem::icon.name + \qmlproperty bool Qt.labs.platform::MenuItem::icon.mask This property holds the menu item's icon. */ diff --git a/src/imports/platform/qquickplatformmenuitem.cpp b/src/imports/platform/qquickplatformmenuitem.cpp index 62a75d60..d657fd12 100644 --- a/src/imports/platform/qquickplatformmenuitem.cpp +++ b/src/imports/platform/qquickplatformmenuitem.cpp @@ -542,11 +542,13 @@ void QQuickPlatformMenuItem::setFont(const QFont& font) \qmlpropertygroup Qt.labs.platform::MenuItem::icon \qmlproperty url Qt.labs.platform::MenuItem::icon.source \qmlproperty string Qt.labs.platform::MenuItem::icon.name + \qmlproperty bool Qt.labs.platform::MenuItem::icon.mask This property holds the menu item's icon. \code MenuItem { + icon.mask: true icon.name: "edit-undo" icon.source: "qrc:/images/undo.png" } diff --git a/src/imports/platform/qquickplatformsystemtrayicon.cpp b/src/imports/platform/qquickplatformsystemtrayicon.cpp index a27e2245..a38dab74 100644 --- a/src/imports/platform/qquickplatformsystemtrayicon.cpp +++ b/src/imports/platform/qquickplatformsystemtrayicon.cpp @@ -359,11 +359,13 @@ QRect QQuickPlatformSystemTrayIcon::geometry() const \qmlpropertygroup Qt.labs.platform::SystemTrayIcon::icon \qmlproperty url Qt.labs.platform::SystemTrayIcon::icon.source \qmlproperty string Qt.labs.platform::SystemTrayIcon::icon.name + \qmlproperty bool Qt.labs.platform::MenuItem::icon.mask This property holds the system tray icon. \code SystemTrayIcon { + icon.mask: true icon.source: "qrc:/images/tray-icon.png" } \endcode -- cgit v1.2.3