aboutsummaryrefslogtreecommitdiff
path: root/src/libwalletqt
diff options
context:
space:
mode:
authorIlya Kitaev <mbg033@gmail.com>2016-10-04 23:12:58 +0300
committerIlya Kitaev <mbg033@gmail.com>2016-10-10 00:15:17 +0300
commit522b0671adf946bb4def414f1bbdbca492cf0cd6 (patch)
tree104fef4388b6007527e7d4a42e541842b98f0a24 /src/libwalletqt
parent9cc92bf9d69652104b28e0907de12d83cfadaa20 (diff)
downloadmonzero-gui-522b0671adf946bb4def414f1bbdbca492cf0cd6.tar.gz
monzero-gui-522b0671adf946bb4def414f1bbdbca492cf0cd6.tar.xz
monzero-gui-522b0671adf946bb4def414f1bbdbca492cf0cd6.zip
Simple transaction history
Diffstat (limited to 'src/libwalletqt')
-rw-r--r--src/libwalletqt/TransactionHistory.cpp8
-rw-r--r--src/libwalletqt/TransactionInfo.cpp16
-rw-r--r--src/libwalletqt/TransactionInfo.h15
-rw-r--r--src/libwalletqt/Wallet.cpp13
4 files changed, 41 insertions, 11 deletions
diff --git a/src/libwalletqt/TransactionHistory.cpp b/src/libwalletqt/TransactionHistory.cpp
index 7466038f..8f52f07e 100644
--- a/src/libwalletqt/TransactionHistory.cpp
+++ b/src/libwalletqt/TransactionHistory.cpp
@@ -2,11 +2,18 @@
#include "TransactionInfo.h"
#include <wallet/wallet2_api.h>
+#include <QDebug>
+
TransactionInfo *TransactionHistory::transaction(int index)
{
// box up Bitmonero::TransactionInfo
Bitmonero::TransactionInfo * impl = m_pimpl->transaction(index);
+ if (!impl) {
+ qCritical("%s: no transaction info for index %d", __FUNCTION__, index);
+ qCritical("%s: there's %d transactions in backend", __FUNCTION__, m_pimpl->count());
+ return nullptr;
+ }
TransactionInfo * result = new TransactionInfo(impl, this);
return result;
}
@@ -34,6 +41,7 @@ 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 refreshFinished();
diff --git a/src/libwalletqt/TransactionInfo.cpp b/src/libwalletqt/TransactionInfo.cpp
index 40711765..3aa7334c 100644
--- a/src/libwalletqt/TransactionInfo.cpp
+++ b/src/libwalletqt/TransactionInfo.cpp
@@ -39,13 +39,23 @@ QString TransactionInfo::hash() const
return QString::fromStdString(m_pimpl->hash());
}
-QString TransactionInfo::timestamp()
+QDateTime TransactionInfo::timestamp() const
{
- QString result = QDateTime::fromTime_t(m_pimpl->timestamp()).toString(Qt::ISODate);
+ QDateTime result = QDateTime::fromTime_t(m_pimpl->timestamp());
return result;
}
-QString TransactionInfo::paymentId()
+QString TransactionInfo::date() const
+{
+ return timestamp().date().toString(Qt::ISODate);
+}
+
+QString TransactionInfo::time() const
+{
+ return timestamp().time().toString(Qt::ISODate);
+}
+
+QString TransactionInfo::paymentId() const
{
return QString::fromStdString(m_pimpl->paymentId());
}
diff --git a/src/libwalletqt/TransactionInfo.h b/src/libwalletqt/TransactionInfo.h
index 4dabc5b4..3381131a 100644
--- a/src/libwalletqt/TransactionInfo.h
+++ b/src/libwalletqt/TransactionInfo.h
@@ -1,8 +1,9 @@
#ifndef TRANSACTIONINFO_H
#define TRANSACTIONINFO_H
-#include <QObject>
#include <wallet/wallet2_api.h>
+#include <QObject>
+#include <QDateTime>
class TransactionInfo : public QObject
{
@@ -14,7 +15,9 @@ class TransactionInfo : public QObject
Q_PROPERTY(QString fee READ fee)
Q_PROPERTY(quint64 blockHeight READ blockHeight)
Q_PROPERTY(QString hash READ hash)
- Q_PROPERTY(QString timestamp READ timestamp)
+ Q_PROPERTY(QDateTime timestamp READ timestamp)
+ Q_PROPERTY(QString date READ date)
+ Q_PROPERTY(QString time READ time)
Q_PROPERTY(QString paymentId READ paymentId)
public:
@@ -41,8 +44,11 @@ public:
quint64 blockHeight() const;
//! transaction_id
QString hash() const;
- QString timestamp();
- QString paymentId();
+ QDateTime timestamp() const;
+ QString date() const;
+ QString time() const;
+ QString paymentId() const;
+
// TODO: implement it
//! only applicable for output transactions
@@ -57,4 +63,5 @@ private:
// 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 9f0908b9..39d40a17 100644
--- a/src/libwalletqt/Wallet.cpp
+++ b/src/libwalletqt/Wallet.cpp
@@ -40,12 +40,14 @@ public:
virtual void newBlock(uint64_t height)
{
// qDebug() << __FUNCTION__;
+ m_wallet->m_history->refresh();
emit m_wallet->newBlock(height);
}
virtual void updated()
{
qDebug() << __FUNCTION__;
+ m_wallet->m_history->refresh();
emit m_wallet->updated();
}
@@ -53,6 +55,7 @@ public:
virtual void refreshed()
{
qDebug() << __FUNCTION__;
+
emit m_wallet->refreshed();
}
@@ -166,6 +169,7 @@ quint64 Wallet::daemonBlockChainTargetHeight() const
bool Wallet::refresh()
{
bool result = m_walletImpl->refresh();
+ m_history->refresh();
if (result)
emit updated();
return result;
@@ -205,10 +209,10 @@ void Wallet::disposeTransaction(PendingTransaction *t)
TransactionHistory *Wallet::history()
{
- if (!m_history) {
- Bitmonero::TransactionHistory * impl = m_walletImpl->history();
- m_history = new TransactionHistory(impl, this);
- }
+// if (m_history->count() == 0) {
+// m_history->refresh();
+// }
+
return m_history;
}
@@ -252,6 +256,7 @@ Wallet::Wallet(Bitmonero::Wallet *w, QObject *parent)
, m_daemonBlockChainHeight(0)
, m_daemonBlockChainHeightTtl(DAEMON_BLOCKCHAIN_HEIGHT_CACHE_TTL_SECONDS)
{
+ m_history = new TransactionHistory(m_walletImpl->history(), this);
m_walletImpl->setListener(new WalletListenerImpl(this));
}