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? {
|
override fun getCustomOptionsStep(context: WizardContext?, parentDisposable: Disposable?): ModuleWizardStep? {
|
||||||
val step = ZigModuleWizardStep()
|
val step = ZigModuleWizardStep(parentDisposable)
|
||||||
parentDisposable?.let { Disposer.register(it, step.peer) }
|
parentDisposable?.let { Disposer.register(it, step.peer) }
|
||||||
return step
|
return step
|
||||||
}
|
}
|
||||||
|
@ -63,8 +63,8 @@ class ZigModuleBuilder: ModuleBuilder() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inner class ZigModuleWizardStep: ModuleWizardStep() {
|
inner class ZigModuleWizardStep(parent: Disposable?): ModuleWizardStep() {
|
||||||
internal val peer = ZigProjectGeneratorPeer(true)
|
internal val peer = ZigProjectGeneratorPeer(true).also { Disposer.register(parent ?: return@also, it) }
|
||||||
|
|
||||||
override fun getComponent(): JComponent {
|
override fun getComponent(): JComponent {
|
||||||
return peer.myComponent.withBorder()
|
return peer.myComponent.withBorder()
|
||||||
|
@ -77,7 +77,6 @@ class ZigModuleBuilder: ModuleBuilder() {
|
||||||
override fun updateDataModel() {
|
override fun updateDataModel() {
|
||||||
this@ZigModuleBuilder.configurationData = peer.settings
|
this@ZigModuleBuilder.configurationData = peer.settings
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,9 @@ import com.intellij.ui.dsl.builder.panel
|
||||||
import javax.swing.JComponent
|
import javax.swing.JComponent
|
||||||
|
|
||||||
class ZigProjectGeneratorPeer(var handleGit: Boolean): ProjectGeneratorPeer<ZigProjectConfigurationData>, Disposable {
|
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 {
|
val myComponent: JComponent by lazy {
|
||||||
panel {
|
panel {
|
||||||
newProjectPanel.attach(this)
|
newProjectPanel.attach(this)
|
||||||
|
|
Loading…
Add table
Reference in a new issue