feat: update ConfigManager and ProxyServer to utilize Settings

- Modified ConfigManager to accept a Settings object for improved configuration management.
- Updated ProxyServer to initialize with Settings, enhancing dependency injection.
This commit is contained in:
aiamnezia
2025-12-31 21:16:45 +04:00
parent 4492b0af7e
commit 412e69af9b
8 changed files with 229 additions and 715 deletions
+9 -15
View File
@@ -1,30 +1,24 @@
#pragma once
#include "iproxyservice.h"
#include "configmanager.h"
#include "iproxyservice.h"
#include "xraycontroller.h"
#include <QObject>
#include <QScopedPointer>
#include <QJsonObject>
#include <memory>
class Settings;
class ProxyService : public QObject, public IProxyService {
Q_OBJECT
public:
explicit ProxyService(QObject* parent = nullptr);
explicit ProxyService(const std::shared_ptr<Settings> &settings, QObject* parent = nullptr);
~ProxyService() = default;
QJsonObject getConfig() const override;
bool updateConfig(const QString& configStr) override;
QMap<QString, QJsonObject> getAllConfigs() const override;
QMap<QString, QJsonObject> getConfigsByUuids(const QStringList &uuids) const override;
bool addConfigs(const QStringList &serializedConfigs) override;
bool removeConfig(const QString &uuid) override;
bool activateConfig(const QString &uuid) override;
QJsonObject getActiveConfig() const override;
bool updateAllConfigs(const QStringList &serializedConfigs) override;
QString getActiveConfigUuid() const;
int getConfigCount() const override;
QJsonObject getConfig() override;
bool startXray() override;
bool stopXray() override;
bool isXrayRunning() const override;
@@ -32,10 +26,10 @@ public:
QString getXrayError() const override;
signals:
void configsChanged();
void xrayStatusChanged(bool running);
private:
QScopedPointer<ConfigManager> m_configManager;
QScopedPointer<XrayController> m_xrayController;
QJsonObject m_cachedConfig;
};