diff options
Diffstat (limited to 'src/imports/platform/qquickplatformmenu.cpp')
-rw-r--r-- | src/imports/platform/qquickplatformmenu.cpp | 66 |
1 files changed, 43 insertions, 23 deletions
diff --git a/src/imports/platform/qquickplatformmenu.cpp b/src/imports/platform/qquickplatformmenu.cpp index 0a5ce8e4..844fbbd9 100644 --- a/src/imports/platform/qquickplatformmenu.cpp +++ b/src/imports/platform/qquickplatformmenu.cpp @@ -543,57 +543,48 @@ void QQuickPlatformMenu::setTitle(const QString &title) /*! \qmlproperty url Qt.labs.platform::Menu::iconSource - - This property holds the url of the menu's icon. - - \sa iconName + \deprecated Use icon.source instead */ QUrl QQuickPlatformMenu::iconSource() const { - if (!m_iconLoader) - return QUrl(); - - return m_iconLoader->iconSource(); + return icon().source(); } void QQuickPlatformMenu::setIconSource(const QUrl& source) { - if (source == iconSource()) + QQuickPlatformIcon newIcon = icon(); + if (source == newIcon.source()) return; if (m_menuItem) m_menuItem->setIconSource(source); - iconLoader()->setIconSource(source); + newIcon.setSource(source); + iconLoader()->setIcon(newIcon); emit iconSourceChanged(); } /*! \qmlproperty string Qt.labs.platform::Menu::iconName - - This property holds the theme name of the menu's icon. - - \sa iconSource, QIcon::fromTheme() + \deprecated Use icon.name instead */ QString QQuickPlatformMenu::iconName() const { - if (!m_iconLoader) - return QString(); - - return m_iconLoader->iconName(); + return icon().name(); } void QQuickPlatformMenu::setIconName(const QString& name) { - if (name == iconName()) + QQuickPlatformIcon newIcon = icon(); + if (name == newIcon.name()) return; if (m_menuItem) m_menuItem->setIconName(name); - iconLoader()->setIconName(name); - emit iconNameChanged(); -} + newIcon.setName(name); + iconLoader()->setIcon(newIcon); + emit iconNameChanged();} /*! \qmlproperty font Qt.labs.platform::Menu::font @@ -618,6 +609,35 @@ void QQuickPlatformMenu::setFont(const QFont& font) } /*! + \since Qt.labs.platform 1.1 (Qt 5.12) + \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. +*/ +QQuickPlatformIcon QQuickPlatformMenu::icon() const +{ + if (!m_iconLoader) + return QQuickPlatformIcon(); + + return iconLoader()->icon(); +} + +void QQuickPlatformMenu::setIcon(const QQuickPlatformIcon &icon) +{ + if (iconLoader()->icon() == icon) + return; + + if (m_menuItem) + m_menuItem->setIcon(icon); + + iconLoader()->setIcon(icon); + emit iconChanged(); +} + +/*! \qmlmethod void Qt.labs.platform::Menu::addItem(MenuItem item) Adds an \a item to the end of the menu. @@ -913,7 +933,7 @@ void QQuickPlatformMenu::updateIcon() if (!m_handle || !m_iconLoader) return; - m_handle->setIcon(m_iconLoader->icon()); + m_handle->setIcon(m_iconLoader->toQIcon()); sync(); } |