
- fixed server sharing when sharing a server available only for connection when choosing a server with full access - removed the notification about an empty backup file when the user closes the file dialog without selecting anything
113 lines
2.7 KiB
C++
113 lines
2.7 KiB
C++
#include "settingsController.h"
|
|
|
|
#include <QStandardPaths>
|
|
|
|
#include "logger.h"
|
|
#include "utilities.h"
|
|
#include "version.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::isLoggingEnable()
|
|
{
|
|
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();
|
|
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();
|
|
}
|