diff options
author | Vadim ProductEngine <vsavchuk@productengine.com> | 2011-07-29 05:20:54 +0300 |
---|---|---|
committer | Vadim ProductEngine <vsavchuk@productengine.com> | 2011-07-29 05:20:54 +0300 |
commit | 9bef7e95d064e1e82467e57df6673b149b77839f (patch) | |
tree | f432475a36ab2ed4e8761e0ee3cc933b5c637c5a /indra/newview/llpanelobjectinventory.cpp | |
parent | 1ba21762926167580c434e955646c986074988a3 (diff) |
STORM-1436 FIXED Broken localization of "Contents" and "New Script" items in the Contents tab of Build Tools.
The bug happened when the translations contained non-ASCII characters.
Reason: Names of inventory items are limited to ASCII characters.
Fix: Leave names in English, localize them when displaying (on the fly).
The fix only affects object's inventory (i.e. not agent inventory).
Diffstat (limited to 'indra/newview/llpanelobjectinventory.cpp')
-rw-r--r-- | indra/newview/llpanelobjectinventory.cpp | 56 |
1 files changed, 39 insertions, 17 deletions
diff --git a/indra/newview/llpanelobjectinventory.cpp b/indra/newview/llpanelobjectinventory.cpp index e3b61f695a..83ba8afbfc 100644 --- a/indra/newview/llpanelobjectinventory.cpp +++ b/indra/newview/llpanelobjectinventory.cpp @@ -83,6 +83,7 @@ protected: LLAssetType::EType mAssetType; LLInventoryType::EType mInventoryType; + LLInventoryObject* findInvObject() const; LLInventoryItem* findItem() const; public: @@ -162,16 +163,22 @@ LLTaskInvFVBridge::LLTaskInvFVBridge( } } -LLInventoryItem* LLTaskInvFVBridge::findItem() const +LLInventoryObject* LLTaskInvFVBridge::findInvObject() const { LLViewerObject* object = gObjectList.findObject(mPanel->getTaskUUID()); - if(object) + if (object) { - return dynamic_cast<LLInventoryItem*>(object->getInventoryObject(mUUID)); + return object->getInventoryObject(mUUID); } return NULL; } + +LLInventoryItem* LLTaskInvFVBridge::findItem() const +{ + return dynamic_cast<LLInventoryItem*>(findInvObject()); +} + void LLTaskInvFVBridge::showProperties() { show_task_item_profile(mUUID, mPanel->getTaskUUID()); @@ -295,21 +302,15 @@ const std::string& LLTaskInvFVBridge::getDisplayName() const if(item) { - if(item->getParentUUID().isNull()) - { - if(item->getName() == "Contents") - { - mDisplayName.assign(LLTrans::getString("ViewerObjectContents")); - } - else - { - mDisplayName.assign(item->getName()); - } - } - else + mDisplayName.assign(item->getName()); + + // Localize "New Script", "New Script 1", "New Script 2", etc. + if (item->getType() == LLAssetType::AT_LSL_TEXT && + LLStringUtil::startsWith(item->getName(), "New Script")) { - mDisplayName.assign(item->getName()); + LLStringUtil::replaceString(mDisplayName, "New Script", LLTrans::getString("PanelContentsNewScript")); } + const LLPermissions& perm(item->getPermissions()); BOOL copy = gAgent.allowOperation(PERM_COPY, perm, GP_OBJECT_MANIPULATE); BOOL mod = gAgent.allowOperation(PERM_MODIFY, perm, GP_OBJECT_MANIPULATE); @@ -700,7 +701,7 @@ public: const std::string& name); virtual LLUIImagePtr getIcon() const; - virtual const std::string& getDisplayName() const { return getName(); } + virtual const std::string& getDisplayName() const; virtual BOOL isItemRenameable() const; // virtual BOOL isItemCopyable() const { return FALSE; } virtual BOOL renameItem(const std::string& new_name); @@ -728,6 +729,27 @@ LLUIImagePtr LLTaskCategoryBridge::getIcon() const return LLUI::getUIImage("Inv_FolderClosed"); } +// virtual +const std::string& LLTaskCategoryBridge::getDisplayName() const +{ + LLInventoryObject* cat = findInvObject(); + + if (cat) + { + // Localize "Contents" folder. + if (cat->getParentUUID().isNull() && cat->getName() == "Contents") + { + mDisplayName.assign(LLTrans::getString("ViewerObjectContents")); + } + else + { + mDisplayName.assign(cat->getName()); + } + } + + return mDisplayName; +} + BOOL LLTaskCategoryBridge::isItemRenameable() const { return FALSE; |