mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
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:
committed by
intellij-monorepo-bot
parent
2f048ec082
commit
695e76dbe8
+4
-1
@@ -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()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user