8 #include <qt/forms/ui_receivecoinsdialog.h> 20 #include <QMessageBox> 23 #include <QTextDocument> 29 platformStyle(_platformStyle)
34 ui->clearButton->setIcon(QIcon());
35 ui->receiveButton->setIcon(QIcon());
36 ui->showRequestButton->setIcon(QIcon());
37 ui->removeRequestButton->setIcon(QIcon());
40 ui->receiveButton->setIcon(_platformStyle->
SingleColorIcon(
":/icons/receiving_addresses"));
42 ui->removeRequestButton->setIcon(_platformStyle->
SingleColorIcon(
":/icons/remove"));
56 QTableView* tableView =
ui->recentRequestsView;
57 tableView->verticalHeader()->hide();
58 tableView->setAlternatingRowColors(
true);
59 tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
60 tableView->setSelectionMode(QAbstractItemView::ContiguousSelection);
63 if (!tableView->horizontalHeader()->restoreState(settings.value(
"RecentRequestsViewHeaderState").toByteArray())) {
68 tableView->horizontalHeader()->setStretchLastSection(
true);
82 QTableView* tableView =
ui->recentRequestsView;
86 connect(tableView->selectionModel(),
87 &QItemSelectionModel::selectionChanged,
this,
91 ui->useBech32->setCheckState(Qt::Checked);
93 ui->useBech32->setCheckState(Qt::Unchecked);
109 settings.setValue(
"RecentRequestsViewHeaderState",
ui->recentRequestsView->horizontalHeader()->saveState());
115 ui->reqAmount->clear();
116 ui->reqLabel->setText(
"");
117 ui->reqMessage->setText(
"");
145 QString label =
ui->reqLabel->text();
148 if (
ui->useBech32->isChecked()) {
160 case AddressTableModel::EditStatus::OK: {
163 ui->reqAmount->value(),
ui->reqMessage->text());
165 dialog->setAttribute(Qt::WA_DeleteOnClose);
166 dialog->setModel(
model);
167 dialog->setInfo(info);
174 case AddressTableModel::EditStatus::WALLET_UNLOCK_FAILURE:
175 QMessageBox::critical(
this, windowTitle(),
176 tr(
"Could not unlock wallet."),
177 QMessageBox::Ok, QMessageBox::Ok);
179 case AddressTableModel::EditStatus::KEY_GENERATION_FAILURE:
180 QMessageBox::critical(
this, windowTitle(),
181 tr(
"Could not generate new %1 address").arg(QString::fromStdString(
FormatOutputType(address_type))),
182 QMessageBox::Ok, QMessageBox::Ok);
185 case AddressTableModel::EditStatus::INVALID_ADDRESS:
186 case AddressTableModel::EditStatus::DUPLICATE_ADDRESS:
187 case AddressTableModel::EditStatus::NO_CHANGES:
198 dialog->
setInfo(submodel->
entry(index.row()).recipient);
199 dialog->setAttribute(Qt::WA_DeleteOnClose);
206 bool enable = !
ui->recentRequestsView->selectionModel()->selectedRows().isEmpty();
207 ui->showRequestButton->setEnabled(enable);
208 ui->removeRequestButton->setEnabled(enable);
215 QModelIndexList selection =
ui->recentRequestsView->selectionModel()->selectedRows();
217 for (
const QModelIndex& index : selection) {
226 QModelIndexList selection =
ui->recentRequestsView->selectionModel()->selectedRows();
227 if(selection.empty())
230 QModelIndex firstIndex = selection.at(0);
237 return QModelIndex();
238 QModelIndexList selection =
ui->recentRequestsView->selectionModel()->selectedRows();
239 if(selection.empty())
240 return QModelIndex();
242 QModelIndex firstIndex = selection.at(0);
250 if (!firstIndex.isValid()) {
260 if (!sel.isValid()) {
278 if (!sel.isValid()) {
291 if (!sel.isValid()) {
296 const QString address = submodel->
entry(sel.row()).recipient.address;
Model for list of recently generated payment requests / bitcoin: URIs.
void addNewRequest(const SendCoinsRecipient &recipient)
Dialog for requesting payment of bitcoins.
virtual bool canGetAddresses()=0
interfaces::Wallet & wallet() const
Utility functions used by the Bitcoin Qt UI.
QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const override
void canGetAddressesChanged()
virtual OutputType getDefaultAddressType()=0
void recentRequestsView_selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
QAction * copyMessageAction
AddressTableModel * getAddressTableModel()
Ui::ReceiveCoinsDialog * ui
QString formatBitcoinURI(const SendCoinsRecipient &info)
QModelIndex selectedRow()
QString addRow(const QString &type, const QString &label, const QString &address, const OutputType address_type)
int getDisplayUnit() const
constexpr auto dialog_flags
void sort(int column, Qt::SortOrder order=Qt::AscendingOrder) override
void setModel(WalletModel *model)
void copyColumnToClipboard(int column)
QAction * copyLabelAction
void setClipboard(const QString &str)
void on_recentRequestsView_doubleClicked(const QModelIndex &index)
void setInfo(const SendCoinsRecipient &info)
SendCoinsRecipient recipient
const RecentRequestEntry & entry(int row) const
void displayUnitChanged(int unit)
ReceiveCoinsDialog(const PlatformStyle *platformStyle, QWidget *parent=nullptr)
const std::string & FormatOutputType(OutputType type)
void on_removeRequestButton_clicked()
RecentRequestsTableModel * getRecentRequestsTableModel()
void on_receiveButton_clicked()
Interface to Bitcoin wallet from Qt view code.
void on_showRequestButton_clicked()
static const QString Receive
Specifies receive address.
bool removeRows(int row, int count, const QModelIndex &parent=QModelIndex()) override
void showMenu(const QPoint &point)
EditStatus getEditStatus() const
QAction * copyAmountAction
OptionsModel * getOptionsModel()
void setModel(WalletModel *model)