diff --git a/src/libs/utils/textfileformat.cpp b/src/libs/utils/textfileformat.cpp index 264c6c4351f..0fea53720f3 100644 --- a/src/libs/utils/textfileformat.cpp +++ b/src/libs/utils/textfileformat.cpp @@ -288,6 +288,19 @@ TextFileFormat::ReadResult TextFileFormat::readFileUTF8(const FilePath &filePath return TextFileFormat::ReadSuccess; } +tl::expected> +TextFileFormat::readFile(const FilePath &filePath, const QTextCodec *defaultCodec) +{ + QString plainText; + TextFileFormat format; + QString errorString; + const TextFileFormat::ReadResult result = + readTextFile(filePath, defaultCodec, &plainText, &format, &errorString, nullptr); + if (result != TextFileFormat::ReadSuccess) + return tl::unexpected(std::make_pair(result, errorString)); + return plainText; +} + /*! Writes out a text file to \a filePath into a string, \a plainText. diff --git a/src/libs/utils/textfileformat.h b/src/libs/utils/textfileformat.h index f500fed50e6..4cd67abec8e 100644 --- a/src/libs/utils/textfileformat.h +++ b/src/libs/utils/textfileformat.h @@ -3,9 +3,11 @@ #pragma once +#include "expected.h" #include "utils_global.h" #include +#include QT_BEGIN_NAMESPACE class QTextCodec; @@ -53,6 +55,8 @@ public: QByteArray *decodingErrorSample = nullptr); static ReadResult readFileUTF8(const FilePath &filePath, const QTextCodec *defaultCodec, QByteArray *plainText, QString *errorString); + static tl::expected> + readFile(const FilePath &filePath, const QTextCodec *defaultCodec); bool writeFile(const FilePath &filePath, QString plainText, QString *errorString) const;