diff options
author | Orgad Shaneh <orgad.shaneh@audiocodes.com> | 2020-02-25 20:20:43 +0200 |
---|---|---|
committer | Orgad Shaneh <orgads@gmail.com> | 2020-02-26 10:40:21 +0000 |
commit | b52ffa250144c364068a158aee5cb54bfd676171 (patch) | |
tree | 043f5a72eced3870a0dafc7e544573b05afe2b92 /src/plugins/git | |
parent | 7c4f0a9b1ed29e9440211e37e45d0e3451ac2a62 (diff) |
Git: Move addChangeActions from GitEditor to GitClient
Change-Id: Id901994ac2909b00ca58a0a8a91d2d3a273c39b3
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/plugins/git')
-rw-r--r-- | src/plugins/git/gitclient.cpp | 49 | ||||
-rw-r--r-- | src/plugins/git/gitclient.h | 3 | ||||
-rw-r--r-- | src/plugins/git/giteditor.cpp | 51 | ||||
-rw-r--r-- | src/plugins/git/giteditor.h | 1 |
4 files changed, 53 insertions, 51 deletions
diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index f4130345ce..8608d947e1 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -3596,6 +3596,55 @@ GitRemote::GitRemote(const QString &location) : Core::IVersionControl::RepoUrl(l isValid = QDir(path).exists() || QDir(path + ".git").exists(); } +void GitClient::addChangeActions(QMenu *menu, const QString &workingDir, const QString &change) +{ + menu->addAction(tr("Cherr&y-Pick Change %1").arg(change), [workingDir, change] { + m_instance->synchronousCherryPick(workingDir, change); + }); + menu->addAction(tr("Re&vert Change %1").arg(change), [workingDir, change] { + m_instance->synchronousRevert(workingDir, change); + }); + menu->addAction(tr("C&heckout Change %1").arg(change), [workingDir, change] { + m_instance->checkout(workingDir, change); + }); + connect(menu->addAction(tr("&Interactive Rebase from Change %1...").arg(change)), + &QAction::triggered, [workingDir, change] { + GitPlugin::startRebaseFromCommit(workingDir, change); + }); + menu->addAction(tr("&Log for Change %1").arg(change), [workingDir, change] { + m_instance->log(workingDir, QString(), false, {change}); + }); + menu->addAction(tr("Add &Tag for Change %1...").arg(change), [workingDir, change] { + QString output; + QString errorMessage; + m_instance->synchronousTagCmd(workingDir, QStringList(), + &output, &errorMessage); + + const QStringList tags = output.split('\n'); + BranchAddDialog dialog(tags, BranchAddDialog::Type::AddTag, Core::ICore::dialogParent()); + + if (dialog.exec() == QDialog::Rejected) + return; + + m_instance->synchronousTagCmd(workingDir, + {dialog.branchName(), change}, + &output, &errorMessage); + VcsOutputWindow::append(output); + if (!errorMessage.isEmpty()) + VcsOutputWindow::append(errorMessage, VcsOutputWindow::MessageStyle::Error); + }); + + auto resetChange = [workingDir, change](const QByteArray &resetType) { + m_instance->reset( + workingDir, QLatin1String("--" + resetType), change); + }; + auto resetMenu = new QMenu(tr("&Reset to Change %1").arg(change), menu); + resetMenu->addAction(tr("&Hard"), std::bind(resetChange, "hard")); + resetMenu->addAction(tr("&Mixed"), std::bind(resetChange, "mixed")); + resetMenu->addAction(tr("&Soft"), std::bind(resetChange, "soft")); + menu->addMenu(resetMenu); +} + } // namespace Internal } // namespace Git diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h index 932e2ee74f..c159fb3137 100644 --- a/src/plugins/git/gitclient.h +++ b/src/plugins/git/gitclient.h @@ -353,6 +353,9 @@ public: VcsBase::VcsCommand *asyncUpstreamStatus(const QString &workingDirectory, const QString &branch, const QString &upstream); + + static void addChangeActions(QMenu *menu, const QString &workingDir, const QString &change); + private: void finishSubmoduleUpdate(); void chunkActionsRequested(QMenu *menu, int fileIndex, int chunkIndex, diff --git a/src/plugins/git/giteditor.cpp b/src/plugins/git/giteditor.cpp index 21b688b2e8..3646395596 100644 --- a/src/plugins/git/giteditor.cpp +++ b/src/plugins/git/giteditor.cpp @@ -308,59 +308,10 @@ bool GitEditorWidget::isValidRevision(const QString &revision) const return GitClient::instance()->isValidRevision(revision); } -void GitEditorWidget::addChangeActions(QMenu *menu, const QString &change, const QString &workingDir) -{ - menu->addAction(tr("Cherr&y-Pick Change %1").arg(change), [workingDir, change] { - GitClient::instance()->synchronousCherryPick(workingDir, change); - }); - menu->addAction(tr("Re&vert Change %1").arg(change), [workingDir, change] { - GitClient::instance()->synchronousRevert(workingDir, change); - }); - menu->addAction(tr("C&heckout Change %1").arg(change), [workingDir, change] { - GitClient::instance()->checkout(workingDir, change); - }); - connect(menu->addAction(tr("&Interactive Rebase from Change %1...").arg(change)), - &QAction::triggered, [workingDir, change] { - GitPlugin::startRebaseFromCommit(workingDir, change); - }); - menu->addAction(tr("&Log for Change %1").arg(change), [workingDir, change] { - GitClient::instance()->log(workingDir, QString(), false, {change}); - }); - menu->addAction(tr("Add &Tag for Change %1...").arg(change), [workingDir, change] { - QString output; - QString errorMessage; - GitClient::instance()->synchronousTagCmd(workingDir, QStringList(), - &output, &errorMessage); - - const QStringList tags = output.split('\n'); - BranchAddDialog dialog(tags, BranchAddDialog::Type::AddTag, Core::ICore::dialogParent()); - - if (dialog.exec() == QDialog::Rejected) - return; - - GitClient::instance()->synchronousTagCmd(workingDir, - {dialog.branchName(), change}, - &output, &errorMessage); - VcsOutputWindow::append(output); - if (!errorMessage.isEmpty()) - VcsOutputWindow::append(errorMessage, VcsOutputWindow::MessageStyle::Error); - }); - - auto resetChange = [workingDir, change](const QByteArray &resetType) { - GitClient::instance()->reset( - workingDir, QLatin1String("--" + resetType), change); - }; - auto resetMenu = new QMenu(tr("&Reset to Change %1").arg(change), menu); - resetMenu->addAction(tr("&Hard"), std::bind(resetChange, "hard")); - resetMenu->addAction(tr("&Mixed"), std::bind(resetChange, "mixed")); - resetMenu->addAction(tr("&Soft"), std::bind(resetChange, "soft")); - menu->addMenu(resetMenu); -} - void GitEditorWidget::addChangeActions(QMenu *menu, const QString &change) { if (contentType() != OtherContent) - addChangeActions(menu, change, sourceWorkingDirectory()); + GitClient::addChangeActions(menu, change, sourceWorkingDirectory()); } QString GitEditorWidget::revisionSubject(const QTextBlock &inBlock) const diff --git a/src/plugins/git/giteditor.h b/src/plugins/git/giteditor.h index b2eab5de72..0377c2d680 100644 --- a/src/plugins/git/giteditor.h +++ b/src/plugins/git/giteditor.h @@ -66,7 +66,6 @@ private: QStringList annotationPreviousVersions(const QString &revision) const override; bool isValidRevision(const QString &revision) const override; void addChangeActions(QMenu *menu, const QString &change) override; - static void addChangeActions(QMenu *menu, const QString &workingDir, const QString &change); QString revisionSubject(const QTextBlock &inBlock) const override; bool supportChangeLinks() const override; QString fileNameForLine(int line) const override; |