forked from qt-creator/qt-creator
QmlDesigner.Rewriter: fixing encoding issue for Qt 4
QString uses utf-16 internally. If we explicitly convert to utf-8 and then use the QByteArray implicit constructor of QString again, Qt 4 will interpret the utf-8 encoded string as latin1. This results in a wrong string for everything that is not pure ASCII. With Qt 5 it works, since the assumed default encoding of QByteArray is utf-8. Still any conversion does not make sense. Task-number: QTCREATORBUG-9493 Change-Id: Ifbaa4684e85d0ccd677956eeff88b4cc7d807922 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
This commit is contained in:
@@ -569,7 +569,7 @@ void RewriterView::resetToLastCorrectQml()
|
|||||||
m_textModifier->textDocument()->undo();
|
m_textModifier->textDocument()->undo();
|
||||||
m_textModifier->textDocument()->clearUndoRedoStacks(QTextDocument::RedoStack);
|
m_textModifier->textDocument()->clearUndoRedoStacks(QTextDocument::RedoStack);
|
||||||
ModelAmender differenceHandler(m_textToModelMerger.data());
|
ModelAmender differenceHandler(m_textToModelMerger.data());
|
||||||
m_textToModelMerger->load(m_textModifier->text().toUtf8(), differenceHandler);
|
m_textToModelMerger->load(m_textModifier->text(), differenceHandler);
|
||||||
|
|
||||||
leaveErrorState();
|
leaveErrorState();
|
||||||
}
|
}
|
||||||
@@ -759,7 +759,7 @@ void RewriterView::qmlTextChanged()
|
|||||||
switch (m_differenceHandling) {
|
switch (m_differenceHandling) {
|
||||||
case Validate: {
|
case Validate: {
|
||||||
ModelValidator differenceHandler(m_textToModelMerger.data());
|
ModelValidator differenceHandler(m_textToModelMerger.data());
|
||||||
if (m_textToModelMerger->load(newQmlText.toUtf8(), differenceHandler))
|
if (m_textToModelMerger->load(newQmlText, differenceHandler))
|
||||||
lastCorrectQmlSource = newQmlText;
|
lastCorrectQmlSource = newQmlText;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user