Network options: External seeder option
authorCryptoManiac <balthazar@yandex.ru>
Wed, 23 Mar 2016 22:50:20 +0000 (01:50 +0300)
committerCryptoManiac <balthazar@yandex.ru>
Wed, 23 Mar 2016 22:50:20 +0000 (01:50 +0300)
novacoin-qt.pro
src/init.cpp
src/qt/forms/optionsdialog.ui
src/qt/optionsdialog.cpp
src/qt/optionsdialog.h
src/qt/optionsmodel.cpp
src/qt/optionsmodel.h

index 4bdce2a..46a3fc7 100644 (file)
@@ -11,6 +11,7 @@ CONFIG += static
 
 # QMAKE_CC=clang
 # QMAKE_CXX=clang++
+# QMAKE_LINK=clang++
 
 freebsd-g++: QMAKE_TARGET.arch = $$QMAKE_HOST.arch
 linux-g++: QMAKE_TARGET.arch = $$QMAKE_HOST.arch
index a636b6e..55308ea 100644 (file)
@@ -1001,7 +1001,7 @@ bool AppInit2()
 
     // ********************************************************* Step 13: IP collection thread
     strCollectorCommand = GetArg("-peercollector", "");
-    if (strCollectorCommand != "")
+    if (!fTestNet && strCollectorCommand != "")
         NewThread(ThreadIPCollector, NULL);
     // ********************************************************* Step 14: finished
 
index 8edfa60..7cf60cf 100644 (file)
@@ -6,7 +6,7 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>550</width>
+    <width>595</width>
     <height>380</height>
    </rect>
   </property>
         </layout>
        </item>
        <item>
-        <spacer name="verticalSpacer_Network">
+        <layout class="QHBoxLayout" name="horizontalLayout_3">
+         <item>
+          <widget class="QLabel" name="externalSeederLabel">
+           <property name="text">
+            <string>Seeder command:</string>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QLineEdit" name="externalSeederCommand"/>
+         </item>
+         <item>
+          <widget class="QPushButton" name="chooseSeeder">
+           <property name="text">
+            <string>Choose ...</string>
+           </property>
+          </widget>
+         </item>
+        </layout>
+       </item>
+       <item>
+        <spacer name="verticalSpacer">
          <property name="orientation">
           <enum>Qt::Vertical</enum>
          </property>
index 79e8260..63b5c7d 100644 (file)
 #include <QRegExp>
 #include <QRegExpValidator>
 #include <QKeyEvent>
+#include <QFileDialog>
+
+#if QT_VERSION < 0x050000
+#include <QDesktopServices>
+#else
+#include <QStandardPaths>
+#endif
 
 OptionsDialog::OptionsDialog(QWidget *parent) :
     QWidget(parent, DIALOGWINDOWHINTS),
@@ -164,6 +171,7 @@ void OptionsDialog::setMapper()
     mapper->addMapping(ui->torPort, OptionsModel::TorPort);
     mapper->addMapping(ui->TorOnly, OptionsModel::TorOnly);
     mapper->addMapping(ui->torName, OptionsModel::TorName);
+    mapper->addMapping(ui->externalSeederCommand, OptionsModel::ExternalSeeder);
 
 
     /* Window */
@@ -345,4 +353,17 @@ void OptionsDialog::keyPressEvent(QKeyEvent *event)
         close();
     }
 #endif
-}
\ No newline at end of file
+}
+void OptionsDialog::on_chooseSeeder_clicked()
+{
+#if QT_VERSION < 0x050000
+    QString openDir = QDesktopServices::storageLocation(QDesktopServices::ApplicationsLocation);
+#else
+    QString openDir = QStandardPaths::ApplicationsLocation(QStandardPaths::ApplicationsLocation);
+#endif
+
+    QString filename = QFileDialog::getOpenFileName(this, tr("Choose peer collector application"), openDir, tr("Applications (*.*)"));
+    if(!filename.isEmpty()) {
+        ui->externalSeederCommand->setText(filename);
+    }
+}
index cec9331..b568916 100644 (file)
@@ -49,6 +49,8 @@ private slots:
     void handleProxyIpValid(QValidatedLineEdit *object, bool fState);
     void handleTorIpValid(QValidatedLineEdit *object, bool fState);
 
+    void on_chooseSeeder_clicked();
+
 signals:
     void proxyIpValid(QValidatedLineEdit *object, bool fValid);
     void torIpValid(QValidatedLineEdit *object, bool fValid);
index 7a84ef2..6639e27 100644 (file)
@@ -99,6 +99,10 @@ void OptionsModel::Init()
         }
     }
 
+    if (!fTestNet && settings.contains("externalSeeder") && settings.value("externalSeeder").toString() != "") {
+        SoftSetArg("-peercollector", settings.value("externalSeeder").toString().toStdString());
+    }
+
     if (settings.contains("detachDB"))
         SoftSetBoolArg("-detachdb", settings.value("detachDB").toBool());
     if (!language.isEmpty())
@@ -161,6 +165,8 @@ QVariant OptionsModel::data(const QModelIndex & index, int role) const
             return settings.value("fTorOnly", false);
         case TorName:
             return settings.value("TorName", "");
+        case ExternalSeeder:
+            return settings.value("externalSeeder", "");
         case Fee:
             return QVariant(static_cast<qlonglong>(nTransactionFee));
         case DisplayUnit:
@@ -270,6 +276,9 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in
             settings.setValue("TorName", value.toString());
         }
         break;
+        case ExternalSeeder:
+            settings.setValue("externalSeeder", value.toString());
+        break;
         case Fee:
             nTransactionFee = value.toLongLong();
             settings.setValue("nTransactionFee", static_cast<qlonglong>(nTransactionFee));
index e3d2cae..605f821 100644 (file)
@@ -36,6 +36,7 @@ public:
         DetachDatabases,   // bool
         Language,          // QString
         CoinControlFeatures, // bool
+        ExternalSeeder,    // QString
         OptionIDRowCount,
     };