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.cpp22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp
index 8d664496a4..f2f5abbcfa 100644
--- a/src/plugins/git/gitplugin.cpp
+++ b/src/plugins/git/gitplugin.cpp
@@ -282,14 +282,20 @@ bool GitPlugin::initialize(const QStringList &arguments, QString *errorMessage)
initializeVcs(new GitVersionControl(m_gitClient), context);
// Create the settings Page
- addAutoReleasedObject(new SettingsPage(versionControl()));
+ auto settingsPage = new SettingsPage(versionControl());
+ addAutoReleasedObject(settingsPage);
+ connect(settingsPage, &SettingsPage::settingsChanged,
+ this, &GitPlugin::updateRepositoryBrowserAction);
+
addAutoReleasedObject(new GitGrep);
- static const char *describeSlot = SLOT(show(QString,QString));
+ const auto describeFunc = [this](const QString &source, const QString &id) {
+ m_gitClient->show(source, id);
+ };
const int editorCount = sizeof(editorParameters) / sizeof(editorParameters[0]);
const auto widgetCreator = []() { return new GitEditorWidget; };
for (int i = 0; i < editorCount; i++)
- addAutoReleasedObject(new VcsEditorFactory(editorParameters + i, widgetCreator, m_gitClient, describeSlot));
+ addAutoReleasedObject(new VcsEditorFactory(editorParameters + i, widgetCreator, describeFunc));
addAutoReleasedObject(new VcsSubmitEditorFactory(&submitParameters,
[]() { return new GitSubmitEditor(&submitParameters); }));
@@ -435,6 +441,11 @@ bool GitPlugin::initialize(const QStringList &arguments, QString *errorMessage)
tr("Continue Rebase"), "Git.RebaseContinue",
context, true, [this] { continueOrAbortCommand(); });
+ m_skipRebaseAction
+ = createRepositoryAction(localRepositoryMenu,
+ tr("Skip Rebase"), "Git.RebaseSkip",
+ context, true, [this] { continueOrAbortCommand(); });
+
m_continueCherryPickAction
= createRepositoryAction(localRepositoryMenu,
tr("Continue Cherry Pick"), "Git.CherryPickContinue",
@@ -1120,6 +1131,8 @@ void GitPlugin::continueOrAbortCommand()
m_gitClient->synchronousCherryPick(state.topLevel(), "--abort");
else if (action == m_abortRevertAction)
m_gitClient->synchronousRevert(state.topLevel(), "--abort");
+ else if (action == m_skipRebaseAction)
+ m_gitClient->rebase(state.topLevel(), "--skip");
else if (action == m_continueRebaseAction)
m_gitClient->rebase(state.topLevel(), "--continue");
else if (action == m_continueCherryPickAction)
@@ -1347,6 +1360,8 @@ void GitPlugin::updateContinueAndAbortCommands()
m_abortRevertAction->setVisible(gitCommandInProgress == GitClient::Revert);
m_abortRebaseAction->setVisible(gitCommandInProgress == GitClient::Rebase
|| gitCommandInProgress == GitClient::RebaseMerge);
+ m_skipRebaseAction->setVisible(gitCommandInProgress == GitClient::Rebase
+ || gitCommandInProgress == GitClient::RebaseMerge);
m_continueCherryPickAction->setVisible(gitCommandInProgress == GitClient::CherryPick);
m_continueRevertAction->setVisible(gitCommandInProgress == GitClient::Revert);
m_continueRebaseAction->setVisible(gitCommandInProgress == GitClient::Rebase
@@ -1359,6 +1374,7 @@ void GitPlugin::updateContinueAndAbortCommands()
m_abortCherryPickAction->setVisible(false);
m_abortRevertAction->setVisible(false);
m_abortRebaseAction->setVisible(false);
+ m_skipRebaseAction->setVisible(false);
m_continueCherryPickAction->setVisible(false);
m_continueRevertAction->setVisible(false);
m_continueRebaseAction->setVisible(false);