Files
amnezia-client/client/ui/pages_logic/AppSettingsLogic.cpp
T

107 lines
2.7 KiB
C++
Raw Normal View History

2021-09-06 12:39:46 +03:00
#include "AppSettingsLogic.h"
2021-09-03 20:17:13 +03:00
#include "debug.h"
#include "defines.h"
2021-09-06 12:39:46 +03:00
#include "ui/qautostart.h"
#include "ui/uilogic.h"
2021-09-03 20:17:13 +03:00
2022-02-01 19:48:59 +03:00
#include <QDesktopServices>
#include <QFileDialog>
2022-08-27 17:35:43 +03:00
#include <QMessageBox>
2022-02-01 19:48:59 +03:00
#include <QStandardPaths>
2021-09-03 20:17:13 +03:00
using namespace amnezia;
using namespace PageEnumNS;
2021-09-07 21:01:56 +03:00
AppSettingsLogic::AppSettingsLogic(UiLogic *logic, QObject *parent):
PageLogicBase(logic, parent),
2021-09-07 22:11:43 +03:00
m_checkBoxAutostartChecked{false},
m_checkBoxAutoConnectChecked{false},
2022-01-30 17:35:57 +03:00
m_checkBoxStartMinimizedChecked{false},
m_checkBoxSaveLogsChecked{false}
2021-09-03 20:17:13 +03:00
{
}
void AppSettingsLogic::onUpdatePage()
2021-09-03 20:17:13 +03:00
{
2021-09-07 22:11:43 +03:00
set_checkBoxAutostartChecked(Autostart::isAutostart());
2022-08-25 12:47:02 +03:00
set_checkBoxAutoConnectChecked(m_settings->isAutoConnect());
set_checkBoxStartMinimizedChecked(m_settings->isStartMinimized());
set_checkBoxSaveLogsChecked(m_settings->isSaveLogs());
2021-09-03 20:17:13 +03:00
QString ver = QString("%1: %2 (%3)")
.arg(tr("Software version"))
.arg(QString(APP_MAJOR_VERSION))
.arg(__DATE__);
2021-09-07 22:11:43 +03:00
set_labelVersionText(ver);
2021-09-03 20:17:13 +03:00
}
2021-09-07 22:11:43 +03:00
void AppSettingsLogic::onCheckBoxAutostartToggled(bool checked)
2021-09-03 20:17:13 +03:00
{
if (!checked) {
2021-09-07 22:11:43 +03:00
set_checkBoxAutoConnectChecked(false);
2021-09-03 20:17:13 +03:00
}
Autostart::setAutostart(checked);
}
2021-09-07 22:11:43 +03:00
void AppSettingsLogic::onCheckBoxAutoconnectToggled(bool checked)
2021-09-03 20:17:13 +03:00
{
2022-08-25 12:47:02 +03:00
m_settings->setAutoConnect(checked);
2021-09-03 20:17:13 +03:00
}
2021-09-07 22:11:43 +03:00
void AppSettingsLogic::onCheckBoxStartMinimizedToggled(bool checked)
2021-09-03 20:17:13 +03:00
{
2022-08-25 12:47:02 +03:00
m_settings->setStartMinimized(checked);
2021-09-03 20:17:13 +03:00
}
2022-01-30 17:35:57 +03:00
void AppSettingsLogic::onCheckBoxSaveLogsCheckedToggled(bool checked)
{
2022-08-25 12:47:02 +03:00
m_settings->setSaveLogs(checked);
2022-01-30 17:35:57 +03:00
}
2021-09-07 22:11:43 +03:00
void AppSettingsLogic::onPushButtonOpenLogsClicked()
2021-09-03 20:17:13 +03:00
{
Debug::openLogsFolder();
}
2022-01-30 17:35:57 +03:00
void AppSettingsLogic::onPushButtonExportLogsClicked()
{
uiLogic()->saveTextFile(tr("Save log"), "AmneziaVPN.log", ".log", Debug::getLogFile());
2022-01-30 17:35:57 +03:00
}
void AppSettingsLogic::onPushButtonClearLogsClicked()
{
Debug::clearLogs();
Debug::clearServiceLogs();
}
2022-08-05 18:59:47 +03:00
void AppSettingsLogic::onPushButtonBackupAppConfigClicked()
{
2022-08-25 12:47:02 +03:00
uiLogic()->saveTextFile("Backup application config", "AmneziaVPN.backup", ".backup", m_settings->backupAppConfig());
2022-08-05 18:59:47 +03:00
}
void AppSettingsLogic::onPushButtonRestoreAppConfigClicked()
{
QString fileName = QFileDialog::getOpenFileName(nullptr, tr("Open backup"),
QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation), "*.backup");
if (fileName.isEmpty()) return;
QFile file(fileName);
file.open(QIODevice::ReadOnly);
QByteArray data = file.readAll();
2022-08-27 17:35:43 +03:00
bool ok = m_settings->restoreAppConfig(data);
if (ok) {
emit uiLogic()->goToPage(Page::Vpn);
emit uiLogic()->setStartPage(Page::Vpn);
}
else {
QMessageBox::warning(nullptr, APPLICATION_NAME,
tr("Can't import config, file is corrupted."));
}
2022-08-05 18:59:47 +03:00
}