diff --git a/src/libs/utils/wizardpage.cpp b/src/libs/utils/wizardpage.cpp index 53702340736..782c4cd0269 100644 --- a/src/libs/utils/wizardpage.cpp +++ b/src/libs/utils/wizardpage.cpp @@ -70,4 +70,14 @@ void WizardPage::registerFieldWithName(const QString &name, QWidget *widget, registerField(name, widget, property, changedSignal); } +bool WizardPage::handleReject() +{ + return false; +} + +bool WizardPage::handleAccept() +{ + return false; +} + } // namespace Utils diff --git a/src/libs/utils/wizardpage.h b/src/libs/utils/wizardpage.h index 5ff240339b4..786d6fc4b92 100644 --- a/src/libs/utils/wizardpage.h +++ b/src/libs/utils/wizardpage.h @@ -52,6 +52,9 @@ public: void registerFieldWithName(const QString &name, QWidget *widget, const char *property = 0, const char *changedSignal = 0); + virtual bool handleReject(); + virtual bool handleAccept(); + signals: // Emitted when there is something that the developer using this page should be aware of. void reportError(const QString &errorMessage); diff --git a/src/plugins/projectexplorer/jsonwizard/jsonwizard.cpp b/src/plugins/projectexplorer/jsonwizard/jsonwizard.cpp index 7d2f6707011..a3ddf29f607 100644 --- a/src/plugins/projectexplorer/jsonwizard/jsonwizard.cpp +++ b/src/plugins/projectexplorer/jsonwizard/jsonwizard.cpp @@ -176,6 +176,10 @@ void JsonWizard::removeAttributeFromAllFiles(Core::GeneratedFile::Attribute a) void JsonWizard::accept() { + auto page = qobject_cast(currentPage()); + if (page && page->handleAccept()) + return; + Utils::Wizard::accept(); QString errorMessage; @@ -231,6 +235,15 @@ void JsonWizard::accept() openFiles(m_files); } +void JsonWizard::reject() +{ + auto page = qobject_cast(currentPage()); + if (page && page->handleReject()) + return; + + Utils::Wizard::reject(); +} + void JsonWizard::handleNewPages(int pageId) { Utils::WizardPage *wp = qobject_cast(page(pageId)); diff --git a/src/plugins/projectexplorer/jsonwizard/jsonwizard.h b/src/plugins/projectexplorer/jsonwizard/jsonwizard.h index d72bc934aff..73fa2300e5c 100644 --- a/src/plugins/projectexplorer/jsonwizard/jsonwizard.h +++ b/src/plugins/projectexplorer/jsonwizard/jsonwizard.h @@ -95,6 +95,7 @@ signals: public slots: void accept(); + void reject(); private slots: void handleNewPages(int pageId);