Git: Fix error encoding if the source file not exist

Change-Id: Ia98195f966e79d65f1947c638cb9aacfb9b2f309
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
This commit is contained in:
Yuchen Deng
2012-01-10 00:15:50 +08:00
committed by Tobias Hunger
parent 62afcd6742
commit 58f8d43fff
2 changed files with 12 additions and 1 deletions

View File

@@ -408,7 +408,7 @@ VcsBase::VcsBaseEditorWidget *GitClient::createVcsEditor(const Core::Id &id,
QTC_ASSERT(rc, return 0);
rc->setSource(source);
if (codecType == CodecSource) {
rc->setCodec(VcsBase::VcsBaseEditorWidget::getCodec(source));
rc->setCodec(getSourceCodec(source));
} else if (codecType == CodecLogOutput) {
QString encodingName = readConfigValue(source, QLatin1String("i18n.logOutputEncoding"));
if (encodingName.isEmpty())
@@ -675,6 +675,16 @@ void GitClient::slotBlameRevisionRequested(const QString &source, QString change
blame(fi.absolutePath(), QStringList(), fi.fileName(), change, lineNumber);
}
QTextCodec *GitClient::getSourceCodec(const QString &file) const
{
if (QFileInfo(file).isFile())
return VcsBase::VcsBaseEditorWidget::getCodec(file);
QString encodingName = readConfigValue(file, QLatin1String("gui.encoding"));
if (encodingName.isEmpty())
encodingName = QLatin1String("utf-8");
return QTextCodec::codecForName(encodingName.toLocal8Bit());
}
void GitClient::blame(const QString &workingDirectory,
const QStringList &args,
const QString &fileName,