From 6b5bccd08e7f37bd4be322c0284d60e30ccece90 Mon Sep 17 00:00:00 2001
From: raidsan <raidsan@gmail.com>
Date: Sat, 14 Apr 2012 13:29:03 +0800
Subject: [PATCH] "Find Usages" and "Refactor" may decode error.

Task-number: QTCREATORBUG-7204

Change-Id: I6ce82c701246ddac9cadcdd22ef994b0086ce8f7
Reviewed-by: Andre Hartmann <aha_1980@gmx.de>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
---
 src/plugins/cpptools/cppfindreferences.cpp | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/plugins/cpptools/cppfindreferences.cpp b/src/plugins/cpptools/cppfindreferences.cpp
index 5d5b6795a7e..2fa5ed2ed7e 100644
--- a/src/plugins/cpptools/cppfindreferences.cpp
+++ b/src/plugins/cpptools/cppfindreferences.cpp
@@ -65,6 +65,7 @@
 #include <QDir>
 #include <QApplication>
 #include <utils/runextensions.h>
+#include <utils/textfileformat.h>
 
 #include <functional>
 
@@ -77,11 +78,16 @@ static QString getSource(const QString &fileName,
     if (workingCopy.contains(fileName)) {
         return workingCopy.source(fileName);
     } else {
-        Utils::FileReader reader;
-        if (!reader.fetch(fileName, QFile::Text)) // ### FIXME error reporting
-            return QString();
-
-        return QString::fromLocal8Bit(reader.data()); // ### FIXME encoding
+        QString fileContents;
+        Utils::TextFileFormat format;
+        QString error;
+        QTextCodec *defaultCodec = Core::EditorManager::instance()->defaultTextCodec();
+        Utils::TextFileFormat::ReadResult result = Utils::TextFileFormat::readFile(
+                    fileName, defaultCodec, &fileContents, &format, &error);
+        if (result != Utils::TextFileFormat::ReadSuccess)
+            qWarning() << "Could not read " << fileName << ". Error: " << error;
+
+        return fileContents;
     }
 }
 
-- 
GitLab