From 641305c237d7f37a002cc04a952c5a268bf2000b Mon Sep 17 00:00:00 2001 From: "Bruno G. Albuquerque" Date: Tue, 25 Nov 2008 22:50:02 +0000 Subject: [PATCH] - Find panel now also includes supertype attributes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28729 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/tracker/FindPanel.cpp | 42 ++++++++++++++++++++++------------ src/kits/tracker/FindPanel.h | 1 + 2 files changed, 29 insertions(+), 14 deletions(-) diff --git a/src/kits/tracker/FindPanel.cpp b/src/kits/tracker/FindPanel.cpp index 22ffba2667..7c3cdd0e8c 100644 --- a/src/kits/tracker/FindPanel.cpp +++ b/src/kits/tracker/FindPanel.cpp @@ -2611,21 +2611,8 @@ TAttrView::AddMimeTypeAttrs() void -TAttrView::AddMimeTypeAttrs(BMenu *menu) +TAttrView::AddAttributes(BMenu *menu, const BMimeType &mimeType) { - FindPanel *mainView = dynamic_cast(Parent()-> - Parent()->FindView("MainView")); - if (!mainView) - return; - - const char *typeName; - if (mainView->CurrentMimeType(&typeName) == NULL) - return; - - BMimeType mimeType(typeName); - if (!mimeType.IsInstalled()) - return; - // only add things to menu which have "user-visible" data BMessage attributeMessage; if (mimeType.GetAttrInfo(&attributeMessage) != B_OK) @@ -2722,7 +2709,34 @@ TAttrView::AddMimeTypeAttrs(BMenu *menu) break; } submenu->SetTargetForItems(this); + } +} + + +void +TAttrView::AddMimeTypeAttrs(BMenu *menu) +{ + FindPanel *mainView = dynamic_cast(Parent()-> + Parent()->FindView("MainView")); + if (!mainView) + return; + + const char *typeName; + if (mainView->CurrentMimeType(&typeName) == NULL) + return; + + BMimeType mimeType(typeName); + if (!mimeType.IsInstalled()) + return; + + if (!mimeType.IsSupertypeOnly()) { + // add supertype attributes + BMimeType supertype; + mimeType.GetSupertype(&supertype); + AddAttributes(menu, supertype); } + + AddAttributes(menu, mimeType); } diff --git a/src/kits/tracker/FindPanel.h b/src/kits/tracker/FindPanel.h index 5aed8806cb..59c088f040 100644 --- a/src/kits/tracker/FindPanel.h +++ b/src/kits/tracker/FindPanel.h @@ -304,6 +304,7 @@ class TAttrView : public BView { void GetDefaultName(BString &result) const; private: + void AddAttributes(BMenu *, const BMimeType &); void AddMimeTypeAttrs(BMenu *); BMenuField *fMenuField;