forked from qt-creator/qt-creator
DiffEditorController: Make it possible to setup task tree
Instead of reloader function. Use task tree for ShowController. Make diff processing a part of task tree. Change-Id: I732d0a14eaf8de7ce0d1be891fb4700b22ea24b7 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
#include <coreplugin/editormanager/editormanager.h>
|
||||
#include <coreplugin/editormanager/ieditor.h>
|
||||
#include <coreplugin/icore.h>
|
||||
#include <coreplugin/progressmanager/taskprogress.h>
|
||||
|
||||
#include <utils/qtcassert.h>
|
||||
|
||||
@@ -122,12 +123,22 @@ void DiffEditorController::requestReload()
|
||||
{
|
||||
m_isReloading = true;
|
||||
m_document->beginReload();
|
||||
QTC_ASSERT(m_reloader, reloadFinished(false); return);
|
||||
m_reloader();
|
||||
if (m_reloader) {
|
||||
m_reloader();
|
||||
return;
|
||||
}
|
||||
m_taskTree.reset(new TaskTree(reloadRecipe()));
|
||||
connect(m_taskTree.get(), &TaskTree::done, this, [this] { reloadFinished(true); });
|
||||
connect(m_taskTree.get(), &TaskTree::errorOccurred, this, [this] { reloadFinished(false); });
|
||||
auto progress = new TaskProgress(m_taskTree.get());
|
||||
progress->setDisplayName(displayName());
|
||||
m_taskTree->start();
|
||||
}
|
||||
|
||||
void DiffEditorController::reloadFinished(bool success)
|
||||
{
|
||||
if (m_taskTree)
|
||||
m_taskTree.release()->deleteLater();
|
||||
m_document->endReload(success);
|
||||
m_isReloading = false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user