#include "settingsController.h" #include #include "logger.h" #include "utilities.h" #include "version.h" SettingsController::SettingsController(const QSharedPointer &serversModel, const QSharedPointer &containersModel, const QSharedPointer &languageModel, const std::shared_ptr &settings, QObject *parent) : QObject(parent), m_serversModel(serversModel), m_containersModel(containersModel), m_languageModel(languageModel), m_settings(settings) { m_appVersion = QString("%1: %2 (%3)").arg(tr("Software version"), QString(APP_MAJOR_VERSION), __DATE__); } void SettingsController::toggleAmneziaDns(bool enable) { m_settings->setUseAmneziaDns(enable); } bool SettingsController::isAmneziaDnsEnabled() { return m_settings->useAmneziaDns(); } QString SettingsController::getPrimaryDns() { return m_settings->primaryDns(); } void SettingsController::setPrimaryDns(const QString &dns) { m_settings->setPrimaryDns(dns); emit primaryDnsChanged(); } QString SettingsController::getSecondaryDns() { return m_settings->secondaryDns(); } void SettingsController::setSecondaryDns(const QString &dns) { return m_settings->setSecondaryDns(dns); emit secondaryDnsChanged(); } bool SettingsController::isLoggingEnabled() { return m_settings->isSaveLogs(); } void SettingsController::toggleLogging(bool enable) { m_settings->setSaveLogs(enable); emit loggingStateChanged(); } void SettingsController::openLogsFolder() { Logger::openLogsFolder(); } void SettingsController::exportLogsFile() { Utils::saveFile(".log", tr("Save log"), "AmneziaVPN", Logger::getLogFile()); } void SettingsController::clearLogs() { Logger::clearLogs(); Logger::clearServiceLogs(); } void SettingsController::backupAppConfig() { Utils::saveFile(".backup", tr("Backup application config"), "AmneziaVPN", m_settings->backupAppConfig()); } void SettingsController::restoreAppConfig() { QString fileName = Utils::getFileName(Q_NULLPTR, tr("Open backup"), QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation), "*.backup"); if (fileName.isEmpty()) { return; } QFile file(fileName); file.open(QIODevice::ReadOnly); QByteArray data = file.readAll(); bool ok = m_settings->restoreAppConfig(data); if (ok) { m_serversModel->resetModel(); m_languageModel->changeLanguage( static_cast(m_languageModel->getCurrentLanguageIndex())); emit restoreBackupFinished(); } else { emit changeSettingsErrorOccurred(tr("Backup file is corrupted")); } } QString SettingsController::getAppVersion() { return m_appVersion; } void SettingsController::clearSettings() { m_settings->clearSettings(); m_serversModel->resetModel(); m_languageModel->changeLanguage( static_cast(m_languageModel->getCurrentLanguageIndex())); emit changeSettingsFinished(tr("All settings have been reset to default values")); } void SettingsController::clearCachedProfiles() { m_containersModel->clearCachedProfiles(); emit changeSettingsFinished(tr("Cached profiles cleared")); } bool SettingsController::isAutoConnectEnabled() { return m_settings->isAutoConnect(); } void SettingsController::toggleAutoConnect(bool enable) { m_settings->setAutoConnect(enable); }