mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-11 13:36:13 +03:00
This patch removes the dual-event-loop setup, leaving only the Qt event loop. We teach LibWeb how to drive Qt by installing an EventLoopPlugin. This removes the 50ms latency on all UI interactions (and network requests, etc.)
43 lines
893 B
C++
43 lines
893 B
C++
/*
|
|
* Copyright (c) 2022, Andreas Kling <kling@serenityos.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <LibWeb/Platform/Timer.h>
|
|
|
|
class QTimer;
|
|
|
|
namespace Ladybird {
|
|
|
|
class TimerQt final : public Web::Platform::Timer {
|
|
public:
|
|
static NonnullRefPtr<TimerQt> create();
|
|
|
|
virtual ~TimerQt();
|
|
|
|
virtual void start() override;
|
|
virtual void start(int interval_ms) override;
|
|
virtual void restart() override;
|
|
virtual void restart(int interval_ms) override;
|
|
virtual void stop() override;
|
|
|
|
virtual void set_active(bool) override;
|
|
|
|
virtual bool is_active() const override;
|
|
virtual int interval() const override;
|
|
virtual void set_interval(int interval_ms) override;
|
|
|
|
virtual bool is_single_shot() const override;
|
|
virtual void set_single_shot(bool) override;
|
|
|
|
private:
|
|
TimerQt();
|
|
|
|
QTimer* m_timer { nullptr };
|
|
};
|
|
|
|
}
|