vcs: non-modal: Make "Switch to Commit Dialog" action available in search everywhere

GitOrigin-RevId: c2a465080aac7d4c3b22e98c9da70adc5fbe324b
This commit is contained in:
Konstantin Kolosovsky
2020-12-13 16:56:27 +00:00
committed by intellij-monorepo-bot
parent eb7d170d28
commit b8632fe693
5 changed files with 32 additions and 21 deletions
@@ -1437,6 +1437,7 @@ group.Shelve.KeymapGroup.text=Shelve
action.Vcs.CopyRevisionNumberAction.text=Copy Revision Number
action.Vcs.CopyRevisionNumberAction.description=Copy revision numbers of selected commits to the clipboard
action.VcsToolbarLabelAction.text=VCS Label
action.CommitView.SwitchToCommitDialog.text=Switch to Commit Dialog
action.Vcs.ToggleAmendCommitMode.text=Amend Commit
action.Vcs.ToggleAmendCommitMode.description=Modify the latest commit of the current branch
action.ChangesView.ShowCommitOptions.text=Show Commit Options
@@ -267,7 +267,6 @@ amend.commit.load.message.error.text=Couldn't load commit message of the commit
checkbox.amend=A_mend
label.by.author=By
action.switch.to.commit.dialog.text=Switch to Commit Dialog
non.modal.commit.promoter.text=New non-modal commit interface is available. Commit from a tool window and view diff in the editor.
non.modal.commit.promoter.use.non.modal.action.text=Switch to tool window
non.modal.commit.promoter.dont.show.again.action.text=Don't show again
@@ -497,6 +497,12 @@
<add-to-group group-id="Diff.KeymapGroup" anchor="after" relative-to-action="CompareClipboardWithSelection"/>
</group>
<group id="CommitView.GearActions">
<action id="CommitView.SwitchToCommitDialog" class="com.intellij.vcs.commit.SwitchToCommitDialogAction"/>
<add-to-group group-id="VcsGeneral.KeymapGroup"/>
</group>
<group id="Vcs.Show.Toolwindow.Tab">
<add-to-group group-id="VcsGeneral.KeymapGroup"/>
<action id="Vcs.Show.Local.Changes" class="com.intellij.vcs.VcsShowLocalChangesAction"/>
@@ -4,14 +4,10 @@ package com.intellij.openapi.vcs.changes.ui
import com.intellij.icons.AllIcons
import com.intellij.internal.statistic.collectors.fus.ui.GotItUsageCollector
import com.intellij.internal.statistic.collectors.fus.ui.GotItUsageCollectorGroup
import com.intellij.openapi.actionSystem.ActionGroup
import com.intellij.openapi.actionSystem.ActionManager
import com.intellij.openapi.actionSystem.ActionToolbar
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.actionSystem.DefaultActionGroup
import com.intellij.openapi.actionSystem.IdeActions.ACTION_CHECKIN_PROJECT
import com.intellij.openapi.actionSystem.ex.ActionUtil.invokeAction
import com.intellij.openapi.actionSystem.impl.ActionButton
import com.intellij.openapi.project.DumbAwareAction
import com.intellij.openapi.project.Project
import com.intellij.openapi.ui.popup.Balloon
import com.intellij.openapi.util.Disposer
@@ -28,7 +24,6 @@ import com.intellij.util.ui.PositionTracker
import com.intellij.util.ui.UIUtil.uiTraverser
import com.intellij.util.ui.update.Activatable
import com.intellij.util.ui.update.UiNotifyConnector
import com.intellij.vcs.commit.CommitWorkflowManager.Companion.setCommitFromLocalChanges
import javax.swing.JComponent
private class ChangesViewToolWindowFactory : VcsToolWindowFactory() {
@@ -43,7 +38,7 @@ private class CommitToolWindowFactory : VcsToolWindowFactory() {
super.init(window)
window as ToolWindowEx
window.setAdditionalGearActions(DefaultActionGroup(SwitchToCommitDialogAction()))
window.setAdditionalGearActions(ActionManager.getInstance().getAction("CommitView.GearActions") as ActionGroup)
}
override fun shouldBeAvailable(project: Project): Boolean {
@@ -56,19 +51,6 @@ private class CommitToolWindowFactory : VcsToolWindowFactory() {
}
}
private class SwitchToCommitDialogAction : DumbAwareAction() {
init {
templatePresentation.text = message("action.switch.to.commit.dialog.text")
}
override fun actionPerformed(e: AnActionEvent) {
setCommitFromLocalChanges(false)
val commitAction = ActionManager.getInstance().getAction(ACTION_CHECKIN_PROJECT) ?: return
invokeAction(commitAction, e.dataContext, e.place, e.inputEvent, null)
}
}
internal class SwitchToCommitDialogHint(private val toolWindow: ToolWindowEx, private val toolbar: ActionToolbar) :
ChangesViewContentManagerListener,
Activatable {
@@ -0,0 +1,23 @@
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.vcs.commit
import com.intellij.openapi.actionSystem.ActionManager
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.actionSystem.IdeActions.ACTION_CHECKIN_PROJECT
import com.intellij.openapi.actionSystem.ex.ActionUtil.invokeAction
import com.intellij.openapi.project.DumbAwareAction
import com.intellij.openapi.vcs.actions.isProjectUsesNonModalCommit
import com.intellij.vcs.commit.CommitWorkflowManager.Companion.setCommitFromLocalChanges
private class SwitchToCommitDialogAction : DumbAwareAction() {
override fun update(e: AnActionEvent) {
e.presentation.isEnabledAndVisible = e.isProjectUsesNonModalCommit()
}
override fun actionPerformed(e: AnActionEvent) {
setCommitFromLocalChanges(false)
val commitAction = ActionManager.getInstance().getAction(ACTION_CHECKIN_PROJECT) ?: return
invokeAction(commitAction, e.dataContext, e.place, e.inputEvent, null)
}
}