18 : QAbstractTableModel(parent), walletModel(parent) {
20 std::vector<std::string> vReceiveRequests;
22 for (
const std::string &request : vReceiveRequests) {
53 if (role == Qt::DisplayRole || role == Qt::EditRole) {
55 switch (
index.column()) {
60 return tr(
"(no label)");
66 role == Qt::DisplayRole) {
67 return tr(
"(no message)");
73 role == Qt::DisplayRole) {
74 return tr(
"(no amount requested)");
75 }
else if (role == Qt::EditRole) {
86 }
else if (role == Qt::TextAlignmentRole) {
88 return (
int)(Qt::AlignRight | Qt::AlignVCenter);
95 const QVariant &value,
int role) {
100 Qt::Orientation orientation,
102 if (orientation == Qt::Horizontal) {
103 if (role == Qt::DisplayRole && section <
columns.size()) {
114 Q_EMIT headerDataChanged(Qt::Horizontal,
Amount,
Amount);
121 ? tr(
"Requested") +
" (" +
130 const QModelIndex &parent)
const {
133 return createIndex(row, column);
137 const QModelIndex &parent) {
141 for (
int i = 0; i <
count; ++i) {
149 beginRemoveRows(parent, row, row +
count - 1);
159 return Qt::ItemIsSelectable | Qt::ItemIsEnabled;
167 newEntry.
date = QDateTime::currentDateTime();
174 newEntry.
id, ss.str())) {
183 std::vector<uint8_t>
data(recipient.begin(), recipient.end());
203 beginInsertRows(QModelIndex(), 0, 0);
204 list.prepend(recipient);
212 index(0, 0, QModelIndex()),
224 if (
order == Qt::DescendingOrder) {
225 std::swap(pLeft, pRight);
230 return pLeft->
date.toSecsSinceEpoch() <
231 pRight->
date.toSecsSinceEpoch();
239 return pLeft->
id < pRight->
id;
static QString format(int unit, const Amount amount, bool plussign=false, SeparatorStyle separators=SeparatorStyle::STANDARD, bool justify=false)
Format as string.
static QString shortName(int unit)
Short name.
Double ended buffer combining vector and stream-like interfaces.
int getDisplayUnit() const
void displayUnitChanged(int unit)
SendCoinsRecipient recipient
bool operator()(const RecentRequestEntry &left, const RecentRequestEntry &right) const
bool removeRows(int row, int count, const QModelIndex &parent=QModelIndex()) override
QVariant headerData(int section, Qt::Orientation orientation, int role) const override
bool setData(const QModelIndex &index, const QVariant &value, int role) override
QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const override
QVariant data(const QModelIndex &index, int role) const override
const RecentRequestEntry & entry(int row) const
~RecentRequestsTableModel()
void sort(int column, Qt::SortOrder order=Qt::AscendingOrder) override
QList< RecentRequestEntry > list
int rowCount(const QModelIndex &parent) const override
void updateAmountColumnTitle()
Updates the column title to "Amount (DisplayUnit)" and emits headerDataChanged() signal for table hea...
QString getAmountTitle()
Gets title for amount column including current display unit if optionsModel reference available.
WalletModel * walletModel
Qt::ItemFlags flags(const QModelIndex &index) const override
void addNewRequest(const SendCoinsRecipient &recipient)
RecentRequestsTableModel(WalletModel *parent)
int64_t nReceiveRequestsMaxId
int columnCount(const QModelIndex &parent) const override
Interface to Bitcoin wallet from Qt view code.
void loadReceiveRequests(std::vector< std::string > &vReceiveRequests)
bool saveReceiveRequest(const std::string &sAddress, const int64_t nId, const std::string &sRequest)
OptionsModel * getOptionsModel()
QString dateTimeStr(const QDateTime &date)
static constexpr Amount zero() noexcept