diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/ex/WelcomeScreenProjectProvider.kt b/platform/platform-impl/src/com/intellij/openapi/wm/ex/WelcomeScreenProjectProvider.kt index 3d0cbec0a564..8b09a05a52bd 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/ex/WelcomeScreenProjectProvider.kt +++ b/platform/platform-impl/src/com/intellij/openapi/wm/ex/WelcomeScreenProjectProvider.kt @@ -54,6 +54,11 @@ abstract class WelcomeScreenProjectProvider { return extension.doIsWelcomeScreenProject(project) } + fun isEditableWelcomeProject(project: Project): Boolean { + val extension = getWelcomeScreenProjectProvider() ?: return false + return extension.doIsWelcomeScreenProject(project) && extension.doIsEditableProject(project) + } + fun isForceDisabledFileColors(): Boolean { val extension = getWelcomeScreenProjectProvider() ?: return false return extension.doIsForceDisabledFileColors() @@ -98,6 +103,15 @@ abstract class WelcomeScreenProjectProvider { protected abstract fun doIsWelcomeScreenProject(project: Project): Boolean + /** + * Return true if your project is not only a welcome screen, but also a real project where the user can create, store and edit files. + * Junie and other features might be disabled for non-editable welcome screen projects. + * See MTRH-1423 + */ + protected open fun doIsEditableProject(project: Project): Boolean { + return false + } + protected abstract fun doIsForceDisabledFileColors(): Boolean protected abstract fun doGetCreateNewFileProjectPrefix(): String diff --git a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/welcomeScreen/PyCharmWelcomeScreenProjectProvider.kt b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/welcomeScreen/PyCharmWelcomeScreenProjectProvider.kt index 7b2ca44ffaee..ab72064cf656 100644 --- a/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/welcomeScreen/PyCharmWelcomeScreenProjectProvider.kt +++ b/python/ide/impl/src/com/intellij/pycharm/community/ide/impl/welcomeScreen/PyCharmWelcomeScreenProjectProvider.kt @@ -25,6 +25,10 @@ private class PyCharmWelcomeScreenProjectProvider : WelcomeScreenProjectProvider return project.name == MISC_PROJECT_WITH_WELCOME_NAME || project.name == MISC_PROJECT_NAME } + override fun doIsEditableProject(project: Project): Boolean { + return true + } + override fun doIsForceDisabledFileColors(): Boolean = true override fun doGetCreateNewFileProjectPrefix(): String = "awesomeProject"