Utils: filepathify TextFileFormat

Change-Id: I6a4e2d38b0bbdec661a4a492901d9182a9f2e502
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
David Schulz
2021-05-18 07:57:14 +02:00
parent f8ca730121
commit 8b7a90ac51
18 changed files with 94 additions and 69 deletions

View File

@@ -198,7 +198,7 @@ bool TextFileFormat::decode(const QByteArray &data, QStringList *target) const
// Read text file contents to string or stringlist. // Read text file contents to string or stringlist.
template <class Target> template <class Target>
TextFileFormat::ReadResult readTextFile(const QString &fileName, const QTextCodec *defaultCodec, TextFileFormat::ReadResult readTextFile(const FilePath &filePath, const QTextCodec *defaultCodec,
Target *target, TextFileFormat *format, QString *errorString, Target *target, TextFileFormat *format, QString *errorString,
QByteArray *decodingErrorSampleIn = nullptr) QByteArray *decodingErrorSampleIn = nullptr)
{ {
@@ -208,7 +208,7 @@ TextFileFormat::ReadResult readTextFile(const QString &fileName, const QTextCode
QByteArray data; QByteArray data;
try { try {
FileReader reader; FileReader reader;
if (!reader.fetch(fileName, errorString)) if (!reader.fetch(filePath.toString(), errorString))
return TextFileFormat::ReadIOError; return TextFileFormat::ReadIOError;
data = reader.data(); data = reader.data();
} catch (const std::bad_alloc &) { } catch (const std::bad_alloc &) {
@@ -236,15 +236,15 @@ TextFileFormat::ReadResult readTextFile(const QString &fileName, const QTextCode
*/ */
TextFileFormat::ReadResult TextFileFormat::ReadResult
TextFileFormat::readFile(const QString &fileName, const QTextCodec *defaultCodec, TextFileFormat::readFile(const FilePath &filePath, const QTextCodec *defaultCodec,
QStringList *plainTextList, TextFileFormat *format, QString *errorString, QStringList *plainTextList, TextFileFormat *format, QString *errorString,
QByteArray *decodingErrorSample /* = 0 */) QByteArray *decodingErrorSample /* = 0 */)
{ {
const TextFileFormat::ReadResult result = const TextFileFormat::ReadResult result =
readTextFile(fileName, defaultCodec, readTextFile(filePath, defaultCodec,
plainTextList, format, errorString, decodingErrorSample); plainTextList, format, errorString, decodingErrorSample);
if (debug) if (debug)
qDebug().nospace() << Q_FUNC_INFO << fileName << ' ' << *format qDebug().nospace() << Q_FUNC_INFO << filePath << ' ' << *format
<< " returns " << result << '/' << plainTextList->size() << " chunks"; << " returns " << result << '/' << plainTextList->size() << " chunks";
return result; return result;
} }
@@ -254,27 +254,27 @@ TextFileFormat::ReadResult
*/ */
TextFileFormat::ReadResult TextFileFormat::ReadResult
TextFileFormat::readFile(const QString &fileName, const QTextCodec *defaultCodec, TextFileFormat::readFile(const FilePath &filePath, const QTextCodec *defaultCodec,
QString *plainText, TextFileFormat *format, QString *errorString, QString *plainText, TextFileFormat *format, QString *errorString,
QByteArray *decodingErrorSample /* = 0 */) QByteArray *decodingErrorSample /* = 0 */)
{ {
const TextFileFormat::ReadResult result = const TextFileFormat::ReadResult result =
readTextFile(fileName, defaultCodec, readTextFile(filePath, defaultCodec,
plainText, format, errorString, decodingErrorSample); plainText, format, errorString, decodingErrorSample);
if (debug) if (debug)
qDebug().nospace() << Q_FUNC_INFO << fileName << ' ' << *format qDebug().nospace() << Q_FUNC_INFO << filePath << ' ' << *format
<< " returns " << result << '/' << plainText->size() << " characters"; << " returns " << result << '/' << plainText->size() << " characters";
return result; return result;
} }
TextFileFormat::ReadResult TextFileFormat::readFileUTF8(const QString &fileName, TextFileFormat::ReadResult TextFileFormat::readFileUTF8(const FilePath &filePath,
const QTextCodec *defaultCodec, const QTextCodec *defaultCodec,
QByteArray *plainText, QString *errorString) QByteArray *plainText, QString *errorString)
{ {
QByteArray data; QByteArray data;
try { try {
FileReader reader; FileReader reader;
if (!reader.fetch(fileName, errorString)) if (!reader.fetch(filePath.toString(), errorString))
return TextFileFormat::ReadIOError; return TextFileFormat::ReadIOError;
data = reader.data(); data = reader.data();
} catch (const std::bad_alloc &) { } catch (const std::bad_alloc &) {
@@ -302,7 +302,7 @@ TextFileFormat::ReadResult TextFileFormat::readFileUTF8(const QString &fileName,
Writes out a text file. Writes out a text file.
*/ */
bool TextFileFormat::writeFile(const QString &fileName, QString plainText, QString *errorString) const bool TextFileFormat::writeFile(const FilePath &filePath, QString plainText, QString *errorString) const
{ {
QTC_ASSERT(codec, return false); QTC_ASSERT(codec, return false);
@@ -313,7 +313,7 @@ bool TextFileFormat::writeFile(const QString &fileName, QString plainText, QStri
if (lineTerminationMode == CRLFLineTerminator) if (lineTerminationMode == CRLFLineTerminator)
plainText.replace(QLatin1Char('\n'), QLatin1String("\r\n")); plainText.replace(QLatin1Char('\n'), QLatin1String("\r\n"));
FileSaver saver(fileName, fileMode); FileSaver saver(filePath.toString(), fileMode);
if (!saver.hasError()) { if (!saver.hasError()) {
if (hasUtf8Bom && codec->name() == "UTF-8") if (hasUtf8Bom && codec->name() == "UTF-8")
saver.write("\xef\xbb\xbf", 3); saver.write("\xef\xbb\xbf", 3);
@@ -321,7 +321,7 @@ bool TextFileFormat::writeFile(const QString &fileName, QString plainText, QStri
} }
const bool ok = saver.finalize(errorString); const bool ok = saver.finalize(errorString);
if (debug) if (debug)
qDebug().nospace() << Q_FUNC_INFO << fileName << ' ' << *this << ' ' << plainText.size() qDebug().nospace() << Q_FUNC_INFO << filePath << ' ' << *this << ' ' << plainText.size()
<< " bytes, returns " << ok; << " bytes, returns " << ok;
return ok; return ok;
} }

View File

@@ -36,6 +36,8 @@ QT_END_NAMESPACE
namespace Utils { namespace Utils {
class FilePath;
class QTCREATOR_UTILS_EXPORT TextFileFormat { class QTCREATOR_UTILS_EXPORT TextFileFormat {
public: public:
enum LineTerminationMode enum LineTerminationMode
@@ -65,16 +67,16 @@ public:
bool decode(const QByteArray &data, QString *target) const; bool decode(const QByteArray &data, QString *target) const;
bool decode(const QByteArray &data, QStringList *target) const; bool decode(const QByteArray &data, QStringList *target) const;
static ReadResult readFile(const QString &fileName, const QTextCodec *defaultCodec, static ReadResult readFile(const FilePath &filePath, const QTextCodec *defaultCodec,
QStringList *plainText, TextFileFormat *format, QString *errorString, QStringList *plainText, TextFileFormat *format, QString *errorString,
QByteArray *decodingErrorSample = nullptr); QByteArray *decodingErrorSample = nullptr);
static ReadResult readFile(const QString &fileName, const QTextCodec *defaultCodec, static ReadResult readFile(const FilePath &filePath, const QTextCodec *defaultCodec,
QString *plainText, TextFileFormat *format, QString *errorString, QString *plainText, TextFileFormat *format, QString *errorString,
QByteArray *decodingErrorSample = nullptr); QByteArray *decodingErrorSample = nullptr);
static ReadResult readFileUTF8(const QString &fileName, const QTextCodec *defaultCodec, static ReadResult readFileUTF8(const FilePath &filePath, const QTextCodec *defaultCodec,
QByteArray *plainText, QString *errorString); QByteArray *plainText, QString *errorString);
bool writeFile(const QString &fileName, QString plainText, QString *errorString) const; bool writeFile(const FilePath &filePath, QString plainText, QString *errorString) const;
static QByteArray decodingErrorSample(const QByteArray &data); static QByteArray decodingErrorSample(const QByteArray &data);

View File

@@ -60,8 +60,11 @@ QByteArray CppParser::getFileContent(const QString &filePath) const
} else { } else {
QString error; QString error;
const QTextCodec *codec = Core::EditorManager::defaultTextCodec(); const QTextCodec *codec = Core::EditorManager::defaultTextCodec();
if (Utils::TextFileFormat::readFileUTF8(filePath, codec, &fileContent, &error) if (Utils::TextFileFormat::readFileUTF8(Utils::FilePath::fromString(filePath),
!= Utils::TextFileFormat::ReadSuccess) { codec,
&fileContent,
&error)
!= Utils::TextFileFormat::ReadSuccess) {
qDebug() << "Failed to read file" << filePath << ":" << error; qDebug() << "Failed to read file" << filePath << ":" << error;
} }
} }

View File

@@ -122,7 +122,9 @@ bool FixitsRefactoringFile::apply()
QString error; QString error;
for (auto it = m_documents.begin(); it != m_documents.end(); ++it) { for (auto it = m_documents.begin(); it != m_documents.end(); ++it) {
if (!m_textFileFormat.writeFile(it.key(), it.value()->toPlainText(), &error)) { if (!m_textFileFormat.writeFile(FilePath::fromString(it.key()),
it.value()->toPlainText(),
&error)) {
qCDebug(fixitsLog) << "ERROR: Could not write file" << it.key() << ":" << error; qCDebug(fixitsLog) << "ERROR: Could not write file" << it.key() << ":" << error;
return false; // Error writing file return false; // Error writing file
} }
@@ -163,10 +165,12 @@ QTextDocument *FixitsRefactoringFile::document(const QString &filePath) const
if (!filePath.isEmpty()) { if (!filePath.isEmpty()) {
QString error; QString error;
QTextCodec *defaultCodec = Core::EditorManager::defaultTextCodec(); QTextCodec *defaultCodec = Core::EditorManager::defaultTextCodec();
TextFileFormat::ReadResult result = TextFileFormat::readFile( TextFileFormat::ReadResult result = TextFileFormat::readFile(FilePath::fromString(
filePath, defaultCodec, filePath),
&fileContents, &m_textFileFormat, defaultCodec,
&error); &fileContents,
&m_textFileFormat,
&error);
if (result != TextFileFormat::ReadSuccess) { if (result != TextFileFormat::ReadSuccess) {
qCDebug(fixitsLog) << "ERROR: Could not read " << filePath << ":" << error; qCDebug(fixitsLog) << "ERROR: Could not read " << filePath << ":" << error;
m_textFileFormat.codec = nullptr; m_textFileFormat.codec = nullptr;

View File

@@ -165,7 +165,7 @@ bool GeneratedFile::write(QString *errorMessage) const
Utils::TextFileFormat format; Utils::TextFileFormat format;
format.codec = EditorManager::defaultTextCodec(); format.codec = EditorManager::defaultTextCodec();
format.lineTerminationMode = EditorManager::defaultLineEnding(); format.lineTerminationMode = EditorManager::defaultLineEnding();
return format.writeFile(m_d->path, contents(), errorMessage); return format.writeFile(Utils::FilePath::fromString(m_d->path), contents(), errorMessage);
} }
GeneratedFile::Attributes GeneratedFile::attributes() const GeneratedFile::Attributes GeneratedFile::attributes() const

View File

@@ -110,7 +110,7 @@ bool BaseTextDocument::write(const QString &fileName, const Utils::TextFileForma
{ {
if (debug) if (debug)
qDebug() << Q_FUNC_INFO << this << fileName; qDebug() << Q_FUNC_INFO << this << fileName;
return format.writeFile(fileName, data, errorMessage); return format.writeFile(Utils::FilePath::fromString(fileName), data, errorMessage);
} }
void BaseTextDocument::setSupportsUtf8Bom(bool value) void BaseTextDocument::setSupportsUtf8Bom(bool value)
@@ -136,7 +136,7 @@ void BaseTextDocument::setLineTerminationMode(Utils::TextFileFormat::LineTermina
BaseTextDocument::ReadResult BaseTextDocument::read(const QString &fileName, QStringList *plainTextList, QString *errorString) BaseTextDocument::ReadResult BaseTextDocument::read(const QString &fileName, QStringList *plainTextList, QString *errorString)
{ {
d->m_readResult = d->m_readResult =
Utils::TextFileFormat::readFile(fileName, codec(), Utils::TextFileFormat::readFile(Utils::FilePath::fromString(fileName), codec(),
plainTextList, &d->m_format, errorString, &d->m_decodingErrorSample); plainTextList, &d->m_format, errorString, &d->m_decodingErrorSample);
return d->m_readResult; return d->m_readResult;
} }
@@ -154,7 +154,7 @@ BaseTextDocument::ReadResult BaseTextDocument::read(const QString &fileName, QSt
BaseTextDocument::ReadResult BaseTextDocument::read(const QString &fileName, QString *plainText, QString *errorString) BaseTextDocument::ReadResult BaseTextDocument::read(const QString &fileName, QString *plainText, QString *errorString)
{ {
d->m_readResult = d->m_readResult =
Utils::TextFileFormat::readFile(fileName, codec(), Utils::TextFileFormat::readFile(Utils::FilePath::fromString(fileName), codec(),
plainText, &d->m_format, errorString, &d->m_decodingErrorSample); plainText, &d->m_format, errorString, &d->m_decodingErrorSample);
return d->m_readResult; return d->m_readResult;
} }

View File

@@ -361,8 +361,12 @@ static std::unique_ptr<QTextDocument> getCurrentDocument(const QString &path)
QString contents; QString contents;
Utils::TextFileFormat format; Utils::TextFileFormat format;
QString error; QString error;
if (Utils::TextFileFormat::readFile(path, defaultCodec, &contents, &format, &error) if (Utils::TextFileFormat::readFile(Utils::FilePath::fromString(path),
!= Utils::TextFileFormat::ReadSuccess) { defaultCodec,
&contents,
&format,
&error)
!= Utils::TextFileFormat::ReadSuccess) {
qWarning() << "Error reading file " << path << " : " << error; qWarning() << "Error reading file " << path << " : " << error;
return {}; return {};
} }

View File

@@ -140,7 +140,7 @@ static QByteArray getSource(const Utils::FilePath &fileName,
QString error; QString error;
QTextCodec *defaultCodec = EditorManager::defaultTextCodec(); QTextCodec *defaultCodec = EditorManager::defaultTextCodec();
Utils::TextFileFormat::ReadResult result = Utils::TextFileFormat::readFile( Utils::TextFileFormat::ReadResult result = Utils::TextFileFormat::readFile(
fileName.toString(), defaultCodec, &fileContents, &format, &error); fileName, defaultCodec, &fileContents, &format, &error);
if (result != Utils::TextFileFormat::ReadSuccess) if (result != Utils::TextFileFormat::ReadSuccess)
qWarning() << "Could not read " << fileName << ". Error: " << error; qWarning() << "Could not read " << fileName << ". Error: " << error;

View File

@@ -220,8 +220,11 @@ bool CppSourceProcessor::getFileContents(const QString &absoluteFilePath,
// Get from file // Get from file
*revision = 0; *revision = 0;
QString error; QString error;
if (Utils::TextFileFormat::readFileUTF8(absoluteFilePath, m_defaultCodec, contents, &error) if (Utils::TextFileFormat::readFileUTF8(Utils::FilePath::fromString(absoluteFilePath),
!= Utils::TextFileFormat::ReadSuccess) { m_defaultCodec,
contents,
&error)
!= Utils::TextFileFormat::ReadSuccess) {
qWarning("Error reading file \"%s\": \"%s\".", qPrintable(absoluteFilePath), qWarning("Error reading file \"%s\": \"%s\".", qPrintable(absoluteFilePath),
qPrintable(error)); qPrintable(error));
return false; return false;

View File

@@ -199,7 +199,7 @@ QList<ReloadInput> DiffCurrentFileController::reloadInputList() const
QList<ReloadInput> result; QList<ReloadInput> result;
auto textDocument = qobject_cast<TextEditor::TextDocument *>( auto textDocument = qobject_cast<TextEditor::TextDocument *>(
DocumentModel::documentForFilePath(Utils::FilePath::fromString(m_fileName))); DocumentModel::documentForFilePath(FilePath::fromString(m_fileName)));
if (textDocument && textDocument->isModified()) { if (textDocument && textDocument->isModified()) {
QString errorString; QString errorString;
@@ -207,7 +207,7 @@ QList<ReloadInput> DiffCurrentFileController::reloadInputList() const
QString leftText; QString leftText;
const Utils::TextFileFormat::ReadResult leftResult const Utils::TextFileFormat::ReadResult leftResult
= Utils::TextFileFormat::readFile(m_fileName, format.codec, = Utils::TextFileFormat::readFile(FilePath::fromString(m_fileName), format.codec,
&leftText, &format, &errorString); &leftText, &format, &errorString);
const QString rightText = textDocument->plainText(); const QString rightText = textDocument->plainText();
@@ -262,9 +262,8 @@ QList<ReloadInput> DiffOpenFilesController::reloadInputList() const
QString leftText; QString leftText;
const QString fileName = textDocument->filePath().toString(); const QString fileName = textDocument->filePath().toString();
const Utils::TextFileFormat::ReadResult leftResult const Utils::TextFileFormat::ReadResult leftResult = Utils::TextFileFormat::readFile(
= Utils::TextFileFormat::readFile(fileName, format.codec, FilePath::fromString(fileName), format.codec, &leftText, &format, &errorString);
&leftText, &format, &errorString);
const QString rightText = textDocument->plainText(); const QString rightText = textDocument->plainText();
@@ -321,9 +320,8 @@ QList<ReloadInput> DiffModifiedFilesController::reloadInputList() const
QString leftText; QString leftText;
const QString fileName = textDocument->filePath().toString(); const QString fileName = textDocument->filePath().toString();
const Utils::TextFileFormat::ReadResult leftResult const Utils::TextFileFormat::ReadResult leftResult = Utils::TextFileFormat::readFile(
= Utils::TextFileFormat::readFile(fileName, format.codec, FilePath::fromString(fileName), format.codec, &leftText, &format, &errorString);
&leftText, &format, &errorString);
const QString rightText = textDocument->plainText(); const QString rightText = textDocument->plainText();
@@ -378,12 +376,10 @@ QList<ReloadInput> DiffExternalFilesController::reloadInputList() const
QString leftText; QString leftText;
QString rightText; QString rightText;
const Utils::TextFileFormat::ReadResult leftResult const Utils::TextFileFormat::ReadResult leftResult = Utils::TextFileFormat::readFile(
= Utils::TextFileFormat::readFile(m_leftFileName, format.codec, FilePath::fromString(m_leftFileName), format.codec, &leftText, &format, &errorString);
&leftText, &format, &errorString); const Utils::TextFileFormat::ReadResult rightResult = Utils::TextFileFormat::readFile(
const Utils::TextFileFormat::ReadResult rightResult FilePath::fromString(m_rightFileName), format.codec, &rightText, &format, &errorString);
= Utils::TextFileFormat::readFile(m_rightFileName, format.codec,
&rightText, &format, &errorString);
ReloadInput reloadInput; ReloadInput reloadInput;
reloadInput.leftText = leftText; reloadInput.leftText = leftText;

View File

@@ -3836,8 +3836,11 @@ IEditor *GitClient::openShowEditor(const QString &workingDirectory, const QStrin
if (content.isEmpty()) if (content.isEmpty())
return nullptr; return nullptr;
QByteArray fileContent; QByteArray fileContent;
if (TextFileFormat::readFileUTF8(path, nullptr, &fileContent, nullptr) if (TextFileFormat::readFileUTF8(Utils::FilePath::fromString(path),
== TextFileFormat::ReadSuccess) { nullptr,
&fileContent,
nullptr)
== TextFileFormat::ReadSuccess) {
if (fileContent == content) if (fileContent == content)
return nullptr; // open the file for read/write return nullptr; // open the file for read/write
} }

View File

@@ -146,7 +146,7 @@ QStringList SymbolSupport::getFileContents(const Utils::FilePath &filePath)
format.lineTerminationMode = Utils::TextFileFormat::LFLineTerminator; format.lineTerminationMode = Utils::TextFileFormat::LFLineTerminator;
QString error; QString error;
const QTextCodec *codec = Core::EditorManager::defaultTextCodec(); const QTextCodec *codec = Core::EditorManager::defaultTextCodec();
if (Utils::TextFileFormat::readFile(filePath.toString(), codec, &fileContent, &format, &error) if (Utils::TextFileFormat::readFile(filePath, codec, &fileContent, &format, &error)
!= Utils::TextFileFormat::ReadSuccess) { != Utils::TextFileFormat::ReadSuccess) {
qDebug() << "Failed to read file" << filePath << ":" << error; qDebug() << "Failed to read file" << filePath << ":" << error;
} }

View File

@@ -770,12 +770,12 @@ QPair<ProFile *, QStringList> QmakePriFile::readProFile()
QString contents; QString contents;
{ {
QString errorMsg; QString errorMsg;
if (TextFileFormat::readFile( if (TextFileFormat::readFile(filePath(),
filePath().toString(), Core::EditorManager::defaultTextCodec(),
Core::EditorManager::defaultTextCodec(), &contents,
&contents, &m_textFormat,
&m_textFormat, &errorMsg)
&errorMsg) != TextFileFormat::ReadSuccess) { != TextFileFormat::ReadSuccess) {
QmakeBuildSystem::proFileParseError(errorMsg, filePath()); QmakeBuildSystem::proFileParseError(errorMsg, filePath());
return qMakePair(includeFile, lines); return qMakePair(includeFile, lines);
} }
@@ -932,7 +932,7 @@ void QmakePriFile::save(const QStringList &lines)
QTC_ASSERT(m_textFormat.codec, return); QTC_ASSERT(m_textFormat.codec, return);
FileChangeBlocker changeGuard(filePath().toString()); FileChangeBlocker changeGuard(filePath().toString());
QString errorMsg; QString errorMsg;
if (!m_textFormat.writeFile(filePath().toString(), lines.join('\n'), &errorMsg)) { if (!m_textFormat.writeFile(filePath(), lines.join('\n'), &errorMsg)) {
QMessageBox::critical(Core::ICore::dialogParent(), QCoreApplication::translate( QMessageBox::critical(Core::ICore::dialogParent(), QCoreApplication::translate(
"QmakePriFile", "File Error"), errorMsg); "QmakePriFile", "File Error"), errorMsg);
} }

View File

@@ -302,7 +302,7 @@ bool DocumentManager::createFile(const QString &filePath, const QString &content
textFileFormat.codec = Core::EditorManager::defaultTextCodec(); textFileFormat.codec = Core::EditorManager::defaultTextCodec();
QString errorMessage; QString errorMessage;
return textFileFormat.writeFile(filePath, contents, &errorMessage); return textFileFormat.writeFile(Utils::FilePath::fromString(filePath), contents, &errorMessage);
} }
void DocumentManager::addFileToVersionControl(const QString &directoryPath, const QString &newFilePath) void DocumentManager::addFileToVersionControl(const QString &directoryPath, const QString &newFilePath)

View File

@@ -543,7 +543,7 @@ bool QmlBuildSystem::renameFile(Node * context, const QString &filePath, const Q
QString error; QString error;
Utils::TextFileFormat textFileFormat; Utils::TextFileFormat textFileFormat;
const QTextCodec *codec = QTextCodec::codecForName("UTF-8"); // qml files are defined to be utf-8 const QTextCodec *codec = QTextCodec::codecForName("UTF-8"); // qml files are defined to be utf-8
if (Utils::TextFileFormat::readFile(qmlProjectFilePath.toString(), codec, &fileContent, &textFileFormat, &error) if (Utils::TextFileFormat::readFile(qmlProjectFilePath, codec, &fileContent, &textFileFormat, &error)
!= Utils::TextFileFormat::ReadSuccess) { != Utils::TextFileFormat::ReadSuccess) {
qWarning() << "Failed to read file" << qmlProjectFilePath << ":" << error; qWarning() << "Failed to read file" << qmlProjectFilePath << ":" << error;
} }
@@ -556,7 +556,7 @@ bool QmlBuildSystem::renameFile(Node * context, const QString &filePath, const Q
fileContent.replace(match.capturedStart(1), match.capturedLength(1), QFileInfo(newFilePath).fileName()); fileContent.replace(match.capturedStart(1), match.capturedLength(1), QFileInfo(newFilePath).fileName());
if (!textFileFormat.writeFile(qmlProjectFilePath.toString(), fileContent, &error)) if (!textFileFormat.writeFile(qmlProjectFilePath, fileContent, &error))
qWarning() << "Failed to write file" << qmlProjectFilePath << ":" << error; qWarning() << "Failed to write file" << qmlProjectFilePath << ":" << error;
refresh(Everything); refresh(Everything);

View File

@@ -242,7 +242,9 @@ bool ResourceFile::save()
return false; return false;
} }
return m_textFileFormat.writeFile(m_file_name, contents(), &m_error_message); return m_textFileFormat.writeFile(Utils::FilePath::fromString(m_file_name),
contents(),
&m_error_message);
} }
void ResourceFile::refresh() void ResourceFile::refresh()

View File

@@ -98,7 +98,7 @@ bool RefactoringChanges::createFile(const QString &fileName, const QString &cont
TextFileFormat format; TextFileFormat format;
format.codec = EditorManager::defaultTextCodec(); format.codec = EditorManager::defaultTextCodec();
QString error; QString error;
bool saveOk = format.writeFile(fileName, document->toPlainText(), &error); bool saveOk = format.writeFile(Utils::FilePath::fromString(fileName), document->toPlainText(), &error);
delete document; delete document;
if (!saveOk) if (!saveOk)
return false; return false;
@@ -198,10 +198,12 @@ QTextDocument *RefactoringFile::mutableDocument() const
if (!m_fileName.isEmpty()) { if (!m_fileName.isEmpty()) {
QString error; QString error;
QTextCodec *defaultCodec = EditorManager::defaultTextCodec(); QTextCodec *defaultCodec = EditorManager::defaultTextCodec();
TextFileFormat::ReadResult result = TextFileFormat::readFile( TextFileFormat::ReadResult result = TextFileFormat::readFile(FilePath::fromString(
m_fileName, defaultCodec, m_fileName),
&fileContents, &m_textFileFormat, defaultCodec,
&error); &fileContents,
&m_textFileFormat,
&error);
if (result != TextFileFormat::ReadSuccess) { if (result != TextFileFormat::ReadSuccess) {
qWarning() << "Could not read " << m_fileName << ". Error: " << error; qWarning() << "Could not read " << m_fileName << ". Error: " << error;
m_textFileFormat.codec = nullptr; m_textFileFormat.codec = nullptr;
@@ -372,7 +374,9 @@ bool RefactoringFile::apply()
QString error; QString error;
// suppress "file has changed" warnings if the file is open in a read-only editor // suppress "file has changed" warnings if the file is open in a read-only editor
Core::FileChangeBlocker block(m_fileName); Core::FileChangeBlocker block(m_fileName);
if (!m_textFileFormat.writeFile(m_fileName, doc->toPlainText(), &error)) { if (!m_textFileFormat.writeFile(FilePath::fromString(m_fileName),
doc->toPlainText(),
&error)) {
qWarning() << "Could not apply changes to" << m_fileName << ". Error: " << error; qWarning() << "Could not apply changes to" << m_fileName << ". Error: " << error;
result = false; result = false;
} }

View File

@@ -34,9 +34,10 @@
#include "unsavedfile.h" #include "unsavedfile.h"
#include <clangsupport/sourcerangecontainer.h> #include <clangsupport/sourcerangecontainer.h>
#include <utils/fileutils.h>
#include <utils/qtcassert.h>
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
#include <utils/textfileformat.h> #include <utils/textfileformat.h>
#include <utils/qtcassert.h>
#include <utf8string.h> #include <utf8string.h>
@@ -487,7 +488,10 @@ UnsavedFile ToolTipInfoCollector::unsavedFile(const Utf8String &filePath) const
QString errorString; QString errorString;
using namespace Utils; using namespace Utils;
const TextFileFormat::ReadResult readResult const TextFileFormat::ReadResult readResult
= TextFileFormat::readFileUTF8(filePath.toString(), codec, &fileContent, &errorString); = TextFileFormat::readFileUTF8(Utils::FilePath::fromString(filePath),
codec,
&fileContent,
&errorString);
if (readResult != TextFileFormat::ReadSuccess) { if (readResult != TextFileFormat::ReadSuccess) {
qWarning() << "Failed to read file" << filePath << ":" << errorString; qWarning() << "Failed to read file" << filePath << ":" << errorString;
return UnsavedFile(); return UnsavedFile();