SideBySideDiffEditor: Move showing diff into separate thread

Change-Id: I8b0a4835cf6f51e4acfd483dcfc7b94585c64bf5
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Jarek Kobus
2022-09-28 11:32:13 +02:00
parent 83be3443de
commit 53fc68bc08
3 changed files with 134 additions and 28 deletions

View File

@@ -94,6 +94,7 @@ class SideBySideDiffEditorWidget : public QWidget
Q_OBJECT
public:
explicit SideBySideDiffEditorWidget(QWidget *parent = nullptr);
~SideBySideDiffEditorWidget();
TextEditor::TextEditorWidget *leftEditorWidget() const;
TextEditor::TextEditorWidget *rightEditorWidget() const;
@@ -143,6 +144,16 @@ private:
DiffEditorWidgetController m_controller;
bool m_horizontalSync = false;
struct ShowResult
{
QSharedPointer<TextEditor::TextDocument> textDocument{};
SideDiffData diffData;
DiffSelections selections;
};
using ShowResults = std::array<ShowResult, SideCount>;
std::unique_ptr<QFutureWatcher<ShowResults>> m_watcher;
};
} // namespace Internal