diff --git a/platform/platform-resources-en/src/messages/ActionsBundle.properties b/platform/platform-resources-en/src/messages/ActionsBundle.properties
index 609c6206dc59..935ab2fbc239 100644
--- a/platform/platform-resources-en/src/messages/ActionsBundle.properties
+++ b/platform/platform-resources-en/src/messages/ActionsBundle.properties
@@ -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
diff --git a/platform/vcs-api/vcs-api-core/resources/messages/VcsBundle.properties b/platform/vcs-api/vcs-api-core/resources/messages/VcsBundle.properties
index 4a46bfc7775d..eeb462df9940 100644
--- a/platform/vcs-api/vcs-api-core/resources/messages/VcsBundle.properties
+++ b/platform/vcs-api/vcs-api-core/resources/messages/VcsBundle.properties
@@ -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
diff --git a/platform/vcs-impl/resources/META-INF/VcsActions.xml b/platform/vcs-impl/resources/META-INF/VcsActions.xml
index 6d693d3f1f74..563816341329 100644
--- a/platform/vcs-impl/resources/META-INF/VcsActions.xml
+++ b/platform/vcs-impl/resources/META-INF/VcsActions.xml
@@ -497,6 +497,12 @@
+
+
+
+
+
+
diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangesViewToolWindowFactory.kt b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangesViewToolWindowFactory.kt
index 828ca81f018a..a02af8d99fe0 100644
--- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangesViewToolWindowFactory.kt
+++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/ChangesViewToolWindowFactory.kt
@@ -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 {
diff --git a/platform/vcs-impl/src/com/intellij/vcs/commit/SwitchToCommitDialogAction.kt b/platform/vcs-impl/src/com/intellij/vcs/commit/SwitchToCommitDialogAction.kt
new file mode 100644
index 000000000000..a07c9d72ab65
--- /dev/null
+++ b/platform/vcs-impl/src/com/intellij/vcs/commit/SwitchToCommitDialogAction.kt
@@ -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)
+ }
+}
\ No newline at end of file