diff --git a/src/plugins/git/giteditor.cpp b/src/plugins/git/giteditor.cpp index 5b4b05e7f1eec1ca1ae894ac6886ec5a05d87fb8..833e6f577ff1bc58851a17586cd11685babc8805 100644 --- a/src/plugins/git/giteditor.cpp +++ b/src/plugins/git/giteditor.cpp @@ -46,6 +46,7 @@ #include <QRegExp> #include <QSet> #include <QTemporaryFile> +#include <QTextCodec> #include <QDir> #include <QTextCursor> @@ -325,14 +326,16 @@ void GitEditor::addDiffActions(QMenu *menu, const VcsBase::DiffChunk &chunk) bool GitEditor::open(QString *errorString, const QString &fileName, const QString &realFileName) { - bool res = VcsBaseEditorWidget::open(errorString, fileName, realFileName); Core::Id editorId = editor()->id(); if (editorId == Git::Constants::GIT_COMMIT_TEXT_EDITOR_ID || editorId == Git::Constants::GIT_REBASE_EDITOR_ID) { QFileInfo fi(fileName); - setSource(fi.absolutePath()); + const QString gitPath = fi.absolutePath(); + setSource(gitPath); + const QString commitEncoding = GitPlugin::instance()->gitClient()->commitEncoding(gitPath); + baseTextDocument()->setCodec(QTextCodec::codecForName(commitEncoding.toLocal8Bit())); } - return res; + return VcsBaseEditorWidget::open(errorString, fileName, realFileName); } QString GitEditor::decorateVersion(const QString &revision) const