summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@theqtcompany.com>2015-01-02 15:02:28 +0100
committerJ-P Nurmi <jpnurmi@theqtcompany.com>2015-01-13 13:05:48 +0100
commit9d5b1fd151581209a36844da4fe89ccef5791115 (patch)
treef4f174fd2e398a00010f8fc41c27eb3ebf6e0b58 /src/gui
parent75f2a0b4ef721b135c42d8e08d70bbdd0ed04c4c (diff)
Make QStyleHints usable in QML
Change-Id: Ia8f143d12c754b4af4a29bb9542cd050b5ae2ab0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Liang Qi <liang.qi@theqtcompany.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/kernel/qstylehints.cpp65
-rw-r--r--src/gui/kernel/qstylehints.h22
2 files changed, 69 insertions, 18 deletions
diff --git a/src/gui/kernel/qstylehints.cpp b/src/gui/kernel/qstylehints.cpp
index 125e59aa5f..3e71175fa6 100644
--- a/src/gui/kernel/qstylehints.cpp
+++ b/src/gui/kernel/qstylehints.cpp
@@ -104,11 +104,15 @@ QStyleHints::QStyleHints()
void QStyleHints::setMouseDoubleClickInterval(int mouseDoubleClickInterval)
{
Q_D(QStyleHints);
+ if (d->m_mouseDoubleClickInterval == mouseDoubleClickInterval)
+ return;
d->m_mouseDoubleClickInterval = mouseDoubleClickInterval;
+ emit mouseDoubleClickIntervalChanged(mouseDoubleClickInterval);
}
/*!
- Returns the time limit in milliseconds that distinguishes a double click
+ \property QStyleHints::mouseDoubleClickInterval
+ \brief the time limit in milliseconds that distinguishes a double click
from two consecutive mouse clicks.
*/
int QStyleHints::mouseDoubleClickInterval() const
@@ -120,7 +124,8 @@ int QStyleHints::mouseDoubleClickInterval() const
}
/*!
- Returns the time limit in milliseconds that activates
+ \property QStyleHints::mousePressAndHoldInterval
+ \brief the time limit in milliseconds that activates
a press and hold.
\since 5.3
@@ -139,11 +144,15 @@ int QStyleHints::mousePressAndHoldInterval() const
void QStyleHints::setStartDragDistance(int startDragDistance)
{
Q_D(QStyleHints);
+ if (d->m_startDragDistance == startDragDistance)
+ return;
d->m_startDragDistance = startDragDistance;
+ emit startDragDistanceChanged(startDragDistance);
}
/*!
- Returns the distance, in pixels, that the mouse must be moved with a button
+ \property QStyleHints::startDragDistance
+ \brief the distance, in pixels, that the mouse must be moved with a button
held down before a drag and drop operation will begin.
If you support drag and drop in your application, and want to start a drag
@@ -157,7 +166,7 @@ void QStyleHints::setStartDragDistance(int startDragDistance)
\snippet code/src_gui_kernel_qapplication.cpp 6
- \sa startDragTime(), QPoint::manhattanLength(), {Drag and Drop}
+ \sa startDragTime, QPoint::manhattanLength(), {Drag and Drop}
*/
int QStyleHints::startDragDistance() const
{
@@ -176,18 +185,22 @@ int QStyleHints::startDragDistance() const
void QStyleHints::setStartDragTime(int startDragTime)
{
Q_D(QStyleHints);
+ if (d->m_startDragTime == startDragTime)
+ return;
d->m_startDragTime = startDragTime;
+ emit startDragTimeChanged(startDragTime);
}
/*!
- Returns the time, in milliseconds, that a mouse button must be held down
+ \property QStyleHints::startDragTime
+ \brief the time, in milliseconds, that a mouse button must be held down
before a drag and drop operation will begin.
If you support drag and drop in your application, and want to start a drag
and drop operation after the user has held down a mouse button for a
certain amount of time, you should use this property's value as the delay.
- \sa startDragDistance(), {Drag and Drop}
+ \sa startDragDistance, {Drag and Drop}
*/
int QStyleHints::startDragTime() const
{
@@ -198,11 +211,12 @@ int QStyleHints::startDragTime() const
}
/*!
- Returns the limit for the velocity, in pixels per second, that the mouse may
+ \property QStyleHints::startDragVelocity
+ \brief the limit for the velocity, in pixels per second, that the mouse may
be moved, with a button held down, for a drag and drop operation to begin.
A value of 0 means there is no such limit.
- \sa startDragDistance(), {Drag and Drop}
+ \sa startDragDistance, {Drag and Drop}
*/
int QStyleHints::startDragVelocity() const
{
@@ -218,11 +232,15 @@ int QStyleHints::startDragVelocity() const
void QStyleHints::setKeyboardInputInterval(int keyboardInputInterval)
{
Q_D(QStyleHints);
+ if (d->m_keyboardInputInterval == keyboardInputInterval)
+ return;
d->m_keyboardInputInterval = keyboardInputInterval;
+ emit keyboardInputIntervalChanged(keyboardInputInterval);
}
/*!
- Returns the time limit, in milliseconds, that distinguishes a key press
+ \property QStyleHints::keyboardInputInterval
+ \brief the time limit, in milliseconds, that distinguishes a key press
from two consecutive key presses.
*/
int QStyleHints::keyboardInputInterval() const
@@ -234,7 +252,8 @@ int QStyleHints::keyboardInputInterval() const
}
/*!
- Returns the rate, in events per second, in which additional repeated key
+ \property QStyleHints::keyboardAutoRepeatRate
+ \brief the rate, in events per second, in which additional repeated key
presses will automatically be generated if a key is being held down.
*/
int QStyleHints::keyboardAutoRepeatRate() const
@@ -251,11 +270,15 @@ int QStyleHints::keyboardAutoRepeatRate() const
void QStyleHints::setCursorFlashTime(int cursorFlashTime)
{
Q_D(QStyleHints);
+ if (d->m_cursorFlashTime == cursorFlashTime)
+ return;
d->m_cursorFlashTime = cursorFlashTime;
+ emit cursorFlashTimeChanged(cursorFlashTime);
}
/*!
- Returns the text cursor's flash (blink) time in milliseconds.
+ \property QStyleHints::cursorFlashTime
+ \brief the text cursor's flash (blink) time in milliseconds.
The flash time is the time used to display, invert and restore the
caret display. Usually the text cursor is displayed for half the cursor
@@ -270,11 +293,12 @@ int QStyleHints::cursorFlashTime() const
}
/*!
- Returns \c true if the platform defaults to windows being fullscreen,
+ \property QStyleHints::showIsFullScreen
+ \brief \c true if the platform defaults to windows being fullscreen,
otherwise \c false.
\note The platform may still choose to show certain windows non-fullscreen,
- such as popups or dialogs. This method only returns the default behavior.
+ such as popups or dialogs. This property only reports the default behavior.
\sa QWindow::show()
*/
@@ -284,7 +308,8 @@ bool QStyleHints::showIsFullScreen() const
}
/*!
- Returns the time, in milliseconds, a typed letter is displayed unshrouded
+ \property QStyleHints::passwordMaskDelay
+ \brief the time, in milliseconds, a typed letter is displayed unshrouded
in a text input field in password mode.
*/
int QStyleHints::passwordMaskDelay() const
@@ -293,7 +318,8 @@ int QStyleHints::passwordMaskDelay() const
}
/*!
- Returns the character used to mask the characters typed into text input
+ \property QStyleHints::passwordMaskCharacter
+ \brief the character used to mask the characters typed into text input
fields in password mode.
*/
QChar QStyleHints::passwordMaskCharacter() const
@@ -302,7 +328,8 @@ QChar QStyleHints::passwordMaskCharacter() const
}
/*!
- Returns the gamma value used in font smoothing.
+ \property QStyleHints::fontSmoothingGamma
+ \brief the gamma value used in font smoothing.
*/
qreal QStyleHints::fontSmoothingGamma() const
{
@@ -310,7 +337,8 @@ qreal QStyleHints::fontSmoothingGamma() const
}
/*!
- Returns \c true if right-to-left writing direction is enabled,
+ \property QStyleHints::useRtlExtensions
+ \brief \c true if right-to-left writing direction is enabled,
otherwise \c false.
*/
bool QStyleHints::useRtlExtensions() const
@@ -319,7 +347,8 @@ bool QStyleHints::useRtlExtensions() const
}
/*!
- Returns \c true if focus objects (line edits etc) should receive
+ \property QStyleHints::setFocusOnTouchRelease
+ \brief \c true if focus objects (line edits etc) should receive
input focus after a touch/mouse release. This is normal behavior on
touch platforms. On desktop platforms, the standard is to set
focus already on touch/mouse press.
diff --git a/src/gui/kernel/qstylehints.h b/src/gui/kernel/qstylehints.h
index 09807ecb24..de7a68018a 100644
--- a/src/gui/kernel/qstylehints.h
+++ b/src/gui/kernel/qstylehints.h
@@ -46,6 +46,21 @@ class Q_GUI_EXPORT QStyleHints : public QObject
{
Q_OBJECT
Q_DECLARE_PRIVATE(QStyleHints)
+ Q_PROPERTY(int cursorFlashTime READ cursorFlashTime NOTIFY cursorFlashTimeChanged FINAL)
+ Q_PROPERTY(qreal fontSmoothingGamma READ fontSmoothingGamma STORED false FINAL)
+ Q_PROPERTY(int keyboardAutoRepeatRate READ keyboardAutoRepeatRate STORED false FINAL)
+ Q_PROPERTY(int keyboardInputInterval READ keyboardInputInterval NOTIFY keyboardInputIntervalChanged FINAL)
+ Q_PROPERTY(int mouseDoubleClickInterval READ mouseDoubleClickInterval NOTIFY mouseDoubleClickIntervalChanged FINAL)
+ Q_PROPERTY(int mousePressAndHoldInterval READ mousePressAndHoldInterval STORED false FINAL)
+ Q_PROPERTY(QChar passwordMaskCharacter READ passwordMaskCharacter STORED false FINAL)
+ Q_PROPERTY(int passwordMaskDelay READ passwordMaskDelay STORED false FINAL)
+ Q_PROPERTY(bool setFocusOnTouchRelease READ setFocusOnTouchRelease STORED false FINAL)
+ Q_PROPERTY(bool showIsFullScreen READ showIsFullScreen STORED false FINAL)
+ Q_PROPERTY(int startDragDistance READ startDragDistance NOTIFY startDragDistanceChanged FINAL)
+ Q_PROPERTY(int startDragTime READ startDragTime NOTIFY startDragTimeChanged FINAL)
+ Q_PROPERTY(int startDragVelocity READ startDragVelocity STORED false FINAL)
+ Q_PROPERTY(bool useRtlExtensions READ useRtlExtensions STORED false FINAL)
+
public:
void setMouseDoubleClickInterval(int mouseDoubleClickInterval);
int mouseDoubleClickInterval() const;
@@ -67,6 +82,13 @@ public:
bool useRtlExtensions() const;
bool setFocusOnTouchRelease() const;
+Q_SIGNALS:
+ void cursorFlashTimeChanged(int cursorFlashTime);
+ void keyboardInputIntervalChanged(int keyboardInputInterval);
+ void mouseDoubleClickIntervalChanged(int mouseDoubleClickInterval);
+ void startDragDistanceChanged(int startDragDistance);
+ void startDragTimeChanged(int startDragTime);
+
private:
friend class QGuiApplication;
QStyleHints();