From 6f477364cc55e3d6d26880c79cada179d9f93f76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Sundstr=C3=B6m?= Date: Tue, 22 Mar 2011 01:35:38 +0000 Subject: [PATCH] Make BLocaleRoster::GetLocalizedFileName() take a const entry_ref& rather than a non-const entry_ref&. Remove private GetLocalizedFileName() from libtracker and make Tracker and Deskbar use the one in BLocaleRoster. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41075 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/os/locale/LocaleRoster.h | 2 +- src/apps/deskbar/BarApp.cpp | 3 +- src/kits/locale/LocaleRoster.cpp | 4 +- src/kits/tracker/FilePanelPriv.cpp | 3 +- src/kits/tracker/Model.cpp | 3 +- src/kits/tracker/Utilities.cpp | 79 ++---------------------------- src/kits/tracker/Utilities.h | 9 ++-- 7 files changed, 16 insertions(+), 87 deletions(-) diff --git a/headers/os/locale/LocaleRoster.h b/headers/os/locale/LocaleRoster.h index d54760c3bc..c4e1a0acf7 100644 --- a/headers/os/locale/LocaleRoster.h +++ b/headers/os/locale/LocaleRoster.h @@ -68,7 +68,7 @@ public: bool IsFilesystemTranslationPreferred() const; - status_t GetLocalizedFileName(entry_ref& ref, + status_t GetLocalizedFileName(const entry_ref& ref, BString& localizedFileName, bool traverse = false); diff --git a/src/apps/deskbar/BarApp.cpp b/src/apps/deskbar/BarApp.cpp index 7138075e8b..43c5c9d925 100644 --- a/src/apps/deskbar/BarApp.cpp +++ b/src/apps/deskbar/BarApp.cpp @@ -619,7 +619,8 @@ TBarApp::AddTeam(team_id team, uint32 flags, const char* sig, entry_ref* ref) BAppFileInfo appMime(&file); BString name; - if (!gLocalizedNamePreferred || GetLocalizedFileName(*ref, name) != B_OK) + if (!gLocalizedNamePreferred + || BLocaleRoster::Default()->GetLocalizedFileName(*ref, name) != B_OK) name = ref->name; BarTeamInfo* barInfo = new BarTeamInfo(new BList(), flags, strdup(sig), diff --git a/src/kits/locale/LocaleRoster.cpp b/src/kits/locale/LocaleRoster.cpp index c5c361cb07..23bc303830 100644 --- a/src/kits/locale/LocaleRoster.cpp +++ b/src/kits/locale/LocaleRoster.cpp @@ -400,8 +400,8 @@ BLocaleRoster::IsFilesystemTranslationPreferred() const Lookup fails if a comment is present in the catalog entry. */ status_t -BLocaleRoster::GetLocalizedFileName(entry_ref& ref, BString& localizedFileName, - bool traverse) +BLocaleRoster::GetLocalizedFileName(const entry_ref& ref, + BString& localizedFileName, bool traverse) { BEntry entry(&ref, traverse); if (!entry.Exists()) diff --git a/src/kits/tracker/FilePanelPriv.cpp b/src/kits/tracker/FilePanelPriv.cpp index 62c6ba98dc..1068df0e2a 100644 --- a/src/kits/tracker/FilePanelPriv.cpp +++ b/src/kits/tracker/FilePanelPriv.cpp @@ -781,7 +781,8 @@ TFilePanel::Init(const BMessage *) BString title; if (be_app->GetAppInfo(&info) == B_OK) { if (!gLocalizedNamePreferred - || GetLocalizedFileName(info.ref, title, false) != B_OK) + || BLocaleRoster::Default()->GetLocalizedFileName( + info.ref, title, false) != B_OK) title = info.ref.name; title << ": "; } diff --git a/src/kits/tracker/Model.cpp b/src/kits/tracker/Model.cpp index cba670d975..647139d254 100644 --- a/src/kits/tracker/Model.cpp +++ b/src/kits/tracker/Model.cpp @@ -567,7 +567,8 @@ Model::SetupBaseType() void Model::CacheLocalizedName() { - if (GetLocalizedFileName(fEntryRef, fLocalizedName, true) == B_OK) + if (BLocaleRoster::Default()->GetLocalizedFileName( + fEntryRef, fLocalizedName, true) == B_OK) fHasLocalizedName = true; else fHasLocalizedName = false; diff --git a/src/kits/tracker/Utilities.cpp b/src/kits/tracker/Utilities.cpp index 1f61c78e22..fa409eb1c1 100644 --- a/src/kits/tracker/Utilities.cpp +++ b/src/kits/tracker/Utilities.cpp @@ -87,6 +87,9 @@ const rgb_color kBlack = {0, 0, 0, 255}; const rgb_color kWhite = {255, 255, 255, 255}; +bool gLocalizedNamePreferred; + + uint32 HashString(const char *string, uint32 seed) { @@ -1470,82 +1473,6 @@ GetFileIconFromAttr(BNode *file, BBitmap *result, icon_size size) } -bool gLocalizedNamePreferred; - - -/*! \brief Looks up a localized filename in a catalog, using attribute data - on the entry. - \param ref An entry_ref with an attribute holding data for catalog lookup. - \param localizedFileName A pre-allocated BString object for the result - of the lookup. - \param traverse A boolean to decide if symlinks are to be traversed. - \return - - \c B_OK: success - - \c B_ENTRY_NOT_FOUND: failure. Attribute not found, entry not found - in catalog, etc - - other error codes: failure - - Attribute format: "signature:context:string" - (no colon in any of signature, context and string) - - Lookup is done for the top preferred language, only. - Lookup fails if a comment is present in the catalog entry. -*/ -status_t -GetLocalizedFileName(entry_ref& ref, BString& localizedFileName, bool traverse) -{ - BEntry entry(&ref, traverse); - if (!entry.Exists()) - return B_ENTRY_NOT_FOUND; - - BNode node(&entry); - status_t status = node.InitCheck(); - if (status != B_OK) - return status; - - attr_info attr; - status = node.GetAttrInfo("SYS:NAME", &attr); - if (status != B_OK) - return status; - - char attribute[attr.size + 1]; - ssize_t bytes = node.ReadAttr("SYS:NAME", B_MIME_TYPE, 0, &attribute, - attr.size); - - if (bytes < 0) - return bytes; - - if (bytes == 0 || bytes != attr.size) - return B_ENTRY_NOT_FOUND; - - attribute[bytes] = '\0'; - - char* signature = attribute; - char* context = strchr(signature, ':'); - if (context == NULL) - return B_ENTRY_NOT_FOUND; - - context[0] = '\0'; - context++; - - char* string = strchr(context, ':'); - if (string == NULL) - return B_ENTRY_NOT_FOUND; - - string[0] = '\0'; - string++; - - BCatalog catalog(signature); - - const char* temp = catalog.GetString(string, context); - if (temp == NULL) - return B_ENTRY_NOT_FOUND; - - localizedFileName = temp; - return B_OK; -} - - void PrintToStream(rgb_color color) { diff --git a/src/kits/tracker/Utilities.h b/src/kits/tracker/Utilities.h index 7c811b5785..dbef7724dc 100644 --- a/src/kits/tracker/Utilities.h +++ b/src/kits/tracker/Utilities.h @@ -89,6 +89,10 @@ const color_space kDefaultIconDepth = B_RGBA32; const color_space kDefaultIconDepth = B_CMAP8; #endif + +extern bool gLocalizedNamePreferred; + + // misc typedefs, constants and structs // Periodically updated poses (ones with a volume space bar) register @@ -523,11 +527,6 @@ status_t GetAppSignatureFromAttr(BFile *, char *); status_t GetAppIconFromAttr(BFile *, BBitmap *, icon_size); status_t GetFileIconFromAttr(BNode *, BBitmap *, icon_size); -extern bool gLocalizedNamePreferred; - -status_t GetLocalizedFileName(entry_ref& ref, BString& localizedFileName, - bool traverse = false); - // debugging void HexDump(const void *buffer, int32 length);