From 5fc905c9266ba05d2c7cf7331740d62b16028529 Mon Sep 17 00:00:00 2001 From: Aditya Kulkarni Date: Tue, 6 Nov 2018 15:00:10 -0800 Subject: [PATCH] zcashd pane on main tab widget --- application.qrc | 5 +- res/zcashdlogo.gif | Bin 0 -> 4270 bytes src/connection.cpp | 1 + src/fillediconlabel.cpp | 15 ++-- src/fillediconlabel.h | 3 + src/mainwindow.cpp | 5 ++ src/mainwindow.h | 1 + src/mainwindow.ui | 156 ++++++++++++++++++++++++++++++++++++++-- src/rpc.cpp | 22 ++++++ src/rpc.h | 1 + 10 files changed, 196 insertions(+), 13 deletions(-) create mode 100644 res/zcashdlogo.gif diff --git a/application.qrc b/application.qrc index 1b2fcc7..29f23df 100644 --- a/application.qrc +++ b/application.qrc @@ -6,5 +6,8 @@ res/connected.png res/loading.gif res/icon.ico - + + + res/zcashdlogo.gif + diff --git a/res/zcashdlogo.gif b/res/zcashdlogo.gif new file mode 100644 index 0000000000000000000000000000000000000000..431e4fc20e56a09c10731e78387a5b09e3668634 GIT binary patch literal 4270 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 Q+`=$?y&oLIH4y;-JJ8X46aWAK literal 0 HcmV?d00001 diff --git a/src/connection.cpp b/src/connection.cpp index f692ca2..40d61bf 100644 --- a/src/connection.cpp +++ b/src/connection.cpp @@ -15,6 +15,7 @@ ConnectionLoader::ConnectionLoader(MainWindow* main, RPC* rpc) { d = new QDialog(main); connD = new Ui_ConnectionDialog(); connD->setupUi(d); + connD->topIcon->setBasePixmap(QIcon(":/icons/res/icon.ico").pixmap(256, 256)); // Center on screen QRect screenGeometry = QApplication::desktop()->screenGeometry(d); diff --git a/src/fillediconlabel.cpp b/src/fillediconlabel.cpp index a04447a..9b5d9cf 100644 --- a/src/fillediconlabel.cpp +++ b/src/fillediconlabel.cpp @@ -6,17 +6,20 @@ FilledIconLabel::FilledIconLabel(QWidget* parent) : setScaledContents(false); } +void FilledIconLabel::setBasePixmap(QPixmap pm) { + basePm = pm; +} void FilledIconLabel::resizeEvent(QResizeEvent*) { - // Top pixmap - QIcon icon(":/icons/res/icon.ico"); - QSize sz = size(); - qDebug() << sz; + // Top pixmap + QSize sz = size(); + + QPixmap scaled = basePm.scaled(sz, Qt::KeepAspectRatio, Qt::SmoothTransformation); + QPixmap p(sz); p.fill(Qt::white); QPainter painter(&p); - painter.drawPixmap((sz.width() - sz.height()) / 2, 0, - icon.pixmap(sz.height(), sz.height())); + painter.drawPixmap((sz.width() - scaled.width()) / 2, (sz.height() - scaled.height()) / 2, scaled); QLabel::setPixmap(p); } \ No newline at end of file diff --git a/src/fillediconlabel.h b/src/fillediconlabel.h index a910796..d5de800 100644 --- a/src/fillediconlabel.h +++ b/src/fillediconlabel.h @@ -8,10 +8,13 @@ class FilledIconLabel : public QLabel Q_OBJECT public: explicit FilledIconLabel(QWidget *parent = 0); + void setBasePixmap(QPixmap pm); public slots: void resizeEvent(QResizeEvent *); +private: + QPixmap basePm; }; diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 2e92c10..fd489dd 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -75,6 +75,7 @@ MainWindow::MainWindow(QWidget *parent) : setupRecieveTab(); setupBalancesTab(); setupTurnstileDialog(); + setupZcashdTab(); rpc = new RPC(this); @@ -700,6 +701,10 @@ void MainWindow::setupBalancesTab() { }); } +void MainWindow::setupZcashdTab() { + ui->zcashdlogo->setBasePixmap(QPixmap(":/img/res/zcashdlogo.gif")); +} + void MainWindow::setupTransactionsTab() { // Set up context menu on transactions tab ui->transactionsTable->setContextMenuPolicy(Qt::CustomContextMenu); diff --git a/src/mainwindow.h b/src/mainwindow.h index 4f5005c..e634a37 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -49,6 +49,7 @@ private: void setupTransactionsTab(); void setupRecieveTab(); void setupBalancesTab(); + void setupZcashdTab(); void setupTurnstileDialog(); void setupSettingsModal(); diff --git a/src/mainwindow.ui b/src/mainwindow.ui index 838cd52..4f22232 100644 --- a/src/mainwindow.ui +++ b/src/mainwindow.ui @@ -6,8 +6,8 @@ 0 0 - 889 - 603 + 968 + 616 @@ -22,7 +22,7 @@ - 1 + 4 @@ -316,8 +316,8 @@ 0 0 - 841 - 321 + 920 + 334 @@ -715,6 +715,145 @@ + + + zcashd + + + + + + + + + 0 + 0 + + + + + + + false + + + + + + + + + + + + + You are currently not mining + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + TextLabel + + + + + + + Block Height + + + + + + + TextLabel + + + + + + + Network Solution Rate + + + + + + + Connections + + + + + + + TextLabel + + + + + + + Qt::Horizontal + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + | + + + + + + + | + + + + + + + | + + + + + + + + + + @@ -724,7 +863,7 @@ 0 0 - 889 + 968 22 @@ -835,6 +974,11 @@ QLabel
qrcodelabel.h
+ + FilledIconLabel + QLabel +
fillediconlabel.h
+
tabWidget diff --git a/src/rpc.cpp b/src/rpc.cpp index 4155828..022fba1 100644 --- a/src/rpc.cpp +++ b/src/rpc.cpp @@ -477,6 +477,28 @@ void RPC::getInfoThenRefresh(bool force) { refreshTransactions(); } + // Get network sol/s + if (ezcashd != nullptr) { + int conns = reply["connections"].get(); + + json payload = { + {"jsonrpc", "1.0"}, + {"id", "someid"}, + {"method", "getnetworksolps"} + }; + + conn->doRPCIgnoreError(payload, [=](const json& reply) { + qint64 solrate = reply.get(); + + ui->blockheight->setText(QString::number(curBlock)); + ui->numconnections->setText(QString::number(conns)); + ui->solrate->setText(QString::number(solrate) % " Sol/s"); + }); + } else { + ui->tabWidget->removeTab(4); + } + + // Call to see if the blockchain is syncing. json payload = { {"jsonrpc", "1.0"}, diff --git a/src/rpc.h b/src/rpc.h index 3ededd6..c2539c3 100644 --- a/src/rpc.h +++ b/src/rpc.h @@ -33,6 +33,7 @@ public: void setConnection(Connection* c); void setEZcashd(QProcess* p); + const QProcess* getEZcashD() { return ezcashd; } void refresh(bool force = false);