diff --git a/src/controls/qquickmenu.cpp b/src/controls/qquickmenu.cpp index 088e6ad5accf0018b9338fcf3b0d6e95502a5036..efc49cd6458291d4da7e573fd002d8791ea9e6cd 100644 --- a/src/controls/qquickmenu.cpp +++ b/src/controls/qquickmenu.cpp @@ -255,6 +255,8 @@ QQuickMenu::QQuickMenu(QObject *parent) if (platformItem()) platformItem()->setMenu(m_platformMenu); } + if (const QFont *font = QGuiApplicationPrivate::platformTheme()->font(QPlatformTheme::MenuItemFont)) + m_font = *const_cast<QFont*>(font); } QQuickMenu::~QQuickMenu() @@ -288,6 +290,10 @@ void QQuickMenu::setMinimumWidth(int w) void QQuickMenu::setFont(const QFont &arg) { + if (arg == m_font) + return; + + m_font = arg; if (m_platformMenu) m_platformMenu->setFont(arg); } diff --git a/src/controls/qquickmenu_p.h b/src/controls/qquickmenu_p.h index d57de12668b9fb6d86c9b0badf95e63ce77430f0..6207e3e0f54db9d72a58701e8348d2dca0a4fd03 100644 --- a/src/controls/qquickmenu_p.h +++ b/src/controls/qquickmenu_p.h @@ -48,6 +48,7 @@ #include <QtCore/qvariant.h> #include <QtQml/qqml.h> #include <QtQml/qqmllist.h> +#include <QtGui/QFont> QT_BEGIN_NAMESPACE @@ -69,7 +70,7 @@ class QQuickMenu : public QQuickMenuText Q_PROPERTY(bool __popupVisible READ popupVisible NOTIFY popupVisibleChanged) Q_PROPERTY(QQuickItem *__contentItem READ menuContentItem WRITE setMenuContentItem) Q_PROPERTY(int __minimumWidth READ minimumWidth WRITE setMinimumWidth) - Q_PROPERTY(QFont __font WRITE setFont) + Q_PROPERTY(QFont __font READ font WRITE setFont) Q_PROPERTY(qreal __xOffset READ xOffset WRITE setXOffset) Q_PROPERTY(qreal __yOffset READ yOffset WRITE setYOffset) @@ -116,6 +117,7 @@ public: void setMinimumWidth(int w); void setFont(const QFont &font); + QFont font() const { return m_font; } qreal xOffset() const { return m_xOffset; } void setXOffset(qreal); @@ -171,6 +173,7 @@ private: int m_containersCount; qreal m_xOffset; qreal m_yOffset; + QFont m_font; }; QT_END_NAMESPACE