mirror of
https://github.com/vale981/tdesktop
synced 2025-03-06 02:01:40 -05:00
Fix build in GCC.
GCC doesn't allow using scoped enums in bitfields without warnings. So we use "unsigned" bitfield and a couple of get/set methods.
This commit is contained in:
parent
38f94c63e9
commit
cd3c5e4ade
2 changed files with 15 additions and 8 deletions
|
@ -33,8 +33,8 @@ QObject *TimersAdjuster() {
|
|||
Timer::Timer(base::lambda<void()> callback) : QObject(nullptr)
|
||||
, _callback(std::move(callback))
|
||||
, _type(Qt::PreciseTimer)
|
||||
, _adjusted(false)
|
||||
, _repeat(Repeat::Interval) {
|
||||
, _adjusted(false) {
|
||||
setRepeat(Repeat::Interval);
|
||||
connect(TimersAdjuster(), &QObject::destroyed, this, [this] { adjust(); }, Qt::QueuedConnection);
|
||||
}
|
||||
|
||||
|
@ -42,7 +42,7 @@ void Timer::start(TimeMs timeout, Qt::TimerType type, Repeat repeat) {
|
|||
cancel();
|
||||
|
||||
_type = type;
|
||||
_repeat = repeat;
|
||||
setRepeat(repeat);
|
||||
_adjusted = false;
|
||||
setTimeout(timeout);
|
||||
_timerId = startTimer(_timeout, _type);
|
||||
|
@ -91,9 +91,9 @@ int Timer::timeout() const {
|
|||
}
|
||||
|
||||
void Timer::timerEvent(QTimerEvent *e) {
|
||||
if (_repeat == Repeat::Interval) {
|
||||
if (repeat() == Repeat::Interval) {
|
||||
if (_adjusted) {
|
||||
start(_timeout, _type, _repeat);
|
||||
start(_timeout, _type, repeat());
|
||||
} else {
|
||||
_next = getms(true) + _timeout;
|
||||
}
|
||||
|
|
|
@ -67,7 +67,7 @@ protected:
|
|||
void timerEvent(QTimerEvent *e) override;
|
||||
|
||||
private:
|
||||
enum class Repeat {
|
||||
enum class Repeat : unsigned {
|
||||
Interval = 0,
|
||||
SingleShot = 1,
|
||||
};
|
||||
|
@ -77,6 +77,13 @@ private:
|
|||
void setTimeout(TimeMs timeout);
|
||||
int timeout() const;
|
||||
|
||||
void setRepeat(Repeat repeat) {
|
||||
_repeat = static_cast<unsigned>(repeat);
|
||||
}
|
||||
Repeat repeat() const {
|
||||
return static_cast<Repeat>(_repeat);
|
||||
}
|
||||
|
||||
base::lambda<void()> _callback;
|
||||
TimeMs _next = 0;
|
||||
int _timeout = 0;
|
||||
|
@ -84,7 +91,7 @@ private:
|
|||
|
||||
Qt::TimerType _type : 2;
|
||||
bool _adjusted : 1;
|
||||
Repeat _repeat : 1;
|
||||
unsigned _repeat : 1;
|
||||
|
||||
};
|
||||
|
||||
|
@ -105,4 +112,4 @@ private:
|
|||
|
||||
};
|
||||
|
||||
} // namespace base
|
||||
} // namespace base
|
||||
|
|
Loading…
Add table
Reference in a new issue