Files
amnezia-client/client/ui/controllers/settingsUiController.h
T

166 lines
5.2 KiB
C++
Raw Normal View History

#ifndef SETTINGSUICONTROLLER_H
#define SETTINGSUICONTROLLER_H
#include <QObject>
#include "core/controllers/settingsController.h"
#include "core/controllers/serversController.h"
#include "ui/controllers/languageUiController.h"
#include "ui/models/languageModel.h"
#include "core/utils/errorCodes.h"
#include "core/utils/routeModes.h"
#include "core/utils/commonStructs.h"
class SettingsUiController : public QObject
{
Q_OBJECT
public:
explicit SettingsUiController(SettingsController* settingsController,
ServersController* serversController,
LanguageUiController* languageUiController,
QObject *parent = nullptr);
Q_PROPERTY(QString primaryDns READ getPrimaryDns WRITE setPrimaryDns NOTIFY primaryDnsChanged)
Q_PROPERTY(QString secondaryDns READ getSecondaryDns WRITE setSecondaryDns NOTIFY secondaryDnsChanged)
2023-08-08 19:10:14 +05:00
Q_PROPERTY(bool isLoggingEnabled READ isLoggingEnabled WRITE toggleLogging NOTIFY loggingStateChanged)
2024-05-12 18:04:14 +03:00
Q_PROPERTY(bool isNotificationPermissionGranted READ isNotificationPermissionGranted NOTIFY onNotificationStateChanged)
2025-05-02 23:54:36 -07:00
Q_PROPERTY(bool isKillSwitchEnabled READ isKillSwitchEnabled WRITE toggleKillSwitch NOTIFY killSwitchEnabledChanged)
Q_PROPERTY(bool strictKillSwitchEnabled READ isStrictKillSwitchEnabled WRITE toggleStrictKillSwitch NOTIFY strictKillSwitchEnabledChanged)
Q_PROPERTY(bool isDevModeEnabled READ isDevModeEnabled NOTIFY devModeEnabled)
Q_PROPERTY(QString gatewayEndpoint READ getGatewayEndpoint WRITE setGatewayEndpoint NOTIFY gatewayEndpointChanged)
Q_PROPERTY(bool isDevGatewayEnv READ isDevGatewayEnv WRITE toggleDevGatewayEnv NOTIFY devGatewayEnvChanged)
Q_PROPERTY(bool isHomeAdLabelVisible READ isHomeAdLabelVisible NOTIFY isHomeAdLabelVisibleChanged)
Q_PROPERTY(bool startMinimized READ isStartMinimizedEnabled NOTIFY startMinimizedChanged)
public slots:
2023-08-08 19:10:14 +05:00
void toggleAmneziaDns(bool enable);
bool isAmneziaDnsEnabled();
QString getPrimaryDns();
void setPrimaryDns(const QString &dns);
QString getSecondaryDns();
void setSecondaryDns(const QString &dns);
2023-08-08 19:10:14 +05:00
bool isLoggingEnabled();
void toggleLogging(bool enable);
void openLogsFolder();
2024-09-09 20:53:44 +04:00
void openServiceLogsFolder();
2023-08-30 15:10:44 +05:00
void exportLogsFile(const QString &fileName);
2024-09-09 20:53:44 +04:00
void exportServiceLogsFile(const QString &fileName);
void clearLogs();
2023-08-30 15:10:44 +05:00
void backupAppConfig(const QString &fileName);
void restoreAppConfig(const QString &fileName);
void restoreAppConfigFromData(const QByteArray &data);
QString getAppVersion();
void clearSettings();
bool isFileEncryptionEnabled();
void toggleFileEncryption(bool enable);
void setPassword(QString pwd);
QString getPassword();
void setHint(QString hint);
QString getHint();
2023-08-08 19:10:14 +05:00
bool isAutoConnectEnabled();
void toggleAutoConnect(bool enable);
2023-08-24 14:53:52 +05:00
bool isAutoStartEnabled();
void toggleAutoStart(bool enable);
bool isStartMinimizedEnabled();
void toggleStartMinimized(bool enable);
2026-01-30 06:19:50 +02:00
bool isNewsNotificationsEnabled();
void toggleNewsNotificationsEnabled(bool enable);
void setTempPassword(QString pwd);
QString getTempPassword();
void setTempHint(QString hint);
QString getTempHint();
bool isScreenshotsEnabled();
void toggleScreenshotsEnabled(bool enable);
bool isCameraPresent();
2024-04-25 20:01:00 +07:00
bool isKillSwitchEnabled();
void toggleKillSwitch(bool enable);
2025-05-02 23:54:36 -07:00
bool isStrictKillSwitchEnabled();
void toggleStrictKillSwitch(bool enable);
2024-05-12 18:04:14 +03:00
bool isNotificationPermissionGranted();
void requestNotificationPermission();
QString getInstallationUuid();
void enableDevMode();
bool isDevModeEnabled();
void resetGatewayEndpoint();
void setGatewayEndpoint(const QString &endpoint);
QString getGatewayEndpoint();
bool isDevGatewayEnv();
void toggleDevGatewayEnv(bool enabled);
2024-09-09 14:36:33 +03:00
bool isOnTv();
bool isHomeAdLabelVisible();
void disableHomeAdLabel();
signals:
void primaryDnsChanged();
void secondaryDnsChanged();
void loggingStateChanged();
2025-05-02 23:54:36 -07:00
void killSwitchEnabledChanged();
void strictKillSwitchEnabledChanged(bool enabled);
void restoreBackupFinished();
void changeSettingsFinished(const QString &finishedMessage);
void errorOccurred(ErrorCode errorCode);
void saveFile(const QString &fileName, const QString &data);
void importBackupFromOutside(QString filePath);
void amneziaDnsToggled(bool enable);
2024-03-20 21:22:29 +07:00
void loggingDisableByWatcher();
void appLanguageChanged(const LanguageSettings::AvailableLanguageEnum language);
void resetLanguageToSystem();
2024-05-12 18:04:14 +03:00
void onNotificationStateChanged();
void devModeEnabled();
void gatewayEndpointChanged(const QString &endpoint);
void devGatewayEnvChanged(bool enabled);
2026-03-24 17:13:31 +03:00
void activityPaused();
void activityResumed();
void isHomeAdLabelVisibleChanged(bool visible);
void startMinimizedChanged();
2025-12-11 14:20:13 +02:00
void fileEncryptionStateChanged();
2025-12-12 16:32:16 +02:00
void changingPassword();
2025-12-11 14:20:13 +02:00
private:
QString tempPassword;
QString tempHint;
SettingsController* m_settingsController;
ServersController* m_serversController;
LanguageUiController* m_languageUiController;
};
#endif