Skip to content

Commit ff0c0dd

Browse files
committed
Merge pull request #3874
caee92d qt: Enable and disable the Show and Remove buttons for requested payments history based on whether any entry is selected. (Haakon Nilsen)
2 parents 1699e3a + caee92d commit ff0c0dd

File tree

3 files changed

+23
-0
lines changed

3 files changed

+23
-0
lines changed

src/qt/forms/receivecoinsdialog.ui

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,9 @@
263263
<property name="text">
264264
<string>Show</string>
265265
</property>
266+
<property name="enabled">
267+
<bool>false</bool>
268+
</property>
266269
<property name="icon">
267270
<iconset resource="../bitcoin.qrc">
268271
<normaloff>:/icons/edit</normaloff>:/icons/edit</iconset>
@@ -277,6 +280,9 @@
277280
<property name="text">
278281
<string>Remove</string>
279282
</property>
283+
<property name="enabled">
284+
<bool>false</bool>
285+
</property>
280286
<property name="icon">
281287
<iconset resource="../bitcoin.qrc">
282288
<normaloff>:/icons/remove</normaloff>:/icons/remove</iconset>

src/qt/receivecoinsdialog.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#include <QMessageBox>
2020
#include <QTextDocument>
2121
#include <QScrollBar>
22+
#include <QItemSelection>
2223

2324
ReceiveCoinsDialog::ReceiveCoinsDialog(QWidget *parent) :
2425
QDialog(parent),
@@ -77,6 +78,11 @@ void ReceiveCoinsDialog::setModel(WalletModel *model)
7778
ui->recentRequestsView->horizontalHeader()->resizeSection(RecentRequestsTableModel::Amount, 100);
7879

7980
model->getRecentRequestsTableModel()->sort(RecentRequestsTableModel::Date, Qt::DescendingOrder);
81+
82+
connect(ui->recentRequestsView->selectionModel(),
83+
SIGNAL(selectionChanged(QItemSelection, QItemSelection)),
84+
this,
85+
SLOT(on_recentRequestsView_selectionChanged(QItemSelection, QItemSelection)));
8086
}
8187
}
8288

@@ -161,6 +167,15 @@ void ReceiveCoinsDialog::on_recentRequestsView_doubleClicked(const QModelIndex &
161167
dialog->show();
162168
}
163169

170+
void ReceiveCoinsDialog::on_recentRequestsView_selectionChanged(const QItemSelection &selected,
171+
const QItemSelection &deselected)
172+
{
173+
// Enable Show/Remove buttons only if anything is selected.
174+
bool enable = !ui->recentRequestsView->selectionModel()->selectedRows().isEmpty();
175+
ui->showRequestButton->setEnabled(enable);
176+
ui->removeRequestButton->setEnabled(enable);
177+
}
178+
164179
void ReceiveCoinsDialog::on_showRequestButton_clicked()
165180
{
166181
if(!model || !model->getRecentRequestsTableModel() || !ui->recentRequestsView->selectionModel())

src/qt/receivecoinsdialog.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include <QMenu>
1111
#include <QPoint>
1212
#include <QVariant>
13+
#include <QItemSelection>
1314

1415
namespace Ui {
1516
class ReceiveCoinsDialog;
@@ -51,6 +52,7 @@ private slots:
5152
void on_showRequestButton_clicked();
5253
void on_removeRequestButton_clicked();
5354
void on_recentRequestsView_doubleClicked(const QModelIndex &index);
55+
void on_recentRequestsView_selectionChanged(const QItemSelection &, const QItemSelection &);
5456
void updateDisplayUnit();
5557
void showMenu(const QPoint &);
5658
void copyLabel();

0 commit comments

Comments
 (0)