forked from qt-creator/qt-creator
VcsBaseDiffEditorController: Get rid of inputStorage() method
Pass explicitly the storage to the postProcessTask() instead. Change-Id: I75ac10969530dfea1eac266b44481be3b1d8249b Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
@@ -238,7 +238,7 @@ GitDiffEditorController::GitDiffEditorController(IDocument *document,
|
||||
{
|
||||
using namespace Tasking;
|
||||
|
||||
const TreeStorage<QString> diffInputStorage = inputStorage();
|
||||
const TreeStorage<QString> diffInputStorage;
|
||||
|
||||
const auto setupDiff = [=](Process &process) {
|
||||
process.setCodec(VcsBaseEditor::getCodec(workingDirectory(), {}));
|
||||
@@ -252,7 +252,7 @@ GitDiffEditorController::GitDiffEditorController(IDocument *document,
|
||||
const Group root {
|
||||
Storage(diffInputStorage),
|
||||
ProcessTask(setupDiff, onDiffDone),
|
||||
postProcessTask()
|
||||
postProcessTask(diffInputStorage)
|
||||
};
|
||||
setReloadRecipe(root);
|
||||
}
|
||||
@@ -304,7 +304,7 @@ FileListDiffController::FileListDiffController(IDocument *document, const QStrin
|
||||
};
|
||||
|
||||
const TreeStorage<DiffStorage> storage;
|
||||
const TreeStorage<QString> diffInputStorage = inputStorage();
|
||||
const TreeStorage<QString> diffInputStorage;
|
||||
|
||||
const auto setupStaged = [this, stagedFiles](Process &process) {
|
||||
if (stagedFiles.isEmpty())
|
||||
@@ -346,7 +346,7 @@ FileListDiffController::FileListDiffController(IDocument *document, const QStrin
|
||||
ProcessTask(setupUnstaged, onUnstagedDone),
|
||||
onGroupDone(onStagingDone)
|
||||
},
|
||||
postProcessTask()
|
||||
postProcessTask(diffInputStorage)
|
||||
};
|
||||
setReloadRecipe(root);
|
||||
}
|
||||
@@ -377,7 +377,7 @@ ShowController::ShowController(IDocument *document, const QString &id)
|
||||
};
|
||||
|
||||
const TreeStorage<ReloadStorage> storage;
|
||||
const TreeStorage<QString> diffInputStorage = inputStorage();
|
||||
const TreeStorage<QString> diffInputStorage;
|
||||
|
||||
const auto updateDescription = [this](const ReloadStorage &storage) {
|
||||
QString desc = storage.m_header;
|
||||
@@ -552,7 +552,7 @@ ShowController::ShowController(IDocument *document, const QString &id)
|
||||
},
|
||||
Group {
|
||||
ProcessTask(setupDiff, onDiffDone),
|
||||
postProcessTask()
|
||||
postProcessTask(diffInputStorage)
|
||||
}
|
||||
};
|
||||
setReloadRecipe(root);
|
||||
|
||||
@@ -53,7 +53,7 @@ MercurialDiffEditorController::MercurialDiffEditorController(IDocument *document
|
||||
|
||||
using namespace Tasking;
|
||||
|
||||
const TreeStorage<QString> diffInputStorage = inputStorage();
|
||||
const TreeStorage<QString> diffInputStorage;
|
||||
|
||||
const auto setupDiff = [=](Process &process) {
|
||||
setupCommand(process, {addConfigurationArguments(args)});
|
||||
@@ -66,7 +66,7 @@ MercurialDiffEditorController::MercurialDiffEditorController(IDocument *document
|
||||
const Group root {
|
||||
Storage(diffInputStorage),
|
||||
ProcessTask(setupDiff, onDiffDone),
|
||||
postProcessTask()
|
||||
postProcessTask(diffInputStorage)
|
||||
};
|
||||
setReloadRecipe(root);
|
||||
}
|
||||
|
||||
@@ -163,7 +163,7 @@ SubversionDiffEditorController::SubversionDiffEditorController(IDocument *docume
|
||||
|
||||
using namespace Tasking;
|
||||
|
||||
const TreeStorage<QString> diffInputStorage = inputStorage();
|
||||
const TreeStorage<QString> diffInputStorage;
|
||||
|
||||
const auto setupDescription = [this](Process &process) {
|
||||
if (m_changeNumber == 0)
|
||||
@@ -209,7 +209,7 @@ SubversionDiffEditorController::SubversionDiffEditorController(IDocument *docume
|
||||
},
|
||||
Group {
|
||||
ProcessTask(setupDiff, onDiffDone),
|
||||
postProcessTask()
|
||||
postProcessTask(diffInputStorage)
|
||||
}
|
||||
};
|
||||
setReloadRecipe(root);
|
||||
|
||||
@@ -40,20 +40,11 @@ VcsBaseDiffEditorController::~VcsBaseDiffEditorController()
|
||||
delete d;
|
||||
}
|
||||
|
||||
TreeStorage<QString> VcsBaseDiffEditorController::inputStorage() const
|
||||
GroupItem VcsBaseDiffEditorController::postProcessTask(const TreeStorage<QString> &inputStorage)
|
||||
{
|
||||
return d->m_inputStorage;
|
||||
}
|
||||
|
||||
GroupItem VcsBaseDiffEditorController::postProcessTask()
|
||||
{
|
||||
const auto setupDiffProcessor = [this](Async<QList<FileData>> &async) {
|
||||
const QString *storage = inputStorage().activeStorage();
|
||||
QTC_ASSERT(storage, qWarning("Using postProcessTask() requires putting inputStorage() "
|
||||
"into task tree's root group."));
|
||||
const QString inputData = storage ? *storage : QString();
|
||||
const auto setupDiffProcessor = [inputStorage](Async<QList<FileData>> &async) {
|
||||
async.setFutureSynchronizer(ExtensionSystem::PluginManager::futureSynchronizer());
|
||||
async.setConcurrentCallData(&DiffUtils::readPatchWithPromise, inputData);
|
||||
async.setConcurrentCallData(&DiffUtils::readPatchWithPromise, *inputStorage);
|
||||
};
|
||||
const auto onDiffProcessorDone = [this](const Async<QList<FileData>> &async) {
|
||||
setDiffFiles(async.isResultAvailable() ? async.result() : QList<FileData>());
|
||||
|
||||
@@ -28,8 +28,7 @@ public:
|
||||
void setVcsBinary(const Utils::FilePath &path);
|
||||
|
||||
protected:
|
||||
Tasking::TreeStorage<QString> inputStorage() const;
|
||||
Tasking::GroupItem postProcessTask();
|
||||
Tasking::GroupItem postProcessTask(const Tasking::TreeStorage<QString> &inputStorage);
|
||||
|
||||
void setupCommand(Utils::Process &process, const QStringList &args) const;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user