From dfd230be7d075e951336075db8189f514f3bf89b Mon Sep 17 00:00:00 2001 From: Aditya Kulkarni Date: Tue, 29 Oct 2019 14:15:19 -0700 Subject: [PATCH 1/3] Handle multiple send in tx table --- src/controller.cpp | 11 +++++++---- src/txtablemodel.cpp | 34 ++++++++++++++++------------------ src/txtablemodel.h | 2 ++ 3 files changed, 25 insertions(+), 22 deletions(-) diff --git a/src/controller.cpp b/src/controller.cpp index a763e50..f0921fd 100644 --- a/src/controller.cpp +++ b/src/controller.cpp @@ -366,10 +366,13 @@ void Controller::refreshTransactions() { total_amount = total_amount + amount; } - if (items.length() == 1) { - address = items[0].address; - } else { - address = "(Multiple)"; + { + // Concat all the addresses + QList addresses; + for (auto item : items) { + addresses.push_back(item.address); + } + address = addresses.join(","); } txdata.push_back(TransactionItem{ diff --git a/src/txtablemodel.cpp b/src/txtablemodel.cpp index 04d50e3..9df59e4 100644 --- a/src/txtablemodel.cpp +++ b/src/txtablemodel.cpp @@ -69,10 +69,20 @@ bool TxTableModel::exportToCsv(QString fileName) const { return headers.size(); } +QString TxTableModel::concatMultipleMemos(const TransactionItem& dat) const { + // Concat all the memos + QString memo; + for (auto item : dat.items) { + if (!item.memo.trimmed().isEmpty()) { + memo += item.address + ": \"" + item.memo + "\"\n"; + } + } - QVariant TxTableModel::data(const QModelIndex &index, int role) const - { - // Align numeric columns (confirmations, amount) right + return memo; +}; + +QVariant TxTableModel::data(const QModelIndex &index, int role) const { + // Align numeric columns (confirmations, amount) right if (role == Qt::TextAlignmentRole && (index.column() == Column::Confirmations || index.column() == Column::Amount)) return QVariant(Qt::AlignRight | Qt::AlignVCenter); @@ -127,7 +137,7 @@ bool TxTableModel::exportToCsv(QString fileName) const { (memo.isEmpty() ? "" : " tx memo: \"" + memo + "\""); } } else { - return "Multiple"; + return concatMultipleMemos(dat); } } case Column::Address: { @@ -202,20 +212,8 @@ QString TxTableModel::getTxId(int row) const { QString TxTableModel::getMemo(int row) const { auto dat = modeldata->at(row); - bool hasMemo = false; - for (int i=0; i < dat.items.length(); i++) { - if (!dat.items[i].memo.isEmpty()) { - hasMemo = true; - } - } - - if (dat.items.length() == 1) { - return dat.items[0].memo; - } else if (hasMemo) { - return "(Multiple)"; - } else { - return ""; - } + + return concatMultipleMemos(dat); } qint64 TxTableModel::getConfirmations(int row) const { diff --git a/src/txtablemodel.h b/src/txtablemodel.h index 8e60ea7..b07b914 100644 --- a/src/txtablemodel.h +++ b/src/txtablemodel.h @@ -38,6 +38,8 @@ public: QVariant headerData(int section, Qt::Orientation orientation, int role) const; private: + QString concatMultipleMemos(const TransactionItem&) const; + QList* modeldata = nullptr; QList headers; From 6d4599bcee9a9f742a66c8945ba92d6a3ca2351e Mon Sep 17 00:00:00 2001 From: Aditya Kulkarni Date: Tue, 29 Oct 2019 14:46:46 -0700 Subject: [PATCH 2/3] Update lib to allow escaped chars in memo --- lib/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Cargo.toml b/lib/Cargo.toml index fc18947..f5ae56d 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -11,4 +11,4 @@ crate-type = ["staticlib"] [dependencies] libc = "0.2.58" lazy_static = "1.4.0" -zecwalletlitelib = { git = "https://github.com/adityapk00/zecwallet-light-cli", rev = "b928d5f09646cc94023ea25f99951fcf1b43e90d" } +zecwalletlitelib = { git = "https://github.com/adityapk00/zecwallet-light-cli", rev = "fe82c0b43043867b6cc1ebc462cc7b42f91b1adf" } From a4bae2051f22b31bdcd97de61f364f70f1d37ae7 Mon Sep 17 00:00:00 2001 From: Aditya Kulkarni Date: Tue, 29 Oct 2019 15:03:52 -0700 Subject: [PATCH 3/3] Remove trailing "0". Fixes #6 --- src/camount.cpp | 7 +++++-- src/mainwindow.ui | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/camount.cpp b/src/camount.cpp index c8cd723..1d50302 100644 --- a/src/camount.cpp +++ b/src/camount.cpp @@ -22,9 +22,12 @@ QString CAmount::toDecimalString() const { QString r = QString::number(wholePart); if (decimalPart > 0) { QString decimalPartStr = QString::number(decimalPart); - QString leadingZeros = QString("0").repeated(NUMPLACES - decimalPartStr.length()); + r = r + "." + decimalPartStr.rightJustified(NUMPLACES, '0'); - r = r + "." + leadingZeros + decimalPartStr; + // Trim tailing 0s + while (r.right(1) == "0") { + r = r.left(r.length() - 1); + } } return r; diff --git a/src/mainwindow.ui b/src/mainwindow.ui index 5a9ac48..9e4a19d 100644 --- a/src/mainwindow.ui +++ b/src/mainwindow.ui @@ -22,7 +22,7 @@ - 3 + 1 @@ -296,7 +296,7 @@ false - From + false