diff options
Diffstat (limited to 'src/imports/controls')
-rw-r--r-- | src/imports/controls/material/qquickmaterialtheme.cpp | 18 | ||||
-rw-r--r-- | src/imports/controls/material/qquickmaterialtheme_p.h | 3 |
2 files changed, 21 insertions, 0 deletions
diff --git a/src/imports/controls/material/qquickmaterialtheme.cpp b/src/imports/controls/material/qquickmaterialtheme.cpp index 63def7a5..3ea41779 100644 --- a/src/imports/controls/material/qquickmaterialtheme.cpp +++ b/src/imports/controls/material/qquickmaterialtheme.cpp @@ -36,6 +36,7 @@ #include "qquickmaterialtheme_p.h" +#include <QtGui/qpa/qplatformdialoghelper.h> #include <QtGui/qfont.h> #include <QtGui/qfontinfo.h> @@ -105,4 +106,21 @@ const QFont *QQuickMaterialTheme::font(QPlatformTheme::Font type) const } } +QVariant QQuickMaterialTheme::themeHint(ThemeHint hint) const +{ + switch (hint) { + case QPlatformTheme::DialogButtonBoxLayout: + // https://material.io/guidelines/components/dialogs.html#dialogs-specs + // As per spec, affirmative actions are placed to the right, dismissive + // actions are placed directly to the left of affirmative actions. + // In the Android sources, there are additional type of actions - + // neutral, which are placed to the left. + // Rules for macOS seems to be the most suitable here and are also used + // in the Android QPA plugin. + return QVariant(QPlatformDialogHelper::MacLayout); + default: + return QQuickProxyTheme::themeHint(hint); + } +} + QT_END_NAMESPACE diff --git a/src/imports/controls/material/qquickmaterialtheme_p.h b/src/imports/controls/material/qquickmaterialtheme_p.h index 828ca83a..d505d4ff 100644 --- a/src/imports/controls/material/qquickmaterialtheme_p.h +++ b/src/imports/controls/material/qquickmaterialtheme_p.h @@ -48,6 +48,7 @@ // We mean it. // +#include <QtCore/qvariant.h> #include <QtGui/qfont.h> #include <QtQuickControls2/private/qquickproxytheme_p.h> @@ -60,6 +61,8 @@ public: const QFont *font(Font type = SystemFont) const override; + QVariant themeHint(ThemeHint hint) const override; + private: QFont systemFont; QFont buttonFont; |