Browse Source

run setup wizard

pull/16/merge
orignal 7 years ago
parent
commit
3294ae9341
  1. 4
      gostcoin-qt.pro
  2. 4
      src/qt/gostcoin.cpp
  3. 63
      src/qt/setupdarknet.cpp
  4. 7
      src/qt/setupdarknet.h
  5. 8
      src/util.cpp
  6. 2
      src/util.h

4
gostcoin-qt.pro

@ -211,7 +211,8 @@ HEADERS += src/qt/bitcoingui.h \ @@ -211,7 +211,8 @@ HEADERS += src/qt/bitcoingui.h \
src/qt/macnotificationhandler.h \
src/qt/splashscreen.h \
src/qt/showi2paddresses.h \
src/qt/i2poptionswidget.h
src/qt/i2poptionswidget.h \
src/qt/setupdarknet.h
SOURCES += src/qt/gostcoin.cpp \
src/qt/bitcoingui.cpp \
@ -286,6 +287,7 @@ SOURCES += src/qt/gostcoin.cpp \ @@ -286,6 +287,7 @@ SOURCES += src/qt/gostcoin.cpp \
src/qt/splashscreen.cpp \
src/qt/showi2paddresses.cpp \
src/qt/i2poptionswidget.cpp \
src/qt/setupdarknet.cpp \
i2psam/i2psam.cpp
RESOURCES += src/qt/bitcoin.qrc

4
src/qt/gostcoin.cpp

@ -23,6 +23,7 @@ @@ -23,6 +23,7 @@
#include "ui_interface.h"
#include "paymentserver.h"
#include "splashscreen.h"
#include "setupdarknet.h"
#include <QMessageBox>
#if QT_VERSION < 0x050000
@ -194,7 +195,8 @@ int main(int argc, char *argv[]) @@ -194,7 +195,8 @@ int main(int argc, char *argv[])
// Gostcoin
if (!boost::filesystem::exists(GetConfigFile().string()))
{
writeFirstConfig(); // create default config
// Run wizard
runFirstRunWizard();
}
// Read config after it's potentional written by the wizard.
ReadConfigFile(mapArgs, mapMultiArgs);

63
src/qt/setupdarknet.cpp

@ -0,0 +1,63 @@ @@ -0,0 +1,63 @@
// Copyright 2013 The Anoncoin Developers
// Copyright 2017 The Gostcoin Developers
#include <QApplication>
#include <QMessageBox>
#include <QPushButton>
#include "setupdarknet.h"
#include "bitcoingui.h"
#include "util.h"
void runFirstRunWizard()
{
QString strMessage = BitcoinGUI::tr("Do you run I2P on your computer?\n"
"If so, press yes to let Gostcoin configure it's "
"connection to the I2P");
QMessageBox::StandardButton isRunningDarknet = QMessageBox::question(NULL,
BitcoinGUI::tr("Gostcoin Wizard - Step #1"), strMessage,
QMessageBox::Yes|QMessageBox::No, QMessageBox::Yes);
if (isRunningDarknet == QMessageBox::No)
{
// Tell user to download
strMessage = BitcoinGUI::tr("Do you want to install I2P, and "
"continue I2P setup?\nIf you select yes Gostcoin will quit, "
"so you can continue the wizard after installing I2P.\n"
"If you select no, Gostcoin will write a default clearnet "
"(regular internet) config file for you. (unsafe mode)\n");
QMessageBox::StandardButton wantDownloadDarknet = QMessageBox::question(NULL,
BitcoinGUI::tr("Gostcoin Wizard - Step #2"), strMessage,
QMessageBox::Yes|QMessageBox::No, QMessageBox::Yes);
if (wantDownloadDarknet == QMessageBox::No)
{
writeFirstConfig(false, false);
return;
}
QApplication::quit();
exit(7); // Exit code 7 = awaiting darknet
}
// Step #2 passed. Use I2P
FinishWizard();
}
void FinishWizard()
{
QMessageBox msgBox;
QPushButton *sharedButton = msgBox.addButton(BitcoinGUI::tr("Shared"), QMessageBox::ActionRole);
QPushButton * i2pOnlyButton = msgBox.addButton(BitcoinGUI::tr("I2P only"), QMessageBox::ActionRole);
msgBox.setText(BitcoinGUI::tr("Ok, last question!\nDo you want to run shared "
"(which means you work as a bridge between the "
"I2P and internet) or only I2P?"));
msgBox.exec();
if (msgBox.clickedButton() == i2pOnlyButton)
writeFirstConfig (true, true);
else if (msgBox.clickedButton() == sharedButton)
writeFirstConfig (false, true);
QMessageBox msgBoxThanks;
msgBoxThanks.setText(BitcoinGUI::tr("Thanks! That was all. Enjoy your wallet :)"));
msgBoxThanks.exec();
return;
}

7
src/qt/setupdarknet.h

@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
#ifndef SETUPDARKNET_H
#define SETUPDARKNET_H
void runFirstRunWizard();
void FinishWizard();
#endif

8
src/util.cpp

@ -996,13 +996,15 @@ bool writeConfig(boost::filesystem::path configFile, boost::property_tree::ptree @@ -996,13 +996,15 @@ bool writeConfig(boost::filesystem::path configFile, boost::property_tree::ptree
}
// call upon first run
bool writeFirstConfig()
bool writeFirstConfig(bool i2pOnlyEnabled, bool i2pEnabled)
{
using boost::property_tree::ptree;
ptree pt;
pt.put("onlynet", "i2p");
pt.put("i2p", 1);
if (i2pOnlyEnabled)
pt.put("onlynet", "i2p");
if (i2pEnabled)
pt.put("i2p", 1);
unsigned char rand_pwd[32];
RAND_bytes(rand_pwd, 32);
pt.put("rpcuser", "gostcoinrpc");

2
src/util.h

@ -133,7 +133,7 @@ inline void MilliSleep(int64 n) @@ -133,7 +133,7 @@ inline void MilliSleep(int64 n)
// Gostcoin
bool WriteConfig(boost::filesystem::path configFile, boost::property_tree::ptree data);
bool writeFirstConfig(); // always I2P
bool writeFirstConfig(bool i2pOnlyEnabled, bool i2pEnabled);

Loading…
Cancel
Save