terminal: import shell path from 2020.1 application-wide settings (IDEA-246827)

GitOrigin-RevId: b273a928b448d17c73c74dd09930484f850d50c5
This commit is contained in:
Sergey Simonchik
2020-07-29 10:08:24 +00:00
committed by intellij-monorepo-bot
parent feb332edd6
commit bf474e565f
2 changed files with 11 additions and 0 deletions
@@ -7,6 +7,7 @@ import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.components.State
import com.intellij.openapi.components.Storage
import com.intellij.util.xmlb.annotations.Property
import org.jetbrains.annotations.ApiStatus
@State(name = "TerminalOptionsProvider", storages = [(Storage("terminal.xml"))])
class TerminalOptionsProvider : PersistentStateComponent<TerminalOptionsProvider.State> {
@@ -55,6 +56,7 @@ class TerminalOptionsProvider : PersistentStateComponent<TerminalOptionsProvider
}
class State {
var myShellPath: String? = null
var myTabName: String = "Local"
var myCloseSessionOnLogout: Boolean = true
var myReportMouse: Boolean = true
@@ -112,6 +114,13 @@ class TerminalOptionsProvider : PersistentStateComponent<TerminalOptionsProvider
myState.envDataOptions.set(envData)
}
@ApiStatus.ScheduledForRemoval(inVersion = "2021.1")
@Deprecated("To be removed")
fun getShellPathAndClear(): String? {
val value = myState.myShellPath
myState.myShellPath = null
return value
}
companion object {
val instance: TerminalOptionsProvider
@@ -118,6 +118,8 @@ class TerminalProjectOptionsProvider(val project: Project) : PersistentStateComp
provider.state.shellPath = oldState.myShellPath
provider.state.envDataOptions.set(oldState.envDataOptions.get())
}
@Suppress("DEPRECATION")
provider.state.shellPath = provider.state.shellPath ?: TerminalOptionsProvider.instance.getShellPathAndClear()
return provider
}
}