From 129dcfcbd0f6811931975ea31df1dd8bf2d47364 Mon Sep 17 00:00:00 2001 From: Aditya Kulkarni Date: Thu, 25 Oct 2018 13:58:12 -0700 Subject: [PATCH] ui updates --- .gitignore | 2 +- src/mainwindow.cpp | 106 +++++++++++++++++++++++++++++++-------------- src/mainwindow.h | 1 + src/rpc.cpp | 9 ---- src/settings.cpp | 8 ++++ src/settings.h | 2 + src/turnstile.ui | 27 +++++++----- src/ui_turnstile.h | 27 +++++++----- 8 files changed, 120 insertions(+), 62 deletions(-) diff --git a/.gitignore b/.gitignore index 7c4018d..2747031 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,7 @@ src/precompiled.h.cpp .qmake.stash zec-qt-wallet zec-qt-wallet.vcxproj* -zec-qt-wallet.pro.* +zec-qt-wallet.pro.user Makefile Makefile.* qrc_application.cpp diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 9816d6a..7a8a9f9 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -26,38 +26,6 @@ MainWindow::MainWindow(QWidget *parent) : // Settings editor setupSettingsModal(); - // Turnstile migration - QObject::connect(ui->actionTurnstile_Migration, &QAction::triggered, [=] () { - Ui_Turnstile turnstile; - QDialog d(this); - turnstile.setupUi(&d); - - QIcon icon = QApplication::style()->standardIcon(QStyle::SP_MessageBoxInformation); - turnstile.msgIcon->setPixmap(icon.pixmap(64, 64)); - - turnstile.migrateZaddList->addItem("All Sprout z-Addrs"); - turnstile.migrateTo->addItem("zs1gv64eu0v2wx7raxqxlmj354y9ycznwaau9kduljzczxztvs4qcl00kn2sjxtejvrxnkucw5xx9u"); - turnstile.privLevel->addItem("Good - 3 tx over 3 days"); - turnstile.privLevel->addItem("Excellent - 5 tx over 5 days"); - turnstile.privLevel->addItem("Paranoid - 10 tx over 7 days"); - - turnstile.buttonBox->button(QDialogButtonBox::Ok)->setText("Start"); - - d.exec(); - }); - - QObject::connect(ui->actionProgress, &QAction::triggered, [=] () { - Ui_TurnstileProgress progress; - QDialog d(this); - progress.setupUi(&d); - - QIcon icon = QApplication::style()->standardIcon(QStyle::SP_MessageBoxWarning); - progress.msgIcon->setPixmap(icon.pixmap(64, 64)); - - progress.buttonBox->button(QDialogButtonBox::Cancel)->setText("Abort"); - d.exec(); - }); - // Set up exit action QObject::connect(ui->actionExit, &QAction::triggered, this, &MainWindow::close); @@ -90,6 +58,7 @@ MainWindow::MainWindow(QWidget *parent) : setupTransactionsTab(); setupRecieveTab(); setupBalancesTab(); + setupTurnstileDialog(); rpc = new RPC(new QNetworkAccessManager(this), this); rpc->refreshZECPrice(); @@ -97,6 +66,79 @@ MainWindow::MainWindow(QWidget *parent) : rpc->refresh(); } +void MainWindow::setupTurnstileDialog() { + //Turnstile t(this); + // t.planMigration( + // "ztsKtGwc7JTEHxQq1xiRWyU9o1sheA3tYjcaFTBfVtp4RKJ782U6pH9STEYUoWQiGn1epfRMmFhkWCUyCSCqByNj9HKnzKU", + // "ztbGDqgkmXQjheivgeirwEvJLD4SUNqsWCGwxwVg4YpGz1ARR8P2rXaptkT14z3NDKamcxNmQuvmvktyokMs7HkutRNSx1D" + // ); + //t.executeMigrationStep(); + + // Turnstile migration + QObject::connect(ui->actionTurnstile_Migration, &QAction::triggered, [=] () { + Ui_Turnstile turnstile; + QDialog d(this); + turnstile.setupUi(&d); + + QIcon icon = QApplication::style()->standardIcon(QStyle::SP_MessageBoxInformation); + turnstile.msgIcon->setPixmap(icon.pixmap(64, 64)); + + auto getAllSproutBalance = [=] () { + double bal = 0; + for (auto addr : *rpc->getAllZAddresses()) { + if (Settings::getInstance()->isSproutAddress(addr)) { + bal += rpc->getAllBalances()->value(addr); + } + } + + return bal; + }; + + turnstile.migrateZaddList->addItem("All Sprout z-Addrs"); + turnstile.fromBalance->setText(Settings::getInstance()->getZECUSDDisplayFormat(getAllSproutBalance())); + for (auto addr : *rpc->getAllZAddresses()) { + if (Settings::getInstance()->isSaplingAddress(addr)) { + turnstile.migrateTo->addItem(addr); + } else { + turnstile.migrateZaddList->addItem(addr); + } + } + + QObject::connect(turnstile.migrateZaddList, &QComboBox::currentTextChanged, [=] (auto addr) { + double bal = 0; + if (addr.startsWith("All")) { + bal = getAllSproutBalance(); + } else { + bal = rpc->getAllBalances()->value(addr); + } + + turnstile.fromBalance->setText(Settings::getInstance()->getZECUSDDisplayFormat(bal)); + }); + + turnstile.privLevel->addItem("Good - 3 tx over 3 days"); + turnstile.privLevel->addItem("Excellent - 5 tx over 5 days"); + turnstile.privLevel->addItem("Paranoid - 10 tx over 7 days"); + + turnstile.buttonBox->button(QDialogButtonBox::Ok)->setText("Start"); + + d.exec(); + }); + + + + QObject::connect(ui->actionProgress, &QAction::triggered, [=] () { + Ui_TurnstileProgress progress; + QDialog d(this); + progress.setupUi(&d); + + QIcon icon = QApplication::style()->standardIcon(QStyle::SP_MessageBoxWarning); + progress.msgIcon->setPixmap(icon.pixmap(64, 64)); + + progress.buttonBox->button(QDialogButtonBox::Cancel)->setText("Abort"); + d.exec(); + }); +} + void MainWindow::setupStatusBar() { // Status Bar loadingLabel = new QLabel(); diff --git a/src/mainwindow.h b/src/mainwindow.h index 6bb90a6..df17e82 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -48,6 +48,7 @@ private: void setupRecieveTab(); void setupBalancesTab(); + void setupTurnstileDialog(); void setupSettingsModal(); void setupStatusBar(); diff --git a/src/rpc.cpp b/src/rpc.cpp index cbd6d91..f3174ea 100644 --- a/src/rpc.cpp +++ b/src/rpc.cpp @@ -487,15 +487,6 @@ void RPC::refreshAddresses() { // Function to create the data model and update the views, used below. void RPC::updateUI(bool anyUnconfirmed) { - - // Temp - Turnstile t(this); - // t.planMigration( - // "ztsKtGwc7JTEHxQq1xiRWyU9o1sheA3tYjcaFTBfVtp4RKJ782U6pH9STEYUoWQiGn1epfRMmFhkWCUyCSCqByNj9HKnzKU", - // "ztbGDqgkmXQjheivgeirwEvJLD4SUNqsWCGwxwVg4YpGz1ARR8P2rXaptkT14z3NDKamcxNmQuvmvktyokMs7HkutRNSx1D" - // ); - t.executeMigrationStep(); - ui->unconfirmedWarning->setVisible(anyUnconfirmed); // Update balances model data, which will update the table too diff --git a/src/settings.cpp b/src/settings.cpp index 637b892..c7fd3a2 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -166,6 +166,14 @@ bool Settings::isSaplingAddress(QString addr) { (!isTestnet() && addr.startsWith("zs")); } +bool Settings::isSproutAddress(QString addr) { + return isZAddress(addr) && !isSaplingAddress(addr); +} + +bool Settings::isZAddress(QString addr) { + return addr.startsWith("z"); +} + bool Settings::isSyncing() { return _isSyncing; } diff --git a/src/settings.h b/src/settings.h index 5142f9d..0c08dc2 100644 --- a/src/settings.h +++ b/src/settings.h @@ -29,6 +29,8 @@ public: void setTestnet(bool isTestnet); bool isSaplingAddress(QString addr); + bool isSproutAddress(QString addr); + bool isZAddress(QString addr); bool isSyncing(); void setSyncing(bool syncing); diff --git a/src/turnstile.ui b/src/turnstile.ui index a12af05..68d9393 100644 --- a/src/turnstile.ui +++ b/src/turnstile.ui @@ -32,7 +32,7 @@ - + Total Fees @@ -42,14 +42,14 @@ - + Privacy Level - + @@ -75,7 +75,7 @@ - + @@ -88,7 +88,7 @@ - + Qt::Vertical @@ -101,14 +101,14 @@ - + 0.0004 ZEC $0.04 - + 0.0004 ZEC $0.04 @@ -131,7 +131,7 @@ - + @@ -151,7 +151,7 @@ - + @@ -164,7 +164,7 @@ - + @@ -174,6 +174,13 @@ + + + + Balance + + + diff --git a/src/ui_turnstile.h b/src/ui_turnstile.h index 8eb3566..6be4eed 100644 --- a/src/ui_turnstile.h +++ b/src/ui_turnstile.h @@ -45,6 +45,7 @@ public: QLabel *label_9; QComboBox *migrateTo; QFrame *line; + QLabel *fromBalance; QDialogButtonBox *buttonBox; void setupUi(QDialog *Turnstile) @@ -70,12 +71,12 @@ public: label_3->setObjectName(QStringLiteral("label_3")); label_3->setAlignment(Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop); - gridLayout->addWidget(label_3, 5, 0, 2, 1); + gridLayout->addWidget(label_3, 6, 0, 2, 1); label_2 = new QLabel(groupBox); label_2->setObjectName(QStringLiteral("label_2")); - gridLayout->addWidget(label_2, 4, 0, 1, 1); + gridLayout->addWidget(label_2, 5, 0, 1, 1); label_4 = new QLabel(groupBox); label_4->setObjectName(QStringLiteral("label_4")); @@ -85,7 +86,7 @@ public: sizePolicy.setHeightForWidth(label_4->sizePolicy().hasHeightForWidth()); label_4->setSizePolicy(sizePolicy); - gridLayout->addWidget(label_4, 5, 1, 1, 1); + gridLayout->addWidget(label_4, 6, 1, 1, 1); label = new QLabel(groupBox); label->setObjectName(QStringLiteral("label")); @@ -102,21 +103,21 @@ public: sizePolicy.setHeightForWidth(label_5->sizePolicy().hasHeightForWidth()); label_5->setSizePolicy(sizePolicy); - gridLayout->addWidget(label_5, 6, 1, 1, 1); + gridLayout->addWidget(label_5, 7, 1, 1, 1); verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding); - gridLayout->addItem(verticalSpacer, 7, 0, 1, 2); + gridLayout->addItem(verticalSpacer, 8, 0, 1, 2); label_6 = new QLabel(groupBox); label_6->setObjectName(QStringLiteral("label_6")); - gridLayout->addWidget(label_6, 5, 2, 1, 1); + gridLayout->addWidget(label_6, 6, 2, 1, 1); label_7 = new QLabel(groupBox); label_7->setObjectName(QStringLiteral("label_7")); - gridLayout->addWidget(label_7, 6, 2, 1, 1); + gridLayout->addWidget(label_7, 7, 2, 1, 1); migrateZaddList = new QComboBox(groupBox); migrateZaddList->setObjectName(QStringLiteral("migrateZaddList")); @@ -134,7 +135,7 @@ public: sizePolicy2.setHeightForWidth(privLevel->sizePolicy().hasHeightForWidth()); privLevel->setSizePolicy(sizePolicy2); - gridLayout->addWidget(privLevel, 4, 1, 1, 2); + gridLayout->addWidget(privLevel, 5, 1, 1, 2); label_8 = new QLabel(groupBox); label_8->setObjectName(QStringLiteral("label_8")); @@ -147,12 +148,12 @@ public: sizePolicy1.setHeightForWidth(label_9->sizePolicy().hasHeightForWidth()); label_9->setSizePolicy(sizePolicy1); - gridLayout->addWidget(label_9, 3, 0, 1, 1); + gridLayout->addWidget(label_9, 4, 0, 1, 1); migrateTo = new QComboBox(groupBox); migrateTo->setObjectName(QStringLiteral("migrateTo")); - gridLayout->addWidget(migrateTo, 3, 1, 1, 2); + gridLayout->addWidget(migrateTo, 4, 1, 1, 2); line = new QFrame(groupBox); line->setObjectName(QStringLiteral("line")); @@ -161,6 +162,11 @@ public: gridLayout->addWidget(line, 1, 0, 1, 3); + fromBalance = new QLabel(groupBox); + fromBalance->setObjectName(QStringLiteral("fromBalance")); + + gridLayout->addWidget(fromBalance, 3, 1, 1, 1); + verticalLayout_2->addLayout(gridLayout); @@ -197,6 +203,7 @@ public: migrateZaddList->setCurrentText(QString()); label_8->setText(QApplication::translate("Turnstile", "

Funds from Sprout z-Addresses (which start with "zc") need to be moved to the upgraded Sapling z-Addresses (which start with "zs"). The funds cannot be moved directly, but need to be sent through intermediate "transparent" addresses in privacy-preserving way.

This migration can be done automatically for you.

", nullptr)); label_9->setText(QApplication::translate("Turnstile", "To", nullptr)); + fromBalance->setText(QApplication::translate("Turnstile", "Balance", nullptr)); } // retranslateUi };