mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[python] remove venv/conda/custom selector for add python sdk dialog (PY-79881)
Merge-request: IJ-MR-165579 Merged-by: Vitaly Legchilkin <Vitaly.Legchilkin@jetbrains.com> GitOrigin-RevId: 9de4cc81c81815b5a2ad230a53da9105e3af3629
This commit is contained in:
committed by
intellij-monorepo-bot
parent
a9f3e5199f
commit
a3eae2fa05
@@ -2,14 +2,17 @@
|
||||
package com.jetbrains.python.sdk.add.v2
|
||||
|
||||
import com.intellij.openapi.module.Module
|
||||
import com.intellij.openapi.observable.properties.AtomicProperty
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.projectRoots.Sdk
|
||||
import com.intellij.openapi.ui.DialogPanel
|
||||
import com.intellij.openapi.ui.DialogWrapper
|
||||
import com.intellij.openapi.ui.ValidationInfo
|
||||
import com.intellij.openapi.ui.validation.WHEN_PROPERTY_CHANGED
|
||||
import com.intellij.openapi.util.UserDataHolder
|
||||
import com.intellij.platform.ide.progress.runWithModalProgressBlocking
|
||||
import com.intellij.ui.dsl.builder.panel
|
||||
import com.intellij.util.ui.launchOnShow
|
||||
import com.jetbrains.python.PyBundle
|
||||
import com.jetbrains.python.errorProcessing.ErrorSink
|
||||
import com.jetbrains.python.icons.PythonIcons
|
||||
@@ -19,7 +22,9 @@ import com.jetbrains.python.sdk.add.PyAddSdkDialogFlowAction
|
||||
import com.jetbrains.python.sdk.add.PyAddSdkProvider
|
||||
import com.jetbrains.python.sdk.add.PyAddSdkStateListener
|
||||
import com.jetbrains.python.sdk.add.PyAddSdkView
|
||||
import com.jetbrains.python.sdk.add.collector.PythonNewInterpreterAddedCollector
|
||||
import com.jetbrains.python.util.ShowingMessageErrorSync
|
||||
import kotlinx.coroutines.supervisorScope
|
||||
import java.awt.Component
|
||||
import java.nio.file.Path
|
||||
import javax.swing.Icon
|
||||
@@ -51,21 +56,30 @@ class V3AddSdkPanel(val project: Project, val module: Module?, val projectPath:
|
||||
|
||||
private val errorSink: ErrorSink = ShowingMessageErrorSync
|
||||
|
||||
private val sdkPanelBuilderAndSdkCreator: PythonSdkPanelBuilderAndSdkCreator = PythonSdkPanelBuilderAndSdkCreator(
|
||||
onlyAllowedInterpreterTypes = null,
|
||||
errorSink = ShowingMessageErrorSync,
|
||||
module = module,
|
||||
limitExistingEnvironments = false,
|
||||
)
|
||||
private lateinit var mainPanel: PythonAddCustomInterpreter
|
||||
private lateinit var model: PythonLocalAddInterpreterModel
|
||||
|
||||
private val dialogPanel: DialogPanel = panel {
|
||||
sdkPanelBuilderAndSdkCreator.buildPanel(this, ProjectPathFlows.create((projectPath)))
|
||||
model = PythonLocalAddInterpreterModel(ProjectPathFlows.create((projectPath)))
|
||||
model.navigator.selectionMode = AtomicProperty(PythonInterpreterSelectionMode.CUSTOM)
|
||||
mainPanel = PythonAddCustomInterpreter(
|
||||
model = model,
|
||||
module = module,
|
||||
errorSink = errorSink,
|
||||
limitExistingEnvironments = false
|
||||
)
|
||||
mainPanel.setupUI(this, WHEN_PROPERTY_CHANGED(AtomicProperty(projectPath)))
|
||||
}
|
||||
|
||||
private var validationInfos: List<ValidationInfo> = emptyList()
|
||||
|
||||
init {
|
||||
sdkPanelBuilderAndSdkCreator.onShownInitialization(dialogPanel)
|
||||
dialogPanel.launchOnShow("V3AddSdkPanel launchOnShow") {
|
||||
supervisorScope {
|
||||
model.initialize(this@supervisorScope)
|
||||
mainPanel.onShown(this@supervisorScope)
|
||||
}
|
||||
}
|
||||
|
||||
dialogPanel.registerValidators(dialogWrapper.disposable) { compInfos ->
|
||||
validationInfos = compInfos.values.toList()
|
||||
@@ -77,12 +91,16 @@ class V3AddSdkPanel(val project: Project, val module: Module?, val projectPath:
|
||||
val moduleOrProject = if (module != null) ModuleOrProject.ModuleAndProject(module) else ModuleOrProject.ProjectOnly(project)
|
||||
val sdk = runWithModalProgressBlocking(project, PyBundle.message("python.sdk.creating.python.sdk")) {
|
||||
dialogPanel.apply()
|
||||
sdkPanelBuilderAndSdkCreator.getSdk(moduleOrProject).getOr {
|
||||
val sdkManager = mainPanel.currentSdkManager
|
||||
sdkManager.getOrCreateSdk(moduleOrProject).getOr {
|
||||
errorSink.emit(it.error)
|
||||
return@runWithModalProgressBlocking null
|
||||
}.also {
|
||||
val isPreviouslyConfigured = sdkManager.createStatisticsInfo(PythonInterpreterCreationTargets.LOCAL_MACHINE).previouslyConfigured
|
||||
PythonNewInterpreterAddedCollector.logPythonNewInterpreterAdded(it, isPreviouslyConfigured)
|
||||
}
|
||||
}
|
||||
return sdk?.first
|
||||
return sdk
|
||||
}
|
||||
|
||||
override fun onSelected() {
|
||||
|
||||
Reference in New Issue
Block a user