aboutsummaryrefslogtreecommitdiff
path: root/src/libwalletqt
diff options
context:
space:
mode:
authorIlya Kitaev <mbg033@gmail.com>2016-10-02 21:40:40 +0300
committerIlya Kitaev <mbg033@gmail.com>2016-10-10 00:15:17 +0300
commit0ff3fd32122a22d7c56a289faa6402351f425873 (patch)
treee9eb7c5a38c5c67415217925079f5202ecbfaa95 /src/libwalletqt
parentbd8646dd194771a9ff39bc75530d169a6d570ef6 (diff)
downloadmonzero-gui-0ff3fd32122a22d7c56a289faa6402351f425873.tar.gz
monzero-gui-0ff3fd32122a22d7c56a289faa6402351f425873.tar.xz
monzero-gui-0ff3fd32122a22d7c56a289faa6402351f425873.zip
added TransactionHistoryModel; renamings
Diffstat (limited to 'src/libwalletqt')
-rw-r--r--src/libwalletqt/TransactionHistory.cpp14
-rw-r--r--src/libwalletqt/TransactionHistory.h5
-rw-r--r--src/libwalletqt/TransactionInfo.cpp12
-rw-r--r--src/libwalletqt/TransactionInfo.h14
-rw-r--r--src/libwalletqt/Wallet.cpp18
-rw-r--r--src/libwalletqt/Wallet.h13
6 files changed, 57 insertions, 19 deletions
diff --git a/src/libwalletqt/TransactionHistory.cpp b/src/libwalletqt/TransactionHistory.cpp
index 2c2c9f73..7466038f 100644
--- a/src/libwalletqt/TransactionHistory.cpp
+++ b/src/libwalletqt/TransactionHistory.cpp
@@ -3,11 +3,6 @@
#include <wallet/wallet2_api.h>
-int TransactionHistory::count() const
-{
- return m_pimpl->count();
-}
-
TransactionInfo *TransactionHistory::transaction(int index)
{
// box up Bitmonero::TransactionInfo
@@ -39,10 +34,17 @@ QList<TransactionInfo *> TransactionHistory::getAll() const
void TransactionHistory::refresh()
{
// XXX this invalidates previously saved history that might be used by clients
+ emit refreshStarted();
m_pimpl->refresh();
- emit invalidated();
+ emit refreshFinished();
}
+quint64 TransactionHistory::count() const
+{
+ return m_pimpl->count();
+}
+
+
TransactionHistory::TransactionHistory(Bitmonero::TransactionHistory *pimpl, QObject *parent)
: QObject(parent), m_pimpl(pimpl)
{
diff --git a/src/libwalletqt/TransactionHistory.h b/src/libwalletqt/TransactionHistory.h
index a6287506..560b8df8 100644
--- a/src/libwalletqt/TransactionHistory.h
+++ b/src/libwalletqt/TransactionHistory.h
@@ -16,14 +16,15 @@ class TransactionHistory : public QObject
Q_PROPERTY(int count READ count)
public:
- int count() const;
Q_INVOKABLE TransactionInfo *transaction(int index);
Q_INVOKABLE TransactionInfo * transaction(const QString &id);
Q_INVOKABLE QList<TransactionInfo*> getAll() const;
Q_INVOKABLE void refresh();
+ quint64 count() const;
signals:
- void invalidated();
+ void refreshStarted();
+ void refreshFinished();
public slots:
diff --git a/src/libwalletqt/TransactionInfo.cpp b/src/libwalletqt/TransactionInfo.cpp
index 192e85e5..40711765 100644
--- a/src/libwalletqt/TransactionInfo.cpp
+++ b/src/libwalletqt/TransactionInfo.cpp
@@ -1,4 +1,6 @@
#include "TransactionInfo.h"
+#include "WalletManager.h"
+
#include <QDateTime>
TransactionInfo::Direction TransactionInfo::direction() const
@@ -16,15 +18,15 @@ bool TransactionInfo::isFailed() const
return m_pimpl->isFailed();
}
-quint64 TransactionInfo::amount() const
+
+QString TransactionInfo::amount() const
{
- return m_pimpl->amount();
+ return WalletManager::instance()->displayAmount(m_pimpl->amount());
}
-quint64 TransactionInfo::fee() const
+QString TransactionInfo::fee() const
{
- return m_pimpl->fee();
-
+ return WalletManager::instance()->displayAmount(m_pimpl->fee());
}
quint64 TransactionInfo::blockHeight() const
diff --git a/src/libwalletqt/TransactionInfo.h b/src/libwalletqt/TransactionInfo.h
index 62c26e2f..4dabc5b4 100644
--- a/src/libwalletqt/TransactionInfo.h
+++ b/src/libwalletqt/TransactionInfo.h
@@ -10,8 +10,8 @@ class TransactionInfo : public QObject
Q_PROPERTY(Direction direction READ direction)
Q_PROPERTY(bool isPending READ isPending)
Q_PROPERTY(bool isFailed READ isFailed)
- Q_PROPERTY(quint64 amount READ amount)
- Q_PROPERTY(quint64 fee READ fee)
+ Q_PROPERTY(QString amount READ amount)
+ Q_PROPERTY(QString fee READ fee)
Q_PROPERTY(quint64 blockHeight READ blockHeight)
Q_PROPERTY(QString hash READ hash)
Q_PROPERTY(QString timestamp READ timestamp)
@@ -23,6 +23,8 @@ public:
Direction_Out = Bitmonero::TransactionInfo::Direction_Out
};
+ Q_ENUM(Direction)
+
// TODO: implement as separate class;
// struct Transfer {
@@ -30,11 +32,12 @@ public:
// const uint64_t amount;
// const std::string address;
// };
+
Direction direction() const;
bool isPending() const;
bool isFailed() const;
- quint64 amount() const;
- quint64 fee() const;
+ QString amount() const;
+ QString fee() const;
quint64 blockHeight() const;
//! transaction_id
QString hash() const;
@@ -51,4 +54,7 @@ private:
Bitmonero::TransactionInfo * m_pimpl;
};
+// in order to wrap it to QVariant
+Q_DECLARE_METATYPE(TransactionInfo*)
+
#endif // TRANSACTIONINFO_H
diff --git a/src/libwalletqt/Wallet.cpp b/src/libwalletqt/Wallet.cpp
index 987f4640..4dcf9add 100644
--- a/src/libwalletqt/Wallet.cpp
+++ b/src/libwalletqt/Wallet.cpp
@@ -1,6 +1,7 @@
#include "Wallet.h"
#include "PendingTransaction.h"
#include "TransactionHistory.h"
+#include "model/TransactionHistoryModel.h"
#include "wallet/wallet2_api.h"
#include <QFile>
@@ -59,7 +60,10 @@ private:
Wallet * m_wallet;
};
-
+Wallet::Wallet(QObject * parent)
+ : Wallet(nullptr, parent)
+{
+}
QString Wallet::getSeed() const
{
@@ -202,6 +206,16 @@ TransactionHistory *Wallet::history()
return m_history;
}
+TransactionHistoryModel *Wallet::historyModel()
+{
+ if (!m_historyModel) {
+ m_historyModel = new TransactionHistoryModel(this);
+ m_historyModel->setTransactionHistory(this->history());
+ }
+
+ return m_historyModel;
+}
+
QString Wallet::generatePaymentId() const
{
@@ -228,6 +242,7 @@ Wallet::Wallet(Bitmonero::Wallet *w, QObject *parent)
: QObject(parent)
, m_walletImpl(w)
, m_history(nullptr)
+ , m_historyModel(nullptr)
, m_daemonBlockChainHeight(0)
, m_daemonBlockChainHeightTtl(DAEMON_BLOCKCHAIN_HEIGHT_CACHE_TTL_SECONDS)
{
@@ -236,5 +251,6 @@ Wallet::Wallet(Bitmonero::Wallet *w, QObject *parent)
Wallet::~Wallet()
{
+
Bitmonero::WalletManagerFactory::getWalletManager()->closeWallet(m_walletImpl);
}
diff --git a/src/libwalletqt/Wallet.h b/src/libwalletqt/Wallet.h
index 703bd186..1a6459d4 100644
--- a/src/libwalletqt/Wallet.h
+++ b/src/libwalletqt/Wallet.h
@@ -13,6 +13,7 @@ namespace Bitmonero {
class TransactionHistory;
+class TransactionHistoryModel;
class Wallet : public QObject
{
@@ -27,8 +28,11 @@ class Wallet : public QObject
Q_PROPERTY(quint64 unlockedBalance READ unlockedBalance)
Q_PROPERTY(TransactionHistory * history READ history)
Q_PROPERTY(QString paymentId READ paymentId WRITE setPaymentId)
+ Q_PROPERTY(TransactionHistoryModel * historyModel READ historyModel)
public:
+
+
enum Status {
Status_Ok = Bitmonero::Wallet::Status_Ok,
Status_Error = Bitmonero::Wallet::Status_Error
@@ -111,6 +115,9 @@ public:
//! returns transaction history
TransactionHistory * history();
+ //! returns transaction history model
+ TransactionHistoryModel * historyModel();
+
//! generate payment id
Q_INVOKABLE QString generatePaymentId() const;
@@ -139,9 +146,9 @@ signals:
private:
+ Wallet(QObject * parent = nullptr);
Wallet(Bitmonero::Wallet *w, QObject * parent = 0);
~Wallet();
-
private:
friend class WalletManager;
friend class WalletListenerImpl;
@@ -149,6 +156,8 @@ private:
Bitmonero::Wallet * m_walletImpl;
// history lifetime managed by wallet;
TransactionHistory * m_history;
+ // Used for UI history view
+ TransactionHistoryModel * m_historyModel;
QString m_paymentId;
mutable QTime m_daemonBlockChainHeightTime;
mutable quint64 m_daemonBlockChainHeight;
@@ -156,4 +165,6 @@ private:
};
+
+
#endif // WALLET_H