Bitcoin ABC  0.24.7
P2P Digital Currency
recentrequeststablemodel.h
Go to the documentation of this file.
1 // Copyright (c) 2011-2016 The Bitcoin Core developers
2 // Distributed under the MIT software license, see the accompanying
3 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4 
5 #ifndef BITCOIN_QT_RECENTREQUESTSTABLEMODEL_H
6 #define BITCOIN_QT_RECENTREQUESTSTABLEMODEL_H
7 
9 
10 #include <QAbstractTableModel>
11 #include <QDateTime>
12 #include <QStringList>
13 
14 class WalletModel;
15 
17 public:
20 
21  static const int CURRENT_VERSION = 1;
22  int nVersion;
23  int64_t id;
24  QDateTime date;
26 
28  unsigned int date_timet;
29  SER_WRITE(obj, date_timet = obj.date.toTime_t());
30  READWRITE(obj.nVersion, obj.id, date_timet, obj.recipient);
31  SER_READ(obj, obj.date = QDateTime::fromTime_t(date_timet));
32  }
33 };
34 
36 public:
37  RecentRequestEntryLessThan(int nColumn, Qt::SortOrder fOrder)
38  : column(nColumn), order(fOrder) {}
39  bool operator()(const RecentRequestEntry &left,
40  const RecentRequestEntry &right) const;
41 
42 private:
43  int column;
44  Qt::SortOrder order;
45 };
46 
51 class RecentRequestsTableModel : public QAbstractTableModel {
52  Q_OBJECT
53 
54 public:
55  explicit RecentRequestsTableModel(WalletModel *parent);
57 
58  enum ColumnIndex {
59  Date = 0,
60  Label = 1,
61  Message = 2,
62  Amount = 3,
64  };
65 
68  int rowCount(const QModelIndex &parent) const override;
69  int columnCount(const QModelIndex &parent) const override;
70  QVariant data(const QModelIndex &index, int role) const override;
71  bool setData(const QModelIndex &index, const QVariant &value,
72  int role) override;
73  QVariant headerData(int section, Qt::Orientation orientation,
74  int role) const override;
75  QModelIndex index(int row, int column,
76  const QModelIndex &parent = QModelIndex()) const override;
77  bool removeRows(int row, int count,
78  const QModelIndex &parent = QModelIndex()) override;
79  Qt::ItemFlags flags(const QModelIndex &index) const override;
80  void sort(int column, Qt::SortOrder order = Qt::AscendingOrder) override;
83  const RecentRequestEntry &entry(int row) const { return list[row]; }
84  void addNewRequest(const SendCoinsRecipient &recipient);
85  void addNewRequest(const std::string &recipient);
86  void addNewRequest(RecentRequestEntry &recipient);
87 
88 public Q_SLOTS:
89  void updateDisplayUnit();
90 
91 private:
93  QStringList columns;
94  QList<RecentRequestEntry> list;
96 
102  QString getAmountTitle();
103 };
104 
105 #endif // BITCOIN_QT_RECENTREQUESTSTABLEMODEL_H
RecentRequestsTableModel::list
QList< RecentRequestEntry > list
Definition: recentrequeststablemodel.h:94
RecentRequestEntry::recipient
SendCoinsRecipient recipient
Definition: recentrequeststablemodel.h:25
RecentRequestEntryLessThan
Definition: recentrequeststablemodel.h:35
count
static int count
Definition: tests.c:41
RecentRequestEntry::date
QDateTime date
Definition: recentrequeststablemodel.h:24
WalletModel
Interface to Bitcoin wallet from Qt view code.
Definition: walletmodel.h:47
RecentRequestsTableModel::entry
const RecentRequestEntry & entry(int row) const
Definition: recentrequeststablemodel.h:83
RecentRequestsTableModel::columnCount
int columnCount(const QModelIndex &parent) const override
Definition: recentrequeststablemodel.cpp:43
RecentRequestEntry::SERIALIZE_METHODS
SERIALIZE_METHODS(RecentRequestEntry, obj)
Definition: recentrequeststablemodel.h:27
RecentRequestsTableModel::rowCount
int rowCount(const QModelIndex &parent) const override
Definition: recentrequeststablemodel.cpp:37
RecentRequestsTableModel::updateAmountColumnTitle
void updateAmountColumnTitle()
Updates the column title to "Amount (DisplayUnit)" and emits headerDataChanged() signal for table hea...
Definition: recentrequeststablemodel.cpp:114
RecentRequestsTableModel::walletModel
WalletModel * walletModel
Definition: recentrequeststablemodel.h:92
RecentRequestsTableModel::updateDisplayUnit
void updateDisplayUnit()
Definition: recentrequeststablemodel.cpp:218
RecentRequestsTableModel::columns
QStringList columns
Definition: recentrequeststablemodel.h:93
RecentRequestsTableModel::removeRows
bool removeRows(int row, int count, const QModelIndex &parent=QModelIndex()) override
Definition: recentrequeststablemodel.cpp:138
SendCoinsRecipient
Definition: sendcoinsrecipient.h:23
RecentRequestEntry::CURRENT_VERSION
static const int CURRENT_VERSION
Definition: recentrequeststablemodel.h:21
RecentRequestEntryLessThan::RecentRequestEntryLessThan
RecentRequestEntryLessThan(int nColumn, Qt::SortOrder fOrder)
Definition: recentrequeststablemodel.h:37
RecentRequestsTableModel::RecentRequestsTableModel
RecentRequestsTableModel(WalletModel *parent)
Definition: recentrequeststablemodel.cpp:17
RecentRequestsTableModel::getAmountTitle
QString getAmountTitle()
Gets title for amount column including current display unit if optionsModel reference available.
Definition: recentrequeststablemodel.cpp:121
RecentRequestsTableModel
Model for list of recently generated payment requests / bitcoincash: URIs.
Definition: recentrequeststablemodel.h:51
RecentRequestEntry::nVersion
int nVersion
Definition: recentrequeststablemodel.h:22
RecentRequestsTableModel::NUMBER_OF_COLUMNS
@ NUMBER_OF_COLUMNS
Definition: recentrequeststablemodel.h:63
RecentRequestsTableModel::setData
bool setData(const QModelIndex &index, const QVariant &value, int role) override
Definition: recentrequeststablemodel.cpp:96
RecentRequestEntryLessThan::order
Qt::SortOrder order
Definition: recentrequeststablemodel.h:44
RecentRequestsTableModel::flags
Qt::ItemFlags flags(const QModelIndex &index) const override
Definition: recentrequeststablemodel.cpp:160
READWRITE
#define READWRITE(...)
Definition: serialize.h:179
Amount
Definition: amount.h:19
RecentRequestsTableModel::addNewRequest
void addNewRequest(const SendCoinsRecipient &recipient)
Definition: recentrequeststablemodel.cpp:165
RecentRequestsTableModel::nReceiveRequestsMaxId
int64_t nReceiveRequestsMaxId
Definition: recentrequeststablemodel.h:95
RecentRequestsTableModel::ColumnIndex
ColumnIndex
Definition: recentrequeststablemodel.h:58
RecentRequestsTableModel::~RecentRequestsTableModel
~RecentRequestsTableModel()
Definition: recentrequeststablemodel.cpp:33
RecentRequestsTableModel::index
QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const override
Definition: recentrequeststablemodel.cpp:131
RecentRequestsTableModel::Date
@ Date
Definition: recentrequeststablemodel.h:59
RecentRequestEntry::id
int64_t id
Definition: recentrequeststablemodel.h:23
RecentRequestsTableModel::Label
@ Label
Definition: recentrequeststablemodel.h:60
RecentRequestEntryLessThan::operator()
bool operator()(const RecentRequestEntry &left, const RecentRequestEntry &right) const
Definition: recentrequeststablemodel.cpp:222
RecentRequestsTableModel::sort
void sort(int column, Qt::SortOrder order=Qt::AscendingOrder) override
Definition: recentrequeststablemodel.cpp:210
RecentRequestsTableModel::data
QVariant data(const QModelIndex &index, int role) const override
Definition: recentrequeststablemodel.cpp:49
RecentRequestsTableModel::Message
@ Message
Definition: recentrequeststablemodel.h:61
SER_WRITE
#define SER_WRITE(obj, code)
Definition: serialize.h:186
RecentRequestEntry::RecentRequestEntry
RecentRequestEntry()
Definition: recentrequeststablemodel.h:18
SER_READ
#define SER_READ(obj, code)
Definition: serialize.h:182
RecentRequestsTableModel::headerData
QVariant headerData(int section, Qt::Orientation orientation, int role) const override
Definition: recentrequeststablemodel.cpp:101
RecentRequestEntryLessThan::column
int column
Definition: recentrequeststablemodel.h:43
sendcoinsrecipient.h
RecentRequestEntry
Definition: recentrequeststablemodel.h:16