summaryrefslogtreecommitdiff
path: root/src/plugins/git/gitplugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/git/gitplugin.cpp')
-rw-r--r--src/plugins/git/gitplugin.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp
index 65a0f91f2b..80232b36b6 100644
--- a/src/plugins/git/gitplugin.cpp
+++ b/src/plugins/git/gitplugin.cpp
@@ -59,6 +59,7 @@
#include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/editormanager/ieditor.h>
#include <coreplugin/mimedatabase.h>
+#include <coreplugin/vcsmanager.h>
#include <utils/qtcassert.h>
#include <utils/parameteraction.h>
@@ -427,9 +428,10 @@ bool GitPlugin::initialize(const QStringList &arguments, QString *errorMessage)
tr("Amend Last Commit..."), Core::Id("Git.AmendCommit"),
globalcontext, true, SLOT(startAmendCommit()));
- createRepositoryAction(localRepositoryMenu,
- tr("Fixup Previous Commit..."), Core::Id("Git.FixupCommit"),
- globalcontext, true, SLOT(startFixupCommit()));
+ m_fixupCommitAction =
+ createRepositoryAction(localRepositoryMenu,
+ tr("Fixup Previous Commit..."), Core::Id("Git.FixupCommit"),
+ globalcontext, true, SLOT(startFixupCommit())).first;
// --------------
localRepositoryMenu->addSeparator(globalcontext);
@@ -437,9 +439,10 @@ bool GitPlugin::initialize(const QStringList &arguments, QString *errorMessage)
tr("Reset..."), Core::Id("Git.Reset"),
globalcontext, true, SLOT(resetRepository()));
- createRepositoryAction(localRepositoryMenu,
- tr("Interactive Rebase..."), Core::Id("Git.InteractiveRebase"),
- globalcontext, true, SLOT(startRebase()));
+ m_interactiveRebaseAction =
+ createRepositoryAction(localRepositoryMenu,
+ tr("Interactive Rebase..."), Core::Id("Git.InteractiveRebase"),
+ globalcontext, true, SLOT(startRebase())).first;
m_submoduleUpdateAction =
createRepositoryAction(localRepositoryMenu,
@@ -684,6 +687,8 @@ bool GitPlugin::initialize(const QStringList &arguments, QString *errorMessage)
m_redoAction = new QAction(tr("&Redo"), this);
command = Core::ActionManager::registerAction(m_redoAction, Core::Constants::REDO, submitContext);
+ connect(Core::ICore::vcsManager(), SIGNAL(repositoryChanged(QString)),
+ this, SLOT(updateContinueAndAbortCommands()));
if (!Core::ICore::mimeDatabase()->addMimeTypes(QLatin1String(RC_GIT_MIME_XML), errorMessage))
return false;
@@ -1408,6 +1413,8 @@ void GitPlugin::updateContinueAndAbortCommands()
m_continueRevertAction->setVisible(gitCommandInProgress == GitClient::Revert);
m_continueRebaseAction->setVisible(gitCommandInProgress == GitClient::Rebase
|| gitCommandInProgress == GitClient::RebaseMerge);
+ m_fixupCommitAction->setEnabled(gitCommandInProgress == GitClient::NoCommand);
+ m_interactiveRebaseAction->setEnabled(gitCommandInProgress == GitClient::NoCommand);
} else {
m_mergeToolAction->setVisible(false);
m_abortMergeAction->setVisible(false);