diff --git a/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/chooser/ui/WizardController.kt b/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/chooser/ui/WizardController.kt index 860f53cc65b5..40d39bfa2c69 100644 --- a/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/chooser/ui/WizardController.kt +++ b/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/chooser/ui/WizardController.kt @@ -1,4 +1,4 @@ -// Copyright 2000-2023 JetBrains s.r.o. and contr(ibutors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.ide.startup.importSettings.chooser.ui import com.intellij.ide.startup.importSettings.data.StartupWizardService @@ -30,6 +30,12 @@ class WizardControllerImpl(dialog: OnboardingDialog, override val service: StartupWizardService, override val goBackAction: (() -> Unit)?) : WizardController, BaseControllerImpl(dialog) { + init { + service.shouldClose.advise(lifetime) { + dialog.dialogClose() + } + } + override fun goToThemePage() { if (ScreenReader.isActive()) { goToKeymapPage() diff --git a/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/data/StartupWizardService.kt b/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/data/StartupWizardService.kt index a03b8f02cef8..a045abcecdaa 100644 --- a/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/data/StartupWizardService.kt +++ b/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/data/StartupWizardService.kt @@ -1,9 +1,11 @@ -// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.ide.startup.importSettings.data import com.intellij.ide.startup.importSettings.ImportSettingsBundle import com.intellij.openapi.components.service import com.jetbrains.rd.util.reactive.IPropertyView +import com.jetbrains.rd.util.reactive.IVoidSource +import com.jetbrains.rd.util.reactive.Signal import org.jetbrains.annotations.Nls import java.awt.Color import javax.swing.Icon @@ -20,6 +22,8 @@ interface StartupWizardService { val isActive: Boolean + val shouldClose: IVoidSource + fun getKeymapService(): KeymapService fun getThemeService(): ThemeService @@ -29,6 +33,7 @@ interface StartupWizardService { class DisabledStartupWizardPages : StartupWizardService { override val isActive = false + override val shouldClose = Signal() override fun getKeymapService() = error("Startup wizard is disabled.") override fun getThemeService() = error("Startup wizard is disabled.") override fun getPluginService() = error("Startup wizard is disabled.") diff --git a/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/data/WizardMockData.kt b/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/data/WizardMockData.kt index e9b935dc42b5..6d97491b446f 100644 --- a/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/data/WizardMockData.kt +++ b/plugins/ide-startup/importSettings/src/com/intellij/ide/startup/importSettings/data/WizardMockData.kt @@ -1,4 +1,4 @@ -// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.ide.startup.importSettings.data import com.intellij.icons.AllIcons @@ -8,7 +8,8 @@ import com.intellij.openapi.util.NlsSafe import com.intellij.ui.JBColor import com.intellij.util.ui.StartupUiUtil import com.jetbrains.rd.util.lifetime.Lifetime -import com.jetbrains.rd.util.reactive.* +import com.jetbrains.rd.util.reactive.Property +import com.jetbrains.rd.util.reactive.Signal import com.jetbrains.rd.util.threading.coroutines.launch import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay @@ -19,6 +20,7 @@ import javax.swing.Icon class WizardServiceTest : StartupWizardService { override val isActive = true + override val shouldClose = Signal() override fun getKeymapService(): KeymapService { return TestKeymapService()