From fda6e7b33be05819325ab6bcf8235116089aceaf Mon Sep 17 00:00:00 2001 From: Gav Wood Date: Sat, 31 May 2014 02:25:28 +0200 Subject: [PATCH] UI improvements. --- alethzero/Main.ui | 7 +++++++ alethzero/MainWin.cpp | 21 +++++++++++++++------ alethzero/MainWin.h | 2 ++ alethzero/MiningView.cpp | 8 ++++---- 4 files changed, 28 insertions(+), 10 deletions(-) diff --git a/alethzero/Main.ui b/alethzero/Main.ui index c24825685..e534a2147 100644 --- a/alethzero/Main.ui +++ b/alethzero/Main.ui @@ -59,6 +59,13 @@ + + + + + + + diff --git a/alethzero/MainWin.cpp b/alethzero/MainWin.cpp index cf8144f5c..195cbb5ae 100644 --- a/alethzero/MainWin.cpp +++ b/alethzero/MainWin.cpp @@ -217,6 +217,7 @@ Main::Main(QWidget *parent) : statusBar()->addPermanentWidget(ui->balance); statusBar()->addPermanentWidget(ui->peerCount); + statusBar()->addPermanentWidget(ui->mineStatus); statusBar()->addPermanentWidget(ui->blockCount); connect(ui->webView, &QWebView::titleChanged, [=]() @@ -311,9 +312,9 @@ void Main::eval(QString const& _js) if (ev.isNull()) s = "null"; else if (ev.type() == QVariant::String) - s = "\"" + ev.toString().toHtmlEscaped() + "\""; + s = "\"" + ev.toString().toHtmlEscaped() + "\""; else if (ev.type() == QVariant::Int || ev.type() == QVariant::Double) - s = "" + ev.toString().toHtmlEscaped() + ""; + s = "" + ev.toString().toHtmlEscaped() + ""; else s = "unknown type"; m_consoleHistory.push_back(qMakePair(_js, s)); @@ -509,8 +510,11 @@ void Main::on_nameReg_textChanged() void Main::refreshMining() { eth::ClientGuard g(m_client.get()); - list l = m_client->miningHistory(); eth::MineProgress p = m_client->miningProgress(); + ui->mineStatus->setText(QString(m_client->isMining() ? "%1s @ %2kH/s" : "Not mining").arg(p.ms / 1000).arg(p.ms ? p.hashes / p.ms : 0)); + if (!ui->miningView->isVisible()) + return; + list l = m_client->miningHistory(); static uint lh = 0; if (p.hashes < lh) ui->miningView->resetStats(); @@ -537,6 +541,13 @@ eth::State const& Main::state() const return ui->preview->isChecked() ? m_client->postState() : m_client->state(); } +void Main::updateBlockCount() +{ + auto d = m_client->blockChain().details(); + auto diff = BlockInfo(m_client->blockChain().block()).difficulty; + ui->blockCount->setText(QString("#%1 @%3 T%2").arg(d.number).arg(toLog2(d.totalDifficulty)).arg(toLog2(diff))); +} + void Main::refresh(bool _override) { eth::ClientGuard g(m_client.get()); @@ -547,9 +558,7 @@ void Main::refresh(bool _override) { changed(); - auto d = m_client->blockChain().details(); - auto diff = BlockInfo(m_client->blockChain().block()).difficulty; - ui->blockCount->setText(QString("#%1 @%3 T%2").arg(d.number).arg(toLog2(d.totalDifficulty)).arg(toLog2(diff))); + updateBlockCount(); auto acs = st.addresses(); ui->accounts->clear(); diff --git a/alethzero/MainWin.h b/alethzero/MainWin.h index 60c2714a7..5bf7fa5fa 100644 --- a/alethzero/MainWin.h +++ b/alethzero/MainWin.h @@ -119,6 +119,8 @@ signals: void changed(); // TODO: manifest private: + void updateBlockCount(); + QString pretty(eth::Address _a) const; void initDebugger(); diff --git a/alethzero/MiningView.cpp b/alethzero/MiningView.cpp index 9380d83e3..d347ee200 100644 --- a/alethzero/MiningView.cpp +++ b/alethzero/MiningView.cpp @@ -31,8 +31,8 @@ using namespace eth; using namespace lb; string id(float _y) { return toString(_y); } -string ms(float _x){ return toString(round(_x * 1000)) + (!_x ? "ms" : ""); } -string msL(float _x, float _y) { return toString(round(_x * 1000)) + "ms (" + toString(round(_y * 100)) + "%)"; } +string s(float _x){ return toString(round(_x * 1000) / 1000) + (!_x ? "s" : ""); } +string sL(float _x, float _y) { return toString(round(_x * 1000)) + "s (" + toString(_y) + ")"; } MiningView::MiningView(QWidget* _p): QWidget(_p) { @@ -93,9 +93,9 @@ void MiningView::paintEvent(QPaintEvent*) Grapher g; QPainter p(this); - g.init(&p, make_pair(0.f, max(m_duration * 0.1f, m_values.size() * 0.1f)), make_pair(m_progress.requirement - 4, 256.f), ms, id, msL); + g.init(&p, make_pair(0.f, max(m_duration * 0.1f, m_values.size() * 0.1f)), make_pair(0, 255.f - (m_progress.requirement - 4)), s, id, sL); g.drawAxes(); - g.setDataTransform(0.1, 0); + g.setDataTransform(0.1, 0, -1, 255.f); g.drawLineGraph(m_values, QColor(192, 192, 192)); g.drawLineGraph(m_bests, QColor(128, 128, 128));