summaryrefslogtreecommitdiff
path: root/src/plugins/git/gitclient.cpp
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2022-12-15 09:19:09 +0100
committerJarek Kobus <jaroslaw.kobus@qt.io>2022-12-15 08:29:04 +0000
commit7bd26571e44c960e6907e3c39244d27842d2726b (patch)
tree9ace2215d648971a121dd960f663f7bb4cf080d8 /src/plugins/git/gitclient.cpp
parent5aedb4ba563f4de30686fbe1dd18229ef57dbf6f (diff)
downloadqt-creator-7bd26571e44c960e6907e3c39244d27842d2726b.tar.gz
DiffEditorController: Aggregate reloadRecipe
Instead of declaring virtual getter. Change-Id: I0f9e995bdff1b7e387e71daaf149a3726b7c09af Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Diffstat (limited to 'src/plugins/git/gitclient.cpp')
-rw-r--r--src/plugins/git/gitclient.cpp152
1 files changed, 70 insertions, 82 deletions
diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index 5235f8a21b..82722a4bfe 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -206,98 +206,86 @@ class FileListDiffController : public GitBaseDiffEditorController
{
public:
FileListDiffController(IDocument *document, const QStringList &stagedFiles,
- const QStringList &unstagedFiles)
- : GitBaseDiffEditorController(document)
- , m_stagedFiles(stagedFiles)
- , m_unstagedFiles(unstagedFiles) {}
-
-private:
- Tasking::Group reloadRecipe() final
- {
- using namespace Tasking;
+ const QStringList &unstagedFiles);
+};
- struct DiffStorage {
- QString m_stagedOutput;
- QString m_unstagedOutput;
- };
+FileListDiffController::FileListDiffController(IDocument *document, const QStringList &stagedFiles,
+ const QStringList &unstagedFiles)
+ : GitBaseDiffEditorController(document)
+{
+ using namespace Tasking;
- const TreeStorage<DiffStorage> storage;
+ struct DiffStorage {
+ QString m_stagedOutput;
+ QString m_unstagedOutput;
+ };
- const auto setupStaged = [this](QtcProcess &process) {
- process.setCodec(VcsBaseEditor::getCodec(workingDirectory(), m_stagedFiles));
- setupCommand(process, addConfigurationArguments(
- QStringList({"diff", "--cached", "--"}) + m_stagedFiles));
- VcsOutputWindow::appendCommand(process.workingDirectory(), process.commandLine());
- };
- const auto onStagedDone = [storage](const QtcProcess &process) {
- storage->m_stagedOutput = process.cleanedStdOut();
- };
+ const TreeStorage<DiffStorage> storage;
- const auto setupUnstaged = [this](QtcProcess &process) {
- process.setCodec(VcsBaseEditor::getCodec(workingDirectory(), m_unstagedFiles));
- setupCommand(process, addConfigurationArguments(
- QStringList({"diff", "--"}) + m_unstagedFiles));
- VcsOutputWindow::appendCommand(process.workingDirectory(), process.commandLine());
- };
- const auto onUnstagedDone = [storage](const QtcProcess &process) {
- storage->m_unstagedOutput = process.cleanedStdOut();
- };
+ const auto setupStaged = [this, stagedFiles](QtcProcess &process) {
+ process.setCodec(VcsBaseEditor::getCodec(workingDirectory(), stagedFiles));
+ setupCommand(process, addConfigurationArguments(
+ QStringList({"diff", "--cached", "--"}) + stagedFiles));
+ VcsOutputWindow::appendCommand(process.workingDirectory(), process.commandLine());
+ };
+ const auto onStagedDone = [storage](const QtcProcess &process) {
+ storage->m_stagedOutput = process.cleanedStdOut();
+ };
- const auto onStagingDynamicSetup = [this] {
- QSet<int> config;
- if (!m_stagedFiles.isEmpty())
- config.insert(0);
- if (!m_unstagedFiles.isEmpty())
- config.insert(1);
- return GroupConfig{GroupAction::ContinueSelected, config};
- };
+ const auto setupUnstaged = [this, unstagedFiles](QtcProcess &process) {
+ process.setCodec(VcsBaseEditor::getCodec(workingDirectory(), unstagedFiles));
+ setupCommand(process, addConfigurationArguments(
+ QStringList({"diff", "--"}) + unstagedFiles));
+ VcsOutputWindow::appendCommand(process.workingDirectory(), process.commandLine());
+ };
+ const auto onUnstagedDone = [storage](const QtcProcess &process) {
+ storage->m_unstagedOutput = process.cleanedStdOut();
+ };
- const auto setupProcessDiff = [this, storage](AsyncTask<QList<FileData>> &async) {
- setupDiffProcessor(async, storage->m_stagedOutput + storage->m_unstagedOutput);
- };
- const auto onProcessDiffDone = [this, storage](const AsyncTask<QList<FileData>> &async) {
- setDiffFiles(async.result());
- };
- const auto onProcessDiffError = [this, storage](const AsyncTask<QList<FileData>> &) {
- setDiffFiles({});
- };
+ const auto onStagingDynamicSetup = [stagedFiles, unstagedFiles] {
+ QSet<int> config;
+ if (!stagedFiles.isEmpty())
+ config.insert(0);
+ if (!unstagedFiles.isEmpty())
+ config.insert(1);
+ return GroupConfig{GroupAction::ContinueSelected, config};
+ };
- const Group root {
- Storage(storage),
- Group {
- parallel,
- optional,
- DynamicSetup(onStagingDynamicSetup),
- Process(setupStaged, onStagedDone),
- Process(setupUnstaged, onUnstagedDone)
- },
- Async<QList<FileData>>(setupProcessDiff, onProcessDiffDone, onProcessDiffError)
- };
- return root;
- }
+ const auto setupProcessDiff = [this, storage](AsyncTask<QList<FileData>> &async) {
+ setupDiffProcessor(async, storage->m_stagedOutput + storage->m_unstagedOutput);
+ };
+ const auto onProcessDiffDone = [this, storage](const AsyncTask<QList<FileData>> &async) {
+ setDiffFiles(async.result());
+ };
+ const auto onProcessDiffError = [this, storage](const AsyncTask<QList<FileData>> &) {
+ setDiffFiles({});
+ };
- QStringList m_stagedFiles;
- QStringList m_unstagedFiles;
-};
+ const Group root {
+ Storage(storage),
+ Group {
+ parallel,
+ optional,
+ DynamicSetup(onStagingDynamicSetup),
+ Process(setupStaged, onStagedDone),
+ Process(setupUnstaged, onUnstagedDone)
+ },
+ Async<QList<FileData>>(setupProcessDiff, onProcessDiffDone, onProcessDiffError)
+ };
+ setReloadRecipe(root);
+}
class ShowController : public GitBaseDiffEditorController
{
Q_OBJECT
public:
- ShowController(IDocument *document, const QString &id)
- : GitBaseDiffEditorController(document)
- , m_id(id)
- {
- setDisplayName("Git Show");
- }
-
-private:
- Tasking::Group reloadRecipe() final;
- const QString m_id;
+ ShowController(IDocument *document, const QString &id);
};
-Tasking::Group ShowController::reloadRecipe()
+ShowController::ShowController(IDocument *document, const QString &id)
+ : GitBaseDiffEditorController(document)
{
+ setDisplayName("Git Show");
static const QString busyMessage = Tr::tr("<resolving>");
using namespace Tasking;
@@ -333,9 +321,9 @@ Tasking::Group ShowController::reloadRecipe()
const TreeStorage<ReloadStorage> storage;
- const auto setupDescription = [this](QtcProcess &process) {
+ const auto setupDescription = [this, id](QtcProcess &process) {
process.setCodec(m_instance->encoding(workingDirectory(), "i18n.commitEncoding"));
- setupCommand(process, {"show", "-s", noColorOption, showFormatC, m_id});
+ setupCommand(process, {"show", "-s", noColorOption, showFormatC, id});
VcsOutputWindow::appendCommand(process.workingDirectory(), process.commandLine());
setDescription(Tr::tr("Waiting for data..."));
};
@@ -460,10 +448,10 @@ Tasking::Group ShowController::reloadRecipe()
taskTree.setupRoot(tasks);
};
- const auto setupDiff = [this](QtcProcess &process) {
+ const auto setupDiff = [this, id](QtcProcess &process) {
setupCommand(process, addConfigurationArguments(
{"show", "--format=format:", // omit header, already generated
- noColorOption, decorateOption, m_id}));
+ noColorOption, decorateOption, id}));
VcsOutputWindow::appendCommand(process.workingDirectory(), process.commandLine());
};
const auto onDiffDone = [storage](const QtcProcess &process) {
@@ -483,7 +471,7 @@ Tasking::Group ShowController::reloadRecipe()
const Group root {
Storage(storage),
parallel,
- OnGroupSetup([this] { setStartupFile(VcsBase::source(document())); }),
+ OnGroupSetup([this] { setStartupFile(VcsBase::source(this->document())); }),
Group {
optional,
Process(setupDescription, onDescriptionDone),
@@ -501,7 +489,7 @@ Tasking::Group ShowController::reloadRecipe()
Async<QList<FileData>>(setupProcessDiff, onProcessDiffDone, onProcessDiffError)
}
};
- return root;
+ setReloadRecipe(root);
}
///////////////////////////////