From a12acc6290987f7e15572ad684a288c6feab5471 Mon Sep 17 00:00:00 2001 From: Robert Loehning <robert.loehning@nokia.com> Date: Tue, 16 Mar 2010 18:42:35 +0100 Subject: [PATCH] Opening large text files in binary editor to avoid crashes. Reviewed-By: dt Task-number: QTCREATORBUG-876 --- src/plugins/coreplugin/editormanager/editormanager.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp index 1f4089f3a13..8e86066c3df 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 -- GitLab