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);