Don't show welcome screen in DataGrip on window closing if `Skip welcome screen and...
authorLiudmila Kornilova <kornilova203@gmail.com>
Mon, 28 Sep 2020 04:16:20 +0000 (12:16 +0800)
committerintellij-monorepo-bot <intellij-monorepo-bot-no-reply@jetbrains.com>
Mon, 28 Sep 2020 04:18:01 +0000 (04:18 +0000)
GitOrigin-RevId: 1be39a231f1927789c0112bbea072f27355d3850

platform/platform-impl/src/com/intellij/openapi/wm/impl/CloseProjectWindowHelper.kt
platform/platform-tests/testSrc/com/intellij/wm/CloseProjectWindowHelperTest.kt

index ef0b9240ac8950a790e01049404a5ab3a8740b8e..3ea3eddc93ff2a4d8c4d5bc9893d99ffde45e1e3 100644 (file)
@@ -3,6 +3,7 @@ package com.intellij.openapi.wm.impl
 
 import com.intellij.configurationStore.runInAutoSaveDisabledMode
 import com.intellij.ide.AppLifecycleListener
+import com.intellij.ide.GeneralSettings
 import com.intellij.ide.SaveAndSyncHandler
 import com.intellij.openapi.application.ApplicationManager
 import com.intellij.openapi.project.Project
@@ -16,12 +17,18 @@ open class CloseProjectWindowHelper {
   protected open val isMacSystemMenu: Boolean
     get() = SystemProperties.getBooleanProperty("idea.test.isMacSystemMenu", SystemInfo.isMacSystemMenu)
 
+  private val isShowWelcomeScreen: Boolean
+    get() = isMacSystemMenu && isShowWelcomeScreenFromSettings
+
+  protected open val isShowWelcomeScreenFromSettings
+    get() = GeneralSettings.getInstance().isShowWelcomeScreen
+
   open fun windowClosing(project: Project?) {
     val numberOfOpenedProjects = getNumberOfOpenedProjects()
     // Exit on Linux and Windows if the only opened project frame is closed.
     // On macOS behaviour is different - to exit app, quit action should be used, otherwise welcome frame is shown.
     // If welcome screen is disabled, behaviour on all OS is the same.
-    if (numberOfOpenedProjects > 1 || (numberOfOpenedProjects == 1 && isMacSystemMenu)) {
+    if (numberOfOpenedProjects > 1 || (numberOfOpenedProjects == 1 && isShowWelcomeScreen)) {
       closeProjectAndShowWelcomeFrameIfNoProjectOpened(project)
     }
     else {
index ea967ef5fd0fb65fcfd81d7ee98973d5462f89a4..a792f8ca6753fdd6af416531e6e87f8a3874c431 100644 (file)
@@ -68,6 +68,8 @@ open class TestCloseProjectWindowHelper : CloseProjectWindowHelper() {
   var wasShowWelcomeFrameIfNoProjectOpenedCalled = false
     private set
 
+  override val isShowWelcomeScreenFromSettings = true
+
   override fun quitApp() {
     assertThat(wasQuitAppCalled).isFalse()
     wasQuitAppCalled = true