DiffEditorController: Aggregate reloadRecipe

Instead of declaring virtual getter.

Change-Id: I0f9e995bdff1b7e387e71daaf149a3726b7c09af
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Jarek Kobus
2022-12-15 09:19:09 +01:00
parent 5aedb4ba56
commit 7bd26571e4
3 changed files with 85 additions and 94 deletions

View File

@@ -19,9 +19,10 @@ using namespace Utils;
namespace DiffEditor {
DiffEditorController::DiffEditorController(Core::IDocument *document) :
QObject(document),
m_document(qobject_cast<Internal::DiffEditorDocument *>(document))
DiffEditorController::DiffEditorController(Core::IDocument *document)
: QObject(document)
, m_document(qobject_cast<Internal::DiffEditorDocument *>(document))
, m_reloadRecipe{}
{
QTC_ASSERT(m_document, return);
m_document->setController(this);
@@ -125,7 +126,7 @@ void DiffEditorController::requestReload()
m_reloader();
return;
}
m_taskTree.reset(new TaskTree(reloadRecipe()));
m_taskTree.reset(new TaskTree(m_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());

View File

@@ -61,6 +61,8 @@ protected:
void setDisplayName(const QString &name) { m_displayName = name; }
QString displayName() const { return m_displayName; }
void setReloadRecipe(const Utils::Tasking::Group &recipe) { m_reloadRecipe = recipe; }
// reloadFinished() should be called inside the reloader (for synchronous reload)
// or later (for asynchronous reload)
void setReloader(const std::function<void ()> &reloader);
@@ -78,7 +80,7 @@ private:
QString m_displayName;
std::function<void()> m_reloader;
std::unique_ptr<Utils::TaskTree> m_taskTree;
virtual Utils::Tasking::Group reloadRecipe() { return {}; } // TODO: make pure abstract
Utils::Tasking::Group m_reloadRecipe;
friend class Internal::DiffEditorDocument;
};