DiffUtils: Introduce DiffChunkInfo

Avoid code repetition.

Change-Id: Iea9acef8f8b27793528fa7eaf7044e12dcd21d10
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Jarek Kobus
2022-09-29 19:13:12 +02:00
parent daa942393a
commit b677fbe992
6 changed files with 73 additions and 108 deletions

View File

@@ -21,7 +21,7 @@ namespace Utils { class Diff; }
namespace DiffEditor {
class DIFFEDITOR_EXPORT DiffFileInfo {
class DiffFileInfo {
public:
enum PatchBehaviour {
PatchFile,
@@ -38,6 +38,21 @@ public:
using DiffFileInfoArray = std::array<DiffFileInfo, SideCount>;
class DiffChunkInfo {
public:
int chunkIndexForBlockNumber(int blockNumber) const;
int chunkRowForBlockNumber(int blockNumber) const;
int chunkRowsCountForBlockNumber(int blockNumber) const;
void setChunkIndex(int startBlockNumber, int blockCount, int chunkIndex) {
m_chunkInfo.insert(startBlockNumber, {blockCount, chunkIndex});
}
private:
// start block number, block count of a chunk, chunk index inside a file.
QMap<int, QPair<int, int>> m_chunkInfo;
};
class DIFFEDITOR_EXPORT TextLineData {
public:
enum TextLineType {