fix: module builder not disposing properly
This commit is contained in:
parent
d3de75f950
commit
17dca6d419
2 changed files with 6 additions and 5 deletions
|
@ -48,7 +48,7 @@ class ZigModuleBuilder: ModuleBuilder() {
|
|||
}
|
||||
|
||||
override fun getCustomOptionsStep(context: WizardContext?, parentDisposable: Disposable?): ModuleWizardStep? {
|
||||
val step = ZigModuleWizardStep()
|
||||
val step = ZigModuleWizardStep(parentDisposable)
|
||||
parentDisposable?.let { Disposer.register(it, step.peer) }
|
||||
return step
|
||||
}
|
||||
|
@ -63,8 +63,8 @@ class ZigModuleBuilder: ModuleBuilder() {
|
|||
}
|
||||
}
|
||||
|
||||
inner class ZigModuleWizardStep: ModuleWizardStep() {
|
||||
internal val peer = ZigProjectGeneratorPeer(true)
|
||||
inner class ZigModuleWizardStep(parent: Disposable?): ModuleWizardStep() {
|
||||
internal val peer = ZigProjectGeneratorPeer(true).also { Disposer.register(parent ?: return@also, it) }
|
||||
|
||||
override fun getComponent(): JComponent {
|
||||
return peer.myComponent.withBorder()
|
||||
|
@ -77,7 +77,6 @@ class ZigModuleBuilder: ModuleBuilder() {
|
|||
override fun updateDataModel() {
|
||||
this@ZigModuleBuilder.configurationData = peer.settings
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -32,7 +32,9 @@ import com.intellij.ui.dsl.builder.panel
|
|||
import javax.swing.JComponent
|
||||
|
||||
class ZigProjectGeneratorPeer(var handleGit: Boolean): ProjectGeneratorPeer<ZigProjectConfigurationData>, Disposable {
|
||||
private val newProjectPanel: ZigNewProjectPanel = ZigNewProjectPanel(handleGit).also { Disposer.register(this, it) }
|
||||
private val newProjectPanel by lazy {
|
||||
ZigNewProjectPanel(handleGit).also { Disposer.register(this, it) }
|
||||
}
|
||||
val myComponent: JComponent by lazy {
|
||||
panel {
|
||||
newProjectPanel.attach(this)
|
||||
|
|
Loading…
Add table
Reference in a new issue