summaryrefslogtreecommitdiff
path: root/platform/execution-impl/src/com/intellij/execution/runToolbar/RunToolbarAdditionAction.kt
diff options
context:
space:
mode:
Diffstat (limited to 'platform/execution-impl/src/com/intellij/execution/runToolbar/RunToolbarAdditionAction.kt')
-rw-r--r--platform/execution-impl/src/com/intellij/execution/runToolbar/RunToolbarAdditionAction.kt11
1 files changed, 7 insertions, 4 deletions
diff --git a/platform/execution-impl/src/com/intellij/execution/runToolbar/RunToolbarAdditionAction.kt b/platform/execution-impl/src/com/intellij/execution/runToolbar/RunToolbarAdditionAction.kt
index 4fb1717dd48c..134a3f2b44d3 100644
--- a/platform/execution-impl/src/com/intellij/execution/runToolbar/RunToolbarAdditionAction.kt
+++ b/platform/execution-impl/src/com/intellij/execution/runToolbar/RunToolbarAdditionAction.kt
@@ -11,22 +11,25 @@ internal class RunToolbarAdditionAction(val executorGroup: ExecutorGroup<*>,
val process: RunToolbarProcess, val selectedAction: () -> AnAction?) : AnAction() {
init {
- updatePresentation(templatePresentation)
+ updateAndGetVisibility(templatePresentation)
}
override fun update(e: AnActionEvent) {
- updatePresentation(e.presentation)
+ e.presentation.isVisible = updateAndGetVisibility(e.presentation)
e.project?.let {
e.presentation.isEnabled = !e.isActiveProcess()
}
}
- private fun updatePresentation(presentation: Presentation) {
+ private fun updateAndGetVisibility(presentation: Presentation): Boolean {
val action = selectedAction()
- if (action is ExecutorRegistryImpl.ExecutorAction) {
+ return if (action is ExecutorRegistryImpl.ExecutorAction) {
presentation.copyFrom(action.getTemplatePresentation())
presentation.text = executorGroup.getRunToolbarActionText(action.templatePresentation.text)
+ true
+ } else {
+ false
}
}