save changed options in database
authorWladimir J. van der Laan <laanwj@gmail.com>
Sun, 5 Jun 2011 09:45:42 +0000 (11:45 +0200)
committerWladimir J. van der Laan <laanwj@gmail.com>
Sun, 5 Jun 2011 09:45:42 +0000 (11:45 +0200)
README.rst
gui/src/optionsmodel.cpp

index eb209ce..70d3c41 100644 (file)
@@ -20,12 +20,12 @@ This has been implemented:
 
 - Address book and transactions views and models
 
+- Options dialog
+
 - Sending coins
 
 This has to be done:
 
-- Settings are not remembered between invocations yet
-
 - Minimize to tray / Minimize on close
 
 - Start at system start
index f653f67..98fd3b1 100644 (file)
@@ -1,5 +1,6 @@
 #include "optionsmodel.h"
 #include "main.h"
+#include "net.h"
 
 #include <QDebug>
 
@@ -47,6 +48,7 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in
     bool successful = true; /* set to false on parse error */
     if(role == Qt::EditRole)
     {
+        CWalletDB walletdb;
         switch(index.row())
         {
         case StartAtStartup:
@@ -54,15 +56,22 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in
             break;
         case MinimizeToTray:
             fMinimizeToTray = value.toBool();
+            walletdb.WriteSetting("fMinimizeToTray", fMinimizeToTray);
             break;
         case MapPortUPnP:
             fUseUPnP = value.toBool();
+            walletdb.WriteSetting("fUseUPnP", fUseUPnP);
+#ifdef USE_UPNP
+            MapPort(fUseUPnP);
+#endif
             break;
         case MinimizeOnClose:
             fMinimizeOnClose = value.toBool();
+            walletdb.WriteSetting("fMinimizeOnClose", fMinimizeOnClose);
             break;
         case ConnectSOCKS4:
             fUseProxy = value.toBool();
+            walletdb.WriteSetting("fUseProxy", fUseProxy);
             break;
         case ProxyIP:
             {
@@ -71,6 +80,7 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in
                 if (addr.ip != INADDR_NONE)
                 {
                     addrProxy.ip = addr.ip;
+                    walletdb.WriteSetting("addrProxy", addrProxy);
                 } else {
                     successful = false;
                 }
@@ -82,6 +92,7 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in
                 if (nPort > 0 && nPort < USHRT_MAX)
                 {
                     addrProxy.port = htons(nPort);
+                    walletdb.WriteSetting("addrProxy", addrProxy);
                 } else {
                     successful = false;
                 }
@@ -92,6 +103,7 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in
                 if(ParseMoney(value.toString().toStdString(), retval))
                 {
                     nTransactionFee = retval;
+                    walletdb.WriteSetting("nTransactionFee", nTransactionFee);
                 } else {
                     successful = false; /* parse error */
                 }