diff options
author | Bradley T. Hughes <bradley.hughes@nokia.com> | 2011-12-21 11:32:43 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-01-02 10:44:00 +0100 |
commit | ef60ed1c9dbc87d9f8401036cc254a9c45cd8ca8 (patch) | |
tree | 8a2016d4fc1ec5d6c3caed14cb1b9467895aa1ef /src/corelib/kernel/qtimer.h | |
parent | 05ca21411eaaf3ea5e9cc9d82ecfaa8753f9f319 (diff) |
Add Qt::TimerType and the QTimer::timerType property
The timer type will control the accuracy of the timer. By default, all
timers are CoarseTimers, which allows for +/- 5% interval adjustment.
PreciseTimers will not have any interval adjustments, VeryCoarseTimers
will have intervals adjusted to full second resolution.
Use QTimer::setTimerType() or the QTimer::singleShot() overload to
specify the type.
QObject::startTimer() now takes a Qt::TimerType argument which defaults
to Qt::CoarseTimer. QBasicTimer::startTimer() gets an overload that
takes a Qt::TimerType argument. The argument is unused for now, since
the QAbstractEventDispatcher interface needs to change (done in a
separate commit).
Author: Thiago Macieira <thiago.macieira@nokia.com>
Change-Id: I3100da5aa1fe17ec30b8644897d0fe6ec4a07f52
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/kernel/qtimer.h')
-rw-r--r-- | src/corelib/kernel/qtimer.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/corelib/kernel/qtimer.h b/src/corelib/kernel/qtimer.h index 707bc83d3c..5b7dbd1b36 100644 --- a/src/corelib/kernel/qtimer.h +++ b/src/corelib/kernel/qtimer.h @@ -58,6 +58,7 @@ class Q_CORE_EXPORT QTimer : public QObject Q_OBJECT Q_PROPERTY(bool singleShot READ isSingleShot WRITE setSingleShot) Q_PROPERTY(int interval READ interval WRITE setInterval) + Q_PROPERTY(Qt::TimerType timerType READ timerType WRITE setTimerType) Q_PROPERTY(bool active READ isActive) public: explicit QTimer(QObject *parent = 0); @@ -69,10 +70,14 @@ public: void setInterval(int msec); int interval() const { return inter; } + void setTimerType(Qt::TimerType type) { this->type = type; } + Qt::TimerType timerType() const { return Qt::TimerType(type); } + inline void setSingleShot(bool singleShot); inline bool isSingleShot() const { return single; } static void singleShot(int msec, QObject *receiver, const char *member); + static void singleShot(int msec, Qt::TimerType timerType, QObject *receiver, const char *member); public Q_SLOTS: void start(int msec); @@ -95,6 +100,8 @@ private: int id, inter, del; uint single : 1; uint nulltimer : 1; + uint type : 2; + // reserved : 28 }; inline void QTimer::setSingleShot(bool asingleShot) { single = asingleShot; } |