Make FileTypes edit resources on resource files and not just applications
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37071 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -21,6 +21,7 @@
|
|||||||
#include <Directory.h>
|
#include <Directory.h>
|
||||||
#include <Entry.h>
|
#include <Entry.h>
|
||||||
#include <Path.h>
|
#include <Path.h>
|
||||||
|
#include <Resources.h>
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@@ -228,7 +229,7 @@ FileTypes::RefsReceived(BMessage *message)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!is_application(file)) {
|
if (!is_application(file) && !is_resource(file)) {
|
||||||
if (entry.GetRef(&ref) == B_OK)
|
if (entry.GetRef(&ref) == B_OK)
|
||||||
message->ReplaceRef("refs", index - 1, &ref);
|
message->ReplaceRef("refs", index - 1, &ref);
|
||||||
continue;
|
continue;
|
||||||
@@ -453,6 +454,23 @@ is_application(BFile& file)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
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
|
void
|
||||||
error_alert(const char* message, status_t status, alert_type type)
|
error_alert(const char* message, status_t status, alert_type type)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ static const uint32 kMsgSettingsChanged = 'SeCh';
|
|||||||
// exported functions
|
// exported functions
|
||||||
|
|
||||||
extern bool is_application(BFile& file);
|
extern bool is_application(BFile& file);
|
||||||
|
extern bool is_resource(BFile& file);
|
||||||
extern void error_alert(const char* message, status_t status = B_OK,
|
extern void error_alert(const char* message, status_t status = B_OK,
|
||||||
alert_type type = B_WARNING_ALERT);
|
alert_type type = B_WARNING_ALERT);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user