From 8d577b370f08483e05b5e8d0c1b333bfacf5fba9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Tue, 14 Feb 2006 01:10:31 +0000 Subject: [PATCH] You can now remove file extensions and attributes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16388 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/preferences/filetypes/FileTypesWindow.cpp | 34 +++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/src/preferences/filetypes/FileTypesWindow.cpp b/src/preferences/filetypes/FileTypesWindow.cpp index b14d2327ad..8751d197ab 100644 --- a/src/preferences/filetypes/FileTypesWindow.cpp +++ b/src/preferences/filetypes/FileTypesWindow.cpp @@ -1048,8 +1048,18 @@ FileTypesWindow::MessageReceived(BMessage* message) break; case kMsgRemoveExtension: - puts("remove ext"); + { + int32 index = fExtensionListView->CurrentSelection(); + if (index < 0 || fCurrentType.Type() == NULL) + break; + + BMessage extensions; + if (fCurrentType.GetFileExtensions(&extensions) == B_OK) { + extensions.RemoveData("extensions", index); + fCurrentType.SetFileExtensions(&extensions); + } break; + } // Description group @@ -1090,8 +1100,28 @@ FileTypesWindow::MessageReceived(BMessage* message) break; case kMsgRemoveAttribute: - puts("remove attr"); + { + int32 index = fAttributeListView->CurrentSelection(); + if (index < 0 || fCurrentType.Type() == NULL) + break; + + BMessage attributes; + if (fCurrentType.GetAttrInfo(&attributes) == B_OK) { + const char* kAttributeNames[] = { + "attr:public_name", "attr:name", "attr:type", + "attr:editable", "attr:viewable", "attr:extra", + "attr:alignment", "attr:width", "attr:display_as" + }; + + for (uint32 i = 0; i < + sizeof(kAttributeNames) / sizeof(kAttributeNames[0]); i++) { + attributes.RemoveData(kAttributeNames[i], index); + } + + fCurrentType.SetAttrInfo(&attributes); + } break; + } case B_META_MIME_CHANGED: {