From b687306cf7b06682151dbdfecf7b7b6504035082 Mon Sep 17 00:00:00 2001 From: Aditya Kulkarni Date: Sat, 26 Oct 2019 14:34:31 -0700 Subject: [PATCH] Show all addresses in the balances table --- src/balancestablemodel.cpp | 20 ++++++++++++++++---- src/balancestablemodel.h | 2 +- src/controller.cpp | 5 +++-- src/mainwindow.cpp | 1 - 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/balancestablemodel.cpp b/src/balancestablemodel.cpp index f295ca8..e1d0b2e 100644 --- a/src/balancestablemodel.cpp +++ b/src/balancestablemodel.cpp @@ -7,8 +7,8 @@ BalancesTableModel::BalancesTableModel(QObject *parent) : QAbstractTableModel(parent) { } -void BalancesTableModel::setNewData(const QMap balances, - const QList outputs) +void BalancesTableModel::setNewData(const QList zaddrs, const QList taddrs, + const QMap balances, const QList outputs) { loading = false; @@ -24,10 +24,22 @@ void BalancesTableModel::setNewData(const QMap balances, delete modeldata; modeldata = new QList>(); std::for_each(balances.keyBegin(), balances.keyEnd(), [=] (auto keyIt) { - if (balances.value(keyIt) > 0) - modeldata->push_back(std::make_tuple(keyIt, balances.value(keyIt))); + modeldata->push_back(std::make_tuple(keyIt, balances.value(keyIt))); }); + // Add all addresses that have no balances as well + for (auto zaddr: zaddrs) { + if (!balances.contains(zaddr)) { + modeldata->push_back(std::make_tuple(zaddr, 0)); + } + } + + for (auto taddr: taddrs) { + if (!balances.contains(taddr)) { + modeldata->push_back(std::make_tuple(taddr, 0)); + } + } + // And then update the data dataChanged(index(0, 0), index(modeldata->size()-1, columnCount(index(0,0))-1)); diff --git a/src/balancestablemodel.h b/src/balancestablemodel.h index 3c41fca..fe44bb8 100644 --- a/src/balancestablemodel.h +++ b/src/balancestablemodel.h @@ -10,7 +10,7 @@ public: BalancesTableModel(QObject* parent); ~BalancesTableModel(); - void setNewData(const QMap balances, const QList outputs); + void setNewData(const QList zaddrs, const QList taddrs, const QMap balances, const QList outputs); int rowCount(const QModelIndex &parent) const; int columnCount(const QModelIndex &parent) const; diff --git a/src/controller.cpp b/src/controller.cpp index 5835edf..9de1252 100644 --- a/src/controller.cpp +++ b/src/controller.cpp @@ -117,7 +117,8 @@ void Controller::noConnection() { // Clear balances table. QMap emptyBalances; QList emptyOutputs; - balancesTableModel->setNewData(emptyBalances, emptyOutputs); + QList emptyAddresses; + balancesTableModel->setNewData(emptyAddresses, emptyAddresses, emptyBalances, emptyOutputs); // Clear Transactions table. QList emptyTxs; @@ -243,7 +244,7 @@ void Controller::updateUI(bool anyUnconfirmed) { ui->unconfirmedWarning->setVisible(anyUnconfirmed); // Update balances model data, which will update the table too - balancesTableModel->setNewData(model->getAllBalances(), model->getUTXOs()); + balancesTableModel->setNewData(model->getAllZAddresses(), model->getAllTAddresses(), model->getAllBalances(), model->getUTXOs()); // Update from address main->updateFromCombo(); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 30c1424..fbcfadc 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -303,7 +303,6 @@ void MainWindow::setupSettingsModal() { auto cl = new ConnectionLoader(this, rpc); cl->loadConnection(); } - } }); }