#include <QtGui/private/qguiapplication_p.h>
#include <QtGui/private/qpixmap_raster_p.h>
#include <qpa/qplatformscreen_p.h>
+#include <qpa/qplatformtheme.h>
#include <private/qdnd_p.h>
QT_BEGIN_NAMESPACE
{
switch (hint) {
case CursorFlashTime:
- return 1000;
+ return QPlatformTheme::defaultThemeHint(QPlatformTheme::CursorFlashTime);
case KeyboardInputInterval:
- return 400;
+ return QPlatformTheme::defaultThemeHint(QPlatformTheme::KeyboardInputInterval);
case KeyboardAutoRepeatRate:
- return 30;
+ return QPlatformTheme::defaultThemeHint(QPlatformTheme::KeyboardAutoRepeatRate);
case MouseDoubleClickInterval:
- return 400;
+ return QPlatformTheme::defaultThemeHint(QPlatformTheme::MouseDoubleClickInterval);
case StartDragDistance:
- return 10;
+ return QPlatformTheme::defaultThemeHint(QPlatformTheme::StartDragDistance);
case StartDragTime:
- return 500;
+ return QPlatformTheme::defaultThemeHint(QPlatformTheme::StartDragTime);
case ShowIsFullScreen:
return false;
case PasswordMaskDelay:
- return 0;
+ return QPlatformTheme::defaultThemeHint(QPlatformTheme::PasswordMaskDelay);
case FontSmoothingGamma:
return qreal(1.7);
case StartDragVelocity:
- return 0; // no limit
+ return QPlatformTheme::defaultThemeHint(QPlatformTheme::StartDragVelocity);
case UseRtlExtensions:
return QVariant(false);
}
This enum describes the available theme hints.
+ \value CursorFlashTime (int) Cursor flash time in ms, overriding
+ QPlatformIntegration::styleHint.
+
+ \value KeyboardInputInterval (int) Keyboard input interval in ms, overriding
+ QPlatformIntegration::styleHint.
+
+ \value MouseDoubleClickInterval (int) Mouse double click interval in ms,
+ overriding QPlatformIntegration::styleHint.
+
+ \value StartDragDistance (int) Start drag distance,
+ overriding QPlatformIntegration::styleHint.
+
+ \value StartDragTime (int) Start drag time in ms,,
+ overriding QPlatformIntegration::styleHint.
+
+ \value KeyboardAutoRepeatRate (int) Keyboard auto repeat rate,
+ overriding QPlatformIntegration::styleHint.
+
+ \value PasswordMaskDelay (int) Pass word mask delay in ms,,
+ overriding QPlatformIntegration::styleHint.
+
+ \value StartDragVelocity (int) Velocity of a drag,
+ overriding QPlatformIntegration::styleHint.
+
\value TextCursorWidth (int) Determines the width of the text cursor.
\value DropShadow (bool) Determines whether the drop shadow effect for
QVariant QPlatformTheme::themeHint(ThemeHint hint) const
{
+ return QPlatformTheme::defaultThemeHint(hint);
+}
+
+QVariant QPlatformTheme::defaultThemeHint(ThemeHint hint)
+{
switch (hint) {
+ case QPlatformTheme::CursorFlashTime:
+ return QVariant(1000);
+ case QPlatformTheme::KeyboardInputInterval:
+ return QVariant(400);
+ case QPlatformTheme::KeyboardAutoRepeatRate:
+ return QVariant(30);
+ case QPlatformTheme::MouseDoubleClickInterval:
+ return QVariant(400);
+ case QPlatformTheme::StartDragDistance:
+ return QVariant(10);
+ case QPlatformTheme::StartDragTime:
+ return QVariant(500);
+ case QPlatformTheme::PasswordMaskDelay:
+ return QVariant(int(0));
+ case QPlatformTheme::StartDragVelocity:
+ return QVariant(int(0)); // no limit
case QPlatformTheme::UseFullScreenForPopupMenu:
return QVariant(false);
case QPlatformTheme::WindowAutoPlacement:
{
public:
enum ThemeHint {
+ CursorFlashTime,
+ KeyboardInputInterval,
+ MouseDoubleClickInterval,
+ StartDragDistance,
+ StartDragTime,
+ KeyboardAutoRepeatRate,
+ PasswordMaskDelay,
+ StartDragVelocity,
TextCursorWidth,
DropShadow,
MaximumScrollBarDragDistance,
virtual const QFont *font(Font type = SystemFont) const;
virtual QVariant themeHint(ThemeHint hint) const;
+
+ static QVariant defaultThemeHint(ThemeHint hint);
};
QT_END_NAMESPACE
#include <qstylehints.h>
#include <qpa/qplatformintegration.h>
+#include <qpa/qplatformtheme.h>
#include <private/qguiapplication_p.h>
QT_BEGIN_NAMESPACE
return QGuiApplicationPrivate::platformIntegration()->styleHint(h);
}
+static inline QVariant themeableHint(QPlatformTheme::ThemeHint th,
+ QPlatformIntegration::StyleHint ih)
+{
+ if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme()) {
+ const QVariant themeHint = theme->themeHint(th);
+ if (themeHint.isValid())
+ return themeHint;
+ }
+ return QGuiApplicationPrivate::platformIntegration()->styleHint(ih);
+}
+
/*!
\class QStyleHints
\since 5.0
int QStyleHints::mouseDoubleClickInterval() const
{
- return hint(QPlatformIntegration::MouseDoubleClickInterval).toInt();
+ return themeableHint(QPlatformTheme::MouseDoubleClickInterval, QPlatformIntegration::MouseDoubleClickInterval).toInt();
}
int QStyleHints::startDragDistance() const
{
- return hint(QPlatformIntegration::StartDragDistance).toInt();
+ return themeableHint(QPlatformTheme::StartDragDistance, QPlatformIntegration::StartDragDistance).toInt();
}
int QStyleHints::startDragTime() const
{
- return hint(QPlatformIntegration::StartDragTime).toInt();
+ return themeableHint(QPlatformTheme::StartDragTime, QPlatformIntegration::StartDragTime).toInt();
}
int QStyleHints::startDragVelocity() const
{
- return hint(QPlatformIntegration::StartDragVelocity).toInt();
+ return themeableHint(QPlatformTheme::StartDragVelocity, QPlatformIntegration::StartDragVelocity).toInt();
}
int QStyleHints::keyboardInputInterval() const
{
- return hint(QPlatformIntegration::KeyboardInputInterval).toInt();
+ return themeableHint(QPlatformTheme::KeyboardInputInterval, QPlatformIntegration::KeyboardInputInterval).toInt();
}
int QStyleHints::keyboardAutoRepeatRate() const
{
- return hint(QPlatformIntegration::KeyboardAutoRepeatRate).toInt();
+ return themeableHint(QPlatformTheme::KeyboardAutoRepeatRate, QPlatformIntegration::KeyboardAutoRepeatRate).toInt();
}
int QStyleHints::cursorFlashTime() const
{
- return hint(QPlatformIntegration::CursorFlashTime).toInt();
+ return themeableHint(QPlatformTheme::CursorFlashTime, QPlatformIntegration::CursorFlashTime).toInt();
}
bool QStyleHints::showIsFullScreen() const
int QStyleHints::passwordMaskDelay() const
{
- return hint(QPlatformIntegration::PasswordMaskDelay).toInt();
+ return themeableHint(QPlatformTheme::PasswordMaskDelay, QPlatformIntegration::PasswordMaskDelay).toInt();
}
qreal QStyleHints::fontSmoothingGamma() const