aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs
diff options
context:
space:
mode:
authorhjk <[email protected]>2021-07-09 08:30:11 +0200
committerhjk <[email protected]>2021-07-09 12:48:37 +0000
commit97578a4feec5c37680d18bb0426d3234fc0f2a29 (patch)
tree5d5c1babfef99c4cf781f78e5fd7b8404c52d85d /src/libs
parentdba0294b3393097d2439d5b09be734e8ec4bf484 (diff)
Utils: Allow an offset in FilePath::readContents()
Also, change the size limit to take a qint64. Contrary to e.g. Q(6)Hash::size() there is a realistic chance that 31 bits are not enough. Change-Id: Idbe6e765a5cac4336b3d64a8e0adb14966fd18a3 Reviewed-by: Christian Stenger <[email protected]>
Diffstat (limited to 'src/libs')
-rw-r--r--src/libs/utils/fileutils.cpp7
-rw-r--r--src/libs/utils/fileutils.h4
2 files changed, 7 insertions, 4 deletions
diff --git a/src/libs/utils/fileutils.cpp b/src/libs/utils/fileutils.cpp
index 87ffc501492..95e935272c3 100644
--- a/src/libs/utils/fileutils.cpp
+++ b/src/libs/utils/fileutils.cpp
@@ -967,11 +967,11 @@ QList<FilePath> FilePath::dirEntries(QDir::Filters filters) const
return dirEntries({}, filters);
}
-QByteArray FilePath::fileContents(int maxSize) const
+QByteArray FilePath::fileContents(qint64 maxSize, qint64 offset) const
{
if (needsDevice()) {
QTC_ASSERT(s_deviceHooks.fileContents, return {});
- return s_deviceHooks.fileContents(*this, maxSize);
+ return s_deviceHooks.fileContents(*this, maxSize, offset);
}
const QString path = toString();
@@ -982,6 +982,9 @@ QByteArray FilePath::fileContents(int maxSize) const
if (!f.open(QFile::ReadOnly))
return {};
+ if (offset != 0)
+ f.seek(offset);
+
if (maxSize != -1)
return f.read(maxSize);
diff --git a/src/libs/utils/fileutils.h b/src/libs/utils/fileutils.h
index 70988a3002d..20219dec280 100644
--- a/src/libs/utils/fileutils.h
+++ b/src/libs/utils/fileutils.h
@@ -89,7 +89,7 @@ public:
std::function<FilePath(const FilePath &)> symLinkTarget;
std::function<QList<FilePath>(const FilePath &, const QStringList &,
QDir::Filters, QDir::SortFlags)> dirEntries;
- std::function<QByteArray(const FilePath &, int)> fileContents;
+ std::function<QByteArray(const FilePath &, qint64, qint64)> fileContents;
std::function<bool(const FilePath &, const QByteArray &)> writeFileContents;
std::function<QDateTime(const FilePath &)> lastModified;
std::function<QFile::Permissions(const FilePath &)> permissions;
@@ -155,7 +155,7 @@ public:
QDir::Filters filters,
QDir::SortFlags sort = QDir::NoSort) const;
QList<FilePath> dirEntries(QDir::Filters filters) const;
- QByteArray fileContents(int maxSize = -1) const;
+ QByteArray fileContents(qint64 maxSize = -1, qint64 offset = 0) const;
bool writeFileContents(const QByteArray &data) const;
FilePath parentDir() const;