Skip to content

Commit f5a3a5b

Browse files
committed
gui: Add close window shortcut
CMD+W/CTRL+W is the standard shortcut to close a window without exiting the program.
1 parent a064e00 commit f5a3a5b

15 files changed

+41
-0
lines changed

src/qt/addressbookpage.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,8 @@ AddressBookPage::AddressBookPage(const PlatformStyle *platformStyle, Mode _mode,
136136
connect(ui->tableView, &QWidget::customContextMenuRequested, this, &AddressBookPage::contextualMenu);
137137

138138
connect(ui->closeButton, &QPushButton::clicked, this, &QDialog::accept);
139+
140+
GUIUtil::handleCloseWindowShortcut(this);
139141
}
140142

141143
AddressBookPage::~AddressBookPage()

src/qt/askpassphrasedialog.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include <qt/forms/ui_askpassphrasedialog.h>
1111

1212
#include <qt/guiconstants.h>
13+
#include <qt/guiutil.h>
1314
#include <qt/walletmodel.h>
1415

1516
#include <support/allocators/secure.h>
@@ -75,6 +76,8 @@ AskPassphraseDialog::AskPassphraseDialog(Mode _mode, QWidget *parent, SecureStri
7576
connect(ui->passEdit1, &QLineEdit::textChanged, this, &AskPassphraseDialog::textChanged);
7677
connect(ui->passEdit2, &QLineEdit::textChanged, this, &AskPassphraseDialog::textChanged);
7778
connect(ui->passEdit3, &QLineEdit::textChanged, this, &AskPassphraseDialog::textChanged);
79+
80+
GUIUtil::handleCloseWindowShortcut(this);
7881
}
7982

8083
AskPassphraseDialog::~AskPassphraseDialog()

src/qt/bitcoingui.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,8 @@ BitcoinGUI::BitcoinGUI(interfaces::Node& node, const PlatformStyle *_platformSty
211211
#ifdef Q_OS_MAC
212212
m_app_nap_inhibitor = new CAppNapInhibitor;
213213
#endif
214+
215+
GUIUtil::handleCloseWindowShortcut(this);
214216
}
215217

216218
BitcoinGUI::~BitcoinGUI()

src/qt/coincontroldialog.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,8 @@ CoinControlDialog::CoinControlDialog(const PlatformStyle *_platformStyle, QWidge
134134
ui->radioTreeMode->click();
135135
if (settings.contains("nCoinControlSortColumn") && settings.contains("nCoinControlSortOrder"))
136136
sortView(settings.value("nCoinControlSortColumn").toInt(), (static_cast<Qt::SortOrder>(settings.value("nCoinControlSortOrder").toInt())));
137+
138+
GUIUtil::handleCloseWindowShortcut(this);
137139
}
138140

139141
CoinControlDialog::~CoinControlDialog()

src/qt/editaddressdialog.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ EditAddressDialog::EditAddressDialog(Mode _mode, QWidget *parent) :
4343
GUIUtil::ItemDelegate* delegate = new GUIUtil::ItemDelegate(mapper);
4444
connect(delegate, &GUIUtil::ItemDelegate::keyEscapePressed, this, &EditAddressDialog::reject);
4545
mapper->setItemDelegate(delegate);
46+
47+
GUIUtil::handleCloseWindowShortcut(this);
4648
}
4749

4850
EditAddressDialog::~EditAddressDialog()

src/qt/guiutil.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
#include <QSettings>
5555
#include <QSize>
5656
#include <QString>
57+
#include <QShortcut>
5758
#include <QTextDocument> // for Qt::mightBeRichText
5859
#include <QThread>
5960
#include <QUrlQuery>
@@ -378,6 +379,11 @@ void bringToFront(QWidget* w)
378379
}
379380
}
380381

382+
void handleCloseWindowShortcut(QWidget* w)
383+
{
384+
QObject::connect(new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_W), w), &QShortcut::activated, w, &QWidget::close);
385+
}
386+
381387
void openDebugLogfile()
382388
{
383389
fs::path pathDebug = GetDataDir() / "debug.log";

src/qt/guiutil.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,9 @@ namespace GUIUtil
124124
// Activate, show and raise the widget
125125
void bringToFront(QWidget* w);
126126

127+
// Set shortcut to close window
128+
void handleCloseWindowShortcut(QWidget* w);
129+
127130
// Open debug.log
128131
void openDebugLogfile();
129132

src/qt/openuridialog.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ OpenURIDialog::OpenURIDialog(QWidget *parent) :
1515
ui(new Ui::OpenURIDialog)
1616
{
1717
ui->setupUi(this);
18+
19+
GUIUtil::handleCloseWindowShortcut(this);
1820
}
1921

2022
OpenURIDialog::~OpenURIDialog()

src/qt/optionsdialog.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,8 @@ OptionsDialog::OptionsDialog(QWidget *parent, bool enableWallet) :
135135
ui->minimizeToTray->setChecked(false);
136136
ui->minimizeToTray->setEnabled(false);
137137
}
138+
139+
GUIUtil::handleCloseWindowShortcut(this);
138140
}
139141

140142
OptionsDialog::~OptionsDialog()

src/qt/receiverequestdialog.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ ReceiveRequestDialog::ReceiveRequestDialog(QWidget *parent) :
3030
#endif
3131

3232
connect(ui->btnSaveAs, &QPushButton::clicked, ui->lblQRCode, &QRImageWidget::saveImage);
33+
34+
GUIUtil::handleCloseWindowShortcut(this);
3335
}
3436

3537
ReceiveRequestDialog::~ReceiveRequestDialog()

0 commit comments

Comments
 (0)