From ecd93410ff819bb301f115e40c8f2d6fef8b2396 Mon Sep 17 00:00:00 2001 From: Andrew Polunin Date: Tue, 25 May 2010 15:31:07 +0300 Subject: EXT-7142 FIXED Upload functionality duplicated in the Build menu and Select Linked Parts menu moved up - LLPanelMainInventory::setUploadCostIfNeeded() - uncommented the line which enables retrieving of the upload cost price using LLGlobalEconomy class. - Implemented LLUploadCostCalculator event handler in the llviewermenu.cpp (the fact that it should be implemented in this file was discussed with Mike Antipov). - LLUploadCostCalculator::calculateCost() is implemented only for code readability: it's name is more descriptive than a code snippet placed directly in the constructor (LLPanelMainInventory::setUploadCostIfNeeded() works in similar way: it calculates cost_str only once). - 'Select Linked Parts' menu was moved below 'Edit Linked Parts'. - 'Upload' menu was added at the bottom, below 'Options' menu Reviewed by Mike Antipov at https://codereview.productengine.com/secondlife/r/425/ --HG-- branch : product-engine --- indra/newview/llpanelmaininventory.cpp | 2 +- indra/newview/llviewermenu.cpp | 39 +++++++ indra/newview/skins/default/xui/en/menu_viewer.xml | 113 ++++++++++++++++----- 3 files changed, 125 insertions(+), 29 deletions(-) (limited to 'indra') diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp index 5ff51b8165..54d1b46016 100644 --- a/indra/newview/llpanelmaininventory.cpp +++ b/indra/newview/llpanelmaininventory.cpp @@ -1187,7 +1187,7 @@ void LLPanelMainInventory::setUploadCostIfNeeded() LLMenuItemBranchGL* upload_menu = mMenuAdd->findChild("upload"); if(upload_menu) { - S32 upload_cost = -1;//LLGlobalEconomy::Singleton::getInstance()->getPriceUpload(); + S32 upload_cost = LLGlobalEconomy::Singleton::getInstance()->getPriceUpload(); std::string cost_str; // getPriceUpload() returns -1 if no data available yet. diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 10ceab2656..d0ac103f56 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -108,6 +108,7 @@ #include "lluilistener.h" #include "llappearancemgr.h" #include "lltrans.h" +#include "lleconomy.h" using namespace LLVOAvatarDefines; @@ -7658,6 +7659,42 @@ class LLWorldToggleCameraControls : public view_listener_t } }; +class LLUploadCostCalculator : public view_listener_t +{ + std::string mCostStr; + + bool handleEvent(const LLSD& userdata) + { + std::string menu_name = userdata.asString(); + gMenuHolder->childSetLabelArg(menu_name, "[COST]", mCostStr); + + return true; + } + + void calculateCost(); + +public: + LLUploadCostCalculator() + { + calculateCost(); + } +}; + +void LLUploadCostCalculator::calculateCost() +{ + S32 upload_cost = LLGlobalEconomy::Singleton::getInstance()->getPriceUpload(); + + // getPriceUpload() returns -1 if no data available yet. + if(upload_cost >= 0) + { + mCostStr = llformat("%d", upload_cost); + } + else + { + mCostStr = llformat("%d", gSavedSettings.getU32("DefaultUploadCost")); + } +} + void show_navbar_context_menu(LLView* ctrl, S32 x, S32 y) { static LLMenuGL* show_navbar_context_menu = LLUICtrlFactory::getInstance()->createFromFile("menu_hide_navbar.xml", @@ -7699,6 +7736,8 @@ void initialize_menus() enable.add("IsGodCustomerService", boost::bind(&is_god_customer_service)); enable.add("IsGodCustomerService", boost::bind(&is_god_customer_service)); + view_listener_t::addEnable(new LLUploadCostCalculator(), "Upload.CalculateCosts"); + // Agent commit.add("Agent.toggleFlying", boost::bind(&LLAgent::toggleFlying)); enable.add("Agent.enableFlying", boost::bind(&LLAgent::enableFlying)); diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 16c2581d63..aff8f7ddf4 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -521,6 +521,52 @@ + + + + + + + + + + + + + + + + + + + label="Image (L$[COST])..." + layout="topleft" + name="Upload Image" + shortcut="control|U"> + function="File.UploadImage" + parameter="" /> + function="File.EnableUpload" /> + + label="Sound (L$[COST])..." + layout="topleft" + name="Upload Sound"> + function="File.UploadSound" + parameter="" /> + function="File.EnableUpload" /> + + label="Animation (L$[COST])..." + layout="topleft" + name="Upload Animation"> + function="File.UploadAnim" + parameter="" /> + function="File.EnableUpload" /> + + label="Bulk (L$[COST] per file)..." + layout="topleft" + name="Bulk Upload"> - + function="File.UploadBulk" + parameter="" /> + - + \ No newline at end of file -- cgit v1.2.3