aboutsummaryrefslogtreecommitdiff
path: root/src/model/TransactionHistoryModel.cpp
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/model/TransactionHistoryModel.cpp
parentbd8646dd194771a9ff39bc75530d169a6d570ef6 (diff)
downloadmonzero-gui-0ff3fd32122a22d7c56a289faa6402351f425873.tar.gz
monzero-gui-0ff3fd32122a22d7c56a289faa6402351f425873.tar.xz
monzero-gui-0ff3fd32122a22d7c56a289faa6402351f425873.zip
added TransactionHistoryModel; renamings
Diffstat (limited to 'src/model/TransactionHistoryModel.cpp')
-rw-r--r--src/model/TransactionHistoryModel.cpp102
1 files changed, 102 insertions, 0 deletions
diff --git a/src/model/TransactionHistoryModel.cpp b/src/model/TransactionHistoryModel.cpp
new file mode 100644
index 00000000..1666981c
--- /dev/null
+++ b/src/model/TransactionHistoryModel.cpp
@@ -0,0 +1,102 @@
+#include "TransactionHistoryModel.h"
+#include "TransactionHistory.h"
+#include "TransactionInfo.h"
+
+
+TransactionHistoryModel::TransactionHistoryModel(QObject *parent)
+ : QAbstractListModel(parent), m_transactionHistory(nullptr)
+{
+
+}
+
+void TransactionHistoryModel::setTransactionHistory(TransactionHistory *th)
+{
+ beginResetModel();
+ m_transactionHistory = th;
+ endResetModel();
+ emit transactionHistoryChanged();
+}
+
+TransactionHistory *TransactionHistoryModel::transactionHistory() const
+{
+ return m_transactionHistory;
+}
+
+QVariant TransactionHistoryModel::data(const QModelIndex &index, int role) const
+{
+ if (!m_transactionHistory) {
+ return QVariant();
+ }
+
+ if (index.row() < 0 || (unsigned)index.row() >= m_transactionHistory->count()) {
+ return QVariant();
+ }
+
+ TransactionInfo * tInfo = m_transactionHistory->transaction(index.row());
+
+
+ Q_ASSERT(tInfo);
+ if (!tInfo) {
+ qCritical("%s: internal error: no transaction info for index %d", __FUNCTION__, index.row());
+ return QVariant();
+ }
+ QVariant result;
+ switch (role) {
+ case TransactionRole:
+ result = QVariant::fromValue(tInfo);
+ break;
+ case TransactionDirectionRole:
+ result = QVariant::fromValue(tInfo->direction());
+ break;
+ case TransactionPendingRole:
+ result = tInfo->isPending();
+ break;
+ case TransactionFailedRole:
+ result = tInfo->isFailed();
+ break;
+ case TransactionAmountRole:
+ result = tInfo->amount();
+ break;
+ case TransactionFeeRole:
+ result = tInfo->fee();
+ break;
+ case TransactionBlockHeightRole:
+ result = tInfo->blockHeight();
+ break;
+ case TransactionHashRole:
+ result = tInfo->hash();
+ break;
+ case TransactionTimeStampRole:
+ result = tInfo->timestamp();
+ break;
+ case TransactionPaymentIdRole:
+ result = tInfo->paymentId();
+ break;
+ }
+
+ return result;
+}
+
+int TransactionHistoryModel::rowCount(const QModelIndex &parent) const
+{
+ Q_UNUSED(parent)
+ return m_transactionHistory ? m_transactionHistory->count() : 0;
+}
+
+QHash<int, QByteArray> TransactionHistoryModel::roleNames() const
+{
+ QHash<int, QByteArray> roleNames = QAbstractListModel::roleNames();
+ roleNames.insert(TransactionRole, "transaction");
+ roleNames.insert(TransactionDirectionRole, "direction");
+ roleNames.insert(TransactionPendingRole, "isPending");
+ roleNames.insert(TransactionFailedRole, "isFailed");
+ roleNames.insert(TransactionAmountRole, "amount");
+ roleNames.insert(TransactionFeeRole, "fee");
+ roleNames.insert(TransactionBlockHeightRole, "blockHeight");
+ roleNames.insert(TransactionHashRole, "hash");
+ roleNames.insert(TransactionTimeStampRole, "timeStamp");
+ roleNames.insert(TransactionPaymentIdRole, "paymentId");
+ return roleNames;
+}
+
+