forked from qt-creator/qt-creator
DiffEditorController: Aggregate reloadRecipe
Instead of declaring virtual getter. Change-Id: I0f9e995bdff1b7e387e71daaf149a3726b7c09af Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
@@ -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());
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user