PY-84031: Welcome screen should use canOpenFilesFromSystemFileManager to decide if it should open non-project files

Space-RevId: 498f6f351ca3cf9541c93cb7d9483e05586ed02b

GitOrigin-RevId: 0a0da55dc35a9aa3061405f3b1ad266ba70b3044
This commit is contained in:
Ilia Zakoulov
2026-02-03 23:35:47 +00:00
committed by intellij-monorepo-bot
parent 2f048ec082
commit 695e76dbe8
2 changed files with 13 additions and 1 deletions
@@ -44,7 +44,10 @@ 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
return openWelcomeScreenProject(file)
if (provider.canOpenFilesFromSystemFileManager()) {
return openWelcomeScreenProject(file)
}
return null
}
private suspend fun openWelcomeScreenProject(file: Path): Project {
@@ -72,6 +72,10 @@ abstract class WelcomeScreenProjectProvider {
return getWelcomeScreenProjectProvider()?.getWelcomeScreenProjectPath()
}
fun canOpenFilesFromSystemFileManager(): Boolean {
return getWelcomeScreenProjectProvider()?.canOpenFilesFromSystemFileManager() ?: false
}
suspend fun createOrOpenWelcomeScreenProject(extension: WelcomeScreenProjectProvider): Project {
val projectPath = extension.getWelcomeScreenProjectPath()
@@ -93,6 +97,11 @@ abstract class WelcomeScreenProjectProvider {
}
}
/**
* Return true if the welcome screen project can open non-project files from the file manager (Explorer, Finder).
*/
abstract fun canOpenFilesFromSystemFileManager(): Boolean
protected open fun getWelcomeScreenProjectPath(): Path {
return ProjectUtil.getProjectPath(getWelcomeScreenProjectName()).absolute()
}