diff options
| author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2022-02-05 02:52:56 +0200 | 
|---|---|---|
| committer | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2022-02-05 02:59:10 +0200 | 
| commit | 855f53901a2265400797f33f3fb8b53ddc6cc07f (patch) | |
| tree | 906816e2f3c11e98f62517f81cecf716fdacd2cd /indra/newview | |
| parent | 26e03f0c65c0b36705e468687553bbf54cca77be (diff) | |
SL-16799 Clean up use of hardcoded folder names
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/llfriendcard.cpp | 57 | ||||
| -rw-r--r-- | indra/newview/llfriendcard.h | 1 | 
2 files changed, 50 insertions, 8 deletions
diff --git a/indra/newview/llfriendcard.cpp b/indra/newview/llfriendcard.cpp index 0be748ace9..e395da7f1e 100644 --- a/indra/newview/llfriendcard.cpp +++ b/indra/newview/llfriendcard.cpp @@ -327,22 +327,63 @@ void LLFriendCardsManager::syncFriendCardsFolders()  /************************************************************************/  /*		Private Methods                                                 */  /************************************************************************/ -const LLUUID& LLFriendCardsManager::findFriendFolderUUIDImpl() const +const LLUUID& LLFriendCardsManager::findFirstCallingCardSubfolder(const LLUUID &parent_id) const  { -	const LLUUID callingCardsFolderID = gInventory.findCategoryUUIDForType(LLFolderType::FT_CALLINGCARD); +    if (parent_id.isNull()) +    { +        return LLUUID::null; +    } -	std::string friendFolderName = get_friend_folder_name(); +    LLInventoryModel::cat_array_t* cats; +    LLInventoryModel::item_array_t* items; +    gInventory.getDirectDescendentsOf(parent_id, cats, items); -	return findChildFolderUUID(callingCardsFolderID, friendFolderName); +    if (!cats || !items || cats->size() == 0) +    { +        // call failed +        return LLUUID::null; +    } + +    if (cats->size() > 1) +    { +        const LLViewerInventoryCategory* friendFolder = gInventory.getCategory(parent_id); +        if (friendFolder) +        { +            LL_WARNS_ONCE() << friendFolder->getName() << " folder contains more than one folder" << LL_ENDL; +        } +    } + +    for (LLInventoryModel::cat_array_t::const_iterator iter = cats->begin(); +        iter != cats->end(); +        ++iter) +    { +        const LLInventoryCategory* category = (*iter); +        if (category->getPreferredType() == LLFolderType::FT_CALLINGCARD) +        { +            return category->getUUID(); +        } +    } + +    return LLUUID::null;  } -const LLUUID& LLFriendCardsManager::findFriendAllSubfolderUUIDImpl() const +// Inventorry -> +//   Calling Cards - > +//     Friends - > (the only expected folder) +//       All (the only expected folder) + +const LLUUID& LLFriendCardsManager::findFriendFolderUUIDImpl() const  { -	LLUUID friendFolderUUID = findFriendFolderUUIDImpl(); +    const LLUUID callingCardsFolderID = gInventory.findCategoryUUIDForType(LLFolderType::FT_CALLINGCARD); + +    return findFirstCallingCardSubfolder(callingCardsFolderID); +} -	std::string friendAllSubfolderName = get_friend_all_subfolder_name(); +const LLUUID& LLFriendCardsManager::findFriendAllSubfolderUUIDImpl() const +{ +    LLUUID friendFolderUUID = findFriendFolderUUIDImpl(); -	return findChildFolderUUID(friendFolderUUID, friendAllSubfolderName); +    return findFirstCallingCardSubfolder(friendFolderUUID);  }  const LLUUID& LLFriendCardsManager::findChildFolderUUID(const LLUUID& parentFolderUUID, const std::string& nonLocalizedName) const diff --git a/indra/newview/llfriendcard.h b/indra/newview/llfriendcard.h index 2fb912a930..f5679d7d85 100644 --- a/indra/newview/llfriendcard.h +++ b/indra/newview/llfriendcard.h @@ -116,6 +116,7 @@ private:  	}  	const LLUUID& findChildFolderUUID(const LLUUID& parentFolderUUID, const std::string& nonLocalizedName) const; +    const LLUUID& findFirstCallingCardSubfolder(const LLUUID &parent_id) const;  	const LLUUID& findFriendFolderUUIDImpl() const;  	const LLUUID& findFriendAllSubfolderUUIDImpl() const;  	const LLUUID& findFriendCardInventoryUUIDImpl(const LLUUID& avatarID);  | 
