added PageSettingsAbout, PageSettingsApplication, PageSettingsBackup, PageSettingsConnection, PageSettingsDns

- added SettingsController
This commit is contained in:
vladimir.kuznetsov 2023-06-16 13:43:55 +09:00
parent be7386f0d7
commit 7b14ad9616
28 changed files with 1054 additions and 63 deletions

View file

@ -0,0 +1,113 @@
#include "settingsController.h"
#include <QStandardPaths>
#include "defines.h"
#include "logger.h"
#include "utilities.h"
SettingsController::SettingsController(const QSharedPointer<ServersModel> &serversModel,
const QSharedPointer<ContainersModel> &containersModel,
const std::shared_ptr<Settings> &settings,
QObject *parent)
: QObject(parent)
, m_serversModel(serversModel)
, m_containersModel(containersModel)
, m_settings(settings)
{
m_appVersion = QString("%1: %2 (%3)")
.arg(tr("Software version"), QString(APP_MAJOR_VERSION), __DATE__);
}
void SettingsController::setAmneziaDns(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::isSaveLogsEnabled()
{
return m_settings->isSaveLogs();
}
void SettingsController::setSaveLogs(bool enable)
{
m_settings->setSaveLogs(enable);
}
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");
//todo error processing
if (fileName.isEmpty())
return;
QFile file(fileName);
file.open(QIODevice::ReadOnly);
QByteArray data = file.readAll();
bool ok = m_settings->restoreAppConfig(data);
if (ok) {
// emit uiLogic()->showWarningMessage(tr("Can't import config, file is corrupted."));
}
}
QString SettingsController::getAppVersion()
{
return m_appVersion;
}