aboutsummaryrefslogtreecommitdiff
path: root/src/libwalletqt
diff options
context:
space:
mode:
authorJaquee <jaquee.monero@gmail.com>2016-12-03 12:07:47 +0100
committerJaquee <jaquee.monero@gmail.com>2016-12-04 09:08:18 +0100
commit7aea3d38d6cea3264436bf90c0633ed1b62738d1 (patch)
tree5d8ad2e599a402c87570ed3a97a34f7b9b511bc1 /src/libwalletqt
parenta4c3de9e2e3ad364ceb979499221a2fc86a09548 (diff)
downloadmonzero-gui-7aea3d38d6cea3264436bf90c0633ed1b62738d1.tar.gz
monzero-gui-7aea3d38d6cea3264436bf90c0633ed1b62738d1.tar.xz
monzero-gui-7aea3d38d6cea3264436bf90c0633ed1b62738d1.zip
TransactionInfo: add transfers() and destinations_formatted()
Diffstat (limited to 'src/libwalletqt')
-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.h12
4 files changed, 39 insertions, 22 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
index 2f68f7c1..a31ad84e 100644
--- a/src/libwalletqt/Transfer.h
+++ b/src/libwalletqt/Transfer.h
@@ -10,19 +10,15 @@ class Transfer : public QObject
Q_PROPERTY(quint64 amount READ amount)
Q_PROPERTY(QString address READ address)
private:
- explicit Transfer(uint64_t _amount, const QString &_address, QObject *parent = 0): m_amount(_amount), m_address(_address), QObject(parent) {};
+ explicit Transfer(uint64_t _amount, const QString &_address, QObject *parent = 0): QObject(parent), m_amount(_amount), m_address(_address) {};
private:
friend class TransactionInfo;
- qint64 m_amount;
+ quint64 m_amount;
QString m_address;
-
public:
- qint64 amount(){ return m_amount; }
- QString address(){ return m_address; };
+ quint64 amount() const { return m_amount; }
+ QString address() const { return m_address; }
};
-// in order to wrap it to QVariant
-Q_DECLARE_METATYPE(Transfer*)
-
#endif // TRANSACTIONINFO_H