summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/kernel/qplatformintegration.cpp2
-rw-r--r--src/gui/kernel/qplatformintegration.h3
-rw-r--r--src/gui/kernel/qplatformtheme.cpp7
-rw-r--r--src/gui/kernel/qplatformtheme.h3
-rw-r--r--src/gui/kernel/qstylehints.cpp11
-rw-r--r--src/gui/kernel/qstylehints.h1
-rw-r--r--tests/manual/qpainfo/main.cpp3
7 files changed, 27 insertions, 3 deletions
diff --git a/src/gui/kernel/qplatformintegration.cpp b/src/gui/kernel/qplatformintegration.cpp
index 26aaf931b3..bec201f3f7 100644
--- a/src/gui/kernel/qplatformintegration.cpp
+++ b/src/gui/kernel/qplatformintegration.cpp
@@ -359,6 +359,8 @@ QVariant QPlatformIntegration::styleHint(StyleHint hint) const
return true;
case SetFocusOnTouchRelease:
return QVariant(false);
+ case MousePressAndHoldInterval:
+ return QPlatformTheme::defaultThemeHint(QPlatformTheme::MousePressAndHoldInterval);
}
return 0;
diff --git a/src/gui/kernel/qplatformintegration.h b/src/gui/kernel/qplatformintegration.h
index 580fc15233..e3676b1be8 100644
--- a/src/gui/kernel/qplatformintegration.h
+++ b/src/gui/kernel/qplatformintegration.h
@@ -148,7 +148,8 @@ public:
SynthesizeMouseFromTouchEvents,
PasswordMaskCharacter,
SetFocusOnTouchRelease,
- ShowIsMaximized
+ ShowIsMaximized,
+ MousePressAndHoldInterval
};
virtual QVariant styleHint(StyleHint hint) const;
diff --git a/src/gui/kernel/qplatformtheme.cpp b/src/gui/kernel/qplatformtheme.cpp
index 1844232efe..8b4b5c1812 100644
--- a/src/gui/kernel/qplatformtheme.cpp
+++ b/src/gui/kernel/qplatformtheme.cpp
@@ -79,6 +79,9 @@ QT_BEGIN_NAMESPACE
\value MouseDoubleClickInterval (int) Mouse double click interval in ms,
overriding QPlatformIntegration::styleHint.
+ \value MousePressAndHoldInterval (int) Mouse press and hold interval in ms,
+ overriding QPlatformIntegration::styleHint.
+
\value StartDragDistance (int) Start drag distance,
overriding QPlatformIntegration::styleHint.
@@ -423,6 +426,8 @@ QVariant QPlatformTheme::themeHint(ThemeHint hint) const
return QGuiApplicationPrivate::platformIntegration()->styleHint(QPlatformIntegration::PasswordMaskDelay);
case QPlatformTheme::PasswordMaskCharacter:
return QGuiApplicationPrivate::platformIntegration()->styleHint(QPlatformIntegration::PasswordMaskCharacter);
+ case QPlatformTheme::MousePressAndHoldInterval:
+ return QGuiApplicationPrivate::platformIntegration()->styleHint(QPlatformIntegration::MousePressAndHoldInterval);
default:
return QPlatformTheme::defaultThemeHint(hint);
}
@@ -488,6 +493,8 @@ QVariant QPlatformTheme::defaultThemeHint(ThemeHint hint)
return QVariant::fromValue(QList<int>());
case DialogSnapToDefaultButton:
return QVariant(false);
+ case MousePressAndHoldInterval:
+ return QVariant(800);
}
return QVariant();
}
diff --git a/src/gui/kernel/qplatformtheme.h b/src/gui/kernel/qplatformtheme.h
index 4bddac5b1b..6e27261922 100644
--- a/src/gui/kernel/qplatformtheme.h
+++ b/src/gui/kernel/qplatformtheme.h
@@ -106,7 +106,8 @@ public:
TabAllWidgets,
IconPixmapSizes,
PasswordMaskCharacter,
- DialogSnapToDefaultButton
+ DialogSnapToDefaultButton,
+ MousePressAndHoldInterval
};
enum DialogType {
diff --git a/src/gui/kernel/qstylehints.cpp b/src/gui/kernel/qstylehints.cpp
index 8d751d8615..e1468942af 100644
--- a/src/gui/kernel/qstylehints.cpp
+++ b/src/gui/kernel/qstylehints.cpp
@@ -128,6 +128,17 @@ int QStyleHints::mouseDoubleClickInterval() const
}
/*!
+ Returns the time limit in milliseconds that activates
+ a press and hold.
+
+ \since 5.3
+*/
+int QStyleHints::mousePressAndHoldInterval() const
+{
+ return themeableHint(QPlatformTheme::MousePressAndHoldInterval, QPlatformIntegration::MousePressAndHoldInterval).toInt();
+}
+
+/*!
Sets the \a startDragDistance.
\internal
\sa startDragDistance()
diff --git a/src/gui/kernel/qstylehints.h b/src/gui/kernel/qstylehints.h
index cc8d71108a..33fbe2965e 100644
--- a/src/gui/kernel/qstylehints.h
+++ b/src/gui/kernel/qstylehints.h
@@ -57,6 +57,7 @@ class Q_GUI_EXPORT QStyleHints : public QObject
public:
void setMouseDoubleClickInterval(int mouseDoubleClickInterval);
int mouseDoubleClickInterval() const;
+ int mousePressAndHoldInterval() const;
void setStartDragDistance(int startDragDistance);
int startDragDistance() const;
void setStartDragTime(int startDragTime);
diff --git a/tests/manual/qpainfo/main.cpp b/tests/manual/qpainfo/main.cpp
index 0f5119bab3..257b340467 100644
--- a/tests/manual/qpainfo/main.cpp
+++ b/tests/manual/qpainfo/main.cpp
@@ -180,7 +180,8 @@ int main(int argc, char **argv)
<< " startDragVelocity=" << styleHints->startDragVelocity() << " keyboardInputInterval=" << styleHints->keyboardInputInterval()
<< " keyboardAutoRepeatRate=" << styleHints->keyboardAutoRepeatRate() << " cursorFlashTime=" << styleHints->cursorFlashTime()
<< " showIsFullScreen=" << styleHints->showIsFullScreen() << " passwordMaskDelay=" << styleHints->passwordMaskDelay()
- << " fontSmoothingGamma=" << styleHints->fontSmoothingGamma() << " useRtlExtensions=" << styleHints->useRtlExtensions() << '\n';
+ << " fontSmoothingGamma=" << styleHints->fontSmoothingGamma() << " useRtlExtensions=" << styleHints->useRtlExtensions()
+ << " mousePressAndHoldInterval=" << styleHints->mousePressAndHoldInterval() << '\n';
const QPlatformTheme *platformTheme = QGuiApplicationPrivate::platformTheme();
std::cout << "\nTheme:\n Styles: " << platformTheme->themeHint(QPlatformTheme::StyleNames).toStringList();