From 8f8039ab4f57df72785be0597e803ff052e2131a Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Mon, 6 Apr 2020 15:14:10 +0300 Subject: [PATCH] Wizard: do not show wizard when creating new module #KT-37973 fixed --- .../projectWizard/wizard/NewProjectWizardModuleBuilder.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewProjectWizardModuleBuilder.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewProjectWizardModuleBuilder.kt index 07c3f4498c1..923c7fb9a60 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewProjectWizardModuleBuilder.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewProjectWizardModuleBuilder.kt @@ -1,6 +1,7 @@ package org.jetbrains.kotlin.tools.projectWizard.wizard import com.intellij.ide.RecentProjectsManager +import com.intellij.ide.actions.NewProjectAction import com.intellij.ide.util.projectWizard.* import com.intellij.ide.wizard.AbstractWizard import com.intellij.openapi.Disposable @@ -62,7 +63,8 @@ class NewProjectWizardModuleBuilder : EmptyModuleBuilder() { private const val INVALID_PROJECT_NAME_MESSAGE = "Invalid project name" } - override fun isAvailable(): Boolean = ExperimentalFeatures.NewWizard.isEnabled + override fun isAvailable(): Boolean = + ExperimentalFeatures.NewWizard.isEnabled && isCreatingNewProject() private var wizardContext: WizardContext? = null private var finishButtonClicked: Boolean = false @@ -239,6 +241,10 @@ class ModuleNewWizardSecondStep( } } +private fun isCreatingNewProject() = Thread.currentThread().stackTrace.any { element -> + element.className == NewProjectAction::class.java.name +} + private fun WizardContext.getNextButton() = try { AbstractWizard::class.java.getDeclaredMethod("getNextButton") .also { it.isAccessible = true }