summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/coreplugin/editormanager/editormanager.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp
index 1f4089f3a1..8e86066c3d 100644
--- a/src/plugins/coreplugin/editormanager/editormanager.cpp
+++ b/src/plugins/coreplugin/editormanager/editormanager.cpp
@@ -1031,13 +1031,17 @@ IEditor *EditorManager::createEditor(const QString &editorId,
EditorFactoryList factories;
if (editorId.isEmpty()) {
+ const QFileInfo fileInfo(fileName);
// Find by mime type
- MimeType mimeType = m_d->m_core->mimeDatabase()->findByFile(QFileInfo(fileName));
+ MimeType mimeType = m_d->m_core->mimeDatabase()->findByFile(fileInfo);
if (!mimeType) {
qWarning("%s unable to determine mime type of %s/%s. Falling back to text/plain",
Q_FUNC_INFO, fileName.toUtf8().constData(), editorId.toUtf8().constData());
mimeType = m_d->m_core->mimeDatabase()->findByType(QLatin1String("text/plain"));
}
+ // open text files > 48 MB in binary editor
+ if (fileInfo.size() > qint64(3) << 24 && mimeType.type().startsWith(QLatin1String("text")))
+ mimeType = m_d->m_core->mimeDatabase()->findByType(QLatin1String("application/octet-stream"));
factories = editorFactories(mimeType, true);
} else {
// Find by editor id