aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaquee <jaquee.monero@gmail.com>2017-01-12 19:57:30 +0100
committerJaquee <jaquee.monero@gmail.com>2017-01-14 00:45:09 +0100
commit205bfcdd7bf051440cda231fc49e7f58d8c1a7ee (patch)
treef3fedbc7964bb9585b5ab901eb6388e00821549b
parent593839a374f6fb69df84d1cda5261ed246e9028f (diff)
downloadmonzero-gui-205bfcdd7bf051440cda231fc49e7f58d8c1a7ee.tar.gz
monzero-gui-205bfcdd7bf051440cda231fc49e7f58d8c1a7ee.tar.xz
monzero-gui-205bfcdd7bf051440cda231fc49e7f58d8c1a7ee.zip
History: Show num of confirmations + unconfirmed payments
history: refresh on new block
-rw-r--r--components/HistoryTable.qml15
-rw-r--r--main.qml11
-rw-r--r--src/libwalletqt/TransactionInfo.cpp5
-rw-r--r--src/libwalletqt/TransactionInfo.h2
-rw-r--r--src/libwalletqt/Wallet.cpp6
-rw-r--r--src/libwalletqt/Wallet.h1
-rw-r--r--src/model/TransactionHistoryModel.cpp5
-rw-r--r--src/model/TransactionHistoryModel.h1
8 files changed, 43 insertions, 3 deletions
diff --git a/components/HistoryTable.qml b/components/HistoryTable.qml
index ba956015..711bc289 100644
--- a/components/HistoryTable.qml
+++ b/components/HistoryTable.qml
@@ -263,9 +263,18 @@ ListView {
//elide: Text.ElideRight
font.family: "Arial"
font.pixelSize: 13
- font.letterSpacing: -1
- color: "#545454"
- text: (typeof blockHeight != "undefined")? blockHeight : qsTr("Pending") + translationManager.emptyString
+ color: (confirmations < 10)? "#FF6C3C" : "#545454"
+ text: {
+ if (!isPending)
+ if(confirmations < 10)
+ return blockHeight + " " + qsTr("(%1/10 confirmations)").arg(confirmations)
+ else
+ return blockHeight
+ if (!isOut)
+ return qsTr("UNCONFIRMED") + translationManager.emptyString
+ return qsTr("PENDING") + translationManager.emptyString
+
+ }
}
}
diff --git a/main.qml b/main.qml
index 2cf7c86f..4a8c3f91 100644
--- a/main.qml
+++ b/main.qml
@@ -208,6 +208,7 @@ ApplicationWindow {
currentWallet.newBlock.disconnect(onWalletNewBlock)
currentWallet.moneySpent.disconnect(onWalletMoneySent)
currentWallet.moneyReceived.disconnect(onWalletMoneyReceived)
+ currentWallet.unconfirmedMoneyReceived.disconnect(onWalletUnconfirmedMoneyReceived)
currentWallet.transactionCreated.disconnect(onTransactionCreated)
currentWallet.connectionStatusChanged.disconnect(onWalletConnectionStatusChanged)
middlePanel.paymentClicked.disconnect(handlePayment);
@@ -229,6 +230,7 @@ ApplicationWindow {
currentWallet.newBlock.connect(onWalletNewBlock)
currentWallet.moneySpent.connect(onWalletMoneySent)
currentWallet.moneyReceived.connect(onWalletMoneyReceived)
+ currentWallet.unconfirmedMoneyReceived.connect(onWalletUnconfirmedMoneyReceived)
currentWallet.transactionCreated.connect(onTransactionCreated)
currentWallet.connectionStatusChanged.connect(onWalletConnectionStatusChanged)
middlePanel.paymentClicked.connect(handlePayment);
@@ -378,6 +380,10 @@ ApplicationWindow {
splashCounter = currHeight
leftPanel.progressBar.updateProgress(currHeight,currentWallet.daemonBlockChainTargetHeight());
}
+
+ // Update num of confirmations on history page
+ // TODO: check performance on big wallets. Maybe no need to refresh full history?
+ currentWallet.history.refresh()
}
function onWalletMoneyReceived(txId, amount) {
@@ -386,6 +392,11 @@ ApplicationWindow {
currentWallet.history.refresh() // this will refresh model
}
+ function onWalletUnconfirmedMoneyReceived(txId, amount) {
+ // refresh history
+ currentWallet.history.refresh()
+ }
+
function onWalletMoneySent(txId, amount) {
// refresh transaction history here
currentWallet.refresh()
diff --git a/src/libwalletqt/TransactionInfo.cpp b/src/libwalletqt/TransactionInfo.cpp
index ed73a29f..71df2b02 100644
--- a/src/libwalletqt/TransactionInfo.cpp
+++ b/src/libwalletqt/TransactionInfo.cpp
@@ -46,6 +46,11 @@ quint64 TransactionInfo::blockHeight() const
return m_pimpl->blockHeight();
}
+quint64 TransactionInfo::confirmations() const
+{
+ return m_pimpl->confirmations();
+}
+
QString TransactionInfo::hash() const
{
return QString::fromStdString(m_pimpl->hash());
diff --git a/src/libwalletqt/TransactionInfo.h b/src/libwalletqt/TransactionInfo.h
index 6d9fc270..30418b88 100644
--- a/src/libwalletqt/TransactionInfo.h
+++ b/src/libwalletqt/TransactionInfo.h
@@ -18,6 +18,7 @@ class TransactionInfo : public QObject
Q_PROPERTY(QString displayAmount READ displayAmount)
Q_PROPERTY(QString fee READ fee)
Q_PROPERTY(quint64 blockHeight READ blockHeight)
+ Q_PROPERTY(quint64 confirmations READ confirmations)
Q_PROPERTY(QString hash READ hash)
Q_PROPERTY(QDateTime timestamp READ timestamp)
Q_PROPERTY(QString date READ date)
@@ -42,6 +43,7 @@ public:
QString displayAmount() const;
QString fee() const;
quint64 blockHeight() const;
+ quint64 confirmations() const;
//! transaction_id
QString hash() const;
QDateTime timestamp() const;
diff --git a/src/libwalletqt/Wallet.cpp b/src/libwalletqt/Wallet.cpp
index 5bf75788..62c71110 100644
--- a/src/libwalletqt/Wallet.cpp
+++ b/src/libwalletqt/Wallet.cpp
@@ -44,6 +44,12 @@ public:
emit m_wallet->moneyReceived(QString::fromStdString(txId), amount);
}
+ virtual void unconfirmedMoneyReceived(const std::string &txId, uint64_t amount)
+ {
+ qDebug() << __FUNCTION__;
+ emit m_wallet->unconfirmedMoneyReceived(QString::fromStdString(txId), amount);
+ }
+
virtual void newBlock(uint64_t height)
{
// qDebug() << __FUNCTION__;
diff --git a/src/libwalletqt/Wallet.h b/src/libwalletqt/Wallet.h
index 24bdc15b..9f9ed3e1 100644
--- a/src/libwalletqt/Wallet.h
+++ b/src/libwalletqt/Wallet.h
@@ -206,6 +206,7 @@ signals:
void moneySpent(const QString &txId, quint64 amount);
void moneyReceived(const QString &txId, quint64 amount);
+ void unconfirmedMoneyReceived(const QString &txId, quint64 amount);
void newBlock(quint64 height);
void historyModelChanged() const;
diff --git a/src/model/TransactionHistoryModel.cpp b/src/model/TransactionHistoryModel.cpp
index 9aed10ce..2e232259 100644
--- a/src/model/TransactionHistoryModel.cpp
+++ b/src/model/TransactionHistoryModel.cpp
@@ -81,6 +81,10 @@ QVariant TransactionHistoryModel::data(const QModelIndex &index, int role) const
result = tInfo->blockHeight();
}
break;
+
+ case TransactionConfirmationsRole:
+ result = tInfo->confirmations();
+ break;
case TransactionHashRole:
result = tInfo->hash();
break;
@@ -125,6 +129,7 @@ QHash<int, QByteArray> TransactionHistoryModel::roleNames() const
roleNames.insert(TransactionAtomicAmountRole, "atomicAmount");
roleNames.insert(TransactionFeeRole, "fee");
roleNames.insert(TransactionBlockHeightRole, "blockHeight");
+ roleNames.insert(TransactionConfirmationsRole, "confirmations");
roleNames.insert(TransactionHashRole, "hash");
roleNames.insert(TransactionTimeStampRole, "timeStamp");
roleNames.insert(TransactionPaymentIdRole, "paymentId");
diff --git a/src/model/TransactionHistoryModel.h b/src/model/TransactionHistoryModel.h
index 1b349914..449d8003 100644
--- a/src/model/TransactionHistoryModel.h
+++ b/src/model/TransactionHistoryModel.h
@@ -25,6 +25,7 @@ public:
TransactionDisplayAmountRole,
TransactionFeeRole,
TransactionBlockHeightRole,
+ TransactionConfirmationsRole,
TransactionHashRole,
TransactionTimeStampRole,
TransactionPaymentIdRole,