aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRiccardo Spagni <ric@spagni.net>2016-12-09 00:06:44 +0200
committerRiccardo Spagni <ric@spagni.net>2016-12-09 00:06:44 +0200
commitbb506a2e924eb88b08cf3316969bf46099be6eb2 (patch)
treebf60a31fecf9f825b8d8d36a8959d0cab3ac4457 /src
parent4cdf443b6b1a9ab171929c0d2a0d8710ad9e698e (diff)
parente1255bd91f6b237fe85acb18cc19164fb82408ca (diff)
downloadmonzero-gui-bb506a2e924eb88b08cf3316969bf46099be6eb2.tar.gz
monzero-gui-bb506a2e924eb88b08cf3316969bf46099be6eb2.tar.xz
monzero-gui-bb506a2e924eb88b08cf3316969bf46099be6eb2.zip
Merge pull request #235
e1255bd history: remove unused dependencies (Jaquee) 9341d75 history: print destination address in tx details popup (Jaquee) 7aea3d3 TransactionInfo: add transfers() and destinations_formatted() (Jaquee) a4c3de9 history: add Transfer class (Jaquee)
Diffstat (limited to 'src')
-rw-r--r--src/libwalletqt/TransactionHistory.h1
-rw-r--r--src/libwalletqt/TransactionInfo.cpp28
-rw-r--r--src/libwalletqt/TransactionInfo.h20
-rw-r--r--src/libwalletqt/Transfer.h24
-rw-r--r--src/model/TransactionHistoryModel.cpp4
-rw-r--r--src/model/TransactionHistoryModel.h4
6 files changed, 66 insertions, 15 deletions
diff --git a/src/libwalletqt/TransactionHistory.h b/src/libwalletqt/TransactionHistory.h
index ee05787a..41ee6338 100644
--- a/src/libwalletqt/TransactionHistory.h
+++ b/src/libwalletqt/TransactionHistory.h
@@ -41,7 +41,6 @@ private:
private:
friend class Wallet;
-
Bitmonero::TransactionHistory * m_pimpl;
mutable QList<TransactionInfo*> m_tinfo;
mutable QDateTime m_firstDateTime;
diff --git a/src/libwalletqt/TransactionInfo.cpp b/src/libwalletqt/TransactionInfo.cpp
index fb096a14..ba81b6a8 100644
--- a/src/libwalletqt/TransactionInfo.cpp
+++ b/src/libwalletqt/TransactionInfo.cpp
@@ -1,7 +1,8 @@
#include "TransactionInfo.h"
#include "WalletManager.h"
-
+#include "Transfer.h"
#include <QDateTime>
+#include <QDebug>
TransactionInfo::Direction TransactionInfo::direction() const
{
@@ -71,6 +72,31 @@ QString TransactionInfo::paymentId() const
return QString::fromStdString(m_pimpl->paymentId());
}
+QString TransactionInfo::destinations_formatted() const
+{
+ QString destinations;
+ for (auto const& t: transfers()) {
+ if (!destinations.isEmpty())
+ destinations += "<br> ";
+ destinations += WalletManager::instance()->displayAmount(t->amount()) + ": " + t->address();
+ }
+ return destinations;
+}
+
+QList<Transfer*> TransactionInfo::transfers() const
+{
+ if (!m_transfers.isEmpty()) {
+ return m_transfers;
+ }
+
+ for(auto const& t: m_pimpl->transfers()) {
+ TransactionInfo * parent = const_cast<TransactionInfo*>(this);
+ Transfer * transfer = new Transfer(t.amount, QString::fromStdString(t.address), parent);
+ m_transfers.append(transfer);
+ }
+ return m_transfers;
+}
+
TransactionInfo::TransactionInfo(Bitmonero::TransactionInfo *pimpl, QObject *parent)
: QObject(parent), m_pimpl(pimpl)
{
diff --git a/src/libwalletqt/TransactionInfo.h b/src/libwalletqt/TransactionInfo.h
index 7e9396a1..cd4ce3d0 100644
--- a/src/libwalletqt/TransactionInfo.h
+++ b/src/libwalletqt/TransactionInfo.h
@@ -5,6 +5,8 @@
#include <QObject>
#include <QDateTime>
+class Transfer;
+
class TransactionInfo : public QObject
{
Q_OBJECT
@@ -21,6 +23,7 @@ class TransactionInfo : public QObject
Q_PROPERTY(QString date READ date)
Q_PROPERTY(QString time READ time)
Q_PROPERTY(QString paymentId READ paymentId)
+ Q_PROPERTY(QString destinations_formatted READ destinations_formatted)
public:
enum Direction {
@@ -31,14 +34,6 @@ public:
Q_ENUM(Direction)
-// TODO: implement as separate class;
-
-// struct Transfer {
-// Transfer(uint64_t _amount, const std::string &address);
-// const uint64_t amount;
-// const std::string address;
-// };
-
Direction direction() const;
bool isPending() const;
bool isFailed() const;
@@ -53,16 +48,17 @@ public:
QString date() const;
QString time() const;
QString paymentId() const;
-
-
- // TODO: implement it
//! only applicable for output transactions
- // virtual const std::vector<Transfer> & transfers() const = 0;
+ //! used in tx details popup
+ QString destinations_formatted() const;
+ //! Could be useful later when addressbook is implemented
+ Q_INVOKABLE QList<Transfer*> transfers() const;
private:
explicit TransactionInfo(Bitmonero::TransactionInfo * pimpl, QObject *parent = 0);
private:
friend class TransactionHistory;
Bitmonero::TransactionInfo * m_pimpl;
+ mutable QList<Transfer*> m_transfers;
};
// in order to wrap it to QVariant
diff --git a/src/libwalletqt/Transfer.h b/src/libwalletqt/Transfer.h
new file mode 100644
index 00000000..a31ad84e
--- /dev/null
+++ b/src/libwalletqt/Transfer.h
@@ -0,0 +1,24 @@
+#ifndef TRANSFER_H
+#define TRANSFER_H
+
+#include <wallet/wallet2_api.h>
+#include <QObject>
+
+class Transfer : public QObject
+{
+ Q_OBJECT
+ Q_PROPERTY(quint64 amount READ amount)
+ Q_PROPERTY(QString address READ address)
+private:
+ explicit Transfer(uint64_t _amount, const QString &_address, QObject *parent = 0): QObject(parent), m_amount(_amount), m_address(_address) {};
+private:
+ friend class TransactionInfo;
+ quint64 m_amount;
+ QString m_address;
+public:
+ quint64 amount() const { return m_amount; }
+ QString address() const { return m_address; }
+
+};
+
+#endif // TRANSACTIONINFO_H
diff --git a/src/model/TransactionHistoryModel.cpp b/src/model/TransactionHistoryModel.cpp
index cf280e99..333893aa 100644
--- a/src/model/TransactionHistoryModel.cpp
+++ b/src/model/TransactionHistoryModel.cpp
@@ -95,6 +95,9 @@ QVariant TransactionHistoryModel::data(const QModelIndex &index, int role) const
case TransactionTimeRole:
result = tInfo->time();
break;
+ case TransactionDestinationsRole:
+ result = tInfo->destinations_formatted();
+ break;
}
return result;
@@ -124,6 +127,7 @@ QHash<int, QByteArray> TransactionHistoryModel::roleNames() const
roleNames.insert(TransactionIsOutRole, "isOut");
roleNames.insert(TransactionDateRole, "date");
roleNames.insert(TransactionTimeRole, "time");
+ roleNames.insert(TransactionDestinationsRole, "destinations");
return roleNames;
}
diff --git a/src/model/TransactionHistoryModel.h b/src/model/TransactionHistoryModel.h
index 8b18f887..1b349914 100644
--- a/src/model/TransactionHistoryModel.h
+++ b/src/model/TransactionHistoryModel.h
@@ -33,7 +33,9 @@ public:
// extra roles for date and time (as UI wants date and time separately)
TransactionDateRole,
TransactionTimeRole,
- TransactionAtomicAmountRole
+ TransactionAtomicAmountRole,
+ // only for outgoing
+ TransactionDestinationsRole
};
Q_ENUM(TransactionInfoRole)