18 : QAbstractTableModel(parent), walletModel(parent) {
20 std::vector<std::string> vReceiveRequests;
22 for (
const std::string &request : vReceiveRequests) {
51 if (!index.isValid() || index.row() >=
list.length()) {
55 if (role == Qt::DisplayRole || role == Qt::EditRole) {
57 switch (index.column()) {
62 return tr(
"(no label)");
68 role == Qt::DisplayRole) {
69 return tr(
"(no message)");
75 role == Qt::DisplayRole) {
76 return tr(
"(no amount requested)");
77 }
else if (role == Qt::EditRole) {
88 }
else if (role == Qt::TextAlignmentRole) {
89 if (index.column() ==
Amount) {
90 return (
int)(Qt::AlignRight | Qt::AlignVCenter);
97 const QVariant &value,
int role) {
102 Qt::Orientation orientation,
104 if (orientation == Qt::Horizontal) {
105 if (role == Qt::DisplayRole && section <
columns.size()) {
116 Q_EMIT headerDataChanged(Qt::Horizontal,
Amount,
Amount);
123 ? tr(
"Requested") +
" (" +
132 const QModelIndex &parent)
const {
135 return createIndex(row, column);
139 const QModelIndex &parent) {
142 if (count > 0 && row >= 0 && (row + count) <=
list.size()) {
143 for (
int i = 0; i <
count; ++i) {
151 beginRemoveRows(parent, row, row + count - 1);
161 return Qt::ItemIsSelectable | Qt::ItemIsEnabled;
169 newEntry.
date = QDateTime::currentDateTime();
176 newEntry.id, ss.
str())) {
185 std::vector<char>
data(recipient.begin(), recipient.end());
205 beginInsertRows(QModelIndex(), 0, 0);
206 list.prepend(recipient);
214 index(0, 0, QModelIndex()),
227 if (order == Qt::DescendingOrder) {
228 std::swap(pLeft, pRight);
233 return pLeft->
date.toTime_t() < pRight->
date.toTime_t();
241 return pLeft->
id < pRight->
id;
void loadReceiveRequests(std::vector< std::string > &vReceiveRequests)
void addNewRequest(const SendCoinsRecipient &recipient)
static constexpr Amount zero()
bool setData(const QModelIndex &index, const QVariant &value, int role) override
int64_t nReceiveRequestsMaxId
~RecentRequestsTableModel()
QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const override
Qt::ItemFlags flags(const QModelIndex &index) const override
QString dateTimeStr(const QDateTime &date)
Double ended buffer combining vector and stream-like interfaces.
int getDisplayUnit() const
void sort(int column, Qt::SortOrder order=Qt::AscendingOrder) override
QVariant data(const QModelIndex &index, int role) const override
QVariant headerData(int section, Qt::Orientation orientation, int role) const override
QList< RecentRequestEntry > list
static QString shortName(int unit)
Short name.
SendCoinsRecipient recipient
const RecentRequestEntry & entry(int row) const
void displayUnitChanged(int unit)
static QString format(int unit, const Amount amount, bool plussign=false, SeparatorStyle separators=separatorStandard)
Format as string.
int columnCount(const QModelIndex &parent) const override
int rowCount(const QModelIndex &parent) const override
WalletModel * walletModel
static constexpr int CLIENT_VERSION
bitcoind-res.rc includes this file, but it cannot cope with real c++ code.
Interface to Bitcoin wallet from Qt view code.
void updateAmountColumnTitle()
Updates the column title to "Amount (DisplayUnit)" and emits headerDataChanged() signal for table hea...
bool removeRows(int row, int count, const QModelIndex &parent=QModelIndex()) override
bool operator()(const RecentRequestEntry &left, const RecentRequestEntry &right) const
bool saveReceiveRequest(const std::string &sAddress, const int64_t nId, const std::string &sRequest)
RecentRequestsTableModel(WalletModel *parent)
QString getAmountTitle()
Gets title for amount column including current display unit if optionsModel reference available...
OptionsModel * getOptionsModel()