C++: change working-copy to work on UTF-8 encoded QByteArrays.

These not only take less space than UTF-16 encoded QStrings, but due to
the caching in the CppEditorSupport also take less time to build.

This patch also fixes a number of possible encoding issues, where files
and constant strings were (falsely) assumed to be UTF-8.

Change-Id: Ib6f91c9a94ebed5b5dfbd4eb2998825c62c72784
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
This commit is contained in:
Erik Verbruggen
2013-08-19 15:47:51 +02:00
parent eebb1dfcf4
commit f7c68f6baf
24 changed files with 118 additions and 67 deletions

View File

@@ -166,12 +166,12 @@ QString CppEditorSupport::fileName() const
return m_textEditor->document()->filePath();
}
QString CppEditorSupport::contents() const
QByteArray CppEditorSupport::contents() const
{
const int editorRev = editorRevision();
if (m_cachedContentsEditorRevision != editorRev && !m_fileIsBeingReloaded) {
m_cachedContentsEditorRevision = editorRev;
m_cachedContents = m_textEditor->textDocument()->contents();
m_cachedContents = m_textEditor->textDocument()->contents().toUtf8();
}
return m_cachedContents;
@@ -430,7 +430,7 @@ SemanticInfo::Source CppEditorSupport::currentSource(bool force)
const Snapshot snapshot = m_modelManager->snapshot();
QString code;
QByteArray code;
if (force || m_lastSemanticInfo.revision != editorRevision())
code = contents(); // get the source code only when needed.