diff --git a/platform/non-modal-welcome-screen/src/com/intellij/platform/ide/nonModalWelcomeScreen/WelcomeScreenCommandLineProjectOpenProcessor.kt b/platform/non-modal-welcome-screen/src/com/intellij/platform/ide/nonModalWelcomeScreen/WelcomeScreenCommandLineProjectOpenProcessor.kt index 1c40a6a1b89a..3938bde3f74f 100644 --- a/platform/non-modal-welcome-screen/src/com/intellij/platform/ide/nonModalWelcomeScreen/WelcomeScreenCommandLineProjectOpenProcessor.kt +++ b/platform/non-modal-welcome-screen/src/com/intellij/platform/ide/nonModalWelcomeScreen/WelcomeScreenCommandLineProjectOpenProcessor.kt @@ -45,7 +45,7 @@ private abstract class DummyProjectOpenProcessor(override val name: String) : Pr private class WelcomeScreenCommandLineProjectOpenProcessor : DummyProjectOpenProcessor("WelcomeScreenCommandLineProjectOpenProcessor") { override suspend fun openProjectAndFile(file: Path, tempProject: Boolean, options: OpenProjectTask): Project? { val provider = getWelcomeScreenProjectProvider() ?: return null - if (provider.canOpenFilesFromSystemFileManager()) { + if (provider.canOpenFilesFromSystemFileManager(file)) { return openWelcomeScreenProject(file) } return null 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 b32238d556d9..480ab00574bb 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 @@ -72,8 +72,8 @@ abstract class WelcomeScreenProjectProvider { return getWelcomeScreenProjectProvider()?.getWelcomeScreenProjectPath() } - fun canOpenFilesFromSystemFileManager(): Boolean { - return getWelcomeScreenProjectProvider()?.canOpenFilesFromSystemFileManager() ?: false + fun canOpenFilesFromSystemFileManager(filePath: Path): Boolean { + return getWelcomeScreenProjectProvider()?.canOpenFilesFromSystemFileManager(filePath) ?: false } suspend fun createOrOpenWelcomeScreenProject(extension: WelcomeScreenProjectProvider): Project { @@ -98,9 +98,9 @@ abstract class WelcomeScreenProjectProvider { } /** - * Return true if the welcome screen project can open non-project files from the file manager (Explorer, Finder). + * Return true if the welcome screen project can open [filePath] from the file manager (Explorer, Finder) or command line. */ - abstract fun canOpenFilesFromSystemFileManager(): Boolean + abstract fun canOpenFilesFromSystemFileManager(filePath: Path): Boolean protected open fun getWelcomeScreenProjectPath(): Path { return ProjectUtil.getProjectPath(getWelcomeScreenProjectName()).absolute() 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 7d13773d7da5..f00ccb6f310e 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 @@ -35,8 +35,8 @@ internal class PyCharmWelcomeScreenProjectProvider : WelcomeScreenProjectProvide override fun doGetCreateNewFileProjectPrefix(): String = "awesomeProject" - override fun canOpenFilesFromSystemFileManager(): Boolean { - return Registry.`is`("welcome.screen.open.files", false) + override fun canOpenFilesFromSystemFileManager(filePath: Path): Boolean { + return Registry.`is`("welcome.screen.open.files", false) && filePath.endsWith(".ipynb") } override suspend fun doCreateOrOpenWelcomeScreenProject(path: Path): Project {