Settings stored persistently using QSettings.
[openvpnui.git] / src / vpncontrol.cpp
index 1935194..7bd002f 100644 (file)
@@ -1,16 +1,26 @@
 #include "vpncontrol.h"
 #include "stdio.h"
+#include <QSettings>
+
 
 VPNControl::VPNControl(QObject *parent) :
     QObject(parent),
     vpnProcess(NULL),
     vpnStatus(VPNSTATUS_INVALID),
     server(""),
-    port(1174),
+    port(1194),
     compressed(true),
     useTLS(true),
     tlsDirection(1)
 {
+    // Read in the settings
+    QSettings settings;
+
+    server = settings.value("server", "127.0.0.1").toString();
+    port = settings.value("port", 1194).toInt();
+    compressed = settings.value("compressed", true).toBool();
+    useTLS = settings.value("useTLS", true).toBool();
+    tlsDirection = settings.value("tlsDirection", 1).toInt();
 }
 
 void VPNControl::initialise()
@@ -33,9 +43,12 @@ int VPNControl::getTlsDirection() const
 
 void VPNControl::setTlsDirection(int value)
 {
-    printf ("TLS direction set to %d\n", value);
-    tlsDirection = value;
-    emit tlsDirectionChanged (value);
+    if (value != tlsDirection) {
+        printf ("TLS direction set to %d\n", value);
+        tlsDirection = value;
+        settingsSetValue("tlsDirection", value);
+        emit tlsDirectionChanged (value);
+    }
 }
 
 bool VPNControl::getUseTLS() const
@@ -45,9 +58,12 @@ bool VPNControl::getUseTLS() const
 
 void VPNControl::setUseTLS(bool value)
 {
-    printf ("Use TLS set to %d\n", value);
-    useTLS = value;
-    emit useTLSChanged(useTLS);
+    if (value != useTLS) {
+        printf ("Use TLS set to %d\n", value);
+        useTLS = value;
+        settingsSetValue("useTLS", value);
+        emit useTLSChanged(useTLS);
+    }
 }
 
 bool VPNControl::getCompressed() const
@@ -57,9 +73,12 @@ bool VPNControl::getCompressed() const
 
 void VPNControl::setCompressed(bool value)
 {
-    printf ("Use compression set to %d\n", value);
-    compressed = value;
-    emit compressedChanged(compressed);
+    if (value != compressed) {
+        printf ("Use compression set to %d\n", value);
+        compressed = value;
+        settingsSetValue("compressed", value);
+        emit compressedChanged(compressed);
+    }
 }
 
 unsigned int VPNControl::getPort() const
@@ -69,9 +88,12 @@ unsigned int VPNControl::getPort() const
 
 void VPNControl::setPort(unsigned int value)
 {
-    printf ("Port set to %d\n", value);
-    port = value;
-    emit portChanged(port);
+    if (value != port) {
+        printf ("Port set to %d\n", value);
+        port = value;
+        settingsSetValue("port", value);
+        emit portChanged(port);
+    }
 }
 
 QString VPNControl::getServer() const
@@ -81,9 +103,24 @@ QString VPNControl::getServer() const
 
 void VPNControl::setServer(const QString &value)
 {
-    printf ("Server set to %s\n", value.toUtf8().constData());
-    server = value;
-    emit serverChanged(server);
+    if (value != server) {
+        printf ("Server set to %s\n", value.toUtf8().constData());
+        server = value;
+        settingsSetValue("server", value);
+        emit serverChanged(server);
+    }
+}
+
+void VPNControl::settingsSetValue (QString key, QString value) {
+    QSettings settings;
+
+    settings.setValue(key, value);
+}
+
+void VPNControl::settingsSetValue (QString key, int value) {
+    QSettings settings;
+
+    settings.setValue(key, value);
 }
 
 void VPNControl::vpnConnect() {