set action-update-thread for documentation actions

GitOrigin-RevId: 476107195273d953ccc32040ae3a25c79d4fa1d8
This commit is contained in:
Gregory.Shrago
2022-07-05 12:45:41 +00:00
committed by intellij-monorepo-bot
parent e511b31d41
commit d58df01196
6 changed files with 17 additions and 35 deletions
@@ -3,6 +3,7 @@ package com.intellij.lang.documentation.ide.actions
import com.intellij.codeInsight.CodeInsightBundle
import com.intellij.codeInsight.hint.HintManagerImpl.ActionToIgnore
import com.intellij.openapi.actionSystem.ActionUpdateThread
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.project.DumbAware
@@ -10,6 +11,8 @@ import com.intellij.ui.showFontSizePopup
internal class AdjustFontSizeAction : AnAction(CodeInsightBundle.message("javadoc.adjust.font.size")), ActionToIgnore, DumbAware {
override fun getActionUpdateThread(): ActionUpdateThread = ActionUpdateThread.BGT
override fun update(e: AnActionEvent) {
e.presentation.isEnabledAndVisible = documentationBrowser(e.dataContext) != null
}
@@ -2,11 +2,14 @@
package com.intellij.lang.documentation.ide.actions
import com.intellij.codeInsight.hint.HintManagerImpl.ActionToIgnore
import com.intellij.openapi.actionSystem.ActionUpdateThread
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
internal class DocumentationBackAction : AnAction(), ActionToIgnore {
override fun getActionUpdateThread(): ActionUpdateThread = ActionUpdateThread.EDT
override fun update(e: AnActionEvent) {
e.presentation.isEnabled = documentationHistory(e.dataContext)?.canBackward() == true
}
@@ -2,11 +2,14 @@
package com.intellij.lang.documentation.ide.actions
import com.intellij.codeInsight.hint.HintManagerImpl.ActionToIgnore
import com.intellij.openapi.actionSystem.ActionUpdateThread
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
internal class DocumentationForwardAction : AnAction(), ActionToIgnore {
override fun getActionUpdateThread(): ActionUpdateThread = ActionUpdateThread.EDT
override fun update(e: AnActionEvent) {
e.presentation.isEnabled = documentationHistory(e.dataContext)?.canForward() == true
}
@@ -2,28 +2,22 @@
package com.intellij.lang.documentation.ide.actions
import com.intellij.codeInsight.hint.HintManagerImpl.ActionToIgnore
import com.intellij.lang.documentation.ide.impl.DocumentationBrowser
import com.intellij.lang.documentation.ide.impl.openUrl
import com.intellij.openapi.actionSystem.ActionUpdateThread
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.actionSystem.DataContext
internal class DocumentationViewExternalAction : AnAction(), ActionToIgnore {
/**
* TODO consider exposing [DocumentationBrowser.currentExternalUrl]
* in [com.intellij.lang.documentation.ide.DocumentationBrowserFacade]
* to get rid of the cast
*/
private fun browser(dc: DataContext): DocumentationBrowser? = dc.getData(DOCUMENTATION_BROWSER) as? DocumentationBrowser
override fun getActionUpdateThread(): ActionUpdateThread = ActionUpdateThread.BGT
override fun update(e: AnActionEvent) {
e.presentation.isEnabledAndVisible = browser(e.dataContext)?.currentExternalUrl() != null
e.presentation.isEnabledAndVisible = documentationBrowser(e.dataContext)?.currentExternalUrl() != null
}
override fun actionPerformed(e: AnActionEvent) {
val project = e.project ?: return
val browser = browser(e.dataContext) ?: return
val browser = documentationBrowser(e.dataContext) ?: return
val url = browser.currentExternalUrl() ?: return
openUrl(project, browser.targetPointer, url)
}
@@ -4,11 +4,14 @@ package com.intellij.lang.documentation.ide.actions
import com.intellij.codeInsight.CodeInsightSettings
import com.intellij.codeInsight.hint.HintManagerImpl.ActionToIgnore
import com.intellij.codeInsight.lookup.LookupManager
import com.intellij.openapi.actionSystem.ActionUpdateThread
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.actionSystem.ToggleAction
internal class ToggleAutoShowAction : ToggleAction(), ActionToIgnore {
override fun getActionUpdateThread(): ActionUpdateThread = ActionUpdateThread.EDT
override fun update(e: AnActionEvent) {
val project = e.project
val visible = project != null && LookupManager.getInstance(project).activeLookup != null
@@ -9,9 +9,6 @@ import com.intellij.lang.documentation.ide.DocumentationBrowserFacade
import com.intellij.lang.documentation.ide.IdeDocumentationTargetProvider
import com.intellij.lang.documentation.ide.impl.DocumentationBrowser
import com.intellij.lang.documentation.ide.impl.DocumentationHistory
import com.intellij.lang.documentation.ide.impl.DocumentationToolWindowManager
import com.intellij.lang.documentation.ide.ui.DocumentationToolWindowUI
import com.intellij.lang.documentation.ide.ui.toolWindowUI
import com.intellij.lang.documentation.psi.psiDocumentationTarget
import com.intellij.lang.documentation.symbol.impl.symbolDocumentationTargets
import com.intellij.openapi.actionSystem.*
@@ -20,7 +17,6 @@ import com.intellij.openapi.editor.Editor
import com.intellij.openapi.keymap.KeymapUtil
import com.intellij.openapi.project.Project
import com.intellij.openapi.ui.popup.JBPopup
import com.intellij.openapi.wm.impl.content.BaseLabel
import com.intellij.psi.util.PsiUtilBase
import com.intellij.util.containers.ContainerUtil
import com.intellij.util.ui.accessibility.ScreenReader
@@ -105,25 +101,5 @@ internal fun documentationHistory(dc: DataContext): DocumentationHistory? {
}
internal fun documentationBrowser(dc: DataContext): DocumentationBrowser? {
val browser = dc.getData(DOCUMENTATION_BROWSER)
if (browser != null) {
return browser as DocumentationBrowser
}
return documentationToolWindowUI(dc)?.browser
}
internal fun documentationToolWindowUI(dc: DataContext): DocumentationToolWindowUI? {
val toolWindow = dc.getData(PlatformDataKeys.TOOL_WINDOW)
?: return null
if (toolWindow.id != DocumentationToolWindowManager.TOOL_WINDOW_ID) {
return null
}
val component = dc.getData(PlatformCoreDataKeys.CONTEXT_COMPONENT)
val content = if (component is BaseLabel) {
component.content
}
else {
toolWindow.contentManager.selectedContent
}
return content?.toolWindowUI
return dc.getData(DOCUMENTATION_BROWSER) as? DocumentationBrowser
}