refactor: turn StreamerMode into a singleton(-like thing) (#5216)

This commit is contained in:
nerix
2024-03-01 21:12:02 +01:00
committed by GitHub
parent ea19c5c989
commit c1fa51242f
28 changed files with 386 additions and 210 deletions
+48
View File
@@ -0,0 +1,48 @@
#pragma once
#include <QObject>
#include <memory>
namespace chatterino {
class IStreamerMode : public QObject
{
Q_OBJECT
public:
IStreamerMode() = default;
~IStreamerMode() override = default;
IStreamerMode(const IStreamerMode &) = delete;
IStreamerMode(IStreamerMode &&) = delete;
IStreamerMode &operator=(const IStreamerMode &) = delete;
IStreamerMode &operator=(IStreamerMode &&) = delete;
[[nodiscard]] virtual bool isEnabled() const = 0;
signals:
void changed(bool enabled);
};
class StreamerModePrivate;
class StreamerMode : public IStreamerMode
{
public:
StreamerMode();
~StreamerMode() override;
StreamerMode(const StreamerMode &) = delete;
StreamerMode(StreamerMode &&) = delete;
StreamerMode &operator=(const StreamerMode &) = delete;
StreamerMode &operator=(StreamerMode &&) = delete;
bool isEnabled() const override;
private:
void updated(bool enabled);
std::unique_ptr<StreamerModePrivate> private_;
friend class StreamerModePrivate;
};
} // namespace chatterino