aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports
diff options
context:
space:
mode:
Diffstat (limited to 'src/imports')
-rw-r--r--src/imports/controls/material/qquickmaterialtheme.cpp18
-rw-r--r--src/imports/controls/material/qquickmaterialtheme_p.h3
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;