Commit 2f957458 authored by David Schulz's avatar David Schulz
Browse files

Editor: Disable adding UTF-8 BOM for qmake project files



Removes the "Add/Remove UTF-8 BOM" entry in the context menu
of the project file editor. Also ignores the setting
"Add If Encoding Is UTF-8" under
Options -> Text Editor -> Behavior -> File Encodings.

Task-number: QTCREATORBUG-8501

Change-Id: I368966b5235ee60011f2051ebdb82f9fe09bc4cc
Reviewed-by: default avatarOswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: default avatarNikolai Kosjar <nikolai.kosjar@digia.com>
parent 8d4618e4
...@@ -53,6 +53,7 @@ public: ...@@ -53,6 +53,7 @@ public:
const QTextCodec *codec() const; const QTextCodec *codec() const;
void setCodec(const QTextCodec *); void setCodec(const QTextCodec *);
void switchUtf8Bom(); void switchUtf8Bom();
virtual bool supportsUtf8Bom() { return true; }
ReadResult read(const QString &fileName, QStringList *plainTextList, QString *errorString); ReadResult read(const QString &fileName, QStringList *plainTextList, QString *errorString);
ReadResult read(const QString &fileName, QString *plainText, QString *errorString); ReadResult read(const QString &fileName, QString *plainText, QString *errorString);
......
...@@ -95,6 +95,10 @@ public: ...@@ -95,6 +95,10 @@ public:
ProFileDocument(); ProFileDocument();
QString defaultPath() const; QString defaultPath() const;
QString suggestedFileName() const; QString suggestedFileName() const;
// qmake project files doesn't support UTF8-BOM
// If the BOM would be added qmake would fail and QtCreator couldn't parse the project file
bool supportsUtf8Bom() { return false; }
}; };
} // namespace Internal } // namespace Internal
......
...@@ -237,8 +237,9 @@ bool BaseTextDocument::save(QString *errorString, const QString &fileName, bool ...@@ -237,8 +237,9 @@ bool BaseTextDocument::save(QString *errorString, const QString &fileName, bool
if (!fileName.isEmpty()) if (!fileName.isEmpty())
fName = fileName; fName = fileName;
// check if UTF8-BOM has to be added or removed
Utils::TextFileFormat saveFormat = format(); Utils::TextFileFormat saveFormat = format();
if (saveFormat.codec->name() == "UTF-8") { if (saveFormat.codec->name() == "UTF-8" && supportsUtf8Bom()) {
switch (d->m_extraEncodingSettings.m_utf8BomSetting) { switch (d->m_extraEncodingSettings.m_utf8BomSetting) {
case TextEditor::ExtraEncodingSettings::AlwaysAdd: case TextEditor::ExtraEncodingSettings::AlwaysAdd:
saveFormat.hasUtf8Bom = true; saveFormat.hasUtf8Bom = true;
...@@ -249,7 +250,7 @@ bool BaseTextDocument::save(QString *errorString, const QString &fileName, bool ...@@ -249,7 +250,7 @@ bool BaseTextDocument::save(QString *errorString, const QString &fileName, bool
saveFormat.hasUtf8Bom = false; saveFormat.hasUtf8Bom = false;
break; break;
} }
} // "UTF-8" }
const bool ok = write(fName, saveFormat, d->m_document->toPlainText(), errorString); const bool ok = write(fName, saveFormat, d->m_document->toPlainText(), errorString);
......
...@@ -6238,7 +6238,7 @@ void BaseTextEditorWidget::appendStandardContextMenuActions(QMenu *menu) ...@@ -6238,7 +6238,7 @@ void BaseTextEditorWidget::appendStandardContextMenuActions(QMenu *menu)
menu->addAction(a); menu->addAction(a);
QSharedPointer<BaseTextDocument> doc = baseTextDocument(); QSharedPointer<BaseTextDocument> doc = baseTextDocument();
if (doc->codec()->name() == QByteArray("UTF-8")) { if (doc->codec()->name() == QByteArray("UTF-8") && doc->supportsUtf8Bom()) {
a = Core::ActionManager::command(Constants::SWITCH_UTF8BOM)->action(); a = Core::ActionManager::command(Constants::SWITCH_UTF8BOM)->action();
if (a && a->isEnabled()) { if (a && a->isEnabled()) {
a->setText(doc->format().hasUtf8Bom ? tr("Delete UTF-8 BOM on Save") a->setText(doc->format().hasUtf8Bom ? tr("Delete UTF-8 BOM on Save")
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment