mirror of
https://github.com/amnezia-vpn/amnezia-client.git
synced 2026-05-08 14:33:23 +00:00
163 lines
6.4 KiB
C++
163 lines
6.4 KiB
C++
#ifndef CORECONTROLLER_H
|
|
#define CORECONTROLLER_H
|
|
|
|
#include <QObject>
|
|
#include <QQmlContext>
|
|
#include <QThread>
|
|
|
|
#include "ui/controllers/api/apiConfigsController.h"
|
|
#include "ui/controllers/api/apiSettingsController.h"
|
|
#include "ui/controllers/api/apiPremV1MigrationController.h"
|
|
#include "core/controllers/selfhosted/clientManagementController.h"
|
|
#include "ui/controllers/appSplitUIController.h"
|
|
#include "ui/controllers/allowedDnsUIController.h"
|
|
#include "ui/controllers/connectionUIController.h"
|
|
#include "core/controllers/selfhosted/exportController.h"
|
|
#include "core/controllers/selfhosted/installController.h"
|
|
#include "ui/controllers/selfhosted/exportUIController.h"
|
|
#include "ui/controllers/focusController.h"
|
|
#include "ui/controllers/importController.h"
|
|
#include "ui/controllers/selfhosted/installUIController.h"
|
|
#include "ui/controllers/pageController.h"
|
|
#include "ui/controllers/settingsUIController.h"
|
|
#include "ui/controllers/siteSplitUIController.h"
|
|
#include "ui/controllers/systemController.h"
|
|
#include "core/controllers/settingsController.h"
|
|
#include "core/controllers/dnsController.h"
|
|
#include "core/controllers/connectionController.h"
|
|
#include "core/controllers/splitTunnelingController.h"
|
|
|
|
#include "ui/models/allowed_dns_model.h"
|
|
#include "ui/models/containers_model.h"
|
|
#include "ui/models/languageModel.h"
|
|
#include "ui/models/protocols/cloakConfigModel.h"
|
|
#ifdef Q_OS_WINDOWS
|
|
#include "ui/models/protocols/ikev2ConfigModel.h"
|
|
#endif
|
|
#include "ui/models/api/apiAccountInfoModel.h"
|
|
#include "ui/models/api/apiCountryModel.h"
|
|
#include "ui/models/api/apiDevicesModel.h"
|
|
#include "ui/models/api/apiServicesModel.h"
|
|
#include "ui/models/appSplitTunnelingModel.h"
|
|
#include "ui/models/selfhosted/clientManagementModel.h"
|
|
#include "ui/controllers/selfhosted/clientManagementUIController.h"
|
|
#include "ui/models/protocols/awgConfigModel.h"
|
|
#include "ui/models/protocols/openvpnConfigModel.h"
|
|
#include "ui/models/protocols/shadowsocksConfigModel.h"
|
|
#include "ui/models/protocols/wireguardConfigModel.h"
|
|
#include "ui/models/protocols/xrayConfigModel.h"
|
|
#include "ui/models/protocols_model.h"
|
|
#include "ui/models/servers_model.h"
|
|
#include "ui/models/services/sftpConfigModel.h"
|
|
#include "ui/models/services/socks5ProxyConfigModel.h"
|
|
#include "ui/models/sites_model.h"
|
|
|
|
#ifndef Q_OS_ANDROID
|
|
#include "ui/notificationhandler.h"
|
|
#endif
|
|
|
|
class CoreController : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit CoreController(const QSharedPointer<VpnConnection> &vpnConnection, const std::shared_ptr<Settings> &settings,
|
|
QQmlApplicationEngine *engine, QObject *parent = nullptr);
|
|
|
|
QSharedPointer<PageController> pageController() const;
|
|
void setQmlRoot();
|
|
|
|
signals:
|
|
void translationsUpdated();
|
|
|
|
private:
|
|
void initModels();
|
|
void initCoreControllers();
|
|
void initUIControllers();
|
|
void initSignalHandlers();
|
|
void initAndroidController();
|
|
void initAppleController();
|
|
void setupControllerSignalConnections();
|
|
|
|
void initNotificationHandler();
|
|
|
|
void updateTranslator(const QLocale &locale);
|
|
|
|
void initErrorMessagesHandler();
|
|
|
|
void initApiCountryModelUpdateHandler();
|
|
void initContainerModelUpdateHandler();
|
|
void initAdminConfigRevokedHandler();
|
|
void initPassphraseRequestHandler();
|
|
void initTranslationsUpdatedHandler();
|
|
void initAutoConnectHandler();
|
|
void initAmneziaDnsToggledHandler();
|
|
void initPrepareConfigHandler();
|
|
void initImportPremiumV2VpnKeyHandler();
|
|
void initShowMigrationDrawerHandler();
|
|
void initStrictKillSwitchHandler();
|
|
|
|
QQmlApplicationEngine *m_engine {};
|
|
std::shared_ptr<Settings> m_settings;
|
|
QSharedPointer<VpnConnection> m_vpnConnection;
|
|
QSharedPointer<QTranslator> m_translator;
|
|
|
|
#ifndef Q_OS_ANDROID
|
|
QScopedPointer<NotificationHandler> m_notificationHandler;
|
|
#endif
|
|
|
|
QMetaObject::Connection m_reloadConfigErrorOccurredConnection;
|
|
|
|
QScopedPointer<ConnectionUIController> m_connectionController;
|
|
QScopedPointer<FocusController> m_focusController;
|
|
QSharedPointer<PageController> m_pageController;
|
|
QSharedPointer<ExportController> m_exportController;
|
|
QSharedPointer<InstallController> m_installController;
|
|
QScopedPointer<ExportUIController> m_exportUIController;
|
|
QScopedPointer<InstallUIController> m_installUIController;
|
|
QScopedPointer<ImportController> m_importController;
|
|
QScopedPointer<SettingsUIController> m_settingsUIController;
|
|
QScopedPointer<SiteSplitUIController> m_siteSplitUIController;
|
|
QScopedPointer<SystemController> m_systemController;
|
|
QScopedPointer<AppSplitUIController> m_appSplitUIController;
|
|
QScopedPointer<AllowedDnsUIController> m_allowedDnsUIController;
|
|
|
|
QScopedPointer<ApiSettingsController> m_apiSettingsController;
|
|
QScopedPointer<ApiConfigsController> m_apiConfigsController;
|
|
QScopedPointer<ApiPremV1MigrationController> m_apiPremV1MigrationController;
|
|
|
|
QSharedPointer<SettingsController> m_settingsController;
|
|
QSharedPointer<DnsController> m_dnsController;
|
|
QSharedPointer<SplitTunnelingController> m_splitTunnelingController;
|
|
|
|
QSharedPointer<ContainersModel> m_containersModel;
|
|
QSharedPointer<ContainersModel> m_defaultServerContainersModel;
|
|
QSharedPointer<ServersModel> m_serversModel;
|
|
QSharedPointer<LanguageModel> m_languageModel;
|
|
QSharedPointer<ProtocolsModel> m_protocolsModel;
|
|
QSharedPointer<SitesModel> m_sitesModel;
|
|
QSharedPointer<AllowedDnsModel> m_allowedDnsModel;
|
|
QSharedPointer<AppSplitTunnelingModel> m_appSplitTunnelingModel;
|
|
QSharedPointer<ClientManagementModel> m_clientManagementModel;
|
|
QSharedPointer<ClientManagementUIController> m_clientManagementUIController;
|
|
|
|
QSharedPointer<ApiServicesModel> m_apiServicesModel;
|
|
QSharedPointer<ApiCountryModel> m_apiCountryModel;
|
|
QSharedPointer<ApiAccountInfoModel> m_apiAccountInfoModel;
|
|
QSharedPointer<ApiDevicesModel> m_apiDevicesModel;
|
|
|
|
QSharedPointer<OpenVpnConfigModel> m_openVpnConfigModel;
|
|
QSharedPointer<ShadowSocksConfigModel> m_shadowSocksConfigModel;
|
|
QSharedPointer<CloakConfigModel> m_cloakConfigModel;
|
|
QSharedPointer<XrayConfigModel> m_xrayConfigModel;
|
|
QSharedPointer<WireGuardConfigModel> m_wireGuardConfigModel;
|
|
QSharedPointer<AwgConfigModel> m_awgConfigModel;
|
|
#ifdef Q_OS_WINDOWS
|
|
QSharedPointer<Ikev2ConfigModel> m_ikev2ConfigModel;
|
|
#endif
|
|
QSharedPointer<SftpConfigModel> m_sftpConfigModel;
|
|
QSharedPointer<Socks5ProxyConfigModel> m_socks5ConfigModel;
|
|
};
|
|
|
|
#endif // CORECONTROLLER_H
|