added field containing application platform to backup file, added feature to clear appsSplitTunneling list from backup file if backup was made on other platform
This commit is contained in:
parent
17ee1c837a
commit
4d8bba3ef8
4 changed files with 46 additions and 9 deletions
|
@ -35,6 +35,23 @@ SettingsController::SettingsController(const QSharedPointer<ServersModel> &serve
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString getPlatformName()
|
||||||
|
{
|
||||||
|
#if defined(Q_OS_WINDOWS)
|
||||||
|
return "Windows";
|
||||||
|
#elif defined(Q_OS_ANDROID)
|
||||||
|
return "Android";
|
||||||
|
#elif defined(Q_OS_LINUX)
|
||||||
|
return "Linux";
|
||||||
|
#elif defined(Q_OS_MACX)
|
||||||
|
return "MacOS";
|
||||||
|
#elif defined(Q_OS_IOS)
|
||||||
|
return "iOS";
|
||||||
|
#else
|
||||||
|
return "Unknown";
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
void SettingsController::toggleAmneziaDns(bool enable)
|
void SettingsController::toggleAmneziaDns(bool enable)
|
||||||
{
|
{
|
||||||
m_settings->setUseAmneziaDns(enable);
|
m_settings->setUseAmneziaDns(enable);
|
||||||
|
@ -130,6 +147,7 @@ void SettingsController::backupAppConfig(const QString &fileName)
|
||||||
QJsonDocument doc = QJsonDocument::fromJson(data);
|
QJsonDocument doc = QJsonDocument::fromJson(data);
|
||||||
QJsonObject config = doc.object();
|
QJsonObject config = doc.object();
|
||||||
|
|
||||||
|
config["AppPlatform"] = getPlatformName();
|
||||||
config["Conf/autoStart"] = Autostart::isAutostart();
|
config["Conf/autoStart"] = Autostart::isAutostart();
|
||||||
config["Conf/killSwitchEnabled"] = isKillSwitchEnabled();
|
config["Conf/killSwitchEnabled"] = isKillSwitchEnabled();
|
||||||
config["Conf/strictKillSwitchEnabled"] = isStrictKillSwitchEnabled();
|
config["Conf/strictKillSwitchEnabled"] = isStrictKillSwitchEnabled();
|
||||||
|
@ -164,15 +182,24 @@ void SettingsController::restoreAppConfigFromData(const QByteArray &data)
|
||||||
|
|
||||||
#if defined(Q_OS_WINDOWS) || defined(Q_OS_ANDROID)
|
#if defined(Q_OS_WINDOWS) || defined(Q_OS_ANDROID)
|
||||||
int appSplitTunnelingRouteMode = newConfigData.value("Conf/appsRouteMode").toInt();
|
int appSplitTunnelingRouteMode = newConfigData.value("Conf/appsRouteMode").toInt();
|
||||||
bool appSplittunnelingEnabled = newConfigData.value("Conf/appsSplitTunnelingEnabled").toBool();
|
bool appSplittunnelingEnabled = newConfigData.value("Conf/appsSplitTunnelingEnabled").toString().toLower() == "true";
|
||||||
m_appSplitTunnelingModel->setRouteMode(appSplitTunnelingRouteMode);
|
m_appSplitTunnelingModel->setRouteMode(appSplitTunnelingRouteMode);
|
||||||
m_appSplitTunnelingModel->toggleSplitTunneling(appSplittunnelingEnabled);
|
|
||||||
#if defined(Q_OS_WINDOWS)
|
#if defined(Q_OS_WINDOWS)
|
||||||
m_appSplitTunnelingModel->setRouteMode(static_cast<int>(Settings::AppsRouteMode::VpnAllExceptApps));
|
m_appSplitTunnelingModel->setRouteMode(static_cast<int>(Settings::AppsRouteMode::VpnAllExceptApps));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if (newConfigData.contains("AppPlatform")) { //if backup is from a new version
|
||||||
|
if (newConfigData.value("AppPlatform").toString() != getPlatformName()) {
|
||||||
|
m_appSplitTunnelingModel->clearAppsList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
m_appSplitTunnelingModel->toggleSplitTunneling(appSplittunnelingEnabled);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int siteSplitTunnelingRouteMode = newConfigData.value("Conf/routeMode").toInt();
|
int siteSplitTunnelingRouteMode = newConfigData.value("Conf/routeMode").toInt();
|
||||||
bool siteSplittunnelingEnabled = newConfigData.value("Conf/sitesSplitTunnelingEnabled").toBool();
|
bool siteSplittunnelingEnabled = newConfigData.value("Conf/sitesSplitTunnelingEnabled").toString().toLower() == "true";
|
||||||
m_sitesModel->setRouteMode(siteSplitTunnelingRouteMode);
|
m_sitesModel->setRouteMode(siteSplitTunnelingRouteMode);
|
||||||
m_sitesModel->toggleSplitTunneling(siteSplittunnelingEnabled);
|
m_sitesModel->toggleSplitTunneling(siteSplittunnelingEnabled);
|
||||||
|
|
||||||
|
|
|
@ -136,6 +136,8 @@ private:
|
||||||
|
|
||||||
QString m_appVersion;
|
QString m_appVersion;
|
||||||
|
|
||||||
|
QString getPlatform();
|
||||||
|
|
||||||
QDateTime m_loggingDisableDate;
|
QDateTime m_loggingDisableDate;
|
||||||
|
|
||||||
bool m_isDevModeEnabled = false;
|
bool m_isDevModeEnabled = false;
|
||||||
|
|
|
@ -26,12 +26,12 @@ QVariant AppSplitTunnelingModel::data(const QModelIndex &index, int role) const
|
||||||
return QVariant();
|
return QVariant();
|
||||||
|
|
||||||
switch (role) {
|
switch (role) {
|
||||||
case AppPathRole: {
|
case AppPathRole: {
|
||||||
return m_apps.at(index.row()).appName;
|
return m_apps.at(index.row()).appName;
|
||||||
}
|
}
|
||||||
default: {
|
default: {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return QVariant();
|
return QVariant();
|
||||||
|
@ -59,6 +59,13 @@ void AppSplitTunnelingModel::removeApp(QModelIndex index)
|
||||||
endRemoveRows();
|
endRemoveRows();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AppSplitTunnelingModel::clearAppsList() {
|
||||||
|
beginResetModel();
|
||||||
|
m_apps.clear();
|
||||||
|
m_settings->setVpnApps(m_currentRouteMode, m_apps);
|
||||||
|
endResetModel();
|
||||||
|
}
|
||||||
|
|
||||||
int AppSplitTunnelingModel::getRouteMode()
|
int AppSplitTunnelingModel::getRouteMode()
|
||||||
{
|
{
|
||||||
return m_currentRouteMode;
|
return m_currentRouteMode;
|
||||||
|
|
|
@ -29,6 +29,7 @@ public:
|
||||||
public slots:
|
public slots:
|
||||||
bool addApp(const InstalledAppInfo &appInfo);
|
bool addApp(const InstalledAppInfo &appInfo);
|
||||||
void removeApp(QModelIndex index);
|
void removeApp(QModelIndex index);
|
||||||
|
void clearAppsList();
|
||||||
|
|
||||||
int getRouteMode();
|
int getRouteMode();
|
||||||
void setRouteMode(int routeMode);
|
void setRouteMode(int routeMode);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue