summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Ghinet <samuel.ghinet@qt.io>2022-03-14 14:43:18 +0200
committerSamuel Ghinet <samuel.ghinet@qt.io>2022-03-21 13:34:02 +0000
commitfb1c6fbfe2aec9c10d71d08963157c9d78ec5640 (patch)
tree22a168f57125bc7ddc1282acf85e6659ef41a6e0
parenta1929bd9d7d29223a4523d727510fd90a7ff57b4 (diff)
downloadqt-creator-fb1c6fbfe2aec9c10d71d08963157c9d78ec5640.tar.gz
Qds: New Project dialog in new Welcome screen should close on Esc
Task-number: QDS-5697 Change-Id: I26f2e65bbb98b15b3867e0774a1bf8f78409b430 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
-rw-r--r--src/plugins/studiowelcome/qdsnewdialog.cpp13
-rw-r--r--src/plugins/studiowelcome/qdsnewdialog.h2
2 files changed, 15 insertions, 0 deletions
diff --git a/src/plugins/studiowelcome/qdsnewdialog.cpp b/src/plugins/studiowelcome/qdsnewdialog.cpp
index 527204c80e..943ca0be32 100644
--- a/src/plugins/studiowelcome/qdsnewdialog.cpp
+++ b/src/plugins/studiowelcome/qdsnewdialog.cpp
@@ -99,6 +99,8 @@ QdsNewDialog::QdsNewDialog(QWidget *parent)
QObject::connect(&m_wizard, &WizardHandler::statusMessageChanged, this, &QdsNewDialog::onStatusMessageChanged);
QObject::connect(&m_wizard, &WizardHandler::projectCanBeCreated, this, &QdsNewDialog::onProjectCanBeCreatedChanged);
+ m_dialog->installEventFilter(this);
+
QObject::connect(&m_wizard, &WizardHandler::wizardCreationFailed, this, [this]() {
QMessageBox::critical(m_dialog, tr("New project"), tr("Failed to initialize data"));
reject();
@@ -110,6 +112,17 @@ QdsNewDialog::QdsNewDialog(QWidget *parent)
});
}
+bool QdsNewDialog::eventFilter(QObject *obj, QEvent *event)
+{
+ if (obj == m_dialog && event->type() == QEvent::KeyPress
+ && static_cast<QKeyEvent *>(event)->key() == Qt::Key_Escape) {
+ reject();
+ return true;
+ }
+
+ return false;
+}
+
void QdsNewDialog::onDeletingWizard()
{
m_screenSizeModel->setBackendModel(nullptr);
diff --git a/src/plugins/studiowelcome/qdsnewdialog.h b/src/plugins/studiowelcome/qdsnewdialog.h
index 670b39192d..09a425c499 100644
--- a/src/plugins/studiowelcome/qdsnewdialog.h
+++ b/src/plugins/studiowelcome/qdsnewdialog.h
@@ -42,6 +42,7 @@ class QStandardItemModel;
QT_END_NAMESPACE
namespace StudioWelcome {
+
class QdsNewDialog : public QObject, public Core::NewDialog
{
Q_OBJECT
@@ -151,6 +152,7 @@ private:
QString projectDescription() const { return m_qmlProjectDescription; }
void updateScreenSizes();
+ bool eventFilter(QObject *obj, QEvent *ev) override;
private slots:
void onDeletingWizard();