Diff/Vcs: Use a function object for reloading

Helps with slimming down the user code side.

Change-Id: I4b0aac76c0d1516eb05bff9c18594e64f8b41a7a
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
hjk
2020-02-06 11:52:59 +01:00
parent 0737291d54
commit b22768e980
6 changed files with 94 additions and 156 deletions

View File

@@ -130,11 +130,11 @@ class DiffFilesController : public DiffEditorController
Q_OBJECT
public:
DiffFilesController(IDocument *document);
~DiffFilesController() override;
~DiffFilesController() override { cancelReload(); }
protected:
void reload() final;
virtual QList<ReloadInput> reloadInputList() const = 0;
private:
void reloaded();
void cancelReload();
@@ -147,22 +147,16 @@ DiffFilesController::DiffFilesController(IDocument *document)
{
connect(&m_futureWatcher, &QFutureWatcher<FileData>::finished,
this, &DiffFilesController::reloaded);
}
DiffFilesController::~DiffFilesController()
{
cancelReload();
}
setReloader([this] {
cancelReload();
m_futureWatcher.setFuture(Utils::map(reloadInputList(),
DiffFile(ignoreWhitespace(),
contextLineCount())));
void DiffFilesController::reload()
{
cancelReload();
m_futureWatcher.setFuture(Utils::map(reloadInputList(),
DiffFile(ignoreWhitespace(),
contextLineCount())));
Core::ProgressManager::addTask(m_futureWatcher.future(),
tr("Calculating diff"), "DiffEditor");
Core::ProgressManager::addTask(m_futureWatcher.future(),
tr("Calculating diff"), "DiffEditor");
});
}
void DiffFilesController::reloaded()