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