Skip to content

Commit a39a2fb

Browse files
jthuermannPushpavel
authored andcommitted
Wrap Editor changes in write actions
1 parent 15da703 commit a39a2fb

File tree

3 files changed

+20
-11
lines changed

3 files changed

+20
-11
lines changed

src/main/kotlin/com/github/pushpavel/autocp/tool/ui/GeneratorPanel.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import com.github.pushpavel.autocp.database.models.Generator
1010
import com.github.pushpavel.autocp.database.models.SolutionFile
1111
import com.intellij.openapi.Disposable
1212
import com.intellij.openapi.application.runUndoTransparentWriteAction
13+
import com.intellij.openapi.application.runWriteAction
1314
import com.intellij.openapi.editor.EditorFactory
1415
import com.intellij.openapi.project.Project
1516
import com.intellij.openapi.ui.ComboBox
@@ -144,9 +145,11 @@ class GeneratorPanel(project: Project, pathString: String): Disposable {
144145
body.reset()
145146
generatorExtension.selectedItem = generator?.generatorProgram?.languageExtension
146147
correctExtension.selectedItem = generator?.correctProgram?.languageExtension
147-
runUndoTransparentWriteAction {
148-
generatorDoc.setText(generator?.generatorProgram?.code ?: "")
149-
correctDoc.setText(generator?.correctProgram?.code ?: "")
148+
runWriteAction {
149+
runUndoTransparentWriteAction {
150+
generatorDoc.setText(generator?.generatorProgram?.code ?: "")
151+
correctDoc.setText(generator?.correctProgram?.code ?: "")
152+
}
150153
}
151154
resetting = false
152155
}

src/main/kotlin/com/github/pushpavel/autocp/tool/ui/JudgeSettingsPanel.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import com.github.pushpavel.autocp.database.models.JudgeSettings
1010
import com.github.pushpavel.autocp.database.models.SolutionFile
1111
import com.intellij.openapi.Disposable
1212
import com.intellij.openapi.application.runUndoTransparentWriteAction
13+
import com.intellij.openapi.application.runWriteAction
1314
import com.intellij.openapi.editor.EditorFactory
1415
import com.intellij.openapi.project.Project
1516
import com.intellij.openapi.ui.ComboBox
@@ -166,8 +167,10 @@ class JudgeSettingsPanel(project: Project, pathString: String, refreshCallback:
166167
header.reset()
167168
body.reset()
168169
judgeExtension.selectedItem = settings?.judgeProgram?.languageExtension
169-
runUndoTransparentWriteAction {
170-
judgeDoc.setText(settings?.judgeProgram?.code ?: "")
170+
runWriteAction {
171+
runUndoTransparentWriteAction {
172+
judgeDoc.setText(settings?.judgeProgram?.code ?: "")
173+
}
171174
}
172175
resetting = false
173176
}

src/main/kotlin/com/github/pushpavel/autocp/tool/ui/TestcasePanel.kt

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import com.intellij.ui.CollectionListModel
1111
import com.intellij.ui.components.JBLabel
1212
import com.github.pushpavel.autocp.database.models.Testcase
1313
import com.github.pushpavel.autocp.common.ui.swing.editableList.ListItemView
14+
import com.intellij.openapi.application.runWriteAction
1415
import com.intellij.ui.dsl.builder.AlignX
1516
import com.intellij.ui.dsl.builder.panel
1617
import javax.swing.BorderFactory
@@ -37,13 +38,15 @@ class TestcasePanel(val model: CollectionListModel<Testcase>) : ListItemView<Tes
3738

3839

3940
override fun contentChanged(item: Testcase) {
40-
runUndoTransparentWriteAction {
41-
titleLabel.text = item.name
41+
runWriteAction {
42+
runUndoTransparentWriteAction {
43+
titleLabel.text = item.name
4244

43-
if (item.input != inputDoc.text)
44-
inputDoc.setText(item.input)
45-
if (item.output != outputDoc.text)
46-
outputDoc.setText(item.output ?: "")
45+
if (item.input != inputDoc.text)
46+
inputDoc.setText(item.input)
47+
if (item.output != outputDoc.text)
48+
outputDoc.setText(item.output ?: "")
49+
}
4750
}
4851
testcase = item
4952
}

0 commit comments

Comments
 (0)