Auto detect testnet and mainnet ports
This commit is contained in:
parent
c40785ce28
commit
402b80d289
|
@ -1,4 +1,5 @@
|
|||
#include "mainwindow.h"
|
||||
#include "settings.h"
|
||||
#include "precompiled.h"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
|
@ -19,6 +20,7 @@ int main(int argc, char *argv[])
|
|||
QCoreApplication::setOrganizationDomain("adityapk.com");
|
||||
QCoreApplication::setApplicationName("zcash-qt-wallet");
|
||||
|
||||
Settings::init();
|
||||
|
||||
MainWindow w;
|
||||
w.setWindowTitle("zcash-qt-wallet v" + QString(APP_VERSION));
|
||||
|
|
|
@ -17,9 +17,6 @@ MainWindow::MainWindow(QWidget *parent) :
|
|||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
// Load settings
|
||||
settings = new Settings();
|
||||
|
||||
// Status Bar
|
||||
loadingLabel = new QLabel();
|
||||
loadingMovie = new QMovie(":/icons/res/loading.gif");
|
||||
|
@ -47,23 +44,22 @@ MainWindow::MainWindow(QWidget *parent) :
|
|||
settings.port->setValidator(&validator);
|
||||
|
||||
// Load previous values into the dialog
|
||||
settings.hostname ->setText(this->getSettings()->getHost());
|
||||
settings.port ->setText(this->getSettings()->getPort());
|
||||
settings.rpcuser ->setText(this->getSettings()->getUsernamePassword().split(":")[0]);
|
||||
settings.rpcpassword->setText(this->getSettings()->getUsernamePassword().split(":")[1]);
|
||||
settings.hostname ->setText(Settings::getInstance()->getHost());
|
||||
settings.port ->setText(Settings::getInstance()->getPort());
|
||||
settings.rpcuser ->setText(Settings::getInstance()->getUsernamePassword().split(":")[0]);
|
||||
settings.rpcpassword->setText(Settings::getInstance()->getUsernamePassword().split(":")[1]);
|
||||
|
||||
if (settingsDialog.exec() == QDialog::Accepted) {
|
||||
// Save settings
|
||||
QSettings s;
|
||||
s.setValue("connection/host", settings.hostname->text());
|
||||
s.setValue("connection/port", settings.port->text());
|
||||
s.setValue("connection/rpcuser", settings.rpcuser->text());
|
||||
s.setValue("connection/rpcpassword", settings.rpcpassword->text());
|
||||
s.setValue("connection/host", settings.hostname->text());
|
||||
s.setValue("connection/port", settings.port->text());
|
||||
s.setValue("connection/rpcuser", settings.rpcuser->text());
|
||||
s.setValue("connection/rpcpassword", settings.rpcpassword->text());
|
||||
|
||||
s.sync();
|
||||
|
||||
// Then refresh everything
|
||||
this->getSettings()->refresh();
|
||||
// Then refresh everything.
|
||||
this->rpc->reloadConnectionInfo();
|
||||
this->rpc->refresh();
|
||||
};
|
||||
|
@ -75,6 +71,8 @@ MainWindow::MainWindow(QWidget *parent) :
|
|||
// Set up donate action
|
||||
QObject::connect(ui->actionDonate, &QAction::triggered, this, &MainWindow::donate);
|
||||
|
||||
QObject::connect(ui->actionImport_Private_Keys, &QAction::triggered, this, &MainWindow::importPrivKeys);
|
||||
|
||||
// Set up about action
|
||||
QObject::connect(ui->actionAbout, &QAction::triggered, [=] () {
|
||||
QDialog aboutDialog(this);
|
||||
|
@ -111,6 +109,28 @@ void MainWindow::donate() {
|
|||
ui->tabWidget->setCurrentIndex(1);
|
||||
}
|
||||
|
||||
void MainWindow::importPrivKeys() {
|
||||
bool ok;
|
||||
QString text = QInputDialog::getMultiLineText(
|
||||
this, "Import Private Keys",
|
||||
QString() +
|
||||
"Please paste your private keys (zAddr or tAddr) here, one per line.\n" +
|
||||
"The keys will be imported into your connected zcashd node",
|
||||
"", &ok);
|
||||
if (ok && !text.isEmpty()) {
|
||||
auto keys = text.split("\n");
|
||||
for (int i=0; i < keys.length(); i++) {
|
||||
auto key = keys[i].trimmed();
|
||||
if (key.startsWith("S") ||
|
||||
key.startsWith("secret")) { // Z key
|
||||
|
||||
} else { // T Key
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::setupBalancesTab() {
|
||||
ui->unconfirmedWarning->setVisible(false);
|
||||
|
||||
|
@ -292,10 +312,6 @@ void MainWindow::setupRecieveTab() {
|
|||
|
||||
}
|
||||
|
||||
Settings* MainWindow::getSettings() {
|
||||
return settings;
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow()
|
||||
{
|
||||
delete ui;
|
||||
|
|
|
@ -19,8 +19,6 @@ public:
|
|||
explicit MainWindow(QWidget *parent = nullptr);
|
||||
~MainWindow();
|
||||
|
||||
Settings* getSettings();
|
||||
|
||||
Ui::MainWindow* ui;
|
||||
|
||||
QLabel* statusLabel;
|
||||
|
@ -45,6 +43,7 @@ private:
|
|||
QString doSendTxValidations(QString fromAddr, QList<QPair<QString, double>> toAddrs);
|
||||
|
||||
void donate();
|
||||
void importPrivKeys();
|
||||
|
||||
RPC* rpc;
|
||||
Settings* settings;
|
||||
|
|
|
@ -222,11 +222,33 @@
|
|||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="sendAddressBalance">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_6">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
|
@ -622,6 +644,8 @@
|
|||
<property name="title">
|
||||
<string>File</string>
|
||||
</property>
|
||||
<addaction name="actionImport_Private_Keys"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionSettings"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionExit"/>
|
||||
|
@ -657,6 +681,11 @@
|
|||
<string>Donate</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionImport_Private_Keys">
|
||||
<property name="text">
|
||||
<string>Import Private Keys</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<layoutdefault spacing="6" margin="11"/>
|
||||
<tabstops>
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include <QPushButton>
|
||||
#include <QLabel>
|
||||
#include <QDialog>
|
||||
#include <QInputDialog>
|
||||
#include <QDebug>
|
||||
#include <QUrl>
|
||||
#include <QtNetwork/QNetworkRequest>
|
||||
|
|
27
src/rpc.cpp
27
src/rpc.cpp
|
@ -60,13 +60,13 @@ void RPC::reloadConnectionInfo() {
|
|||
|
||||
QUrl myurl;
|
||||
myurl.setScheme("http"); //https also applicable
|
||||
myurl.setHost(main->getSettings()->getHost());
|
||||
myurl.setPort(main->getSettings()->getPort().toInt());
|
||||
myurl.setHost(Settings::getInstance()->getHost());
|
||||
myurl.setPort(Settings::getInstance()->getPort().toInt());
|
||||
|
||||
request.setUrl(myurl);
|
||||
request.setHeader(QNetworkRequest::ContentTypeHeader, "text/plain");
|
||||
|
||||
QString headerData = "Basic " + main->getSettings()->getUsernamePassword().toLocal8Bit().toBase64();
|
||||
QString headerData = "Basic " + Settings::getInstance()->getUsernamePassword().toLocal8Bit().toBase64();
|
||||
request.setRawHeader("Authorization", headerData.toLocal8Bit());
|
||||
}
|
||||
|
||||
|
@ -385,6 +385,22 @@ void RPC::refreshBalances() {
|
|||
|
||||
void RPC::refreshTransactions() {
|
||||
auto txdata = new QList<TransactionItem>();
|
||||
/*
|
||||
auto getZReceivedTransactions = ([=] (const json& reply) {
|
||||
for (auto& it : reply.get<json::array_t>()) {
|
||||
TransactionItem tx(
|
||||
QString("receive"),
|
||||
QDateTime::fromSecsSinceEpoch(it["time"].get<json::number_unsigned_t>()).toLocalTime().toString(),
|
||||
(it["address"].is_null() ? "" : QString::fromStdString(it["address"])),
|
||||
QString::fromStdString(it["txid"]),
|
||||
it["amount"].get<json::number_float_t>(),
|
||||
it["confirmations"].get<json::number_float_t>()
|
||||
);
|
||||
|
||||
txdata->push_front(tx);
|
||||
}
|
||||
});
|
||||
*/
|
||||
|
||||
getTransactions([=] (json reply) {
|
||||
for (auto& it : reply.get<json::array_t>()) {
|
||||
|
@ -426,7 +442,10 @@ void RPC::refreshTxStatus(const QString& newOpid) {
|
|||
// And if it ended up successful
|
||||
QString status = QString::fromStdString(it["status"]);
|
||||
if (status == "success") {
|
||||
main->ui->statusBar->showMessage(" Tx " % id % " computed successfully and submitted");
|
||||
auto txid = QString::fromStdString(it["result"]["txid"]);
|
||||
qDebug() << "Tx complete. txid " << txid;
|
||||
QGuiApplication::clipboard()->setText(txid);
|
||||
main->ui->statusBar->showMessage("Tx completed! Txid copied to clipboard (" + txid + ")");
|
||||
main->loadingLabel->setVisible(false);
|
||||
|
||||
watchingOps.remove(id);
|
||||
|
|
|
@ -4,36 +4,43 @@ if [ -z $QT_STATIC ]; then echo "QT_STATIC is not set"; exit 1; fi
|
|||
if [ -z $APP_VERSION ]; then echo "APP_VERSION is not set"; exit 1; fi
|
||||
if [ -z $PREV_VERSION ]; then echo "PREV_VERSION is not set"; exit 1; fi
|
||||
|
||||
echo "Updating version numbers"
|
||||
echo -n "Version files."
|
||||
# Replace the version number in the .pro file so it gets picked up everywhere
|
||||
sed -i "s/${PREV_VERSION}/${APP_VERSION}/g" zcash-qt-wallet.pro > /dev/null
|
||||
|
||||
# Also update it in the README.md
|
||||
sed -i "s/${PREV_VERSION}/${APP_VERSION}/g" README.md > /dev/null
|
||||
echo "[OK]"
|
||||
|
||||
echo "Configuring"
|
||||
|
||||
echo -n "Configuring..."
|
||||
make distclean > /dev/null
|
||||
$QT_STATIC/bin/qmake zcash-qt-wallet.pro -spec linux-clang CONFIG+=release > /dev/null
|
||||
echo "[OK]"
|
||||
|
||||
echo "Building"
|
||||
|
||||
echo -n "Building......"
|
||||
rm -rf bin/zcash-qt-wallet* > /dev/null
|
||||
make -j$(nproc) > /dev/null
|
||||
echo "[OK]"
|
||||
|
||||
|
||||
# Test for Qt
|
||||
echo "Testing for no Qt"
|
||||
|
||||
echo -n "Static link..."
|
||||
if [[ $(ldd zcash-qt-wallet | grep -i "Qt") ]]; then
|
||||
echo "FOUND QT; ABORT";
|
||||
exit 1
|
||||
else
|
||||
echo "No Qt found"
|
||||
fi
|
||||
echo "[OK]"
|
||||
|
||||
echo "Packaging"
|
||||
|
||||
echo -n "Packaging....."
|
||||
mkdir bin/zcash-qt-wallet-v$APP_VERSION > /dev/null
|
||||
cp zcash-qt-wallet bin/zcash-qt-wallet-v$APP_VERSION > /dev/null
|
||||
cp README.md bin/zcash-qt-wallet-v$APP_VERSION > /dev/null
|
||||
cp LICENSE bin/zcash-qt-wallet-v$APP_VERSION > /dev/null
|
||||
cd bin && tar cvf zcash-qt-wallet-v$APP_VERSION.tar.gz zcash-qt-wallet-v$APP_VERSION/ > /dev/null
|
||||
cd bin && tar cvf linux-zcash-qt-wallet-v$APP_VERSION.tar.gz zcash-qt-wallet-v$APP_VERSION/ > /dev/null
|
||||
echo "[OK]"
|
||||
|
||||
echo "Done"
|
||||
|
||||
echo "Done. Build is bin/linux-zcash-qt-wallet-v$APP_VERSION.tar.gz"
|
|
@ -24,6 +24,6 @@ Copy-Item LICENSE release/$target | Out-Null
|
|||
Copy-Item README.md release/$target | Out-Null
|
||||
|
||||
echo "Zipping"
|
||||
Compress-Archive -LiteralPath release/$target -DestinationPath "release/$target.zip"
|
||||
Compress-Archive -LiteralPath release/$target -DestinationPath "release/Windows-$target.zip"
|
||||
|
||||
echo "Done"
|
|
@ -252,7 +252,6 @@ void MainWindow::sendButton() {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
// Add sender
|
||||
json params = json::array();
|
||||
params.push_back(fromAddr.toStdString());
|
||||
|
|
100
src/settings.cpp
100
src/settings.cpp
|
@ -2,9 +2,24 @@
|
|||
|
||||
#include "settings.h"
|
||||
|
||||
Settings::Settings()
|
||||
{
|
||||
refresh();
|
||||
Settings* Settings::instance = nullptr;
|
||||
|
||||
Settings* Settings::init() {
|
||||
if (instance != nullptr) return instance;
|
||||
|
||||
instance = new Settings();
|
||||
|
||||
// Load from settings first, because if they are redefined in the zcash.conf file,
|
||||
// we'll overwrite them.
|
||||
instance->loadFromSettings();
|
||||
// Overwrite if any are defined in the zcash.conf
|
||||
instance->loadFromFile();
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
||||
Settings* Settings::getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
QString Settings::getHost() {
|
||||
|
@ -25,43 +40,56 @@ QString Settings::getUsernamePassword() {
|
|||
return username % ":" % password;
|
||||
}
|
||||
|
||||
void Settings::refresh() {
|
||||
// First step is to try and load from the QT Settings
|
||||
void Settings::loadFromSettings() {
|
||||
// First step is to try and load from the QT Settings. These are loaded first, because
|
||||
// they could be overridden by whats in the zcash.conf, which will take precedence.
|
||||
QSettings s;
|
||||
|
||||
host = s.value("connection/host", "127.0.0.1" ).toString();
|
||||
port = s.value("connection/port", "8232" ).toString();
|
||||
username = s.value("connection/rpcuser", "" ).toString();
|
||||
password = s.value("connection/rpcpassword", "" ).toString();
|
||||
|
||||
if (username == "") {
|
||||
// Nothing in QT Settings, so try to read from file.
|
||||
QString zcashdconf = QStandardPaths::locate(QStandardPaths::HomeLocation, ".zcash/zcash.conf");
|
||||
if (zcashdconf.isNull()) {
|
||||
// No zcash file, just return with nothing
|
||||
return;
|
||||
}
|
||||
password = s.value("connection/rpcpassword", "" ).toString();
|
||||
}
|
||||
|
||||
QFile file(zcashdconf);
|
||||
if (!file.open(QIODevice::ReadOnly)) {
|
||||
qDebug() << file.errorString();
|
||||
return;
|
||||
}
|
||||
|
||||
QTextStream in(&file);
|
||||
|
||||
while (!in.atEnd()) {
|
||||
QString line = in.readLine();
|
||||
QStringList fields = line.split("=");
|
||||
|
||||
if (fields[0].trimmed().toLower() == "rpcuser") {
|
||||
username = fields[1].trimmed();
|
||||
}
|
||||
if (fields[0].trimmed().toLower() == "rpcpassword") {
|
||||
password = fields[1].trimmed();
|
||||
}
|
||||
}
|
||||
|
||||
file.close();
|
||||
void Settings::loadFromFile() {
|
||||
// Nothing in QT Settings, so try to read from file.
|
||||
QString zcashdconf = QStandardPaths::locate(QStandardPaths::HomeLocation, ".zcash/zcash.conf");
|
||||
if (zcashdconf.isNull()) {
|
||||
// No zcash file, just return with nothing
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
QFile file(zcashdconf);
|
||||
if (!file.open(QIODevice::ReadOnly)) {
|
||||
qDebug() << file.errorString();
|
||||
return;
|
||||
}
|
||||
|
||||
// If file was found, then setup some defaults
|
||||
overridePort = "8232";
|
||||
|
||||
QTextStream in(&file);
|
||||
|
||||
while (!in.atEnd()) {
|
||||
QString line = in.readLine();
|
||||
QStringList fields = line.split("=");
|
||||
|
||||
if (fields[0].trimmed().toLower() == "rpcuser") {
|
||||
username = fields[1].trimmed();
|
||||
}
|
||||
if (fields[0].trimmed().toLower() == "rpcpassword") {
|
||||
password = fields[1].trimmed();
|
||||
}
|
||||
if (fields[0].trimmed().toLower() == "rpcport") {
|
||||
overridePort = fields[1].trimmed();
|
||||
}
|
||||
if (fields[0].trimmed().toLower() == "testnet" &&
|
||||
fields[1].trimmed() == "1" &&
|
||||
overridePort.isEmpty()) {
|
||||
overridePort = "18232";
|
||||
}
|
||||
}
|
||||
|
||||
file.close();
|
||||
|
||||
}
|
||||
|
|
|
@ -6,7 +6,8 @@
|
|||
class Settings
|
||||
{
|
||||
public:
|
||||
Settings();
|
||||
static Settings* init();
|
||||
static Settings* getInstance();
|
||||
|
||||
QString getUsernamePassword();
|
||||
QString getHost();
|
||||
|
@ -15,8 +16,13 @@ public:
|
|||
void setDefaultPort(int port) {overridePort = QString::number(port);}
|
||||
|
||||
double fees() { return 0.0001; }
|
||||
void refresh();
|
||||
void loadFromSettings();
|
||||
void loadFromFile();
|
||||
private:
|
||||
// This class can only be accessed through Settings::getInstance()
|
||||
Settings() = default;
|
||||
|
||||
static Settings* instance;
|
||||
|
||||
QString host;
|
||||
QString port;
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>400</width>
|
||||
<height>362</height>
|
||||
<width>441</width>
|
||||
<height>430</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
|
@ -38,7 +38,7 @@
|
|||
<property name="leftMargin">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<item row="4" column="0">
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
|
@ -51,10 +51,10 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<item row="7" column="0">
|
||||
<widget class="QLineEdit" name="rpcuser"/>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
|
@ -67,21 +67,21 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<item row="3" column="0">
|
||||
<widget class="QLineEdit" name="hostname">
|
||||
<property name="placeholderText">
|
||||
<string>127.0.0.1</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<item row="5" column="0">
|
||||
<widget class="QLineEdit" name="port">
|
||||
<property name="placeholderText">
|
||||
<string>8232</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<item row="8" column="0">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
|
@ -94,10 +94,10 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="0">
|
||||
<item row="9" column="0">
|
||||
<widget class="QLineEdit" name="rpcpassword"/>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
|
@ -110,6 +110,20 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string><html><head/><body><p>Values configured in ~/.zcash/zcash.conf <br/>will overwrite these values</p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="Line" name="line">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
|
@ -45,6 +45,7 @@ public:
|
|||
QAction *actionAbout;
|
||||
QAction *actionSettings;
|
||||
QAction *actionDonate;
|
||||
QAction *actionImport_Private_Keys;
|
||||
QWidget *centralWidget;
|
||||
QGridLayout *gridLayout_3;
|
||||
QTabWidget *tabWidget;
|
||||
|
@ -78,6 +79,7 @@ public:
|
|||
QHBoxLayout *horizontalLayout_15;
|
||||
QLabel *label_5;
|
||||
QLineEdit *sendAddressBalance;
|
||||
QSpacerItem *horizontalSpacer_6;
|
||||
QGroupBox *groupBox_3;
|
||||
QVBoxLayout *verticalLayout_3;
|
||||
QScrollArea *sendToScrollArea;
|
||||
|
@ -148,6 +150,8 @@ public:
|
|||
actionSettings->setObjectName(QStringLiteral("actionSettings"));
|
||||
actionDonate = new QAction(MainWindow);
|
||||
actionDonate->setObjectName(QStringLiteral("actionDonate"));
|
||||
actionImport_Private_Keys = new QAction(MainWindow);
|
||||
actionImport_Private_Keys->setObjectName(QStringLiteral("actionImport_Private_Keys"));
|
||||
centralWidget = new QWidget(MainWindow);
|
||||
centralWidget->setObjectName(QStringLiteral("centralWidget"));
|
||||
gridLayout_3 = new QGridLayout(centralWidget);
|
||||
|
@ -312,10 +316,20 @@ public:
|
|||
|
||||
sendAddressBalance = new QLineEdit(groupBox_4);
|
||||
sendAddressBalance->setObjectName(QStringLiteral("sendAddressBalance"));
|
||||
QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
|
||||
sizePolicy.setHorizontalStretch(0);
|
||||
sizePolicy.setVerticalStretch(0);
|
||||
sizePolicy.setHeightForWidth(sendAddressBalance->sizePolicy().hasHeightForWidth());
|
||||
sendAddressBalance->setSizePolicy(sizePolicy);
|
||||
sendAddressBalance->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
|
||||
sendAddressBalance->setReadOnly(true);
|
||||
|
||||
horizontalLayout_15->addWidget(sendAddressBalance);
|
||||
|
||||
horizontalSpacer_6 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
|
||||
|
||||
horizontalLayout_15->addItem(horizontalSpacer_6);
|
||||
|
||||
|
||||
verticalLayout_6->addLayout(horizontalLayout_15);
|
||||
|
||||
|
@ -508,9 +522,6 @@ public:
|
|||
|
||||
rdioTAddr = new QRadioButton(groupBox_6);
|
||||
rdioTAddr->setObjectName(QStringLiteral("rdioTAddr"));
|
||||
QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
|
||||
sizePolicy.setHorizontalStretch(0);
|
||||
sizePolicy.setVerticalStretch(0);
|
||||
sizePolicy.setHeightForWidth(rdioTAddr->sizePolicy().hasHeightForWidth());
|
||||
rdioTAddr->setSizePolicy(sizePolicy);
|
||||
|
||||
|
@ -622,6 +633,8 @@ public:
|
|||
|
||||
menuBar->addAction(menuBalance->menuAction());
|
||||
menuBar->addAction(menuHelp->menuAction());
|
||||
menuBalance->addAction(actionImport_Private_Keys);
|
||||
menuBalance->addSeparator();
|
||||
menuBalance->addAction(actionSettings);
|
||||
menuBalance->addSeparator();
|
||||
menuBalance->addAction(actionExit);
|
||||
|
@ -643,6 +656,7 @@ public:
|
|||
actionAbout->setText(QApplication::translate("MainWindow", "About", nullptr));
|
||||
actionSettings->setText(QApplication::translate("MainWindow", "Settings", nullptr));
|
||||
actionDonate->setText(QApplication::translate("MainWindow", "Donate", nullptr));
|
||||
actionImport_Private_Keys->setText(QApplication::translate("MainWindow", "Import Private Keys", nullptr));
|
||||
groupBox->setTitle(QApplication::translate("MainWindow", "Summary", nullptr));
|
||||
label->setText(QApplication::translate("MainWindow", "Shielded", nullptr));
|
||||
balSheilded->setText(QString());
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
#include <QtWidgets/QApplication>
|
||||
#include <QtWidgets/QDialog>
|
||||
#include <QtWidgets/QDialogButtonBox>
|
||||
#include <QtWidgets/QFrame>
|
||||
#include <QtWidgets/QGridLayout>
|
||||
#include <QtWidgets/QGroupBox>
|
||||
#include <QtWidgets/QLabel>
|
||||
|
@ -42,6 +43,8 @@ public:
|
|||
QLabel *label_4;
|
||||
QLineEdit *rpcpassword;
|
||||
QLabel *label_2;
|
||||
QLabel *label_5;
|
||||
QFrame *line;
|
||||
QSpacerItem *verticalSpacer;
|
||||
QDialogButtonBox *buttonBox;
|
||||
|
||||
|
@ -49,7 +52,7 @@ public:
|
|||
{
|
||||
if (Settings->objectName().isEmpty())
|
||||
Settings->setObjectName(QStringLiteral("Settings"));
|
||||
Settings->resize(400, 362);
|
||||
Settings->resize(441, 430);
|
||||
Settings->setModal(true);
|
||||
verticalLayout = new QVBoxLayout(Settings);
|
||||
verticalLayout->setObjectName(QStringLiteral("verticalLayout"));
|
||||
|
@ -70,45 +73,57 @@ public:
|
|||
label_3->setObjectName(QStringLiteral("label_3"));
|
||||
label_3->setMinimumSize(QSize(60, 0));
|
||||
|
||||
gridLayout->addWidget(label_3, 4, 0, 1, 1);
|
||||
gridLayout->addWidget(label_3, 6, 0, 1, 1);
|
||||
|
||||
rpcuser = new QLineEdit(groupBox);
|
||||
rpcuser->setObjectName(QStringLiteral("rpcuser"));
|
||||
|
||||
gridLayout->addWidget(rpcuser, 5, 0, 1, 1);
|
||||
gridLayout->addWidget(rpcuser, 7, 0, 1, 1);
|
||||
|
||||
label = new QLabel(groupBox);
|
||||
label->setObjectName(QStringLiteral("label"));
|
||||
label->setMinimumSize(QSize(60, 0));
|
||||
|
||||
gridLayout->addWidget(label, 0, 0, 1, 1);
|
||||
gridLayout->addWidget(label, 2, 0, 1, 1);
|
||||
|
||||
hostname = new QLineEdit(groupBox);
|
||||
hostname->setObjectName(QStringLiteral("hostname"));
|
||||
|
||||
gridLayout->addWidget(hostname, 1, 0, 1, 1);
|
||||
gridLayout->addWidget(hostname, 3, 0, 1, 1);
|
||||
|
||||
port = new QLineEdit(groupBox);
|
||||
port->setObjectName(QStringLiteral("port"));
|
||||
|
||||
gridLayout->addWidget(port, 3, 0, 1, 1);
|
||||
gridLayout->addWidget(port, 5, 0, 1, 1);
|
||||
|
||||
label_4 = new QLabel(groupBox);
|
||||
label_4->setObjectName(QStringLiteral("label_4"));
|
||||
label_4->setMinimumSize(QSize(60, 0));
|
||||
|
||||
gridLayout->addWidget(label_4, 6, 0, 1, 1);
|
||||
gridLayout->addWidget(label_4, 8, 0, 1, 1);
|
||||
|
||||
rpcpassword = new QLineEdit(groupBox);
|
||||
rpcpassword->setObjectName(QStringLiteral("rpcpassword"));
|
||||
|
||||
gridLayout->addWidget(rpcpassword, 7, 0, 1, 1);
|
||||
gridLayout->addWidget(rpcpassword, 9, 0, 1, 1);
|
||||
|
||||
label_2 = new QLabel(groupBox);
|
||||
label_2->setObjectName(QStringLiteral("label_2"));
|
||||
label_2->setMinimumSize(QSize(60, 0));
|
||||
|
||||
gridLayout->addWidget(label_2, 2, 0, 1, 1);
|
||||
gridLayout->addWidget(label_2, 4, 0, 1, 1);
|
||||
|
||||
label_5 = new QLabel(groupBox);
|
||||
label_5->setObjectName(QStringLiteral("label_5"));
|
||||
|
||||
gridLayout->addWidget(label_5, 0, 0, 1, 1);
|
||||
|
||||
line = new QFrame(groupBox);
|
||||
line->setObjectName(QStringLiteral("line"));
|
||||
line->setFrameShape(QFrame::HLine);
|
||||
line->setFrameShadow(QFrame::Sunken);
|
||||
|
||||
gridLayout->addWidget(line, 1, 0, 1, 1);
|
||||
|
||||
|
||||
verticalLayout_2->addWidget(groupBox);
|
||||
|
@ -156,6 +171,7 @@ public:
|
|||
port->setPlaceholderText(QApplication::translate("Settings", "8232", nullptr));
|
||||
label_4->setText(QApplication::translate("Settings", "RPC Password", nullptr));
|
||||
label_2->setText(QApplication::translate("Settings", "Port", nullptr));
|
||||
label_5->setText(QApplication::translate("Settings", "<html><head/><body><p>Values configured in ~/.zcash/zcash.conf <br/>will overwrite these values</p></body></html>", nullptr));
|
||||
tabWidget->setTabText(tabWidget->indexOf(tab), QApplication::translate("Settings", "Connection", nullptr));
|
||||
} // retranslateUi
|
||||
|
||||
|
|
Loading…
Reference in New Issue