Utils: Move DiffUtils::interpolate into MathUtils

Change-Id: Iac4a21a6c760d8fbf0dce380b1a9a587a9d3468e
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Jarek Kobus
2022-11-25 17:31:12 +01:00
parent ef6bf3cb52
commit 6f299f19ac
8 changed files with 51 additions and 21 deletions

View File

@@ -1342,17 +1342,4 @@ QList<FileData> DiffUtils::readPatch(const QString &patch, bool *ok,
return fileDataList;
}
int DiffUtils::interpolate(int x, int x1, int x2, int y1, int y2)
{
if (x1 == x2)
return x1;
if (x == x1)
return y1;
if (x == x2)
return y2;
const int numerator = (y2 - y1) * x + x2 * y1 - x1 * y2;
const int denominator = x2 - x1;
return qRound((double)numerator / denominator);
}
} // namespace DiffEditor

View File

@@ -151,8 +151,6 @@ public:
static QList<FileData> readPatch(const QString &patch,
bool *ok = nullptr,
QFutureInterfaceBase *jobController = nullptr);
// For progress reporting
static int interpolate(int x, int x1, int x2, int y1, int y2);
};
} // namespace DiffEditor

View File

@@ -6,7 +6,6 @@
#include "diffeditorconstants.h"
#include "diffeditordocument.h"
#include "diffeditorplugin.h"
#include "diffutils.h"
#include <QMenu>
#include <QPainter>
@@ -26,6 +25,7 @@
#include <texteditor/texteditorsettings.h>
#include <utils/asynctask.h>
#include <utils/mathutils.h>
#include <utils/tooltip/tooltip.h>
using namespace Core;
@@ -365,7 +365,7 @@ SideBySideDiffOutput SideDiffData::diffOutput(QFutureInterface<void> &fi, int pr
diffText[RightSide].replace('\r', ' ');
output.side[LeftSide].diffText += diffText[LeftSide];
output.side[RightSide].diffText += diffText[RightSide];
fi.setProgressValue(DiffUtils::interpolate(++i, 0, count, progressMin, progressMax));
fi.setProgressValue(MathUtils::interpolate(++i, 0, count, progressMin, progressMax));
if (fi.isCanceled())
return {};
}
@@ -952,7 +952,7 @@ void SideBySideDiffEditorWidget::showDiff()
const QString package = output.side[side].diffText.mid(currentPos, packageSize);
cursor.insertText(package);
currentPos += package.size();
fi.setProgressValue(DiffUtils::interpolate(currentPos, 0, diffSize, progressMin, progressMax));
fi.setProgressValue(MathUtils::interpolate(currentPos, 0, diffSize, progressMin, progressMax));
if (fi.isCanceled())
return;
}

View File

@@ -6,7 +6,6 @@
#include "diffeditorconstants.h"
#include "diffeditordocument.h"
#include "diffeditorplugin.h"
#include "diffutils.h"
#include <QMenu>
#include <QPainter>
@@ -22,6 +21,7 @@
#include <texteditor/texteditorsettings.h>
#include <utils/asynctask.h>
#include <utils/mathutils.h>
#include <utils/qtcassert.h>
#include <utils/tooltip/tooltip.h>
@@ -436,7 +436,7 @@ UnifiedDiffOutput UnifiedDiffData::diffOutput(QFutureInterface<void> &fi, int pr
output.diffData.m_chunkInfo.setChunkIndex(oldBlock, blockNumber - oldBlock, j);
}
}
fi.setProgressValue(DiffUtils::interpolate(++i, 0, count, progressMin, progressMax));
fi.setProgressValue(MathUtils::interpolate(++i, 0, count, progressMin, progressMax));
if (fi.isCanceled())
return {};
}
@@ -511,7 +511,7 @@ void UnifiedDiffEditorWidget::showDiff()
const QString package = output.diffText.mid(currentPos, packageSize);
cursor.insertText(package);
currentPos += package.size();
fi.setProgressValue(DiffUtils::interpolate(currentPos, 0, diffSize, firstPartMax, progressMax));
fi.setProgressValue(MathUtils::interpolate(currentPos, 0, diffSize, firstPartMax, progressMax));
if (futureInterface.isCanceled())
return;
}