diff options
Diffstat (limited to 'indra')
40 files changed, 265 insertions, 127 deletions
diff --git a/indra/llui/llaccordionctrltab.cpp b/indra/llui/llaccordionctrltab.cpp index 09cb15d7a8..584d45612e 100644 --- a/indra/llui/llaccordionctrltab.cpp +++ b/indra/llui/llaccordionctrltab.cpp @@ -78,6 +78,8 @@ public: void setTitleFontStyle(std::string style); + void setTitleColor(LLUIColor); + void setSelected(bool is_selected) { mIsSelected = is_selected; } virtual void onMouseEnter(S32 x, S32 y, MASK mask); @@ -192,6 +194,14 @@ void LLAccordionCtrlTab::LLAccordionCtrlTabHeader::setTitleFontStyle(std::string } } +void LLAccordionCtrlTab::LLAccordionCtrlTabHeader::setTitleColor(LLUIColor color) +{ + if(mHeaderTextbox) + { + mHeaderTextbox->setColor(color); + } +} + void LLAccordionCtrlTab::LLAccordionCtrlTabHeader::draw() { S32 width = getRect().getWidth(); @@ -520,6 +530,15 @@ void LLAccordionCtrlTab::setTitleFontStyle(std::string style) } } +void LLAccordionCtrlTab::setTitleColor(LLUIColor color) +{ + LLAccordionCtrlTabHeader* header = findChild<LLAccordionCtrlTabHeader>(DD_HEADER_NAME); + if (header) + { + header->setTitleColor(color); + } +} + boost::signals2::connection LLAccordionCtrlTab::setFocusReceivedCallback(const focus_signal_t::slot_type& cb) { LLAccordionCtrlTabHeader* header = findChild<LLAccordionCtrlTabHeader>(DD_HEADER_NAME); diff --git a/indra/llui/llaccordionctrltab.h b/indra/llui/llaccordionctrltab.h index e17ecc5319..5646a355d0 100644 --- a/indra/llui/llaccordionctrltab.h +++ b/indra/llui/llaccordionctrltab.h @@ -124,6 +124,9 @@ public: // Set text font style in LLAccordionCtrlTabHeader void setTitleFontStyle(std::string style); + // Set text color in LLAccordionCtrlTabHeader + void setTitleColor(LLUIColor color); + boost::signals2::connection setFocusReceivedCallback(const focus_signal_t::slot_type& cb); boost::signals2::connection setFocusLostCallback(const focus_signal_t::slot_type& cb); diff --git a/indra/llui/llnotifications.cpp b/indra/llui/llnotifications.cpp index 7b8f51ae3c..621e72ce38 100644 --- a/indra/llui/llnotifications.cpp +++ b/indra/llui/llnotifications.cpp @@ -560,21 +560,6 @@ void LLNotification::setResponseFunctor(const LLNotificationResponderPtr& respon mResponder = responder; } -bool LLNotification::payloadContainsAll(const std::vector<std::string>& required_fields) const -{ - for(std::vector<std::string>::const_iterator required_fields_it = required_fields.begin(); - required_fields_it != required_fields.end(); - required_fields_it++) - { - std::string required_field_name = *required_fields_it; - if( ! getPayload().has(required_field_name)) - { - return false; // a required field was not found - } - } - return true; // all required fields were found -} - bool LLNotification::isEquivalentTo(LLNotificationPtr that) const { if (this->mTemplatep->mName != that->mTemplatep->mName) @@ -583,11 +568,22 @@ bool LLNotification::isEquivalentTo(LLNotificationPtr that) const } if (this->mTemplatep->mUnique) { + const LLSD& these_substitutions = this->getSubstitutions(); + const LLSD& those_substitutions = that->getSubstitutions(); + // highlander bit sez there can only be one of these - return - this->payloadContainsAll(that->mTemplatep->mUniqueContext) && - that->payloadContainsAll(this->mTemplatep->mUniqueContext); + for (std::vector<std::string>::const_iterator it = mTemplatep->mUniqueContext.begin(), end_it = mTemplatep->mUniqueContext.end(); + it != end_it; + ++it) + { + if (these_substitutions.get(*it).asString() != those_substitutions.get(*it).asString()) + { + return false; + } + } + return true; } + return false; } diff --git a/indra/llui/llnotifications.h b/indra/llui/llnotifications.h index c942a32512..8bfada0e71 100644 --- a/indra/llui/llnotifications.h +++ b/indra/llui/llnotifications.h @@ -400,8 +400,6 @@ private: void cancel(); - bool payloadContainsAll(const std::vector<std::string>& required_fields) const; - public: // constructor from a saved notification diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index ce022ac840..547dfd7006 100644 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -55,6 +55,25 @@ #include "llviewerregion.h" #include "llwearablelist.h" +// RAII thingy to guarantee that a variable gets reset when the Setter +// goes out of scope. More general utility would be handy - TODO: +// check boost. +class BoolSetter +{ +public: + BoolSetter(bool& var): + mVar(var) + { + mVar = true; + } + ~BoolSetter() + { + mVar = false; + } +private: + bool& mVar; +}; + char ORDER_NUMBER_SEPARATOR('@'); class LLOutfitUnLockTimer: public LLEventTimer @@ -1537,16 +1556,89 @@ bool sort_by_description(const LLInventoryItem* item1, const LLInventoryItem* it return item1->LLInventoryItem::getDescription() < item2->LLInventoryItem::getDescription(); } +void item_array_diff(LLInventoryModel::item_array_t& full_list, + LLInventoryModel::item_array_t& keep_list, + LLInventoryModel::item_array_t& kill_list) + +{ + for (LLInventoryModel::item_array_t::iterator it = full_list.begin(); + it != full_list.end(); + ++it) + { + LLViewerInventoryItem *item = *it; + if (keep_list.find(item) < 0) // Why on earth does LLDynamicArray need to redefine find()? + { + kill_list.push_back(item); + } + } +} + +void LLAppearanceMgr::enforceItemCountLimits() +{ + S32 purge_count = 0; + + LLInventoryModel::item_array_t body_items; + getDescendentsOfAssetType(getCOF(), body_items, LLAssetType::AT_BODYPART, false); + LLInventoryModel::item_array_t curr_body_items = body_items; + removeDuplicateItems(body_items); + filterWearableItems(body_items, 1); + LLInventoryModel::item_array_t kill_body_items; + item_array_diff(curr_body_items,body_items,kill_body_items); + for (LLInventoryModel::item_array_t::iterator it = kill_body_items.begin(); + it != kill_body_items.end(); + ++it) + { + LLViewerInventoryItem *item = *it; + llinfos << "purging dup body part " << item->getName() << llendl; + gInventory.purgeObject(item->getUUID()); + purge_count++; + } + + LLInventoryModel::item_array_t wear_items; + getDescendentsOfAssetType(getCOF(), wear_items, LLAssetType::AT_CLOTHING, false); + LLInventoryModel::item_array_t curr_wear_items = wear_items; + removeDuplicateItems(wear_items); + filterWearableItems(wear_items, LLAgentWearables::MAX_CLOTHING_PER_TYPE); + LLInventoryModel::item_array_t kill_wear_items; + item_array_diff(curr_wear_items,wear_items,kill_wear_items); + for (LLInventoryModel::item_array_t::iterator it = kill_wear_items.begin(); + it != kill_wear_items.end(); + ++it) + { + LLViewerInventoryItem *item = *it; + llinfos << "purging excess clothing item " << item->getName() << llendl; + gInventory.purgeObject(item->getUUID()); + purge_count++; + } + + if (purge_count>0) + { + gInventory.notifyObservers(); + } +} + void LLAppearanceMgr::updateAppearanceFromCOF() { + if (mIsInUpdateAppearanceFromCOF) + { + llwarns << "Called updateAppearanceFromCOF inside updateAppearanceFromCOF, skipping" << llendl; + return; + } + + BoolSetter setIsInUpdateAppearanceFromCOF(mIsInUpdateAppearanceFromCOF); + + llinfos << "starting" << llendl; + //checking integrity of the COF in terms of ordering of wearables, //checking and updating links' descriptions of wearables in the COF (before analyzed for "dirty" state) updateClothingOrderingInfo(); + // Remove duplicate or excess wearables. Should normally be enforced at the UI level, but + // this should catch anything that gets through. + enforceItemCountLimits(); + // update dirty flag to see if the state of the COF matches // the saved outfit stored as a folder link - llinfos << "starting" << llendl; - updateIsDirty(); dumpCat(getCOF(),"COF, start"); @@ -2493,7 +2585,8 @@ void LLAppearanceMgr::dumpItemArray(const LLInventoryModel::item_array_t& items, LLAppearanceMgr::LLAppearanceMgr(): mAttachmentInvLinkEnabled(false), - mOutfitIsDirty(false) + mOutfitIsDirty(false), + mIsInUpdateAppearanceFromCOF(false) { LLOutfitObserver& outfit_observer = LLOutfitObserver::instance(); diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h index 61779d5c0e..afd1bf3ade 100644 --- a/indra/newview/llappearancemgr.h +++ b/indra/newview/llappearancemgr.h @@ -66,6 +66,7 @@ public: void renameOutfit(const LLUUID& outfit_id); void takeOffOutfit(const LLUUID& cat_id); void addCategoryToCurrentOutfit(const LLUUID& cat_id); + void enforceItemCountLimits(); // Copy all items and the src category itself. void shallowCopyCategory(const LLUUID& src_id, const LLUUID& dst_id, @@ -203,6 +204,7 @@ private: std::set<LLUUID> mRegisteredAttachments; bool mAttachmentInvLinkEnabled; bool mOutfitIsDirty; + bool mIsInUpdateAppearanceFromCOF; // to detect recursive calls. /** * Lock for blocking operations on outfit until server reply or timeout exceed diff --git a/indra/newview/llchannelmanager.h b/indra/newview/llchannelmanager.h index 8c725f2660..2d6aa181c5 100644 --- a/indra/newview/llchannelmanager.h +++ b/indra/newview/llchannelmanager.h @@ -119,6 +119,7 @@ public: */ static LLNotificationsUI::LLScreenChannel* getNotificationScreenChannel(); + std::vector<ChannelElem>& getChannelList() { return mChannelList;} private: LLScreenChannel* createChannel(LLChannelManager::Params& p); diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 6d3998bb96..a2b72e7d74 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -1929,9 +1929,9 @@ BOOL LLIncomingCallDialog::postBuild() mLifetimeTimer.stop(); } - //it's not possible to connect to existing Ad-Hoc chat through incoming ad-hoc call + //it's not possible to connect to existing Ad-Hoc/Group chat through incoming ad-hoc call //and no IM for avaline - childSetVisible("Start IM", is_avatar && notify_box_type != "VoiceInviteAdHoc"); + childSetVisible("Start IM", is_avatar && notify_box_type != "VoiceInviteAdHoc" && notify_box_type != "VoiceInviteGroup"); setCanDrag(FALSE); diff --git a/indra/newview/llnavigationbar.h b/indra/newview/llnavigationbar.h index b512f2a79c..03f17af09b 100644 --- a/indra/newview/llnavigationbar.h +++ b/indra/newview/llnavigationbar.h @@ -87,9 +87,10 @@ protected: * Web browser-like navigation bar. */ class LLNavigationBar - : public LLPanel, public LLSingleton<LLNavigationBar> + : public LLPanel, public LLSingleton<LLNavigationBar>, private LLDestroyClass<LLNavigationBar> { LOG_CLASS(LLNavigationBar); + friend class LLDestroyClass<LLNavigationBar>; public: LLNavigationBar(); @@ -136,6 +137,14 @@ private: void fillSearchComboBox(); + static void destroyClass() + { + if (LLNavigationBar::instanceExists()) + { + LLNavigationBar::getInstance()->setEnabled(FALSE); + } + } + LLMenuGL* mTeleportHistoryMenu; LLPullButton* mBtnBack; LLPullButton* mBtnForward; diff --git a/indra/newview/lloutfitslist.cpp b/indra/newview/lloutfitslist.cpp index 075cfa0543..23c7e64cce 100644 --- a/indra/newview/lloutfitslist.cpp +++ b/indra/newview/lloutfitslist.cpp @@ -548,6 +548,7 @@ void LLOutfitsList::highlightBaseOutfit() if (mOutfitsMap[mHighlightedOutfitUUID]) { mOutfitsMap[mHighlightedOutfitUUID]->setTitleFontStyle("NORMAL"); + mOutfitsMap[mHighlightedOutfitUUID]->setTitleColor(LLUIColorTable::instance().getColor("AccordionHeaderTextColor")); } mHighlightedOutfitUUID = base_id; @@ -555,6 +556,7 @@ void LLOutfitsList::highlightBaseOutfit() if (mOutfitsMap[base_id]) { mOutfitsMap[base_id]->setTitleFontStyle("BOLD"); + mOutfitsMap[base_id]->setTitleColor(LLUIColorTable::instance().getColor("SelectedOutfitTextColor")); } } diff --git a/indra/newview/llpaneloutfitsinventory.cpp b/indra/newview/llpaneloutfitsinventory.cpp index 462ba2dfa5..c5d259e517 100644 --- a/indra/newview/llpaneloutfitsinventory.cpp +++ b/indra/newview/llpaneloutfitsinventory.cpp @@ -262,6 +262,14 @@ void LLPanelOutfitsInventory::updateListCommands() mListCommands->childSetEnabled("wear_btn", wear_enabled); mListCommands->childSetVisible("wear_btn", wear_visible); mSaveComboBtn->setMenuItemEnabled("save_outfit", make_outfit_enabled); + if (mMyOutfitsPanel->hasItemSelected()) + { + mListCommands->childSetToolTip("wear_btn", getString("wear_items_tooltip")); + } + else + { + mListCommands->childSetToolTip("wear_btn", getString("wear_outfit_tooltip")); + } } void LLPanelOutfitsInventory::showGearMenu() diff --git a/indra/newview/llpanelplaceinfo.cpp b/indra/newview/llpanelplaceinfo.cpp index db305b25fa..8c1f5d0915 100644 --- a/indra/newview/llpanelplaceinfo.cpp +++ b/indra/newview/llpanelplaceinfo.cpp @@ -123,6 +123,7 @@ void LLPanelPlaceInfo::setParcelID(const LLUUID& parcel_id) void LLPanelPlaceInfo::setInfoType(EInfoType type) { mTitle->setText(mCurrentTitle); + mTitle->setToolTip(mCurrentTitle); mInfoType = type; } diff --git a/indra/newview/llpaneltopinfobar.h b/indra/newview/llpaneltopinfobar.h index e417a06a64..6e6fbc08ab 100644 --- a/indra/newview/llpaneltopinfobar.h +++ b/indra/newview/llpaneltopinfobar.h @@ -40,10 +40,12 @@ class LLTextBox; class LLIconCtrl; class LLParcelChangeObserver; -class LLPanelTopInfoBar : public LLPanel, public LLSingleton<LLPanelTopInfoBar> +class LLPanelTopInfoBar : public LLPanel, public LLSingleton<LLPanelTopInfoBar>, private LLDestroyClass<LLPanelTopInfoBar> { LOG_CLASS(LLPanelTopInfoBar); + friend class LLDestroyClass<LLPanelTopInfoBar>; + public: LLPanelTopInfoBar(); ~LLPanelTopInfoBar(); @@ -145,6 +147,17 @@ private: */ void setParcelInfoText(const std::string& new_text); + /** + * Implementation of LLDestroyClass<LLSideTray> + */ + static void destroyClass() + { + if (LLPanelTopInfoBar::instanceExists()) + { + LLPanelTopInfoBar::getInstance()->setEnabled(FALSE); + } + } + LLButton* mInfoBtn; LLTextBox* mParcelInfoText; LLTextBox* mDamageText; diff --git a/indra/newview/llscreenchannel.cpp b/indra/newview/llscreenchannel.cpp index 55c8809184..ef89c07c60 100644 --- a/indra/newview/llscreenchannel.cpp +++ b/indra/newview/llscreenchannel.cpp @@ -136,8 +136,11 @@ void LLScreenChannelBase::updatePositionAndSize(LLRect old_world_rect, LLRect ne void LLScreenChannelBase::init(S32 channel_left, S32 channel_right) { - LLSideTray* side_bar = LLSideTray::getInstance(); - side_bar->getCollapseSignal().connect(boost::bind(&LLScreenChannelBase::resetPositionAndSize, this, _2)); + if(LLSideTray::instanceCreated()) + { + LLSideTray* side_bar = LLSideTray::getInstance(); + side_bar->getCollapseSignal().connect(boost::bind(&LLScreenChannelBase::resetPositionAndSize, this, _2)); + } S32 channel_top = gViewerWindow->getWorldViewRectScaled().getHeight(); S32 channel_bottom = gViewerWindow->getWorldViewRectScaled().mBottom + gSavedSettings.getS32("ChannelBottomPanelMargin"); diff --git a/indra/newview/llsidetray.cpp b/indra/newview/llsidetray.cpp index fed39c362e..98282c1673 100644 --- a/indra/newview/llsidetray.cpp +++ b/indra/newview/llsidetray.cpp @@ -49,12 +49,15 @@ #include "llfloater.h" //for gFloaterView #include "lliconctrl.h"//for OpenClose tab icon #include "llsidetraypanelcontainer.h" +#include "llscreenchannel.h" +#include "llchannelmanager.h" #include "llwindow.h"//for SetCursor #include "lltransientfloatermgr.h" //#include "llscrollcontainer.h" using namespace std; +using namespace LLNotificationsUI; static LLRootViewRegistry::Register<LLSideTray> t1("side_tray"); static LLDefaultChildRegistry::Register<LLSideTrayTab> t2("sidetray_tab"); @@ -276,6 +279,16 @@ BOOL LLSideTray::postBuild() LLAppViewer::instance()->setOnLoginCompletedCallback(boost::bind(&LLSideTray::handleLoginComplete, this)); + //EXT-8045 + //connect all already created channels to reflect sidetray collapse/expand + std::vector<LLChannelManager::ChannelElem>& channels = LLChannelManager::getInstance()->getChannelList(); + for(std::vector<LLChannelManager::ChannelElem>::iterator it = channels.begin();it!=channels.end();++it) + { + if ((*it).channel) + { + getCollapseSignal().connect(boost::bind(&LLScreenChannelBase::resetPositionAndSize, (*it).channel, _2)); + } + } return true; } diff --git a/indra/newview/lltexturectrl.cpp b/indra/newview/lltexturectrl.cpp index f3530b69db..0b86cefa1d 100644 --- a/indra/newview/lltexturectrl.cpp +++ b/indra/newview/lltexturectrl.cpp @@ -825,7 +825,7 @@ void LLFloaterTexturePicker::onFilterEdit(const std::string& search_string ) } } - mInventoryPanel->setFilterSubString(upper_case_search_string); + mInventoryPanel->setFilterSubString(search_string); } void LLFloaterTexturePicker::onTextureSelect( const LLTextureEntry& te ) diff --git a/indra/newview/lltoast.cpp b/indra/newview/lltoast.cpp index 9abfab300c..2bb573c263 100644 --- a/indra/newview/lltoast.cpp +++ b/indra/newview/lltoast.cpp @@ -112,6 +112,14 @@ LLToast::LLToast(const LLToast::Params& p) mOnMouseEnterSignal.connect(p.on_mouse_enter()); } +void LLToast::reshape(S32 width, S32 height, BOOL called_from_parent) +{ + // We shouldn't use reshape from LLModalDialog since it changes toasts position. + // Toasts position should be controlled only by toast screen channel, see LLScreenChannelBase. + // see EXT-8044 + LLFloater::reshape(width, height, called_from_parent); +} + //-------------------------------------------------------------------------- BOOL LLToast::postBuild() { diff --git a/indra/newview/lltoast.h b/indra/newview/lltoast.h index 4211f21ef1..c0da656685 100644 --- a/indra/newview/lltoast.h +++ b/indra/newview/lltoast.h @@ -106,6 +106,8 @@ public: virtual ~LLToast(); BOOL postBuild(); + /*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE); + // Toast handlers virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask); diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml index e8a893e31b..2188c71ff9 100644 --- a/indra/newview/skins/default/colors.xml +++ b/indra/newview/skins/default/colors.xml @@ -97,6 +97,9 @@ <!-- UI Definitions --> <color + name="AccordionHeaderTextColor" + reference="LtGray" /> + <color name="AgentChatColor" reference="White" /> <color @@ -646,6 +649,9 @@ name="ScrollbarTrackColor" reference="Black" /> <color + name="SelectedOutfitTextColor" + reference="EmphasisColor" /> + <color name="SilhouetteChildColor" value="0.13 0.42 0.77 1" /> <color diff --git a/indra/newview/skins/default/xui/da/floater_world_map.xml b/indra/newview/skins/default/xui/da/floater_world_map.xml index 4dec9a9ba7..ca18faa0bb 100644 --- a/indra/newview/skins/default/xui/da/floater_world_map.xml +++ b/indra/newview/skins/default/xui/da/floater_world_map.xml @@ -35,11 +35,11 @@ <text name="pg_label"> Generelt </text> - <check_box name="event_mature_chk"/> - <text name="mature_label"> + <check_box name="events_mature_chk"/> + <text name="events_mature_label"> Moderat </text> - <text name="adult_label"> + <text name="events_adult_label"> Voksent </text> </panel> diff --git a/indra/newview/skins/default/xui/de/floater_world_map.xml b/indra/newview/skins/default/xui/de/floater_world_map.xml index fb3a4ba9b5..f54d8c3328 100644 --- a/indra/newview/skins/default/xui/de/floater_world_map.xml +++ b/indra/newview/skins/default/xui/de/floater_world_map.xml @@ -39,12 +39,12 @@ <text name="pg_label"> Generell </text> - <check_box label="Mature" name="event_mature_chk"/> - <text name="mature_label"> + <check_box label="Mature" name="events_mature_chk"/> + <text name="events_mature_label"> Moderat </text> - <check_box label="Adult" name="event_adult_chk"/> - <text name="adult_label"> + <check_box label="Adult" name="events_adult_chk"/> + <text name="events_adult_label"> Adult </text> </panel> diff --git a/indra/newview/skins/default/xui/en/floater_publish_classified.xml b/indra/newview/skins/default/xui/en/floater_publish_classified.xml index 3225843d09..f25c170f33 100644 --- a/indra/newview/skins/default/xui/en/floater_publish_classified.xml +++ b/indra/newview/skins/default/xui/en/floater_publish_classified.xml @@ -5,7 +5,6 @@ height="200" layout="topleft" name="publish_classified" - help_topic="price_for_listing" title="Publishing Classified" width="320"> <text @@ -29,8 +28,8 @@ Remember, Classified fees are non-refundable. halign="left" height="23" increment="1" - label_width="70" - label="Price for Ad: " + label_width="45" + label="Price: L$ " v_pad="10" layout="topleft" left="15" @@ -41,27 +40,6 @@ Remember, Classified fees are non-refundable. top_pad="10" tool_tip="Price for listing." width="150" /> - <text - follows="top|left" - font="SansSerif" - height="60" - layout="topleft" - left_pad="5" - top_delta="0" - word_wrap="true" - value="L$" - name="l$_text" /> - <text - follows="top|right" - font="SansSerif" - height="20" - layout="topleft" - left="15" - name="more_info_text" - top_pad="-20" - width="300"> -More info (link to classified help) - </text> <button follows="top|left" height="22" diff --git a/indra/newview/skins/default/xui/en/floater_stats.xml b/indra/newview/skins/default/xui/en/floater_stats.xml index f9dacf0207..b87cb9a433 100644 --- a/indra/newview/skins/default/xui/en/floater_stats.xml +++ b/indra/newview/skins/default/xui/en/floater_stats.xml @@ -361,8 +361,7 @@ <stat_view name="physicsdetail" label="Physics Details" - show_label="true" - display_children="false"> + show_label="true"> <stat_bar name="physicspinnedtasks" label="Pinned Objects" diff --git a/indra/newview/skins/default/xui/en/menu_object.xml b/indra/newview/skins/default/xui/en/menu_object.xml index 6ca8766e3f..397e61c97a 100644 --- a/indra/newview/skins/default/xui/en/menu_object.xml +++ b/indra/newview/skins/default/xui/en/menu_object.xml @@ -18,7 +18,7 @@ name="Edit..."> <menu_item_call.on_click function="Object.Edit" /> - <menu_item_call.on_visible + <menu_item_call.on_enable function="EnableEdit"/> </menu_item_call> <menu_item_call @@ -26,7 +26,7 @@ name="Build"> <menu_item_call.on_click function="Object.Build" /> - <menu_item_call.on_visible + <menu_item_call.on_enable function="EnableEdit"/> </menu_item_call> <menu_item_call @@ -44,7 +44,7 @@ name="Object Sit"> <menu_item_call.on_click function="Object.SitOrStand" /> - <menu_item_call.on_visible + <menu_item_call.on_enable function="Object.SitVisible" /> <menu_item_call.on_enable function="Object.EnableSitOrStand" @@ -56,7 +56,7 @@ name="Object Stand Up"> <menu_item_call.on_click function="Object.SitOrStand" /> - <menu_item_call.on_visible + <menu_item_call.on_enable function="Object.StandUpVisible" /> <menu_item_call.on_enable function="Object.EnableSitOrStand" diff --git a/indra/newview/skins/default/xui/en/menu_outfit_gear.xml b/indra/newview/skins/default/xui/en/menu_outfit_gear.xml index c4c7a5034a..732b8a788d 100644 --- a/indra/newview/skins/default/xui/en/menu_outfit_gear.xml +++ b/indra/newview/skins/default/xui/en/menu_outfit_gear.xml @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <menu layout="topleft" + visible="false" name="Gear Outfit"> <menu_item_call label="Wear - Replace Current Outfit" diff --git a/indra/newview/skins/default/xui/en/menu_wearing_gear.xml b/indra/newview/skins/default/xui/en/menu_wearing_gear.xml index 84431a2f69..747352cb29 100644 --- a/indra/newview/skins/default/xui/en/menu_wearing_gear.xml +++ b/indra/newview/skins/default/xui/en/menu_wearing_gear.xml @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <menu layout="topleft" + visible="false" name="Gear Wearing"> <menu_item_call label="Edit Outfit" diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 88732fee7d..290c8c55a9 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -4886,6 +4886,10 @@ If you want to view streaming media on parcels that support it you should go to persist="true" type="notify"> No Media Plugin was found to handle the "[MIME_TYPE]" mime type. Media of this type will be unavailable. + <unique> + <context key="[MIME_TYPE]"/> + </unique> + </notification> <notification icon="alertmodal.tga" diff --git a/indra/newview/skins/default/xui/en/panel_edit_classified.xml b/indra/newview/skins/default/xui/en/panel_edit_classified.xml index 3f41973b72..cbdd548577 100644 --- a/indra/newview/skins/default/xui/en/panel_edit_classified.xml +++ b/indra/newview/skins/default/xui/en/panel_edit_classified.xml @@ -253,35 +253,6 @@ width="20"/> </icons_combo_box.item> </icons_combo_box> - <text - follows="left|top" - font.style="BOLD" - height="10" - layout="topleft" - left="10" - name="price_for_listing_label" - text_color="white" - top_pad="15" - value="Price for listing:" - width="250" /> - <spinner - decimal_digits="0" - follows="left|top" - halign="left" - height="23" - increment="1" - label_width="20" - label="L$" - v_pad="10" - layout="topleft" - left="10" - value="50" - min_val="50" - max_val="99999" - name="price_for_listing" - top_pad="5" - tool_tip="Price for listing." - width="105" /> <check_box height="16" label="Auto renew each week" diff --git a/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml index 58d3dbcc37..82b69ba8dc 100644 --- a/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml +++ b/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml @@ -12,13 +12,21 @@ min_width="240" width="320" border="false"> + <panel.string + name="wear_outfit_tooltip"> + Wear selected outfit + </panel.string> + <panel.string + name="wear_items_tooltip"> + Wear selected items + </panel.string> <tab_container follows="all" height="539" layout="topleft" left="5" name="appearance_tabs" - tab_min_width="140" + tab_min_width="150" tab_height="30" tab_position="top" halign="center" @@ -89,7 +97,6 @@ layout="topleft" name="wear_btn" left_pad="3" - tool_tip="Wear selected outfit" width="152" /> </panel> </panel> diff --git a/indra/newview/skins/default/xui/en/panel_outfits_list.xml b/indra/newview/skins/default/xui/en/panel_outfits_list.xml index 62b23aa74c..27e23440df 100644 --- a/indra/newview/skins/default/xui/en/panel_outfits_list.xml +++ b/indra/newview/skins/default/xui/en/panel_outfits_list.xml @@ -16,7 +16,7 @@ bg_opaque_color="DkGray2" no_matched_tabs_text.value="Didn't find what you're looking for? Try [secondlife:///app/search/all/[SEARCH_TERM] Search]." no_matched_tabs_text.v_pad="10" - no_visible_tabs_text.value="There are no any outfits. Try [secondlife:///app/search/all/ Search]." + no_visible_tabs_text.value="..." follows="all" height="400" layout="topleft" diff --git a/indra/newview/skins/default/xui/en/sidepanel_appearance.xml b/indra/newview/skins/default/xui/en/sidepanel_appearance.xml index 9a07d3a48a..10d8c7dbb8 100644 --- a/indra/newview/skins/default/xui/en/sidepanel_appearance.xml +++ b/indra/newview/skins/default/xui/en/sidepanel_appearance.xml @@ -61,7 +61,7 @@ width="333"> top="0" width="32" /> <text - font="SansSerifSmallBold" + font="SansSerifSmall" text_color="EmphasisColor" width="300" height="10" @@ -89,15 +89,15 @@ width="333"> </text> <button follows="left|top" - height="23" + height="28" image_overlay="Edit_Wrench" label="" layout="topleft" left="265" name="edit_outfit_btn" tool_tip="Edit this outfit" - top="7" - width="30" /> + top="3" + width="28" /> <loading_indicator follows="left|top" height="24" diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index 799d440292..f7611b6833 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -1939,7 +1939,7 @@ Clears (deletes) the media and all params from the given face. <string name="InvFolder Uncompressed Sounds">Uncompressed Sounds</string> <string name="InvFolder Animations">Animations</string> <string name="InvFolder Gestures">Gestures</string> - <string name="InvFolder favorite">Favorites</string> + <string name="InvFolder Favorite">Favorites</string> <string name="InvFolder Current Outfit">Current Outfit</string> <string name="InvFolder My Outfits">My Outfits</string> <string name="InvFolder Accessories">Accessories</string> diff --git a/indra/newview/skins/default/xui/en/widgets/accordion_tab.xml b/indra/newview/skins/default/xui/en/widgets/accordion_tab.xml index 102dc0c16d..6f68c99021 100644 --- a/indra/newview/skins/default/xui/en/widgets/accordion_tab.xml +++ b/indra/newview/skins/default/xui/en/widgets/accordion_tab.xml @@ -9,6 +9,6 @@ header_image_over="Accordion_Over" header_image_pressed="Accordion_Press" header_image_focused="Accordion_Selected" - header_text_color="LtGray" + header_text_color="AccordionHeaderTextColor" font="SansSerif" /> diff --git a/indra/newview/skins/default/xui/es/floater_world_map.xml b/indra/newview/skins/default/xui/es/floater_world_map.xml index deda5b86c8..3135324816 100644 --- a/indra/newview/skins/default/xui/es/floater_world_map.xml +++ b/indra/newview/skins/default/xui/es/floater_world_map.xml @@ -35,11 +35,11 @@ <text name="pg_label"> General </text> - <check_box name="event_mature_chk"/> - <text name="mature_label"> + <check_box name="events_mature_chk"/> + <text name="events_mature_label"> Moderado </text> - <text name="adult_label"> + <text name="events_adult_label"> Adulto </text> </panel> diff --git a/indra/newview/skins/default/xui/fr/floater_world_map.xml b/indra/newview/skins/default/xui/fr/floater_world_map.xml index 4d500857ea..0047a3bb04 100644 --- a/indra/newview/skins/default/xui/fr/floater_world_map.xml +++ b/indra/newview/skins/default/xui/fr/floater_world_map.xml @@ -35,11 +35,11 @@ <text name="pg_label"> Général </text> - <check_box initial_value="true" name="event_mature_chk"/> - <text name="mature_label"> + <check_box initial_value="true" name="events_mature_chk"/> + <text name="events_mature_label"> Modéré </text> - <text name="adult_label"> + <text name="events_adult_label"> Adulte </text> </panel> diff --git a/indra/newview/skins/default/xui/it/floater_world_map.xml b/indra/newview/skins/default/xui/it/floater_world_map.xml index b07daac6fb..a6bd4ffbaf 100644 --- a/indra/newview/skins/default/xui/it/floater_world_map.xml +++ b/indra/newview/skins/default/xui/it/floater_world_map.xml @@ -35,11 +35,11 @@ <text name="pg_label"> Generale </text> - <check_box name="event_mature_chk"/> - <text name="mature_label"> + <check_box name="events_mature_chk"/> + <text name="events_mature_label"> Moderato </text> - <text name="adult_label"> + <text name="events_adult_label"> Adulto </text> </panel> diff --git a/indra/newview/skins/default/xui/ja/floater_world_map.xml b/indra/newview/skins/default/xui/ja/floater_world_map.xml index ce9e7d0777..62670251d6 100644 --- a/indra/newview/skins/default/xui/ja/floater_world_map.xml +++ b/indra/newview/skins/default/xui/ja/floater_world_map.xml @@ -39,12 +39,12 @@ <text name="pg_label"> General </text> - <check_box initial_value="true" label="Mature" name="event_mature_chk"/> - <text name="mature_label"> + <check_box initial_value="true" label="Mature" name="events_mature_chk"/> + <text name="events_mature_label"> Moderate </text> - <check_box label="Adult" name="event_adult_chk"/> - <text name="adult_label"> + <check_box label="Adult" name="events_adult_chk"/> + <text name="events_adult_label"> Adult </text> </panel> diff --git a/indra/newview/skins/default/xui/nl/floater_world_map.xml b/indra/newview/skins/default/xui/nl/floater_world_map.xml index bc14f92126..2fee2ecf05 100644 --- a/indra/newview/skins/default/xui/nl/floater_world_map.xml +++ b/indra/newview/skins/default/xui/nl/floater_world_map.xml @@ -26,8 +26,8 @@ Evenementen: </text> <check_box label="PG" name="event_chk"/> - <check_box label="Mature" name="event_mature_chk"/> - <check_box label="Adult" name="event_adult_chk"/> + <check_box label="Mature" name="events_mature_chk"/> + <check_box label="Adult" name="events_adult_chk"/> <combo_box label="Online vrienden" name="friend combo" tool_tip="Vriend die op kaart getoond wordt"> <combo_box.item name="item1" label="Online vrienden"/> </combo_box> diff --git a/indra/newview/skins/default/xui/pl/floater_world_map.xml b/indra/newview/skins/default/xui/pl/floater_world_map.xml index 05287ad42a..3e62393e7a 100644 --- a/indra/newview/skins/default/xui/pl/floater_world_map.xml +++ b/indra/newview/skins/default/xui/pl/floater_world_map.xml @@ -35,11 +35,11 @@ <text name="pg_label"> Ogólne </text> - <check_box name="event_mature_chk"/> - <text name="mature_label"> + <check_box name="events_mature_chk"/> + <text name="events_mature_label"> Moderuj </text> - <text name="adult_label"> + <text name="events_adult_label"> Adult </text> </panel> diff --git a/indra/newview/skins/default/xui/pt/floater_world_map.xml b/indra/newview/skins/default/xui/pt/floater_world_map.xml index 878d0b1973..3952b80269 100644 --- a/indra/newview/skins/default/xui/pt/floater_world_map.xml +++ b/indra/newview/skins/default/xui/pt/floater_world_map.xml @@ -39,12 +39,12 @@ <text name="pg_label"> Público geral </text> - <check_box label="Mature" name="event_mature_chk"/> - <text name="mature_label"> + <check_box label="Mature" name="events_mature_chk"/> + <text name="events_mature_label"> Moderado </text> - <check_box label="Adult" name="event_adult_chk"/> - <text name="adult_label"> + <check_box label="Adult" name="events_adult_chk"/> + <text name="events_adult_label"> Adulto </text> </panel> |