From e3cea8582f1f860ba2a25bbfb174fbcbcd306c9a Mon Sep 17 00:00:00 2001 From: Ilya Kitaev Date: Sat, 8 Oct 2016 01:22:45 +0300 Subject: [PATCH] TransactionHistory: firstDateTime and lastDateTime properties --- src/libwalletqt/TransactionHistory.cpp | 35 ++++++++++++++++++++++++-- src/libwalletqt/TransactionHistory.h | 9 +++++++ 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/src/libwalletqt/TransactionHistory.cpp b/src/libwalletqt/TransactionHistory.cpp index e94816f2..7fd7c7bc 100644 --- a/src/libwalletqt/TransactionHistory.cpp +++ b/src/libwalletqt/TransactionHistory.cpp @@ -28,13 +28,33 @@ QList TransactionHistory::getAll() const emit refreshStarted(); qDeleteAll(m_tinfo); m_tinfo.clear(); + + QDateTime firstDateTime = QDateTime::currentDateTime(); + QDateTime lastDateTime = QDateTime(QDate(1970, 1, 1)); + TransactionHistory * parent = const_cast(this); for (const auto i : m_pimpl->getAll()) { TransactionInfo * ti = new TransactionInfo(i, parent); - qDebug() << ti->hash(); m_tinfo.append(ti); + // looking for transactions timestamp scope + if (ti->timestamp() >= lastDateTime) { + lastDateTime = ti->timestamp(); + } + if (ti->timestamp() <= firstDateTime) { + firstDateTime = ti->timestamp(); + } } emit refreshFinished(); + + if (m_firstDateTime != firstDateTime) { + m_firstDateTime = firstDateTime; + emit firstDateTimeChanged(); + } + if (m_lastDateTime != lastDateTime) { + m_lastDateTime = lastDateTime; + emit lastDateTimeChanged(); + } + return m_tinfo; } @@ -51,9 +71,20 @@ quint64 TransactionHistory::count() const return m_tinfo.count(); } +QDateTime TransactionHistory::firstDateTime() const +{ + return m_firstDateTime; +} + +QDateTime TransactionHistory::lastDateTime() const +{ + return m_lastDateTime; +} + TransactionHistory::TransactionHistory(Bitmonero::TransactionHistory *pimpl, QObject *parent) : QObject(parent), m_pimpl(pimpl) { - // this->refresh(); + m_firstDateTime = QDateTime(QDate(1970, 1, 1)); + m_lastDateTime = QDateTime::currentDateTime(); } diff --git a/src/libwalletqt/TransactionHistory.h b/src/libwalletqt/TransactionHistory.h index d7a7278e..ee05787a 100644 --- a/src/libwalletqt/TransactionHistory.h +++ b/src/libwalletqt/TransactionHistory.h @@ -3,6 +3,7 @@ #include #include +#include namespace Bitmonero { class TransactionHistory; @@ -14,6 +15,8 @@ class TransactionHistory : public QObject { Q_OBJECT Q_PROPERTY(int count READ count) + Q_PROPERTY(QDateTime firstDateTime READ firstDateTime NOTIFY firstDateTimeChanged) + Q_PROPERTY(QDateTime lastDateTime READ lastDateTime NOTIFY lastDateTimeChanged) public: Q_INVOKABLE TransactionInfo *transaction(int index); @@ -21,10 +24,14 @@ public: Q_INVOKABLE QList getAll() const; Q_INVOKABLE void refresh(); quint64 count() const; + QDateTime firstDateTime() const; + QDateTime lastDateTime() const; signals: void refreshStarted() const; void refreshFinished() const; + void firstDateTimeChanged() const; + void lastDateTimeChanged() const; public slots: @@ -37,6 +44,8 @@ private: Bitmonero::TransactionHistory * m_pimpl; mutable QList m_tinfo; + mutable QDateTime m_firstDateTime; + mutable QDateTime m_lastDateTime; };