parent
294778884b
commit
95bdae68f4
8 changed files with 113 additions and 29 deletions
|
|
@ -226,9 +226,22 @@ void Settings::setSaveLogs(bool enabled)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
if (enabled) {
|
||||||
|
setLogEnableDate(QDateTime::currentDateTime());
|
||||||
|
}
|
||||||
emit saveLogsChanged(enabled);
|
emit saveLogsChanged(enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QDateTime Settings::getLogEnableDate()
|
||||||
|
{
|
||||||
|
return value("Conf/logEnableDate").toDateTime();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Settings::setLogEnableDate(QDateTime date)
|
||||||
|
{
|
||||||
|
setValue("Conf/logEnableDate", date);
|
||||||
|
}
|
||||||
|
|
||||||
QString Settings::routeModeString(RouteMode mode) const
|
QString Settings::routeModeString(RouteMode mode) const
|
||||||
{
|
{
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
|
|
|
||||||
|
|
@ -100,6 +100,9 @@ public:
|
||||||
}
|
}
|
||||||
void setSaveLogs(bool enabled);
|
void setSaveLogs(bool enabled);
|
||||||
|
|
||||||
|
QDateTime getLogEnableDate();
|
||||||
|
void setLogEnableDate(QDateTime date);
|
||||||
|
|
||||||
enum RouteMode {
|
enum RouteMode {
|
||||||
VpnAllSites,
|
VpnAllSites,
|
||||||
VpnOnlyForwardSites,
|
VpnOnlyForwardSites,
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@ SettingsController::SettingsController(const QSharedPointer<ServersModel> &serve
|
||||||
m_settings(settings)
|
m_settings(settings)
|
||||||
{
|
{
|
||||||
m_appVersion = QString("%1 (%2, %3)").arg(QString(APP_VERSION), __DATE__, GIT_COMMIT_HASH);
|
m_appVersion = QString("%1 (%2, %3)").arg(QString(APP_VERSION), __DATE__, GIT_COMMIT_HASH);
|
||||||
|
checkIfNeedDisableLogs();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingsController::toggleAmneziaDns(bool enable)
|
void SettingsController::toggleAmneziaDns(bool enable)
|
||||||
|
|
@ -71,8 +72,11 @@ void SettingsController::toggleLogging(bool enable)
|
||||||
{
|
{
|
||||||
m_settings->setSaveLogs(enable);
|
m_settings->setSaveLogs(enable);
|
||||||
#ifdef Q_OS_IOS
|
#ifdef Q_OS_IOS
|
||||||
AmneziaVPN::toggleLogging(enable);
|
AmneziaVPN::toggleLogging(enable);
|
||||||
#endif
|
#endif
|
||||||
|
if (enable == true) {
|
||||||
|
checkIfNeedDisableLogs();
|
||||||
|
}
|
||||||
emit loggingStateChanged();
|
emit loggingStateChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -205,3 +209,13 @@ bool SettingsController::isCameraPresent()
|
||||||
return false;
|
return false;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SettingsController::checkIfNeedDisableLogs()
|
||||||
|
{
|
||||||
|
m_loggingDisableDate = m_settings->getLogEnableDate().addDays(14);
|
||||||
|
if (m_loggingDisableDate <= QDateTime::currentDateTime()) {
|
||||||
|
toggleLogging(false);
|
||||||
|
clearLogs();
|
||||||
|
emit loggingDisableByWatcher();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -77,6 +77,8 @@ signals:
|
||||||
|
|
||||||
void amneziaDnsToggled(bool enable);
|
void amneziaDnsToggled(bool enable);
|
||||||
|
|
||||||
|
void loggingDisableByWatcher();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QSharedPointer<ServersModel> m_serversModel;
|
QSharedPointer<ServersModel> m_serversModel;
|
||||||
QSharedPointer<ContainersModel> m_containersModel;
|
QSharedPointer<ContainersModel> m_containersModel;
|
||||||
|
|
@ -85,6 +87,10 @@ private:
|
||||||
std::shared_ptr<Settings> m_settings;
|
std::shared_ptr<Settings> m_settings;
|
||||||
|
|
||||||
QString m_appVersion;
|
QString m_appVersion;
|
||||||
|
|
||||||
|
QDateTime m_loggingDisableDate;
|
||||||
|
|
||||||
|
void checkIfNeedDisableLogs();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // SETTINGSCONTROLLER_H
|
#endif // SETTINGSCONTROLLER_H
|
||||||
|
|
|
||||||
|
|
@ -33,44 +33,71 @@ PageType {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
anchors.bottomMargin: drawer.collapsedHeight
|
anchors.bottomMargin: drawer.collapsedHeight
|
||||||
|
|
||||||
ConnectButton {
|
ColumnLayout {
|
||||||
id: connectButton
|
anchors.fill: parent
|
||||||
anchors.centerIn: parent
|
anchors.topMargin: 34
|
||||||
}
|
|
||||||
|
|
||||||
BasicButtonType {
|
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
|
||||||
anchors.bottom: parent.bottom
|
|
||||||
anchors.bottomMargin: 34
|
anchors.bottomMargin: 34
|
||||||
leftPadding: 16
|
|
||||||
rightPadding: 16
|
|
||||||
|
|
||||||
implicitHeight: 36
|
BasicButtonType {
|
||||||
|
property bool isLoggingEnabled: SettingsController.isLoggingEnabled
|
||||||
|
|
||||||
defaultColor: "transparent"
|
Layout.alignment: Qt.AlignHCenter
|
||||||
hoveredColor: Qt.rgba(1, 1, 1, 0.08)
|
|
||||||
pressedColor: Qt.rgba(1, 1, 1, 0.12)
|
|
||||||
disabledColor: "#878B91"
|
|
||||||
textColor: "#878B91"
|
|
||||||
leftImageColor: "transparent"
|
|
||||||
borderWidth: 0
|
|
||||||
|
|
||||||
property bool isSplitTunnelingEnabled: SitesModel.isTunnelingEnabled ||
|
implicitHeight: 36
|
||||||
(ServersModel.isDefaultServerDefaultContainerHasSplitTunneling && ServersModel.getDefaultServerData("isServerFromApi"))
|
|
||||||
|
|
||||||
text: isSplitTunnelingEnabled ? qsTr("Split tunneling enabled") : qsTr("Split tunneling disabled")
|
defaultColor: "transparent"
|
||||||
|
hoveredColor: Qt.rgba(1, 1, 1, 0.08)
|
||||||
|
pressedColor: Qt.rgba(1, 1, 1, 0.12)
|
||||||
|
disabledColor: "#878B91"
|
||||||
|
textColor: "#878B91"
|
||||||
|
borderWidth: 0
|
||||||
|
|
||||||
imageSource: isSplitTunnelingEnabled ? "qrc:/images/controls/split-tunneling.svg" : ""
|
visible: isLoggingEnabled ? true : false
|
||||||
rightImageSource: "qrc:/images/controls/chevron-down.svg"
|
text: qsTr("Logging enabled")
|
||||||
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
homeSplitTunnelingDrawer.open()
|
PageController.goToPage(PageEnum.PageSettingsLogging)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
HomeSplitTunnelingDrawer {
|
ConnectButton {
|
||||||
id: homeSplitTunnelingDrawer
|
id: connectButton
|
||||||
|
anchors.centerIn: parent
|
||||||
|
}
|
||||||
|
|
||||||
parent: root
|
BasicButtonType {
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
anchors.bottom: parent.bottom
|
||||||
|
anchors.bottomMargin: 34
|
||||||
|
leftPadding: 16
|
||||||
|
rightPadding: 16
|
||||||
|
|
||||||
|
implicitHeight: 36
|
||||||
|
|
||||||
|
defaultColor: "transparent"
|
||||||
|
hoveredColor: Qt.rgba(1, 1, 1, 0.08)
|
||||||
|
pressedColor: Qt.rgba(1, 1, 1, 0.12)
|
||||||
|
disabledColor: "#878B91"
|
||||||
|
textColor: "#878B91"
|
||||||
|
leftImageColor: "transparent"
|
||||||
|
borderWidth: 0
|
||||||
|
|
||||||
|
property bool isSplitTunnelingEnabled: SitesModel.isTunnelingEnabled ||
|
||||||
|
(ServersModel.isDefaultServerDefaultContainerHasSplitTunneling && ServersModel.getDefaultServerData("isServerFromApi"))
|
||||||
|
|
||||||
|
text: isSplitTunnelingEnabled ? qsTr("Split tunneling enabled") : qsTr("Split tunneling disabled")
|
||||||
|
|
||||||
|
imageSource: isSplitTunnelingEnabled ? "qrc:/images/controls/split-tunneling.svg" : ""
|
||||||
|
rightImageSource: "qrc:/images/controls/chevron-down.svg"
|
||||||
|
|
||||||
|
onClicked: {
|
||||||
|
homeSplitTunnelingDrawer.open()
|
||||||
|
}
|
||||||
|
|
||||||
|
HomeSplitTunnelingDrawer {
|
||||||
|
id: homeSplitTunnelingDrawer
|
||||||
|
parent: root
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,18 @@ import "../Controls2/TextTypes"
|
||||||
PageType {
|
PageType {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
|
Connections {
|
||||||
|
target: SettingsController
|
||||||
|
|
||||||
|
function onLoggingStateChanged() {
|
||||||
|
if (SettingsController.isLoggingEnabled) {
|
||||||
|
var message = qsTr("Logging is enabled. Note that logs will be automatically \
|
||||||
|
disabled after 14 days, and all log files will be deleted.")
|
||||||
|
PageController.showNotificationMessage(message)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
BackButtonType {
|
BackButtonType {
|
||||||
id: backButton
|
id: backButton
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -129,6 +129,14 @@ PageType {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Connections {
|
||||||
|
target: SettingsController
|
||||||
|
|
||||||
|
function onLoggingDisableByWatcher() {
|
||||||
|
PageController.showNotificationMessage(qsTr("Logging was disabled after 14 days, log files were deleted"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
StackViewType {
|
StackViewType {
|
||||||
id: tabBarStackView
|
id: tabBarStackView
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -95,6 +95,7 @@ Window {
|
||||||
|
|
||||||
Connections {
|
Connections {
|
||||||
target: SettingsController
|
target: SettingsController
|
||||||
|
|
||||||
function onChangeSettingsFinished(finishedMessage) {
|
function onChangeSettingsFinished(finishedMessage) {
|
||||||
PageController.showNotificationMessage(finishedMessage)
|
PageController.showNotificationMessage(finishedMessage)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue