summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/kernel')
-rw-r--r--src/gui/kernel/qplatformintegration.cpp2
-rw-r--r--src/gui/kernel/qplatformintegration.h3
-rw-r--r--src/gui/kernel/qplatformtheme.cpp9
-rw-r--r--src/gui/kernel/qplatformtheme.h5
-rw-r--r--src/gui/kernel/qstylehints.cpp14
-rw-r--r--src/gui/kernel/qstylehints.h2
6 files changed, 30 insertions, 5 deletions
diff --git a/src/gui/kernel/qplatformintegration.cpp b/src/gui/kernel/qplatformintegration.cpp
index d58e2da3f8..d2db6af52b 100644
--- a/src/gui/kernel/qplatformintegration.cpp
+++ b/src/gui/kernel/qplatformintegration.cpp
@@ -392,6 +392,8 @@ QVariant QPlatformIntegration::styleHint(StyleHint hint) const
return QVariant(false);
case MousePressAndHoldInterval:
return QPlatformTheme::defaultThemeHint(QPlatformTheme::MousePressAndHoldInterval);
+ case TabFocusBehavior:
+ return QPlatformTheme::defaultThemeHint(QPlatformTheme::TabFocusBehavior);
}
return 0;
diff --git a/src/gui/kernel/qplatformintegration.h b/src/gui/kernel/qplatformintegration.h
index b8f92165cf..a0756a4992 100644
--- a/src/gui/kernel/qplatformintegration.h
+++ b/src/gui/kernel/qplatformintegration.h
@@ -145,7 +145,8 @@ public:
PasswordMaskCharacter,
SetFocusOnTouchRelease,
ShowIsMaximized,
- MousePressAndHoldInterval
+ MousePressAndHoldInterval,
+ TabFocusBehavior
};
virtual QVariant styleHint(StyleHint hint) const;
diff --git a/src/gui/kernel/qplatformtheme.cpp b/src/gui/kernel/qplatformtheme.cpp
index 869231d64f..3e48c48c2c 100644
--- a/src/gui/kernel/qplatformtheme.cpp
+++ b/src/gui/kernel/qplatformtheme.cpp
@@ -132,8 +132,9 @@ QT_BEGIN_NAMESPACE
\value SpellCheckUnderlineStyle (int) A QTextCharFormat::UnderlineStyle specifying
the underline style used misspelled words when spell checking.
- \value TabAllWidgets (bool) Whether tab navigation should go through all the widgets or components,
- or just through text boxes and list views. This is mostly a Mac feature.
+ \value TabFocusBehavior (int) A Qt::TabFocusBehavior specifying
+ the behavior of focus change when tab key was pressed.
+ This enum value was added in Qt 5.5.
\value DialogSnapToDefaultButton (bool) Whether the mouse should snap to the default button when a dialog
becomes visible.
@@ -491,8 +492,8 @@ QVariant QPlatformTheme::defaultThemeHint(ThemeHint hint)
return QVariant(int(0));
case SpellCheckUnderlineStyle:
return QVariant(int(QTextCharFormat::SpellCheckUnderline));
- case TabAllWidgets:
- return QVariant(true);
+ case TabFocusBehavior:
+ return QVariant(int(Qt::TabFocusAllControls));
case IconPixmapSizes:
return QVariant::fromValue(QList<int>());
case DialogSnapToDefaultButton:
diff --git a/src/gui/kernel/qplatformtheme.h b/src/gui/kernel/qplatformtheme.h
index 534ab700ae..69cc2f90af 100644
--- a/src/gui/kernel/qplatformtheme.h
+++ b/src/gui/kernel/qplatformtheme.h
@@ -95,7 +95,12 @@ public:
KeyboardScheme,
UiEffects,
SpellCheckUnderlineStyle,
+#if QT_VERSION >= QT_VERSION_CHECK(6,0,0)
+ TabFocusBehavior,
+#else
TabAllWidgets,
+ TabFocusBehavior = TabAllWidgets,
+#endif
IconPixmapSizes,
PasswordMaskCharacter,
DialogSnapToDefaultButton,
diff --git a/src/gui/kernel/qstylehints.cpp b/src/gui/kernel/qstylehints.cpp
index 0d9b886507..a0f98383ff 100644
--- a/src/gui/kernel/qstylehints.cpp
+++ b/src/gui/kernel/qstylehints.cpp
@@ -358,4 +358,18 @@ bool QStyleHints::setFocusOnTouchRelease() const
return hint(QPlatformIntegration::SetFocusOnTouchRelease).toBool();
}
+/*!
+ \property QStyleHints::tabFocusBehavior
+ \since 5.5
+ \brief The focus behavior on press of the tab key.
+
+ \note Do not bind this value in QML because the change notifier
+ signal is not implemented yet.
+*/
+
+Qt::TabFocusBehavior QStyleHints::tabFocusBehavior() const
+{
+ return Qt::TabFocusBehavior(themeableHint(QPlatformTheme::TabFocusBehavior, QPlatformIntegration::TabFocusBehavior).toInt());
+}
+
QT_END_NAMESPACE
diff --git a/src/gui/kernel/qstylehints.h b/src/gui/kernel/qstylehints.h
index 74447d86fb..5fbc851ee9 100644
--- a/src/gui/kernel/qstylehints.h
+++ b/src/gui/kernel/qstylehints.h
@@ -60,6 +60,7 @@ class Q_GUI_EXPORT QStyleHints : public QObject
Q_PROPERTY(int startDragTime READ startDragTime NOTIFY startDragTimeChanged FINAL)
Q_PROPERTY(int startDragVelocity READ startDragVelocity STORED false CONSTANT FINAL)
Q_PROPERTY(bool useRtlExtensions READ useRtlExtensions STORED false CONSTANT FINAL)
+ Q_PROPERTY(Qt::TabFocusBehavior tabFocusBehavior READ tabFocusBehavior STORED false CONSTANT FINAL)
public:
void setMouseDoubleClickInterval(int mouseDoubleClickInterval);
@@ -81,6 +82,7 @@ public:
qreal fontSmoothingGamma() const;
bool useRtlExtensions() const;
bool setFocusOnTouchRelease() const;
+ Qt::TabFocusBehavior tabFocusBehavior() const;
Q_SIGNALS:
void cursorFlashTimeChanged(int cursorFlashTime);