diff options
| author | Riccardo Spagni <ric@spagni.net> | 2016-12-09 00:06:44 +0200 |
|---|---|---|
| committer | Riccardo Spagni <ric@spagni.net> | 2016-12-09 00:06:44 +0200 |
| commit | bb506a2e924eb88b08cf3316969bf46099be6eb2 (patch) | |
| tree | bf60a31fecf9f825b8d8d36a8959d0cab3ac4457 /src/libwalletqt | |
| parent | 4cdf443b6b1a9ab171929c0d2a0d8710ad9e698e (diff) | |
| parent | e1255bd91f6b237fe85acb18cc19164fb82408ca (diff) | |
| download | monzero-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/libwalletqt')
| -rw-r--r-- | src/libwalletqt/TransactionHistory.h | 1 | ||||
| -rw-r--r-- | src/libwalletqt/TransactionInfo.cpp | 28 | ||||
| -rw-r--r-- | src/libwalletqt/TransactionInfo.h | 20 | ||||
| -rw-r--r-- | src/libwalletqt/Transfer.h | 24 |
4 files changed, 59 insertions, 14 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 |
