diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp index 851d61c6a8a425f888bd61e7c682a5920ddce7d7..63f2a3d7198223e675a1b0b290e8fdff00e3ae6d 100644 --- a/src/plugins/texteditor/basetexteditor.cpp +++ b/src/plugins/texteditor/basetexteditor.cpp @@ -542,14 +542,18 @@ QString BaseTextEditorWidget::msgTextTooLarge(quint64 size) void BaseTextEditorWidget::updateCannotDecodeInfo() { setReadOnly(d->m_document->hasDecodingError()); + Core::InfoBar *infoBar = d->m_document->infoBar(); + Core::Id selectEncodingId(Constants::SELECT_ENCODING); if (d->m_document->hasDecodingError()) { - Core::InfoBarEntry info(Core::Id(Constants::SELECT_ENCODING), + if (!infoBar->canInfoBeAdded(selectEncodingId)) + return; + Core::InfoBarEntry info(selectEncodingId, tr("<b>Error:</b> Could not decode \"%1\" with \"%2\"-encoding. Editing not possible.") .arg(d->m_document->displayName()).arg(QString::fromLatin1(d->m_document->codec()->name()))); info.setCustomButtonInfo(tr("Select Encoding"), this, SLOT(selectEncoding())); - d->m_document->infoBar()->addInfo(info); + infoBar->addInfo(info); } else { - d->m_document->infoBar()->removeInfo(Core::Id(Constants::SELECT_ENCODING)); + infoBar->removeInfo(selectEncodingId); } }