7 #include <qt/forms/ui_receivecoinsdialog.h> 19 #include <QMessageBox> 21 #include <QTextDocument> 26 columnResizingFixer(nullptr), model(nullptr),
27 platformStyle(_platformStyle) {
31 ui->clearButton->setIcon(QIcon());
32 ui->receiveButton->setIcon(QIcon());
33 ui->showRequestButton->setIcon(QIcon());
34 ui->removeRequestButton->setIcon(QIcon());
36 ui->clearButton->setIcon(
38 ui->receiveButton->setIcon(
40 ui->showRequestButton->setIcon(
42 ui->removeRequestButton->setIcon(
47 QAction *copyURIAction =
new QAction(tr(
"Copy URI"),
this);
48 QAction *copyLabelAction =
new QAction(tr(
"Copy label"),
this);
49 QAction *copyMessageAction =
new QAction(tr(
"Copy message"),
this);
50 QAction *copyAmountAction =
new QAction(tr(
"Copy amount"),
this);
60 connect(
ui->recentRequestsView, &QWidget::customContextMenuRequested,
this,
62 connect(copyURIAction, &QAction::triggered,
this,
64 connect(copyLabelAction, &QAction::triggered,
this,
66 connect(copyMessageAction, &QAction::triggered,
this,
68 connect(copyAmountAction, &QAction::triggered,
this,
71 connect(
ui->clearButton, &QPushButton::clicked,
this,
85 QTableView *tableView =
ui->recentRequestsView;
87 tableView->verticalHeader()->hide();
88 tableView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
90 tableView->setAlternatingRowColors(
true);
91 tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
92 tableView->setSelectionMode(QAbstractItemView::ContiguousSelection);
100 connect(tableView->selectionModel(),
101 &QItemSelectionModel::selectionChanged,
this,
125 ui->reqAmount->clear();
126 ui->reqLabel->setText(
"");
127 ui->reqMessage->setText(
"");
141 ui->reqAmount->setDisplayUnit(
153 QString label =
ui->reqLabel->text();
157 label,
"", address_type);
160 case AddressTableModel::EditStatus::OK: {
163 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")
182 .arg(QString::fromStdString(
184 QMessageBox::Ok, QMessageBox::Ok);
187 case AddressTableModel::EditStatus::INVALID_ADDRESS:
188 case AddressTableModel::EditStatus::DUPLICATE_ADDRESS:
189 case AddressTableModel::EditStatus::NO_CHANGES:
196 const QModelIndex &index) {
201 dialog->
setInfo(submodel->
entry(index.row()).recipient);
202 dialog->setAttribute(Qt::WA_DeleteOnClose);
207 const QItemSelection &selected,
const QItemSelection &deselected) {
210 !
ui->recentRequestsView->selectionModel()->selectedRows().isEmpty();
211 ui->showRequestButton->setEnabled(enable);
212 ui->removeRequestButton->setEnabled(enable);
217 !
ui->recentRequestsView->selectionModel()) {
220 QModelIndexList selection =
221 ui->recentRequestsView->selectionModel()->selectedRows();
223 for (
const QModelIndex &index : selection) {
230 !
ui->recentRequestsView->selectionModel()) {
233 QModelIndexList selection =
234 ui->recentRequestsView->selectionModel()->selectedRows();
235 if (selection.empty()) {
239 QModelIndex firstIndex = selection.at(0);
241 firstIndex.row(), selection.length(), firstIndex.parent());
247 QWidget::resizeEvent(event);
252 if (event->key() == Qt::Key_Return) {
254 if (
ui->reqLabel->hasFocus() ||
ui->reqAmount->hasFocus() ||
255 ui->reqMessage->hasFocus()) {
262 this->QDialog::keyPressEvent(event);
267 !
ui->recentRequestsView->selectionModel()) {
268 return QModelIndex();
270 QModelIndexList selection =
271 ui->recentRequestsView->selectionModel()->selectedRows();
272 if (selection.empty()) {
273 return QModelIndex();
276 QModelIndex firstIndex = selection.at(0);
283 if (!firstIndex.isValid()) {
287 ->
index(firstIndex.row(), column)
303 if (!sel.isValid()) {
void stretchColumnWidth(int column)
Model for list of recently generated payment requests / bitcoincash: URIs.
void addNewRequest(const SendCoinsRecipient &recipient)
Dialog for requesting payment of bitcoins.
interfaces::Wallet & wallet() const
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)
GUIUtil::TableViewLastColumnResizingFixer * columnResizingFixer
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
void sort(int column, Qt::SortOrder order=Qt::AscendingOrder) override
void setModel(WalletModel *model)
void copyColumnToClipboard(int column)
void setClipboard(const QString &str)
void on_recentRequestsView_doubleClicked(const QModelIndex &index)
void setInfo(const SendCoinsRecipient &info)
Makes a QTableView last column feel as if it was being resized from its left border.
virtual void keyPressEvent(QKeyEvent *event)
const RecentRequestEntry & entry(int row) const
void displayUnitChanged(int unit)
ReceiveCoinsDialog(const PlatformStyle *platformStyle, QWidget *parent=nullptr)
const std::string & FormatOutputType(OutputType type)
virtual void resizeEvent(QResizeEvent *event)
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
OptionsModel * getOptionsModel()
virtual bool canGetAddresses() const =0
void setModel(WalletModel *model)