[haiku-commits] r37071 - haiku/trunk/src/preferences/filetypes

  • From: darkwyrm@xxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Wed, 9 Jun 2010 16:37:00 +0200 (CEST)

Author: darkwyrm
Date: 2010-06-09 16:37:00 +0200 (Wed, 09 Jun 2010)
New Revision: 37071
Changeset: http://dev.haiku-os.org/changeset/37071/haiku

Modified:
   haiku/trunk/src/preferences/filetypes/FileTypes.cpp
   haiku/trunk/src/preferences/filetypes/FileTypes.h
Log:
Make FileTypes edit resources on resource files and not just applications


Modified: haiku/trunk/src/preferences/filetypes/FileTypes.cpp
===================================================================
--- haiku/trunk/src/preferences/filetypes/FileTypes.cpp 2010-06-09 11:15:43 UTC 
(rev 37070)
+++ haiku/trunk/src/preferences/filetypes/FileTypes.cpp 2010-06-09 14:37:00 UTC 
(rev 37071)
@@ -21,6 +21,7 @@
 #include <Directory.h>
 #include <Entry.h>
 #include <Path.h>
+#include <Resources.h>
 
 #include <stdio.h>
 #include <string.h>
@@ -228,7 +229,7 @@
                        continue;
                }
 
-               if (!is_application(file)) {
+               if (!is_application(file) && !is_resource(file)) {
                        if (entry.GetRef(&ref) == B_OK)
                                message->ReplaceRef("refs", index - 1, &ref);
                        continue;
@@ -453,6 +454,23 @@
 }
 
 
+bool
+is_resource(BFile& file)
+{
+       BResources resources(&file);
+       if (resources.InitCheck() != B_OK)
+               return false;
+       
+       BNodeInfo nodeInfo(&file);
+       char type[B_MIME_TYPE_LENGTH];
+       if (nodeInfo.GetType(type) != B_OK
+               || strcasecmp(type, B_RESOURCE_MIME_TYPE))
+               return false;
+
+       return true;
+}
+
+
 void
 error_alert(const char* message, status_t status, alert_type type)
 {

Modified: haiku/trunk/src/preferences/filetypes/FileTypes.h
===================================================================
--- haiku/trunk/src/preferences/filetypes/FileTypes.h   2010-06-09 11:15:43 UTC 
(rev 37070)
+++ haiku/trunk/src/preferences/filetypes/FileTypes.h   2010-06-09 14:37:00 UTC 
(rev 37071)
@@ -30,6 +30,7 @@
 // exported functions
 
 extern bool is_application(BFile& file);
+extern bool is_resource(BFile& file);
 extern void error_alert(const char* message, status_t status = B_OK,
        alert_type type = B_WARNING_ALERT);
 


Other related posts:

  • » [haiku-commits] r37071 - haiku/trunk/src/preferences/filetypes - darkwyrm