From fa3d98aa3767bf2bc3d0815fb153f1baa09eddc0 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Thu, 4 Aug 2022 13:03:38 +0800 Subject: [PATCH] Add keyboard shortcut to Download URL dialog Closes #17436. PR #17490. --- src/gui/downloadfromurldialog.cpp | 16 ++++++++++++++-- src/gui/downloadfromurldialog.h | 4 +++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/gui/downloadfromurldialog.cpp b/src/gui/downloadfromurldialog.cpp index af3026fbc..590745239 100644 --- a/src/gui/downloadfromurldialog.cpp +++ b/src/gui/downloadfromurldialog.cpp @@ -29,6 +29,7 @@ #include "downloadfromurldialog.h" #include +#include #include #include #include @@ -66,7 +67,7 @@ DownloadFromURLDialog::DownloadFromURLDialog(QWidget *parent) m_ui->setupUi(this); m_ui->buttonBox->button(QDialogButtonBox::Ok)->setText(tr("Download")); - connect(m_ui->buttonBox, &QDialogButtonBox::accepted, this, &DownloadFromURLDialog::downloadButtonClicked); + connect(m_ui->buttonBox, &QDialogButtonBox::accepted, this, &DownloadFromURLDialog::onSubmit); connect(m_ui->buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); m_ui->textUrls->setWordWrapMode(QTextOption::NoWrap); @@ -102,7 +103,7 @@ DownloadFromURLDialog::~DownloadFromURLDialog() delete m_ui; } -void DownloadFromURLDialog::downloadButtonClicked() +void DownloadFromURLDialog::onSubmit() { const QString plainText = m_ui->textUrls->toPlainText(); const QList urls = QStringView(plainText).split(u'\n'); @@ -125,3 +126,14 @@ void DownloadFromURLDialog::downloadButtonClicked() emit urlsReadyToBeDownloaded(uniqueURLs.values()); accept(); } + +void DownloadFromURLDialog::keyPressEvent(QKeyEvent *event) +{ + if ((event->modifiers() == Qt::ControlModifier) && (event->key() == Qt::Key_Return)) + { + onSubmit(); + return; + } + + QDialog::keyPressEvent(event); +} diff --git a/src/gui/downloadfromurldialog.h b/src/gui/downloadfromurldialog.h index 4687e2703..4d22cdf72 100644 --- a/src/gui/downloadfromurldialog.h +++ b/src/gui/downloadfromurldialog.h @@ -50,9 +50,11 @@ signals: void urlsReadyToBeDownloaded(const QStringList &torrentURLs); private slots: - void downloadButtonClicked(); + void onSubmit(); private: + void keyPressEvent(QKeyEvent *event) override; + Ui::DownloadFromURLDialog *m_ui = nullptr; SettingValue m_storeDialogSize; };