From 0afe76a67cc0987cd56e50903a5c5d7d60d3c873 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thorbj=C3=B8rn=20Lindeijer?= <thorbjorn.lindeijer@nokia.com>
Date: Mon, 31 May 2010 18:07:34 +0200
Subject: [PATCH] Open .prf files in the pro file editor

This fixes QTCREATORBUG-1434, but it's more of a workaround than a fix.
The problem was that the file was opened in the diff editor due to a
broken diff detection, and the diff editor in turn has a bug in that
it's kind of halfway read-only.

Reviewed-by: ossi
Task-number: QTCREATORBUG-1434
---
 .../qt4projectmanager/Qt4ProjectManager.mimetypes.xml        | 5 +++++
 src/plugins/qt4projectmanager/profileeditorfactory.cpp       | 5 ++++-
 src/plugins/qt4projectmanager/qt4projectmanagerconstants.h   | 1 +
 3 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/plugins/qt4projectmanager/Qt4ProjectManager.mimetypes.xml b/src/plugins/qt4projectmanager/Qt4ProjectManager.mimetypes.xml
index eb444a0e409..1730d1ffc0c 100644
--- a/src/plugins/qt4projectmanager/Qt4ProjectManager.mimetypes.xml
+++ b/src/plugins/qt4projectmanager/Qt4ProjectManager.mimetypes.xml
@@ -10,6 +10,11 @@
     <comment>Qt Project include file</comment>
     <glob pattern="*.pri"/>
   </mime-type>
+  <mime-type type="application/vnd.nokia.qt.qmakeprofeaturefile">
+    <sub-class-of type="text/plain"/>
+    <comment>Qt Project feature file</comment>
+    <glob pattern="*.prf"/>
+  </mime-type>
   <mime-type type="application/x-linguist">
     <sub-class-of type="application/xml"/>
     <comment>message catalog</comment>
diff --git a/src/plugins/qt4projectmanager/profileeditorfactory.cpp b/src/plugins/qt4projectmanager/profileeditorfactory.cpp
index d4937b98318..0fabec8677b 100644
--- a/src/plugins/qt4projectmanager/profileeditorfactory.cpp
+++ b/src/plugins/qt4projectmanager/profileeditorfactory.cpp
@@ -47,7 +47,8 @@ using namespace Qt4ProjectManager::Internal;
 
 ProFileEditorFactory::ProFileEditorFactory(Qt4Manager *manager, TextEditor::TextEditorActionHandler *handler) :
     m_mimeTypes(QStringList() << QLatin1String(Qt4ProjectManager::Constants::PROFILE_MIMETYPE)
-                << QLatin1String(Qt4ProjectManager::Constants::PROINCLUDEFILE_MIMETYPE)),
+                << QLatin1String(Qt4ProjectManager::Constants::PROINCLUDEFILE_MIMETYPE)
+                << QLatin1String(Qt4ProjectManager::Constants::PROFEATUREFILE_MIMETYPE)),
     m_manager(manager),
     m_actionHandler(handler)
 {
@@ -56,6 +57,8 @@ ProFileEditorFactory::ProFileEditorFactory(Qt4Manager *manager, TextEditor::Text
                                         QLatin1String("pro"));
     iconProvider->registerIconOverlayForSuffix(QIcon(":/qt4projectmanager/images/qt_project.png"),
                                         QLatin1String("pri"));
+    iconProvider->registerIconOverlayForSuffix(QIcon(":/qt4projectmanager/images/qt_project.png"),
+                                        QLatin1String("prf"));
 }
 
 ProFileEditorFactory::~ProFileEditorFactory()
diff --git a/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h b/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h
index 68d36c8022d..1afb954c82f 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h
+++ b/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h
@@ -45,6 +45,7 @@ const char * const PROFILE_EDITOR_ID = "Qt4.proFileEditor";
 const char * const PROFILE_EDITOR_DISPLAY_NAME = QT_TRANSLATE_NOOP("OpenWith::Editors", ".pro File Editor");
 const char * const PROFILE_MIMETYPE  = "application/vnd.nokia.qt.qmakeprofile";
 const char * const PROINCLUDEFILE_MIMETYPE  = "application/vnd.nokia.qt.qmakeproincludefile";
+const char * const PROFEATUREFILE_MIMETYPE  = "application/vnd.nokia.qt.qmakeprofeaturefile";
 const char * const CPP_SOURCE_MIMETYPE = "text/x-c++src";
 const char * const CPP_HEADER_MIMETYPE = "text/x-c++hdr";
 const char * const FORM_MIMETYPE = "application/x-designer";
-- 
GitLab