Show all addresses in the balances table
This commit is contained in:
@@ -7,8 +7,8 @@ BalancesTableModel::BalancesTableModel(QObject *parent)
|
|||||||
: QAbstractTableModel(parent) {
|
: QAbstractTableModel(parent) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void BalancesTableModel::setNewData(const QMap<QString, qint64> balances,
|
void BalancesTableModel::setNewData(const QList<QString> zaddrs, const QList<QString> taddrs,
|
||||||
const QList<UnspentOutput> outputs)
|
const QMap<QString, qint64> balances, const QList<UnspentOutput> outputs)
|
||||||
{
|
{
|
||||||
loading = false;
|
loading = false;
|
||||||
|
|
||||||
@@ -24,10 +24,22 @@ void BalancesTableModel::setNewData(const QMap<QString, qint64> balances,
|
|||||||
delete modeldata;
|
delete modeldata;
|
||||||
modeldata = new QList<std::tuple<QString, qint64>>();
|
modeldata = new QList<std::tuple<QString, qint64>>();
|
||||||
std::for_each(balances.keyBegin(), balances.keyEnd(), [=] (auto keyIt) {
|
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
|
// And then update the data
|
||||||
dataChanged(index(0, 0), index(modeldata->size()-1, columnCount(index(0,0))-1));
|
dataChanged(index(0, 0), index(modeldata->size()-1, columnCount(index(0,0))-1));
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ public:
|
|||||||
BalancesTableModel(QObject* parent);
|
BalancesTableModel(QObject* parent);
|
||||||
~BalancesTableModel();
|
~BalancesTableModel();
|
||||||
|
|
||||||
void setNewData(const QMap<QString, qint64> balances, const QList<UnspentOutput> outputs);
|
void setNewData(const QList<QString> zaddrs, const QList<QString> taddrs, const QMap<QString, qint64> balances, const QList<UnspentOutput> outputs);
|
||||||
|
|
||||||
int rowCount(const QModelIndex &parent) const;
|
int rowCount(const QModelIndex &parent) const;
|
||||||
int columnCount(const QModelIndex &parent) const;
|
int columnCount(const QModelIndex &parent) const;
|
||||||
|
|||||||
@@ -117,7 +117,8 @@ void Controller::noConnection() {
|
|||||||
// Clear balances table.
|
// Clear balances table.
|
||||||
QMap<QString, qint64> emptyBalances;
|
QMap<QString, qint64> emptyBalances;
|
||||||
QList<UnspentOutput> emptyOutputs;
|
QList<UnspentOutput> emptyOutputs;
|
||||||
balancesTableModel->setNewData(emptyBalances, emptyOutputs);
|
QList<QString> emptyAddresses;
|
||||||
|
balancesTableModel->setNewData(emptyAddresses, emptyAddresses, emptyBalances, emptyOutputs);
|
||||||
|
|
||||||
// Clear Transactions table.
|
// Clear Transactions table.
|
||||||
QList<TransactionItem> emptyTxs;
|
QList<TransactionItem> emptyTxs;
|
||||||
@@ -243,7 +244,7 @@ void Controller::updateUI(bool anyUnconfirmed) {
|
|||||||
ui->unconfirmedWarning->setVisible(anyUnconfirmed);
|
ui->unconfirmedWarning->setVisible(anyUnconfirmed);
|
||||||
|
|
||||||
// Update balances model data, which will update the table too
|
// 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
|
// Update from address
|
||||||
main->updateFromCombo();
|
main->updateFromCombo();
|
||||||
|
|||||||
@@ -303,7 +303,6 @@ void MainWindow::setupSettingsModal() {
|
|||||||
auto cl = new ConnectionLoader(this, rpc);
|
auto cl = new ConnectionLoader(this, rpc);
|
||||||
cl->loadConnection();
|
cl->loadConnection();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user