diff --git a/src/libs/utils/wizard.cpp b/src/libs/utils/wizard.cpp index 9e08879a420aeca45d611bb38ceffe8114100a93..58c21cdcc32e253e5e24bf8f911ae350c660aa43 100644 --- a/src/libs/utils/wizard.cpp +++ b/src/libs/utils/wizard.cpp @@ -30,13 +30,14 @@ #include "wizard.h" #include "hostosinfo.h" -#include <QMap> #include <QHash> -#include <QVariant> - +#include <QKeyEvent> #include <QLabel> -#include <QVBoxLayout> +#include <QMap> #include <QStyle> +#include <QVBoxLayout> +#include <QVariant> + /*! \class Utils::Wizard @@ -376,6 +377,18 @@ bool Wizard::validateCurrentPage() return QWizard::validateCurrentPage(); } +bool Wizard::event(QEvent *event) +{ + if (event->type() == QEvent::ShortcutOverride) { + auto ke = static_cast<QKeyEvent *>(event); + if (ke->key() == Qt::Key_Escape && !ke->modifiers()) { + ke->accept(); + return true; + } + } + return QWizard::event(event); +} + void Wizard::_q_currentPageChanged(int pageId) { Q_D(Wizard); diff --git a/src/libs/utils/wizard.h b/src/libs/utils/wizard.h index 4cfecf2f13f43af84010c19706780a46329d22e3..58df9979ce20ca2e29eaec33f99e7a199cc72a86 100644 --- a/src/libs/utils/wizard.h +++ b/src/libs/utils/wizard.h @@ -72,6 +72,9 @@ signals: void nextClicked(); /* workaround for QWizard behavior where page->initialize is * called before currentIdChanged */ +protected: + bool event(QEvent *event); + private slots: void _q_currentPageChanged(int pageId); void _q_pageAdded(int pageId);