diff options
145 files changed, 1134 insertions, 1397 deletions
diff --git a/doc/contributions.txt b/doc/contributions.txt index c8125c675f..8c6bd5e0fe 100644 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -517,7 +517,6 @@ Ringo Tuxing Robin Cornelius SNOW-108 SNOW-204 - SNOW-484 VWR-2488 VWR-9557 VWR-11128 diff --git a/indra/llcharacter/llkeyframemotion.cpp b/indra/llcharacter/llkeyframemotion.cpp index 7bc9e97eb1..f4dc3b927b 100644 --- a/indra/llcharacter/llkeyframemotion.cpp +++ b/indra/llcharacter/llkeyframemotion.cpp @@ -1248,12 +1248,6 @@ BOOL LLKeyframeMotion::deserialize(LLDataPacker& dp) return FALSE; } - if(mJointMotionList->mEmoteName==mID.asString()) - { - llwarns << "Malformed animation mEmoteName==mID" << llendl; - return FALSE; - } - //------------------------------------------------------------------------- // get loop //------------------------------------------------------------------------- diff --git a/indra/llcommon/llqueuedthread.cpp b/indra/llcommon/llqueuedthread.cpp index e0b56b7973..809a626c93 100644 --- a/indra/llcommon/llqueuedthread.cpp +++ b/indra/llcommon/llqueuedthread.cpp @@ -428,11 +428,9 @@ S32 LLQueuedThread::processNextRequest() llassert_always(req->getStatus() == STATUS_QUEUED); break; } - U32 start_priority = 0 ; if (req) { req->setStatus(STATUS_INPROGRESS); - start_priority = req->getPriority(); } unlockData(); @@ -441,7 +439,8 @@ S32 LLQueuedThread::processNextRequest() // safe to access req. if (req) { - // process request + // process request + U32 start_priority = req->getPriority(); bool complete = req->processRequest(); if (complete) diff --git a/indra/llui/llaccordionctrl.cpp b/indra/llui/llaccordionctrl.cpp index 673631f99a..28125ccaaf 100644 --- a/indra/llui/llaccordionctrl.cpp +++ b/indra/llui/llaccordionctrl.cpp @@ -40,6 +40,8 @@ #include "llfocusmgr.h" #include "lllocalcliprect.h" +#include "lltrans.h" + #include "boost/bind.hpp" static const S32 DRAGGER_BAR_MARGIN = 4; @@ -72,6 +74,7 @@ LLAccordionCtrl::LLAccordionCtrl(const Params& params):LLPanel(params) { initNoTabsWidget(params.no_matched_tabs_text); + mNoVisibleTabsOrigString = LLTrans::getString(params.no_visible_tabs_text.initial_value().asString()); mSingleExpansion = params.single_expansion; if(mFitParent && !mSingleExpansion) { @@ -386,7 +389,7 @@ void LLAccordionCtrl::initNoTabsWidget(const LLTextBox::Params& tb_params) { LLTextBox::Params tp = tb_params; tp.rect(getLocalRect()); - mNoMatchedTabsOrigString = tp.initial_value().asString(); + mNoMatchedTabsOrigString = LLTrans::getString(tp.initial_value().asString()); mNoVisibleTabsHelpText = LLUICtrlFactory::create<LLTextBox>(tp, this); } diff --git a/indra/llui/llbutton.cpp b/indra/llui/llbutton.cpp index aeedf62379..39e46a7ccb 100644 --- a/indra/llui/llbutton.cpp +++ b/indra/llui/llbutton.cpp @@ -1,4 +1,3 @@ - /** * @file llbutton.cpp * @brief LLButton base class diff --git a/indra/llui/llflatlistview.cpp b/indra/llui/llflatlistview.cpp index 3c79da64f9..6eb214cb93 100644 --- a/indra/llui/llflatlistview.cpp +++ b/indra/llui/llflatlistview.cpp @@ -157,7 +157,7 @@ bool LLFlatListView::insertItemAfter(LLPanel* after_item, LLPanel* item_to_add, } -bool LLFlatListView::removeItem(LLPanel* item, bool rearrange) +bool LLFlatListView::removeItem(LLPanel* item) { if (!item) return false; if (item->getParent() != mItemsPanel) return false; @@ -165,22 +165,22 @@ bool LLFlatListView::removeItem(LLPanel* item, bool rearrange) item_pair_t* item_pair = getItemPair(item); if (!item_pair) return false; - return removeItemPair(item_pair, rearrange); + return removeItemPair(item_pair); } -bool LLFlatListView::removeItemByValue(const LLSD& value, bool rearrange) +bool LLFlatListView::removeItemByValue(const LLSD& value) { if (value.isUndefined()) return false; item_pair_t* item_pair = getItemPair(value); if (!item_pair) return false; - return removeItemPair(item_pair, rearrange); + return removeItemPair(item_pair); } -bool LLFlatListView::removeItemByUUID(const LLUUID& uuid, bool rearrange) +bool LLFlatListView::removeItemByUUID(const LLUUID& uuid) { - return removeItemByValue(LLSD(uuid), rearrange); + return removeItemByValue(LLSD(uuid)); } LLPanel* LLFlatListView::getItemByValue(const LLSD& value) const @@ -327,9 +327,6 @@ U32 LLFlatListView::size(const bool only_visible_items) const void LLFlatListView::clear() { - // This will clear mSelectedItemPairs, calling all appropriate callbacks. - resetSelection(); - // do not use LLView::deleteAllChildren to avoid removing nonvisible items. drag-n-drop for ex. for (pairs_iterator_t it = mItemPairs.begin(); it != mItemPairs.end(); ++it) { @@ -338,6 +335,7 @@ void LLFlatListView::clear() delete *it; } mItemPairs.clear(); + mSelectedItemPairs.clear(); // also set items panel height to zero. Reshape it to allow reshaping of non-item children LLRect rc = mItemsPanel->getRect(); @@ -972,12 +970,11 @@ bool LLFlatListView::isSelected(item_pair_t* item_pair) const return std::find(mSelectedItemPairs.begin(), it_end, item_pair) != it_end; } -bool LLFlatListView::removeItemPair(item_pair_t* item_pair, bool rearrange) +bool LLFlatListView::removeItemPair(item_pair_t* item_pair) { llassert(item_pair); bool deleted = false; - bool selection_changed = false; for (pairs_iterator_t it = mItemPairs.begin(); it != mItemPairs.end(); ++it) { item_pair_t* _item_pair = *it; @@ -997,7 +994,6 @@ bool LLFlatListView::removeItemPair(item_pair_t* item_pair, bool rearrange) if (selected_item_pair == item_pair) { it = mSelectedItemPairs.erase(it); - selection_changed = true; break; } } @@ -1006,16 +1002,8 @@ bool LLFlatListView::removeItemPair(item_pair_t* item_pair, bool rearrange) item_pair->first->die(); delete item_pair; - if (rearrange) - { rearrangeItems(); notifyParentItemsRectChanged(); - } - - if (selection_changed && mCommitOnSelectionChange) - { - onCommit(); - } return true; } @@ -1111,7 +1099,7 @@ void LLFlatListView::onFocusReceived() { if (size()) { - mSelectedItemsBorder->setVisible(TRUE); + mSelectedItemsBorder->setVisible(TRUE); } gEditMenuHandler = this; } diff --git a/indra/llui/llflatlistview.h b/indra/llui/llflatlistview.h index 50d06fbc94..ded46d8122 100644 --- a/indra/llui/llflatlistview.h +++ b/indra/llui/llflatlistview.h @@ -117,9 +117,6 @@ public: Params(); }; - // disable traversal when finding widget to hand focus off to - /*virtual*/ BOOL canFocusChildren() const { return FALSE; } - /** * Connects callback to signal called when Return key is pressed. */ @@ -152,19 +149,19 @@ public: * Remove specified item * @return true if the item was removed, false otherwise */ - virtual bool removeItem(LLPanel* item, bool rearrange = true); + virtual bool removeItem(LLPanel* item); /** * Remove an item specified by value * @return true if the item was removed, false otherwise */ - virtual bool removeItemByValue(const LLSD& value, bool rearrange = true); + virtual bool removeItemByValue(const LLSD& value); /** * Remove an item specified by uuid * @return true if the item was removed, false otherwise */ - virtual bool removeItemByUUID(const LLUUID& uuid, bool rearrange = true); + virtual bool removeItemByUUID(const LLUUID& uuid); /** * Get an item by value @@ -265,7 +262,6 @@ public: void setAllowSelection(bool can_select) { mAllowSelection = can_select; } /** Sets flag whether onCommit should be fired if selection was changed */ - // FIXME: this should really be a separate signal, since "Commit" implies explicit user action, and selection changes can happen more indirectly. void setCommitOnSelectionChange(bool b) { mCommitOnSelectionChange = b; } /** Get number of selected items in the list */ @@ -353,7 +349,7 @@ protected: virtual bool isSelected(item_pair_t* item_pair) const; - virtual bool removeItemPair(item_pair_t* item_pair, bool rearrange); + virtual bool removeItemPair(item_pair_t* item_pair); /** * Notify parent about changed size of internal controls with "size_changes" action diff --git a/indra/llui/llnotifications.cpp b/indra/llui/llnotifications.cpp index 75b92e47da..4fa4da3f01 100644 --- a/indra/llui/llnotifications.cpp +++ b/indra/llui/llnotifications.cpp @@ -35,7 +35,6 @@ #include "llnotifications.h" #include "llavatarnamecache.h" -#include "llinstantmessage.h" #include "llcachename.h" #include "llxmlnode.h" #include "lluictrl.h" @@ -44,7 +43,6 @@ #include "llsdserialize.h" #include "lltrans.h" #include "llnotificationslistener.h" -#include "llstring.h" #include <algorithm> #include <boost/regex.hpp> @@ -1498,7 +1496,6 @@ void LLPostponedNotification::lookupName(LLPostponedNotification* thiz, gCacheName->getGroup(id, boost::bind(&LLPostponedNotification::onGroupNameCache, thiz, _1, _2, _3)); - } else { LLAvatarNameCache::get(id, @@ -1519,13 +1516,6 @@ void LLPostponedNotification::onAvatarNameCache(const LLUUID& agent_id, { std::string name = av_name.getCompleteName(); - // from PE merge - we should figure out if this is the right thing to do - if (name.empty()) - { - llwarns << "Empty name received for Id: " << agent_id << llendl; - name = SYSTEM_FROM; - } - finalizeName(name); } diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp index f8e97f2b39..3d058f2c9d 100644 --- a/indra/llui/lltextbase.cpp +++ b/indra/llui/lltextbase.cpp @@ -66,10 +66,7 @@ bool LLTextBase::compare_segment_end::operator()(const LLTextSegmentPtr& a, cons { return a->getStart() < b->getStart(); } - else - { - return a->getEnd() < b->getEnd(); - } + return a->getEnd() < b->getEnd(); } @@ -177,7 +174,7 @@ LLTextBase::Params::Params() LLTextBase::LLTextBase(const LLTextBase::Params &p) : LLUICtrl(p, LLTextViewModelPtr(new LLTextViewModel)), - mURLClickSignal(NULL), + mURLClickSignal(), mMaxTextByteLength( p.max_text_length ), mDefaultFont(p.font), mFontShadow(p.font_shadow), @@ -212,8 +209,7 @@ LLTextBase::LLTextBase(const LLTextBase::Params &p) mParseHTML(p.allow_html), mParseHighlights(p.parse_highlights), mBGVisible(p.bg_visible), - mScroller(NULL), - mStyleDirty(true) + mScroller(NULL) { if(p.allow_scroll) { @@ -252,8 +248,9 @@ LLTextBase::LLTextBase(const LLTextBase::Params &p) LLTextBase::~LLTextBase() { + // Menu, like any other LLUICtrl, is deleted by its parent - gMenuHolder + mSegments.clear(); - delete mURLClickSignal; } void LLTextBase::initFromParams(const LLTextBase::Params& p) @@ -299,18 +296,13 @@ bool LLTextBase::truncate() return did_truncate; } -const LLStyle::Params& LLTextBase::getDefaultStyleParams() +LLStyle::Params LLTextBase::getDefaultStyleParams() { - if (mStyleDirty) - { - mDefaultStyle - .color(LLUIColor(&mFgColor)) - .readonly_color(LLUIColor(&mReadOnlyFgColor)) - .font(mDefaultFont) - .drop_shadow(mFontShadow); - mStyleDirty = false; - } - return mDefaultStyle; + return LLStyle::Params() + .color(LLUIColor(&mFgColor)) + .readonly_color(LLUIColor(&mReadOnlyFgColor)) + .font(mDefaultFont) + .drop_shadow(mFontShadow); } void LLTextBase::onValueChange(S32 start, S32 end) @@ -869,12 +861,11 @@ BOOL LLTextBase::handleMouseUp(S32 x, S32 y, MASK mask) if (cur_segment && cur_segment->handleMouseUp(x, y, mask)) { // Did we just click on a link? - if (mURLClickSignal - && cur_segment->getStyle() + if (cur_segment->getStyle() && cur_segment->getStyle()->isLink()) { // *TODO: send URL here? - (*mURLClickSignal)(this, LLSD() ); + mURLClickSignal(this, LLSD() ); } return TRUE; } @@ -1048,14 +1039,12 @@ void LLTextBase::draw() void LLTextBase::setColor( const LLColor4& c ) { mFgColor = c; - mStyleDirty = true; } //virtual void LLTextBase::setReadOnlyColor(const LLColor4 &c) { mReadOnlyFgColor = c; - mStyleDirty = true; } //virtual @@ -1499,22 +1488,12 @@ void LLTextBase::getSegmentAndOffset( S32 startpos, segment_set_t::iterator* seg LLTextBase::segment_set_t::iterator LLTextBase::getSegIterContaining(S32 index) { - if (index > getLength()) { return mSegments.end(); } - - // when there are no segments, we return the end iterator, which must be checked by caller - if (mSegments.size() <= 1) { return mSegments.begin(); } - segment_set_t::iterator it = mSegments.upper_bound(new LLIndexSegment(index)); return it; } LLTextBase::segment_set_t::const_iterator LLTextBase::getSegIterContaining(S32 index) const { - if (index > getLength()) { return mSegments.end(); } - - // when there are no segments, we return the end iterator, which must be checked by caller - if (mSegments.size() <= 1) { return mSegments.begin(); } - LLTextBase::segment_set_t::const_iterator it = mSegments.upper_bound(new LLIndexSegment(index)); return it; } @@ -2373,15 +2352,6 @@ LLRect LLTextBase::getVisibleDocumentRect() const } } -boost::signals2::connection LLTextBase::setURLClickedCallback(const commit_signal_t::slot_type& cb) -{ - if (!mURLClickSignal) - { - mURLClickSignal = new commit_signal_t(); - } - return mURLClickSignal->connect(cb); -} - // // LLTextSegment // diff --git a/indra/llui/lltextbase.h b/indra/llui/lltextbase.h index 63451a2ae0..3608808c27 100644 --- a/indra/llui/lltextbase.h +++ b/indra/llui/lltextbase.h @@ -361,7 +361,10 @@ public: virtual void appendLineBreakSegment(const LLStyle::Params& style_params); virtual void appendImageSegment(const LLStyle::Params& style_params); virtual void appendWidget(const LLInlineViewSegment::Params& params, const std::string& text, bool allow_undo); - boost::signals2::connection setURLClickedCallback(const commit_signal_t::slot_type& cb); + +public: + // Fired when a URL link is clicked + commit_signal_t mURLClickSignal; protected: // helper structs @@ -454,7 +457,7 @@ protected: void createDefaultSegment(); virtual void updateSegments(); void insertSegment(LLTextSegmentPtr segment_to_insert); - const LLStyle::Params& getDefaultStyleParams(); + LLStyle::Params getDefaultStyleParams(); // manage lines S32 getLineStart( S32 line ) const; @@ -498,12 +501,6 @@ protected: LLRect mVisibleTextRect; // The rect in which text is drawn. Excludes borders. LLRect mTextBoundingRect; - // default text style - LLStyle::Params mDefaultStyle; - bool mStyleDirty; - const LLFontGL* const mDefaultFont; // font that is used when none specified, can only be set by constructor - const LLFontGL::ShadowType mFontShadow; // shadow style, can only be set by constructor - // colors LLUIColor mCursorColor; LLUIColor mFgColor; @@ -530,6 +527,8 @@ protected: LLFontGL::VAlign mVAlign; F32 mLineSpacingMult; // multiple of line height used as space for a single line of text (e.g. 1.5 to get 50% padding) S32 mLineSpacingPixels; // padding between lines + const LLFontGL* mDefaultFont; // font that is used when none specified + LLFontGL::ShadowType mFontShadow; bool mBorderVisible; bool mParseHTML; // make URLs interactive bool mParseHighlights; // highlight user-defined keywords @@ -552,9 +551,6 @@ protected: bool mScrollNeeded; // need to change scroll region because of change to cursor position S32 mScrollIndex; // index of first character to keep visible in scroll region - // Fired when a URL link is clicked - commit_signal_t* mURLClickSignal; - }; #endif diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp index 130cda3784..c9474d66b7 100644 --- a/indra/llui/lltexteditor.cpp +++ b/indra/llui/lltexteditor.cpp @@ -264,6 +264,8 @@ LLTextEditor::LLTextEditor(const LLTextEditor::Params& p) : mContextMenu(NULL), mShowContextMenu(p.show_context_menu) { + mDefaultFont = p.font; + mSourceID.generate(); //FIXME: use image? diff --git a/indra/llui/lluictrl.cpp b/indra/llui/lluictrl.cpp index ff330f863a..3ade46d367 100644 --- a/indra/llui/lluictrl.cpp +++ b/indra/llui/lluictrl.cpp @@ -675,7 +675,7 @@ BOOL LLUICtrl::getIsChrome() const class CompareByDefaultTabGroup: public LLCompareByTabOrder { public: - CompareByDefaultTabGroup(const LLView::child_tab_order_t& order, S32 default_tab_group): + CompareByDefaultTabGroup(LLView::child_tab_order_t order, S32 default_tab_group): LLCompareByTabOrder(order), mDefaultTabGroup(default_tab_group) {} private: @@ -699,16 +699,13 @@ class LLUICtrl::DefaultTabGroupFirstSorter : public LLQuerySorter, public LLSing { public: /*virtual*/ void operator() (LLView * parent, viewList_t &children) const - { + { children.sort(CompareByDefaultTabGroup(parent->getCtrlOrder(), parent->getDefaultTabGroup())); } }; -LLFastTimer::DeclareTimer FTM_FOCUS_FIRST_ITEM("Focus First Item"); - BOOL LLUICtrl::focusFirstItem(BOOL prefer_text_fields, BOOL focus_flash) { - LLFastTimer _(FTM_FOCUS_FIRST_ITEM); // try to select default tab group child LLCtrlQuery query = getTabOrderQuery(); // sort things such that the default tab group is at the front diff --git a/indra/llui/lluictrlfactory.h b/indra/llui/lluictrlfactory.h index dc43b311a7..c99acee48e 100644 --- a/indra/llui/lluictrlfactory.h +++ b/indra/llui/lluictrlfactory.h @@ -182,7 +182,7 @@ public: void popFactoryFunctions(); template<typename T> - static T* createWidget(const typename T::Params& params, LLView* parent = NULL) + static T* createWidget(typename T::Params& params, LLView* parent = NULL) { T* widget = NULL; diff --git a/indra/llui/lluistring.cpp b/indra/llui/lluistring.cpp index ac9e71665f..f7a53e87de 100644 --- a/indra/llui/lluistring.cpp +++ b/indra/llui/lluistring.cpp @@ -135,16 +135,9 @@ void LLUIString::updateResult() const mResult = mOrig; // get the defailt args + local args - if (mArgs.empty()) - { - LLStringUtil::format(mResult, LLTrans::getDefaultArgs()); - } - else - { - LLStringUtil::format_map_t combined_args = LLTrans::getDefaultArgs(); - combined_args.insert(mArgs.begin(), mArgs.end()); - LLStringUtil::format(mResult, combined_args); - } + LLStringUtil::format_map_t combined_args = LLTrans::getDefaultArgs(); + combined_args.insert(mArgs.begin(), mArgs.end()); + LLStringUtil::format(mResult, combined_args); } void LLUIString::updateWResult() const diff --git a/indra/llui/llview.h b/indra/llui/llview.h index 8e705ed701..aba6c310f1 100644 --- a/indra/llui/llview.h +++ b/indra/llui/llview.h @@ -265,7 +265,7 @@ public: virtual BOOL postBuild() { return TRUE; } - const child_tab_order_t& getCtrlOrder() const { return mCtrlOrder; } + child_tab_order_t getCtrlOrder() const { return mCtrlOrder; } ctrl_list_t getCtrlList() const; ctrl_list_t getCtrlListSorted() const; @@ -620,13 +620,12 @@ public: class LLCompareByTabOrder { public: - LLCompareByTabOrder(const LLView::child_tab_order_t& order) : mTabOrder(order) {} + LLCompareByTabOrder(LLView::child_tab_order_t order) : mTabOrder(order) {} virtual ~LLCompareByTabOrder() {} bool operator() (const LLView* const a, const LLView* const b) const; private: virtual bool compareTabOrders(const LLView::tab_order_t & a, const LLView::tab_order_t & b) const { return a < b; } - // ok to store a reference, as this should only be allocated on stack during view query operations - const LLView::child_tab_order_t& mTabOrder; + LLView::child_tab_order_t mTabOrder; }; template <class T> T* LLView::getChild(const std::string& name, BOOL recurse) const diff --git a/indra/llui/llviewquery.cpp b/indra/llui/llviewquery.cpp index 1b44cc528e..bdb3d223a6 100644 --- a/indra/llui/llviewquery.cpp +++ b/indra/llui/llviewquery.cpp @@ -95,8 +95,8 @@ viewList_t LLViewQuery::run(LLView* view) const if (pre.first) { post = runFilters(view, filtered_children, mPostFilters); - } } + } if(pre.first && post.first) { @@ -119,12 +119,12 @@ void LLViewQuery::filterChildren(LLView * view, viewList_t & filtered_children) (*mSorterp)(view, views); // sort the children per the sorter } for(LLView::child_list_iter_t iter = views.begin(); - iter != views.end(); - iter++) - { - viewList_t indiv_children = this->run(*iter); - filtered_children.splice(filtered_children.end(), indiv_children); - } + iter != views.end(); + iter++) + { + viewList_t indiv_children = this->run(*iter); + filtered_children.insert(filtered_children.end(), indiv_children.begin(), indiv_children.end()); + } } filterResult_t LLViewQuery::runFilters(LLView * view, const viewList_t children, const filterList_t filters) const diff --git a/indra/llui/llviewquery.h b/indra/llui/llviewquery.h index 68af31933d..98d9bf8796 100644 --- a/indra/llui/llviewquery.h +++ b/indra/llui/llviewquery.h @@ -122,7 +122,7 @@ public: viewList_t operator () (LLView * view) const { return run(view); } // override this method to provide iteration over other types of children - virtual void filterChildren(LLView * view, viewList_t& filtered_children) const; + virtual void filterChildren(LLView * view, viewList_t & filtered_children) const; private: diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 1f50f18516..1500d613e9 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -4666,7 +4666,7 @@ <key>Type</key> <string>String</string> <key>Value</key> - <string>http://marketplace.secondlife.com/</string> + <string>https://www.xstreetsl.com/modules.php?name=Marketplace</string> </map> <key>MarketplaceURL_objectFemale</key> <map> @@ -4721,7 +4721,7 @@ <key>Type</key> <string>String</string> <key>Value</key> - <string>http://marketplace.secondlife.com</string> + <string>https://www.xstreetsl.com/modules.php?name=Marketplace</string> </map> <key>MarketplaceURL_bodypartMale</key> <map> @@ -4732,7 +4732,7 @@ <key>Type</key> <string>String</string> <key>Value</key> - <string>http://marketplace.secondlife.com/</string> + <string>https://www.xstreetsl.com/modules.php?name=Marketplace</string> </map> <key>MarketplaceURL_glovesMale</key> <map> @@ -11901,16 +11901,5 @@ <key>Value</key> <integer>1</integer> </map> - <key>TipToastMessageLineCount</key> - <map> - <key>Comment</key> - <string>Max line count of text message on tip toast.</string> - <key>Persist</key> - <integer>1</integer> - <key>Type</key> - <string>S32</string> - <key>Value</key> - <integer>10</integer> - </map> </map> </llsd> diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index 72d51540ef..4e5fdb1219 100644 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -3406,9 +3406,6 @@ void LLAgent::setTeleportState(ETeleportState state) } else if(mTeleportState == TELEPORT_ARRIVING) { - // First two position updates after a teleport tend to be weird - LLViewerStats::getInstance()->mAgentPositionSnaps.mCountOfNextUpdatesToIgnore = 2; - // Let the interested parties know we've teleported. LLViewerParcelMgr::getInstance()->onTeleportFinished(false, getPositionGlobal()); } diff --git a/indra/newview/llagentwearablesfetch.cpp b/indra/newview/llagentwearablesfetch.cpp index d911d123f4..0a2f0e9399 100644 --- a/indra/newview/llagentwearablesfetch.cpp +++ b/indra/newview/llagentwearablesfetch.cpp @@ -48,7 +48,7 @@ public: virtual ~LLOrderMyOutfitsOnDestroy() { - if (!LLApp::isRunning()) + if (LLApp::isExiting()) { llwarns << "called during shutdown, skipping" << llendl; return; diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index a7d90ab8d3..43f6be42b6 100644 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -995,7 +995,7 @@ bool LLAppearanceMgr::wearItemOnAvatar(const LLUUID& item_id_to_wear, bool do_up { removeCOFItemLinks(gAgentWearables.getWearableItemID(item_to_wear->getWearableType(), wearable_count-1), false); } - addCOFItemLink(item_to_wear, do_update, cb); + addCOFItemLink(item_to_wear, do_update); } break; case LLAssetType::AT_BODYPART: @@ -2179,19 +2179,17 @@ void LLAppearanceMgr::updateIsDirty() } else { - LLIsOfAssetType collector = LLIsOfAssetType(LLAssetType::AT_LINK); - LLInventoryModel::cat_array_t cof_cats; LLInventoryModel::item_array_t cof_items; - gInventory.collectDescendentsIf(cof, cof_cats, cof_items, - LLInventoryModel::EXCLUDE_TRASH, collector); + gInventory.collectDescendents(cof, cof_cats, cof_items, + LLInventoryModel::EXCLUDE_TRASH); LLInventoryModel::cat_array_t outfit_cats; LLInventoryModel::item_array_t outfit_items; - gInventory.collectDescendentsIf(base_outfit, outfit_cats, outfit_items, - LLInventoryModel::EXCLUDE_TRASH, collector); + gInventory.collectDescendents(base_outfit, outfit_cats, outfit_items, + LLInventoryModel::EXCLUDE_TRASH); - if(outfit_items.count() != cof_items.count()) + if(outfit_items.count() != cof_items.count() -1) { // Current outfit folder should have one more item than the outfit folder. // this one item is the link back to the outfit folder itself. @@ -2199,6 +2197,16 @@ void LLAppearanceMgr::updateIsDirty() return; } + //getting rid of base outfit folder link to simplify comparison + for (LLInventoryModel::item_array_t::iterator it = cof_items.begin(); it != cof_items.end(); ++it) + { + if (*it == base_outfit_item) + { + cof_items.erase(it); + break; + } + } + //"dirty" - also means a difference in linked UUIDs and/or a difference in wearables order (links' descriptions) std::sort(cof_items.begin(), cof_items.end(), sort_by_linked_uuid); std::sort(outfit_items.begin(), outfit_items.end(), sort_by_linked_uuid); diff --git a/indra/newview/llavatarlist.cpp b/indra/newview/llavatarlist.cpp index 9d14804b33..c35e71cc71 100644 --- a/indra/newview/llavatarlist.cpp +++ b/indra/newview/llavatarlist.cpp @@ -212,7 +212,7 @@ void LLAvatarList::setDirty(bool val /*= true*/, bool force_refresh /*= false*/) void LLAvatarList::addAvalineItem(const LLUUID& item_id, const LLUUID& session_id, const std::string& item_name) { LL_DEBUGS("Avaline") << "Adding avaline item into the list: " << item_name << "|" << item_id << ", session: " << session_id << LL_ENDL; - LLAvalineListItem* item = new LLAvalineListItem(/*hide_number=*/false); + LLAvalineListItem* item = new LLAvalineListItem; item->setAvatarId(item_id, session_id, true, false); item->setName(item_name); diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp index 2826899cb0..6897f4ee8e 100644 --- a/indra/newview/llchiclet.cpp +++ b/indra/newview/llchiclet.cpp @@ -1886,7 +1886,7 @@ void LLScriptChiclet::onMenuItemClicked(const LLSD& user_data) if("end" == action) { - LLScriptFloaterManager::instance().removeNotification(getSessionId()); + LLScriptFloaterManager::instance().onRemoveNotification(getSessionId()); } } @@ -1969,7 +1969,7 @@ void LLInvOfferChiclet::onMenuItemClicked(const LLSD& user_data) if("end" == action) { - LLScriptFloaterManager::instance().removeNotification(getSessionId()); + LLScriptFloaterManager::instance().onRemoveNotification(getSessionId()); } } diff --git a/indra/newview/llcofwearables.cpp b/indra/newview/llcofwearables.cpp index 86d9121213..4c0f51056d 100644 --- a/indra/newview/llcofwearables.cpp +++ b/indra/newview/llcofwearables.cpp @@ -283,8 +283,7 @@ LLCOFWearables::LLCOFWearables() : LLPanel(), mClothingTab(NULL), mAttachmentsTab(NULL), mBodyPartsTab(NULL), - mLastSelectedTab(NULL), - mCOFVersion(-1) + mLastSelectedTab(NULL) { mClothingMenu = new CofClothingContextMenu(this); mAttachmentMenu = new CofAttachmentContextMenu(this); @@ -379,23 +378,6 @@ void LLCOFWearables::onAccordionTabStateChanged(LLUICtrl* ctrl, const LLSD& expa void LLCOFWearables::refresh() { - const LLUUID cof_id = LLAppearanceMgr::instance().getCOF(); - if (cof_id.isNull()) - { - llwarns << "COF ID cannot be NULL" << llendl; - return; - } - - LLViewerInventoryCategory* catp = gInventory.getCategory(cof_id); - if (!catp) - { - llwarns << "COF category cannot be NULL" << llendl; - return; - } - - if (mCOFVersion == catp->getVersion()) return; - mCOFVersion = catp->getVersion(); - typedef std::vector<LLSD> values_vector_t; typedef std::map<LLFlatListView*, values_vector_t> selection_map_t; @@ -411,7 +393,7 @@ void LLCOFWearables::refresh() LLInventoryModel::cat_array_t cats; LLInventoryModel::item_array_t cof_items; - gInventory.collectDescendents(cof_id, cats, cof_items, LLInventoryModel::EXCLUDE_TRASH); + gInventory.collectDescendents(LLAppearanceMgr::getInstance()->getCOF(), cats, cof_items, LLInventoryModel::EXCLUDE_TRASH); populateAttachmentsAndBodypartsLists(cof_items); @@ -519,7 +501,7 @@ LLPanelClothingListItem* LLCOFWearables::buildClothingListItem(LLViewerInventory item_panel->childSetAction("btn_edit", mCOFCallbacks.mEditWearable); //turning on gray separator line for the last item in the items group of the same wearable type - item_panel->setSeparatorVisible(last); + item_panel->childSetVisible("wearable_type_separator_icon", last); return item_panel; } @@ -655,10 +637,10 @@ LLAssetType::EType LLCOFWearables::getExpandedAccordionAssetType() const LLAccordionCtrlTab* expanded_tab = accordion_ctrl->getExpandedTab(); return get_if_there(mTab2AssetType, expanded_tab, LLAssetType::AT_NONE); - } +} LLAssetType::EType LLCOFWearables::getSelectedAccordionAssetType() - { +{ static LLAccordionCtrl* accordion_ctrl = getChild<LLAccordionCtrl>("cof_wearables_accordion"); const LLAccordionCtrlTab* selected_tab = accordion_ctrl->getSelectedTab(); diff --git a/indra/newview/llcofwearables.h b/indra/newview/llcofwearables.h index d005b75eaa..0518d59df3 100644 --- a/indra/newview/llcofwearables.h +++ b/indra/newview/llcofwearables.h @@ -81,7 +81,6 @@ public: LLPanel* getSelectedItem(); void getSelectedItems(std::vector<LLPanel*>& selected_items) const; - /* Repopulate the COF wearables list if the COF category has been changed since the last refresh */ void refresh(); void clear(); @@ -124,9 +123,6 @@ protected: LLListContextMenu* mClothingMenu; LLListContextMenu* mAttachmentMenu; LLListContextMenu* mBodyPartMenu; - - /* COF category version since last refresh */ - S32 mCOFVersion; }; diff --git a/indra/newview/lldndbutton.cpp b/indra/newview/lldndbutton.cpp index 4f4c7dead7..22f2bb1d16 100644 --- a/indra/newview/lldndbutton.cpp +++ b/indra/newview/lldndbutton.cpp @@ -42,7 +42,7 @@ LLDragAndDropButton::Params::Params() } -LLDragAndDropButton::LLDragAndDropButton(const Params& params) +LLDragAndDropButton::LLDragAndDropButton(Params& params) : LLButton(params) { diff --git a/indra/newview/lldndbutton.h b/indra/newview/lldndbutton.h index 433b3f7ff5..c888268187 100644 --- a/indra/newview/lldndbutton.h +++ b/indra/newview/lldndbutton.h @@ -54,7 +54,7 @@ public: Params(); }; - LLDragAndDropButton(const Params& params); + LLDragAndDropButton(Params& params); typedef boost::function<bool ( S32 /*x*/, S32 /*y*/, MASK /*mask*/, BOOL /*drop*/, diff --git a/indra/newview/llexpandabletextbox.cpp b/indra/newview/llexpandabletextbox.cpp index 92fda31cc2..149ba2478d 100644 --- a/indra/newview/llexpandabletextbox.cpp +++ b/indra/newview/llexpandabletextbox.cpp @@ -140,13 +140,7 @@ void LLExpandableTextBox::LLTextBoxEx::setText(const LLStringExplicit& text,cons // LLTextBox::setText will obliterate the expander segment, so make sure // we generate it again by clearing mExpanderVisible mExpanderVisible = false; - - // Workaround for EXT-8259: trim text before rendering it. - { - std::string trimmed_text(text); - LLStringUtil::trim(trimmed_text); - LLTextEditor::setText(trimmed_text, input_params); - } + LLTextEditor::setText(text, input_params); // text contents have changed, segments are cleared out // so hide the expander and determine if we need it diff --git a/indra/newview/llfolderview.h b/indra/newview/llfolderview.h index 42dc11846d..e3af29a4aa 100644 --- a/indra/newview/llfolderview.h +++ b/indra/newview/llfolderview.h @@ -262,7 +262,6 @@ public: BOOL needsAutoSelect() { return mNeedsAutoSelect && !mAutoSelectOverride; } BOOL needsAutoRename() { return mNeedsAutoRename; } void setNeedsAutoRename(BOOL val) { mNeedsAutoRename = val; } - void setAutoSelectOverride(BOOL val) { mAutoSelectOverride = val; } void setCallbackRegistrar(LLUICtrl::CommitCallbackRegistry::ScopedRegistrar* registrar) { mCallbackRegistrar = registrar; } diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 7c951e3556..8fbd8fc2aa 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -1031,14 +1031,6 @@ void LLIMModel::sendMessage(const std::string& utf8_text, } else { - // IM_SESSION_INVITE means that this is an Ad-hoc incoming chat - // (it can be also Group chat but it is checked above) - // In this case mInitialTargetIDs contains Ad-hoc session ID and it should not be added - // to Recent People to prevent showing of an item with (???)(???). See EXT-8246. - // Concrete participants will be added into this list once they sent message in chat. - if (IM_SESSION_INVITE == dialog) return; - - // implemented adding of all participants of an outgoing to Recent People List. See EXT-5694. for(uuid_vec_t::iterator it = session->mInitialTargetIDs.begin(); it!=session->mInitialTargetIDs.end();++it) { diff --git a/indra/newview/llinspectobject.cpp b/indra/newview/llinspectobject.cpp index cb7b338e95..a2b5ffbac4 100644 --- a/indra/newview/llinspectobject.cpp +++ b/indra/newview/llinspectobject.cpp @@ -161,7 +161,8 @@ BOOL LLInspectObject::postBuild(void) // Hide floater when name links clicked LLTextBox* textbox = getChild<LLTextBox>("object_creator"); - textbox->setURLClickedCallback(boost::bind(&LLInspectObject::closeFloater, this, false) ); + textbox->mURLClickSignal.connect( + boost::bind(&LLInspectObject::closeFloater, this, false) ); // Hook up functionality getChild<LLUICtrl>("buy_btn")->setCommitCallback( diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp index f20acbd016..2d11337955 100644 --- a/indra/newview/llinventoryfunctions.cpp +++ b/indra/newview/llinventoryfunctions.cpp @@ -507,19 +507,6 @@ bool LLIsNotType::operator()(LLInventoryCategory* cat, LLInventoryItem* item) return TRUE; } -bool LLIsOfAssetType::operator()(LLInventoryCategory* cat, LLInventoryItem* item) -{ - if(mType == LLAssetType::AT_CATEGORY) - { - if(cat) return TRUE; - } - if(item) - { - if(item->getActualType() == mType) return TRUE; - } - return FALSE; -} - bool LLIsTypeWithPermissions::operator()(LLInventoryCategory* cat, LLInventoryItem* item) { if(mType == LLAssetType::AT_CATEGORY) diff --git a/indra/newview/llinventoryfunctions.h b/indra/newview/llinventoryfunctions.h index 4a7721098d..1c3f82c531 100644 --- a/indra/newview/llinventoryfunctions.h +++ b/indra/newview/llinventoryfunctions.h @@ -174,25 +174,6 @@ protected: LLAssetType::EType mType; }; -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Class LLIsOfAssetType -// -// Implementation of a LLInventoryCollectFunctor which returns TRUE if -// the item or category is of asset type passed in during construction. -// Link types are treated as links, not as the types they point to. -//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -class LLIsOfAssetType : public LLInventoryCollectFunctor -{ -public: - LLIsOfAssetType(LLAssetType::EType type) : mType(type) {} - virtual ~LLIsOfAssetType() {} - virtual bool operator()(LLInventoryCategory* cat, - LLInventoryItem* item); -protected: - LLAssetType::EType mType; -}; - class LLIsTypeWithPermissions : public LLInventoryCollectFunctor { public: @@ -290,7 +271,9 @@ public: }; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// Class LLFindByMask +// Class LLFindNonLinksByMask +// +// //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ class LLFindByMask : public LLInventoryCollectFunctor { @@ -399,19 +382,6 @@ public: } }; -/* Filters out items of a particular asset type */ -class LLIsTypeActual : public LLIsType -{ -public: - LLIsTypeActual(LLAssetType::EType type) : LLIsType(type) {} - virtual ~LLIsTypeActual() {} - virtual bool operator()(LLInventoryCategory* cat, LLInventoryItem* item) - { - if (item && item->getIsLinkType()) return false; - return LLIsType::operator()(cat, item); - } -}; - // Collect non-removable folders and items. class LLFindNonRemovableObjects : public LLInventoryCollectFunctor { diff --git a/indra/newview/llinventoryitemslist.cpp b/indra/newview/llinventoryitemslist.cpp index e01f05c0f2..fbb3774917 100644 --- a/indra/newview/llinventoryitemslist.cpp +++ b/indra/newview/llinventoryitemslist.cpp @@ -107,12 +107,9 @@ void LLInventoryItemsList::idle(void* user_data) } } -LLFastTimer::DeclareTimer FTM_INVENTORY_ITEMS_REFRESH("Inventory List Refresh"); - void LLInventoryItemsList::refresh() { - LLFastTimer _(FTM_INVENTORY_ITEMS_REFRESH); - static const unsigned ADD_LIMIT = 20; + static const unsigned ADD_LIMIT = 50; uuid_vec_t added_items; uuid_vec_t removed_items; @@ -143,8 +140,7 @@ void LLInventoryItemsList::refresh() it = removed_items.begin(); for( ; removed_items.end() != it; ++it) { - // don't filter items right away - removeItemByUUID(*it, false); + removeItemByUUID(*it); } // Filter, rearrange and notify parent about shape changes diff --git a/indra/newview/llinventorylistitem.cpp b/indra/newview/llinventorylistitem.cpp index e4a7a158a3..c487aa10a7 100644 --- a/indra/newview/llinventorylistitem.cpp +++ b/indra/newview/llinventorylistitem.cpp @@ -51,12 +51,7 @@ static const S32 WIDGET_SPACING = 3; LLPanelInventoryListItemBase::Params::Params() : default_style("default_style"), - worn_style("worn_style"), - hover_image("hover_image"), - selected_image("selected_image"), - separator_image("separator_image"), - item_icon("item_icon"), - item_name("item_name") + worn_style("worn_style") {}; LLPanelInventoryListItemBase* LLPanelInventoryListItemBase::create(LLViewerInventoryItem* item) @@ -64,10 +59,8 @@ LLPanelInventoryListItemBase* LLPanelInventoryListItemBase::create(LLViewerInven LLPanelInventoryListItemBase* list_item = NULL; if (item) { - const LLPanelInventoryListItemBase::Params& params = LLUICtrlFactory::getDefaultParams<LLPanelInventoryListItemBase>(); - list_item = new LLPanelInventoryListItemBase(item, params); - list_item->initFromParams(params); - list_item->postBuild(); + list_item = new LLPanelInventoryListItemBase(item); + list_item->init(); } return list_item; } @@ -83,25 +76,6 @@ void LLPanelInventoryListItemBase::draw() } setNeedsRefresh(false); } - - if (mHovered && mHoverImage) - { - mHoverImage->draw(getLocalRect()); - } - - if (mSelected && mSelectedImage) - { - mSelectedImage->draw(getLocalRect()); - } - - if (mSeparatorVisible && mSeparatorImage) - { - // stretch along bottom of listitem, using image height - LLRect separator_rect = getLocalRect(); - separator_rect.mTop = mSeparatorImage->getHeight(); - mSeparatorImage->draw(separator_rect); - } - LLPanel::draw(); } @@ -160,6 +134,9 @@ void LLPanelInventoryListItemBase::setShowWidget(LLUICtrl* ctrl, bool show) BOOL LLPanelInventoryListItemBase::postBuild() { + setIconCtrl(getChild<LLIconCtrl>("item_icon")); + setTitleCtrl(getChild<LLTextBox>("item_name")); + LLViewerInventoryItem* inv_item = getItem(); if (inv_item) { @@ -179,18 +156,18 @@ void LLPanelInventoryListItemBase::setValue(const LLSD& value) { if (!value.isMap()) return; if (!value.has("selected")) return; - mSelected = value["selected"]; + childSetVisible("selected_icon", value["selected"]); } void LLPanelInventoryListItemBase::onMouseEnter(S32 x, S32 y, MASK mask) { - mHovered = true; + childSetVisible("hovered_icon", true); LLPanel::onMouseEnter(x, y, mask); } void LLPanelInventoryListItemBase::onMouseLeave(S32 x, S32 y, MASK mask) { - mHovered = false; + childSetVisible("hovered_icon", false); LLPanel::onMouseLeave(x, y, mask); } @@ -267,47 +244,21 @@ S32 LLPanelInventoryListItemBase::notify(const LLSD& info) return rv; } -LLPanelInventoryListItemBase::LLPanelInventoryListItemBase(LLViewerInventoryItem* item, const LLPanelInventoryListItemBase::Params& params) -: LLPanel(params), - mInventoryItemUUID(item ? item->getUUID() : LLUUID::null), - mIconCtrl(NULL), - mTitleCtrl(NULL), - mWidgetSpacing(WIDGET_SPACING), - mLeftWidgetsWidth(0), - mRightWidgetsWidth(0), - mNeedsRefresh(false), - mHovered(false), - mSelected(false), - mSeparatorVisible(false), - mHoverImage(params.hover_image), - mSelectedImage(params.selected_image), - mSeparatorImage(params.separator_image) +LLPanelInventoryListItemBase::LLPanelInventoryListItemBase(LLViewerInventoryItem* item) +: LLPanel() +, mInventoryItemUUID(item ? item->getUUID() : LLUUID::null) +, mIconCtrl(NULL) +, mTitleCtrl(NULL) +, mWidgetSpacing(WIDGET_SPACING) +, mLeftWidgetsWidth(0) +, mRightWidgetsWidth(0) +, mNeedsRefresh(false) { - LLIconCtrl::Params icon_params(params.item_icon); - applyXUILayout(icon_params, this); - - mIconCtrl = LLUICtrlFactory::create<LLIconCtrl>(icon_params); - if (mIconCtrl) - { - addChild(mIconCtrl); - } - else - { - mIconCtrl = dynamic_cast<LLIconCtrl*>(LLUICtrlFactory::createDefaultWidget<LLIconCtrl>("item_icon")); - } - - LLTextBox::Params text_params(params.item_name); - applyXUILayout(text_params, this); +} - mTitleCtrl = LLUICtrlFactory::create<LLTextBox>(text_params); - if (mTitleCtrl) - { - addChild(mTitleCtrl); - } - else - { - mTitleCtrl = dynamic_cast<LLTextBox*>(LLUICtrlFactory::createDefaultWidget<LLTextBox>("item_title")); - } +void LLPanelInventoryListItemBase::init() +{ + LLUICtrlFactory::getInstance()->buildPanel(this, "panel_inventory_item.xml"); } class WidgetVisibilityChanger diff --git a/indra/newview/llinventorylistitem.h b/indra/newview/llinventorylistitem.h index 575f6aec19..f29d92d51c 100644 --- a/indra/newview/llinventorylistitem.h +++ b/indra/newview/llinventorylistitem.h @@ -41,12 +41,12 @@ // llui #include "llpanel.h" #include "llstyle.h" -#include "lliconctrl.h" -#include "lltextbox.h" // newview #include "llwearabletype.h" +class LLIconCtrl; +class LLTextBox; class LLViewerInventoryItem; /** @@ -70,11 +70,6 @@ public: { Optional<LLStyle::Params> default_style, worn_style; - Optional<LLUIImage*> hover_image, - selected_image, - separator_image; - Optional<LLIconCtrl::Params> item_icon; - Optional<LLTextBox::Params> item_name; Params(); }; @@ -154,22 +149,30 @@ public: /** Get the associated inventory item */ LLViewerInventoryItem* getItem() const; - void setSeparatorVisible(bool visible) { mSeparatorVisible = visible; } - virtual ~LLPanelInventoryListItemBase(){} protected: - LLPanelInventoryListItemBase(LLViewerInventoryItem* item, const Params& params); + LLPanelInventoryListItemBase(LLViewerInventoryItem* item); typedef std::vector<LLUICtrl*> widget_array_t; /** + * Use it from a factory function to build panel, do not build panel in constructor + */ + virtual void init(); + + /** * Called after inventory item was updated, update panel widgets to reflect inventory changes. */ virtual void updateItem(const std::string& name, EItemState item_state = IS_DEFAULT); + /** setter for mIconCtrl */ + void setIconCtrl(LLIconCtrl* icon) { mIconCtrl = icon; } + /** setter for MTitleCtrl */ + void setTitleCtrl(LLTextBox* tb) { mTitleCtrl = tb; } + void setLeftWidgetsWidth(S32 width) { mLeftWidgetsWidth = width; } void setRightWidgetsWidth(S32 width) { mRightWidgetsWidth = width; } @@ -218,14 +221,6 @@ private: LLTextBox* mTitleCtrl; LLUIImagePtr mIconImage; - LLUIImagePtr mHoverImage; - LLUIImagePtr mSelectedImage; - LLUIImagePtr mSeparatorImage; - - bool mHovered; - bool mSelected; - bool mSeparatorVisible; - std::string mHighlightedText; widget_array_t mLeftSideWidgets; diff --git a/indra/newview/lllocationinputctrl.cpp b/indra/newview/lllocationinputctrl.cpp index 46ebb54786..b8590d838e 100644 --- a/indra/newview/lllocationinputctrl.cpp +++ b/indra/newview/lllocationinputctrl.cpp @@ -1052,7 +1052,7 @@ void LLLocationInputCtrl::changeLocationPresentation() //needs unescaped one LLSLURL slurl; LLAgentUI::buildSLURL(slurl, false); - mTextEntry->setText(LLURI::unescape(slurl.getSLURLString())); + mTextEntry->setText(slurl.getSLURLString()); mTextEntry->selectAll(); mMaturityButton->setVisible(FALSE); diff --git a/indra/newview/llpanelgenerictip.cpp b/indra/newview/llpanelgenerictip.cpp index 8ba2e6d01c..e0658554a4 100644 --- a/indra/newview/llpanelgenerictip.cpp +++ b/indra/newview/llpanelgenerictip.cpp @@ -35,7 +35,6 @@ #include "llpanelgenerictip.h" #include "llnotifications.h" -#include "llviewercontrol.h" // for gSavedSettings LLPanelGenericTip::LLPanelGenericTip( @@ -46,8 +45,7 @@ LLPanelGenericTip::LLPanelGenericTip( childSetValue("message", notification->getMessage()); - - S32 max_line_count = gSavedSettings.getS32("TipToastMessageLineCount"); - snapToMessageHeight(getChild<LLTextBox> ("message"), max_line_count); + // set line max count to 3 in case of a very long name + snapToMessageHeight(getChild<LLTextBox> ("message"), 3); } diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp index 3e12f0ba9a..29ce3449d1 100644 --- a/indra/newview/llpanelmaininventory.cpp +++ b/indra/newview/llpanelmaininventory.cpp @@ -197,15 +197,14 @@ BOOL LLPanelMainInventory::postBuild() mFilterEditor->setCommitCallback(boost::bind(&LLPanelMainInventory::onFilterEdit, this, _2)); } - initListCommandsHandlers(); - // *TODO:Get the cost info from the server const std::string upload_cost("10"); - mMenuAdd->getChild<LLMenuItemGL>("Upload Image")->setLabelArg("[COST]", upload_cost); - mMenuAdd->getChild<LLMenuItemGL>("Upload Sound")->setLabelArg("[COST]", upload_cost); - mMenuAdd->getChild<LLMenuItemGL>("Upload Animation")->setLabelArg("[COST]", upload_cost); - mMenuAdd->getChild<LLMenuItemGL>("Bulk Upload")->setLabelArg("[COST]", upload_cost); + childSetLabelArg("Upload Image", "[COST]", upload_cost); + childSetLabelArg("Upload Sound", "[COST]", upload_cost); + childSetLabelArg("Upload Animation", "[COST]", upload_cost); + childSetLabelArg("Bulk Upload", "[COST]", upload_cost); + initListCommandsHandlers(); return TRUE; } diff --git a/indra/newview/llpanelonlinestatus.cpp b/indra/newview/llpanelonlinestatus.cpp index b21fd7d385..6ba015b11c 100644 --- a/indra/newview/llpanelonlinestatus.cpp +++ b/indra/newview/llpanelonlinestatus.cpp @@ -34,7 +34,6 @@ #include "llnotifications.h" #include "llpanelonlinestatus.h" -#include "llviewercontrol.h" // for gSavedSettings LLPanelOnlineStatus::LLPanelOnlineStatus( const LLNotificationPtr& notification) : @@ -55,7 +54,7 @@ LLPanelOnlineStatus::LLPanelOnlineStatus( notification, notification->getResponseTemplate())); } - S32 max_line_count = gSavedSettings.getS32("TipToastMessageLineCount"); - snapToMessageHeight(getChild<LLTextBox> ("message"), max_line_count); + // set line max count to 3 in case of a very long name + snapToMessageHeight(getChild<LLTextBox> ("message"), 3); } diff --git a/indra/newview/llpaneloutfitedit.cpp b/indra/newview/llpaneloutfitedit.cpp index 937b794686..f8350a56ef 100644 --- a/indra/newview/llpaneloutfitedit.cpp +++ b/indra/newview/llpaneloutfitedit.cpp @@ -71,7 +71,6 @@ #include "llsdutil.h" #include "llsidepanelappearance.h" #include "lltoggleablemenu.h" -#include "llvoavatarself.h" #include "llwearablelist.h" #include "llwearableitemslist.h" #include "llwearabletype.h" @@ -264,7 +263,7 @@ LLPanelOutfitEdit::LLPanelOutfitEdit() observer.addBOFReplacedCallback(boost::bind(&LLPanelOutfitEdit::updateCurrentOutfitName, this)); observer.addBOFChangedCallback(boost::bind(&LLPanelOutfitEdit::updateVerbs, this)); observer.addOutfitLockChangedCallback(boost::bind(&LLPanelOutfitEdit::updateVerbs, this)); - observer.addCOFChangedCallback(boost::bind(&LLPanelOutfitEdit::onCOFChanged, this)); + observer.addCOFChangedCallback(boost::bind(&LLPanelOutfitEdit::update, this)); gAgentWearables.addLoadingStartedCallback(boost::bind(&LLPanelOutfitEdit::onOutfitChanging, this, true)); gAgentWearables.addLoadedCallback(boost::bind(&LLPanelOutfitEdit::onOutfitChanging, this, false)); @@ -298,9 +297,9 @@ BOOL LLPanelOutfitEdit::postBuild() mFolderViewItemTypes[FVIT_ATTACHMENT] = LLLookItemType(getString("Filter.Objects"), ATTACHMENT_MASK); //order is important, see EListViewItemType for order information - mListViewItemTypes.push_back(new LLFilterItem(getString("Filter.All"), new LLFindNonLinksByMask(ALL_ITEMS_MASK))); - mListViewItemTypes.push_back(new LLFilterItem(getString("Filter.Clothing"), new LLIsTypeActual(LLAssetType::AT_CLOTHING))); - mListViewItemTypes.push_back(new LLFilterItem(getString("Filter.Bodyparts"), new LLIsTypeActual(LLAssetType::AT_BODYPART))); + mListViewItemTypes.push_back(new LLFilterItem(getString("Filter.All"), new LLFindByMask(ALL_ITEMS_MASK))); + mListViewItemTypes.push_back(new LLFilterItem(getString("Filter.Clothing"), new LLIsType(LLAssetType::AT_CLOTHING))); + mListViewItemTypes.push_back(new LLFilterItem(getString("Filter.Bodyparts"), new LLIsType(LLAssetType::AT_BODYPART))); mListViewItemTypes.push_back(new LLFilterItem(getString("Filter.Objects"), new LLFindByMask(ATTACHMENT_MASK)));; mListViewItemTypes.push_back(new LLFilterItem(LLTrans::getString("shape"), new LLFindActualWearablesOfType(LLWearableType::WT_SHAPE))); mListViewItemTypes.push_back(new LLFilterItem(LLTrans::getString("skin"), new LLFindActualWearablesOfType(LLWearableType::WT_SKIN))); @@ -332,7 +331,7 @@ BOOL LLPanelOutfitEdit::postBuild() childSetCommitCallback("shop_btn_1", boost::bind(&LLPanelOutfitEdit::onShopButtonClicked, this), NULL); childSetCommitCallback("shop_btn_2", boost::bind(&LLPanelOutfitEdit::onShopButtonClicked, this), NULL); - setVisibleCallback(boost::bind(&LLPanelOutfitEdit::onVisibilityChange, this, _2)); + setVisibleCallback(boost::bind(&LLPanelOutfitEdit::onVisibilityChange, this)); mCOFWearables = getChild<LLCOFWearables>("cof_wearables_list"); mCOFWearables->setCommitCallback(boost::bind(&LLPanelOutfitEdit::filterWearablesBySelectedItem, this)); @@ -348,8 +347,8 @@ BOOL LLPanelOutfitEdit::postBuild() mInventoryItemsPanel = getChild<LLInventoryPanel>("folder_view"); mInventoryItemsPanel->setFilterTypes(ALL_ITEMS_MASK); mInventoryItemsPanel->setShowFolderState(LLInventoryFilter::SHOW_NON_EMPTY_FOLDERS); - mInventoryItemsPanel->setSelectCallback(boost::bind(&LLPanelOutfitEdit::updatePlusButton, this)); - mInventoryItemsPanel->getRootFolder()->setReshapeCallback(boost::bind(&LLPanelOutfitEdit::updatePlusButton, this)); + mInventoryItemsPanel->setSelectCallback(boost::bind(&LLPanelOutfitEdit::onInventorySelectionChange, this)); + mInventoryItemsPanel->getRootFolder()->setReshapeCallback(boost::bind(&LLPanelOutfitEdit::onInventorySelectionChange, this)); mCOFDragAndDropObserver = new LLCOFDragAndDropObserver(mInventoryItemsPanel->getModel()); @@ -389,7 +388,7 @@ BOOL LLPanelOutfitEdit::postBuild() mWearablesListViewPanel = getChild<LLPanel>("filtered_wearables_panel"); mWearableItemsList = getChild<LLInventoryItemsList>("list_view"); mWearableItemsList->setCommitOnSelectionChange(true); - mWearableItemsList->setCommitCallback(boost::bind(&LLPanelOutfitEdit::updatePlusButton, this)); + mWearableItemsList->setCommitCallback(boost::bind(&LLPanelOutfitEdit::onInventorySelectionChange, this)); mWearableItemsList->setDoubleClickCallback(boost::bind(&LLPanelOutfitEdit::onPlusBtnClicked, this)); mSaveComboBtn.reset(new LLSaveOutfitComboBtn(this)); @@ -443,9 +442,6 @@ void LLPanelOutfitEdit::showAddWearablesPanel(bool show_add_wearables) mListViewFilterCmbBox->setVisible(false); showWearablesFilter(); - - // Reset mWearableItemsList position to top. See EXT-8180. - mWearableItemsList->goToTop(); } //switching button bars @@ -587,16 +583,11 @@ void LLPanelOutfitEdit::onPlusBtnClicked(void) } } -void LLPanelOutfitEdit::onVisibilityChange(const LLSD &in_visible_chain) +void LLPanelOutfitEdit::onVisibilityChange() { showAddWearablesPanel(false); mWearableItemsList->resetSelection(); mInventoryItemsPanel->clearSelection(); - - if (in_visible_chain.asBoolean()) - { - update(); - } } void LLPanelOutfitEdit::onAddWearableClicked(void) @@ -623,52 +614,15 @@ void LLPanelOutfitEdit::onShopButtonClicked() { static LLShopURLDispatcher url_resolver; - // will contain the resultant URL std::string url; - - if (isAgentAvatarValid()) - { - // try to get wearable type from 'Add More' panel first (EXT-7639) - LLWearableType::EType type = getAddMorePanelSelectionType(); - - if (type == LLWearableType::WT_NONE) - { - type = getCOFWearablesSelectionType(); - } - - ESex sex = gAgentAvatarp->getSex(); - - // WT_INVALID comes for attachments - if (type != LLWearableType::WT_INVALID && type != LLWearableType::WT_NONE) - { - url = url_resolver.resolveURL(type, sex); - } - - if (url.empty()) - { - url = url_resolver.resolveURL(mCOFWearables->getExpandedAccordionAssetType(), sex); - } - } - else - { - llwarns << "Agent avatar is invalid" << llendl; - - // the second argument is not important in this case: generic market place will be opened - url = url_resolver.resolveURL(LLWearableType::WT_NONE, SEX_FEMALE); - } - - LLWeb::loadURLExternal(url); -} - -LLWearableType::EType LLPanelOutfitEdit::getCOFWearablesSelectionType() const -{ std::vector<LLPanel*> selected_items; - LLWearableType::EType type = LLWearableType::WT_NONE; - mCOFWearables->getSelectedItems(selected_items); + ESex sex = gSavedSettings.getU32("AvatarSex") ? SEX_MALE : SEX_FEMALE; + if (selected_items.size() == 1) { + LLWearableType::EType type = LLWearableType::WT_NONE; LLPanel* item = selected_items.front(); // LLPanelDummyClothingListItem is lower then LLPanelInventoryListItemBase in hierarchy tree @@ -680,45 +634,20 @@ LLWearableType::EType LLPanelOutfitEdit::getCOFWearablesSelectionType() const { type = real_item->getWearableType(); } - } - - return type; -} - -LLWearableType::EType LLPanelOutfitEdit::getAddMorePanelSelectionType() const -{ - LLWearableType::EType type = LLWearableType::WT_NONE; - - if (mAddWearablesPanel != NULL && mAddWearablesPanel->getVisible()) - { - if (mInventoryItemsPanel != NULL && mInventoryItemsPanel->getVisible()) - { - std::set<LLUUID> selected_uuids = mInventoryItemsPanel->getRootFolder()->getSelectionList(); - if (selected_uuids.size() == 1) - { - type = getWearableTypeByItemUUID(*(selected_uuids.begin())); - } - } - else if (mWearableItemsList != NULL && mWearableItemsList->getVisible()) + // WT_INVALID comes for attachments + if (type != LLWearableType::WT_INVALID) { - std::vector<LLUUID> selected_uuids; - mWearableItemsList->getSelectedUUIDs(selected_uuids); - - if (selected_uuids.size() == 1) - { - type = getWearableTypeByItemUUID(selected_uuids.front()); - } + url = url_resolver.resolveURL(type, sex); } } - return type; -} + if (url.empty()) + { + url = url_resolver.resolveURL(mCOFWearables->getExpandedAccordionAssetType(), sex); + } -LLWearableType::EType LLPanelOutfitEdit::getWearableTypeByItemUUID(const LLUUID& item_uuid) const -{ - LLViewerInventoryItem* item = gInventory.getLinkedItem(item_uuid); - return (item != NULL) ? item->getWearableType() : LLWearableType::WT_NONE; + LLWeb::loadURLExternal(url); } void LLPanelOutfitEdit::onRemoveFromOutfitClicked(void) @@ -738,7 +667,7 @@ void LLPanelOutfitEdit::onEditWearableClicked(void) } } -void LLPanelOutfitEdit::updatePlusButton() +void LLPanelOutfitEdit::onInventorySelectionChange() { uuid_vec_t selected_items; getSelectedItemsUUID(selected_items); @@ -981,9 +910,6 @@ void LLPanelOutfitEdit::updateVerbs() mStatus->setText(outfit_is_dirty ? getString("unsaved_changes") : getString("now_editing")); updateCurrentOutfitName(); - - //updating state of "Wear Item" button previously known as "Plus" button - updatePlusButton(); } bool LLPanelOutfitEdit::switchPanels(LLPanel* switch_from_panel, LLPanel* switch_to_panel) @@ -1019,6 +945,9 @@ void LLPanelOutfitEdit::showFilteredWearablesListView(LLWearableType::EType type showAddWearablesPanel(true); showWearablesListView(); + // Reset mWearableItemsList position to top. See EXT-8180. + mWearableItemsList->goToTop(); + //e_list_view_item_type implicitly contains LLWearableType::EType starting from LVIT_SHAPE applyListViewFilter((EListViewItemType) (LVIT_SHAPE + type)); } @@ -1085,13 +1014,5 @@ void LLPanelOutfitEdit::getSelectedItemsUUID(uuid_vec_t& uuid_list) // return selected_id; } -void LLPanelOutfitEdit::onCOFChanged() -{ - //the panel is only updated when is visible to a user - if (!isInVisibleChain()) return; - - update(); -} - // EOF diff --git a/indra/newview/llpaneloutfitedit.h b/indra/newview/llpaneloutfitedit.h index 770e2a229b..fb9a35411c 100644 --- a/indra/newview/llpaneloutfitedit.h +++ b/indra/newview/llpaneloutfitedit.h @@ -145,10 +145,10 @@ public: void onFolderViewFilterCommitted(LLUICtrl* ctrl); void onListViewFilterCommitted(LLUICtrl* ctrl); void onSearchEdit(const std::string& string); - void updatePlusButton(); + void onInventorySelectionChange(); void onPlusBtnClicked(void); - void onVisibilityChange(const LLSD &in_visible_chain); + void onVisibilityChange(); void applyFolderViewFilter(EFolderViewItemType type); void applyListViewFilter(EListViewItemType type); @@ -196,11 +196,6 @@ private: void onOutfitChanging(bool started); void getSelectedItemsUUID(uuid_vec_t& uuid_list); void getCurrentItemUUID(LLUUID& selected_id); - void onCOFChanged(); - - LLWearableType::EType getCOFWearablesSelectionType() const; - LLWearableType::EType getAddMorePanelSelectionType() const; - LLWearableType::EType getWearableTypeByItemUUID(const LLUUID& item_uuid) const; LLTextBox* mCurrentOutfitName; LLTextBox* mStatus; diff --git a/indra/newview/llparticipantlist.cpp b/indra/newview/llparticipantlist.cpp index 17934afab4..a39dc6cef9 100644 --- a/indra/newview/llparticipantlist.cpp +++ b/indra/newview/llparticipantlist.cpp @@ -597,7 +597,7 @@ void LLParticipantList::addAvatarIDExceptAgent(const LLUUID& avatar_id) else { std::string display_name = LLVoiceClient::getInstance()->getDisplayName(avatar_id); - mAvatarList->addAvalineItem(avatar_id, mSpeakerMgr->getSessionID(), display_name.empty() ? LLTrans::getString("AvatarNameWaiting") : display_name); + mAvatarList->addAvalineItem(avatar_id, mSpeakerMgr->getSessionID(), display_name.empty() ? display_name : LLTrans::getString("AvatarNameWaiting")); mAvalineUpdater->watchAvalineCaller(avatar_id); } adjustParticipant(avatar_id); diff --git a/indra/newview/llpreviewtexture.cpp b/indra/newview/llpreviewtexture.cpp index c4cbbbb791..bf18c9e5e7 100644 --- a/indra/newview/llpreviewtexture.cpp +++ b/indra/newview/llpreviewtexture.cpp @@ -75,8 +75,7 @@ LLPreviewTexture::LLPreviewTexture(const LLSD& key) mLastWidth(0), mAspectRatio(0.f), mPreviewToSave(FALSE), - mImage(NULL), - mImageOldBoostLevel(LLViewerTexture::BOOST_NONE) + mImage(NULL) { updateImageID(); if (key.has("save_as")) @@ -94,7 +93,7 @@ LLPreviewTexture::~LLPreviewTexture() { getWindow()->decBusyCount(); } - mImage->setBoostLevel(mImageOldBoostLevel); + mImage = NULL; } @@ -544,7 +543,6 @@ void LLPreviewTexture::onAspectRatioCommit(LLUICtrl* ctrl, void* userdata) void LLPreviewTexture::loadAsset() { mImage = LLViewerTextureManager::getFetchedTexture(mImageID, MIPMAP_TRUE, LLViewerTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE); - mImageOldBoostLevel = mImage->getBoostLevel(); mImage->setBoostLevel(LLViewerTexture::BOOST_PREVIEW); mImage->forceToSaveRawImage(0) ; mAssetStatus = PREVIEW_ASSET_LOADING; diff --git a/indra/newview/llpreviewtexture.h b/indra/newview/llpreviewtexture.h index cbdb057781..0f29a741c1 100644 --- a/indra/newview/llpreviewtexture.h +++ b/indra/newview/llpreviewtexture.h @@ -82,10 +82,9 @@ private: void updateDimensions(); LLUUID mImageID; LLPointer<LLViewerFetchedTexture> mImage; - S32 mImageOldBoostLevel; + BOOL mLoadingFullImage; std::string mSaveFileName; LLFrameTimer mSavedFileTimer; - BOOL mLoadingFullImage; BOOL mShowKeepDiscard; BOOL mCopyToInv; @@ -95,10 +94,11 @@ private: // This is stored off in a member variable, because the save-as // button and drag and drop functionality need to know. BOOL mIsCopyable; - BOOL mUpdateDimensions; + S32 mLastHeight; S32 mLastWidth; - F32 mAspectRatio; + F32 mAspectRatio; + BOOL mUpdateDimensions; LLLoadedCallbackEntry::source_callback_list_t mCallbackTextureList ; }; diff --git a/indra/newview/llscriptfloater.cpp b/indra/newview/llscriptfloater.cpp index 75797dae81..b68fc3b002 100644 --- a/indra/newview/llscriptfloater.cpp +++ b/indra/newview/llscriptfloater.cpp @@ -176,15 +176,7 @@ void LLScriptFloater::onClose(bool app_quitting) if(getNotificationId().notNull()) { - // we shouldn't kill notification on exit since it may be used as persistent. - if (app_quitting) - { - LLScriptFloaterManager::getInstance()->onRemoveNotification(getNotificationId()); - } - else - { - LLScriptFloaterManager::getInstance()->removeNotification(getNotificationId()); - } + LLScriptFloaterManager::getInstance()->onRemoveNotification(getNotificationId()); } } @@ -360,7 +352,7 @@ void LLScriptFloaterManager::onAddNotification(const LLUUID& notification_id) set_new_message |= !floater->hasFocus(); } - removeNotification(it->first); + onRemoveNotification(it->first); } } @@ -387,17 +379,6 @@ void LLScriptFloaterManager::onAddNotification(const LLUUID& notification_id) toggleScriptFloater(notification_id, set_new_message); } -void LLScriptFloaterManager::removeNotification(const LLUUID& notification_id) -{ - LLNotificationPtr notification = LLNotifications::instance().find(notification_id); - if (notification != NULL && !notification->isCancelled()) - { - LLNotificationsUtil::cancel(notification); - } - - onRemoveNotification(notification_id); -} - void LLScriptFloaterManager::onRemoveNotification(const LLUUID& notification_id) { if(notification_id.isNull()) @@ -411,8 +392,6 @@ void LLScriptFloaterManager::onRemoveNotification(const LLUUID& notification_id) LLIMWellWindow::getInstance()->removeObjectRow(notification_id); - mNotifications.erase(notification_id); - // close floater LLScriptFloater* floater = LLFloaterReg::findTypedInstance<LLScriptFloater>("script_floater", notification_id); if(floater) @@ -421,6 +400,8 @@ void LLScriptFloaterManager::onRemoveNotification(const LLUUID& notification_id) floater->setNotificationId(LLUUID::null); floater->closeFloater(); } + + mNotifications.erase(notification_id); } void LLScriptFloaterManager::toggleScriptFloater(const LLUUID& notification_id, bool set_new_message) diff --git a/indra/newview/llscriptfloater.h b/indra/newview/llscriptfloater.h index 6990234fd7..dc0cfc2400 100644 --- a/indra/newview/llscriptfloater.h +++ b/indra/newview/llscriptfloater.h @@ -65,11 +65,6 @@ public: void onAddNotification(const LLUUID& notification_id); /** - * Removes notification. - */ - void removeNotification(const LLUUID& notification_id); - - /** * Handles notification removal. * Removes script notification toast, removes script chiclet, closes script floater */ diff --git a/indra/newview/llsidetray.cpp b/indra/newview/llsidetray.cpp index 7104f3934d..98282c1673 100644 --- a/indra/newview/llsidetray.cpp +++ b/indra/newview/llsidetray.cpp @@ -230,15 +230,15 @@ LLSideTrayTab* LLSideTrayTab::createInstance () LLSideTray::Params::Params() : collapsed("collapsed",false), - tab_btn_image_normal("tab_btn_image",LLUI::getUIImage("sidebar_tab_left.tga")), - tab_btn_image_selected("tab_btn_image_selected",LLUI::getUIImage("button_enabled_selected_32x128.tga")), + tab_btn_image_normal("tab_btn_image","sidebar_tab_left.tga"), + tab_btn_image_selected("tab_btn_image_selected","button_enabled_selected_32x128.tga"), default_button_width("tab_btn_width",32), default_button_height("tab_btn_height",32), default_button_margin("tab_btn_margin",0) {} //virtual -LLSideTray::LLSideTray(const Params& params) +LLSideTray::LLSideTray(Params& params) : LLPanel(params) ,mActiveTab(0) ,mCollapsed(false) @@ -373,10 +373,10 @@ LLButton* LLSideTray::createButton (const std::string& name,const std::string& i bparams.follows.flags (FOLLOWS_LEFT | FOLLOWS_TOP); bparams.rect (rect); bparams.tab_stop(false); - bparams.image_unselected(sidetray_params.tab_btn_image_normal); - bparams.image_selected(sidetray_params.tab_btn_image_selected); - bparams.image_disabled(sidetray_params.tab_btn_image_normal); - bparams.image_disabled_selected(sidetray_params.tab_btn_image_selected); + bparams.image_unselected.name(sidetray_params.tab_btn_image_normal); + bparams.image_selected.name(sidetray_params.tab_btn_image_selected); + bparams.image_disabled.name(sidetray_params.tab_btn_image_normal); + bparams.image_disabled_selected.name(sidetray_params.tab_btn_image_selected); LLButton* button = LLUICtrlFactory::create<LLButton> (bparams); button->setLabel(name); diff --git a/indra/newview/llsidetray.h b/indra/newview/llsidetray.h index 406cdc9055..3a8d308425 100644 --- a/indra/newview/llsidetray.h +++ b/indra/newview/llsidetray.h @@ -54,13 +54,13 @@ public: : public LLInitParam::Block<Params, LLPanel::Params> { // initial state - Optional<bool> collapsed; - Optional<LLUIImage*> tab_btn_image_normal, - tab_btn_image_selected; + Optional<bool> collapsed; + Optional<std::string> tab_btn_image_normal; + Optional<std::string> tab_btn_image_selected; - Optional<S32> default_button_width, - default_button_height, - default_button_margin; + Optional<S32> default_button_width; + Optional<S32> default_button_height; + Optional<S32> default_button_margin; Params(); }; @@ -68,7 +68,7 @@ public: static LLSideTray* getInstance (); static bool instanceCreated (); protected: - LLSideTray(const Params& params); + LLSideTray(Params& params); typedef std::vector<LLSideTrayTab*> child_vector_t; typedef child_vector_t::iterator child_vector_iter_t; typedef child_vector_t::const_iterator child_vector_const_iter_t; diff --git a/indra/newview/llsyswellwindow.cpp b/indra/newview/llsyswellwindow.cpp index 2020e2aa9f..b0e8c71f83 100644 --- a/indra/newview/llsyswellwindow.cpp +++ b/indra/newview/llsyswellwindow.cpp @@ -389,7 +389,7 @@ LLIMWellWindow::ObjectRowPanel::~ObjectRowPanel() //--------------------------------------------------------------------------------- void LLIMWellWindow::ObjectRowPanel::onClosePanel() { - LLScriptFloaterManager::getInstance()->removeNotification(mChiclet->getSessionId()); + LLScriptFloaterManager::getInstance()->onRemoveNotification(mChiclet->getSessionId()); } void LLIMWellWindow::ObjectRowPanel::initChiclet(const LLUUID& notification_id, bool new_message/* = false*/) @@ -850,7 +850,7 @@ void LLIMWellWindow::closeAllImpl() ObjectRowPanel* obj_panel = dynamic_cast <ObjectRowPanel*> (panel); if (obj_panel) { - LLScriptFloaterManager::instance().removeNotification(*iter); + LLScriptFloaterManager::instance().onRemoveNotification(*iter); } } } diff --git a/indra/newview/lltexturectrl.cpp b/indra/newview/lltexturectrl.cpp index 0b02861b75..fcb9deb20b 100644 --- a/indra/newview/lltexturectrl.cpp +++ b/indra/newview/lltexturectrl.cpp @@ -423,10 +423,6 @@ BOOL LLFloaterTexturePicker::postBuild() mInventoryPanel->setShowFolderState(LLInventoryFilter::SHOW_NON_EMPTY_FOLDERS); mInventoryPanel->setAllowMultiSelect(FALSE); - // Disable auto selecting first filtered item because it takes away - // selection from the item set by LLTextureCtrl owning this floater. - mInventoryPanel->getRootFolder()->setAutoSelectOverride(TRUE); - // Commented out to scroll to currently selected texture. See EXT-5403. // // store this filter as the default one // mInventoryPanel->getRootFolder()->getFilter()->markDefault(); diff --git a/indra/newview/llurllineeditorctrl.cpp b/indra/newview/llurllineeditorctrl.cpp index 333f682e8f..8488527185 100644 --- a/indra/newview/llurllineeditorctrl.cpp +++ b/indra/newview/llurllineeditorctrl.cpp @@ -89,10 +89,9 @@ void LLURLLineEditor::copyEscapedURLToClipboard() const std::string unescaped_text = wstring_to_utf8str(mText.getWString().substr(left_pos, length)); LLWString text_to_copy; - // *HACK: Because LLSLURL is currently broken we cannot use it to check if unescaped_text is a valid SLURL (see EXT-8335). - if (LLStringUtil::startsWith(unescaped_text, "http://")) // SLURL + if (LLSLURL(unescaped_text).isValid()) text_to_copy = utf8str_to_wstring(LLWeb::escapeURL(unescaped_text)); - else // human-readable location + else text_to_copy = utf8str_to_wstring(unescaped_text); gClipboard.copyFromString( text_to_copy ); diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp index 638d5e8804..41a8fd842e 100644 --- a/indra/newview/llviewerinventory.cpp +++ b/indra/newview/llviewerinventory.cpp @@ -847,21 +847,6 @@ LLInventoryCallbackManager::~LLInventoryCallbackManager() sInstance = NULL; } -//static -void LLInventoryCallbackManager::destroyClass() -{ - if (sInstance) - { - for (callback_map_t::iterator it = sInstance->mMap.begin(), end_it = sInstance->mMap.end(); it != end_it; ++it) - { - // drop LLPointer reference to callback - it->second = NULL; - } - sInstance->mMap.clear(); - } -} - - U32 LLInventoryCallbackManager::registerCB(LLPointer<LLInventoryCallback> cb) { if (cb.isNull()) diff --git a/indra/newview/llviewerinventory.h b/indra/newview/llviewerinventory.h index 50d8ea7b6c..31e2417476 100644 --- a/indra/newview/llviewerinventory.h +++ b/indra/newview/llviewerinventory.h @@ -36,7 +36,6 @@ #include "llinventory.h" #include "llframetimer.h" #include "llwearable.h" -#include "llui.h" //for LLDestroyClass #include <boost/signals2.hpp> // boost::signals2::trackable @@ -300,9 +299,8 @@ private: // misc functions //void inventory_reliable_callback(void**, S32 status); -class LLInventoryCallbackManager : public LLDestroyClass<LLInventoryCallbackManager> +class LLInventoryCallbackManager { - friend class LLDestroyClass<LLInventoryCallbackManager>; public: LLInventoryCallbackManager(); ~LLInventoryCallbackManager(); @@ -310,12 +308,9 @@ public: void fire(U32 callback_id, const LLUUID& item_id); U32 registerCB(LLPointer<LLInventoryCallback> cb); private: - typedef std::map<U32, LLPointer<LLInventoryCallback> > callback_map_t; - callback_map_t mMap; + std::map<U32, LLPointer<LLInventoryCallback> > mMap; U32 mLastCallback; static LLInventoryCallbackManager *sInstance; - static void destroyClass(); - public: static bool is_instantiated() { return sInstance != NULL; } }; diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 1488bc8350..525413edc2 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -2706,7 +2706,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) params.substitutions = substitutions; params.payload = payload; - LLPostponedNotification::add<LLPostponedServerObjectNotification>(params, from_id, from_group); + LLPostponedNotification::add<LLPostponedServerObjectNotification>(params, from_id, false); } break; case IM_FROM_TASK_AS_ALERT: diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index 5655eed5c4..3fc1eabecc 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -80,7 +80,6 @@ #include "llviewerparceloverlay.h" #include "llviewerpartsource.h" #include "llviewerregion.h" -#include "llviewerstats.h" #include "llviewertextureanim.h" #include "llviewerwindow.h" // For getSpinAxis #include "llvoavatar.h" @@ -1918,12 +1917,6 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys, avatar->clampAttachmentPositions(); } - - // If we're snapping the position by more than 0.5m, update LLViewerStats::mAgentPositionSnaps - if ( asAvatar() && asAvatar()->isSelf() && (mag_sqr > 0.25f) ) - { - LLViewerStats::getInstance()->mAgentPositionSnaps.push( diff.length() ); - } } if (new_rot != mLastRot diff --git a/indra/newview/llviewerstats.cpp b/indra/newview/llviewerstats.cpp index a706e77f19..bdc34d0f18 100644 --- a/indra/newview/llviewerstats.cpp +++ b/indra/newview/llviewerstats.cpp @@ -280,8 +280,6 @@ LLViewerStats::LLViewerStats() : { mStats[ST_HAS_BAD_TIMER] = 1.0; } - - mAgentPositionSnaps.reset(); } LLViewerStats::~LLViewerStats() @@ -301,8 +299,6 @@ void LLViewerStats::resetStats() LLViewerStats::getInstance()->mPacketsOutStat.reset(); LLViewerStats::getInstance()->mFPSStat.reset(); LLViewerStats::getInstance()->mTexturePacketsStat.reset(); - - LLViewerStats::getInstance()->mAgentPositionSnaps.reset(); } @@ -397,10 +393,6 @@ void LLViewerStats::addToMessage(LLSD &body) const << llendl; } } - - body["AgentPositionSnaps"] = mAgentPositionSnaps.getData(); - llinfos << "STAT: AgentPositionSnaps: Mean = " << mAgentPositionSnaps.getMean() << "; StdDev = " << mAgentPositionSnaps.getStdDev() - << "; Count = " << mAgentPositionSnaps.getCount() << llendl; } // static diff --git a/indra/newview/llviewerstats.h b/indra/newview/llviewerstats.h index 694eeaf097..13d73000d2 100644 --- a/indra/newview/llviewerstats.h +++ b/indra/newview/llviewerstats.h @@ -197,61 +197,6 @@ public: void addToMessage(LLSD &body) const; - struct StatsAccumulator - { - S32 mCount; - F32 mSum; - F32 mSumOfSquares; - U32 mCountOfNextUpdatesToIgnore; - - inline void push( F32 val ) - { - if ( mCountOfNextUpdatesToIgnore > 0 ) - { - mCountOfNextUpdatesToIgnore--; - return; - } - - mCount++; - mSum += val; - mSumOfSquares += val * val; - } - - inline F32 getMean() const - { - return (mCount == 0) ? 0.f : ((F32)mSum)/mCount; - } - - inline F32 getStdDev() const - { - const F32 mean = getMean(); - return (mCount == 0) ? 0.f : sqrt( mSumOfSquares/mCount - (mean * mean) ); - } - - inline U32 getCount() const - { - return mCount; - } - - inline void reset() - { - mCount = 0; - mSum = mSumOfSquares = 0.f; - mCountOfNextUpdatesToIgnore = 0; - } - - inline LLSD getData() const - { - LLSD data; - data["mean"] = getMean(); - data["std_dev"] = getStdDev(); - data["count"] = (S32)mCount; - return data; - } - }; - - StatsAccumulator mAgentPositionSnaps; - private: F64 mStats[ST_COUNT]; diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp index 75bb9f84e2..0afbce7d51 100644 --- a/indra/newview/llviewertexture.cpp +++ b/indra/newview/llviewertexture.cpp @@ -495,7 +495,6 @@ LLViewerTexture::LLViewerTexture(const U32 width, const U32 height, const U8 com mFullHeight = height ; mUseMipMaps = usemipmaps ; mComponents = components ; - setTexelsPerImage(); mID.generate(); sImageCount++; @@ -523,7 +522,6 @@ void LLViewerTexture::init(bool firstinit) mFullWidth = 0; mFullHeight = 0; - mTexelsPerImage = 0 ; mUseMipMaps = FALSE ; mComponents = 0 ; @@ -532,7 +530,7 @@ void LLViewerTexture::init(bool firstinit) mMaxVirtualSize = 0.f; mNeedsGLTexture = FALSE ; mMaxVirtualSizeResetInterval = 1; - mMaxVirtualSizeResetCounter = mMaxVirtualSizeResetInterval ; + mMaxVirtualSizeResetCounter = 1 ; mAdditionalDecodePriority = 0.f ; mParcelMedia = NULL ; mNumFaces = 0 ; @@ -840,8 +838,7 @@ BOOL LLViewerTexture::createGLTexture(S32 discard_level, const LLImageRaw* image { mFullWidth = mGLTexturep->getCurrentWidth() ; mFullHeight = mGLTexturep->getCurrentHeight() ; - mComponents = mGLTexturep->getComponents() ; - setTexelsPerImage(); + mComponents = mGLTexturep->getComponents() ; } return ret ; @@ -1059,16 +1056,9 @@ void LLViewerTexture::destroyGLTexture() } } -void LLViewerTexture::setTexelsPerImage() -{ - S32 fullwidth = llmin(mFullWidth,(S32)MAX_IMAGE_SIZE_DEFAULT); - S32 fullheight = llmin(mFullHeight,(S32)MAX_IMAGE_SIZE_DEFAULT); - mTexelsPerImage = (F32)fullwidth * fullheight; -} - BOOL LLViewerTexture::isLargeImage() { - return (S32)mTexelsPerImage > LLViewerTexture::sMinLargeImageSize ; + return mFullWidth * mFullHeight > LLViewerTexture::sMinLargeImageSize ; } //virtual @@ -1425,7 +1415,6 @@ BOOL LLViewerFetchedTexture::createTexture(S32 usename/*= 0*/) mFullWidth = mRawImage->getWidth(); mFullHeight = mRawImage->getHeight(); - setTexelsPerImage(); } else { @@ -1630,7 +1619,11 @@ F32 LLViewerFetchedTexture::calcDecodePriority() { // priority range = 100,000 - 500,000 S32 desired_discard = mDesiredDiscardLevel; - if (!isJustBound() && mCachedRawImageReady) + if (getDontDiscard()) + { + desired_discard -= 2; + } + else if (!isJustBound() && mCachedRawImageReady) { if(mBoostLevel < BOOST_HIGH) { @@ -1646,7 +1639,7 @@ F32 LLViewerFetchedTexture::calcDecodePriority() S32 ddiscard = cur_discard - desired_discard; ddiscard = llclamp(ddiscard, -1, MAX_DELTA_DISCARD_LEVEL_FOR_PRIORITY); - priority = (ddiscard + 1) * PRIORITY_DELTA_DISCARD_LEVEL_FACTOR; + priority = (ddiscard + 1) * PRIORITY_DELTA_DISCARD_LEVEL_FACTOR; } // Priority Formula: @@ -1654,51 +1647,19 @@ F32 LLViewerFetchedTexture::calcDecodePriority() // [10,000,000] + [1,000,000-9,000,000] + [100,000-500,000] + [1-20,000] + [0-999] if (priority > 0.0f) { - bool large_enough = mCachedRawImageReady && ((S32)mTexelsPerImage > sMinLargeImageSize) ; - if(large_enough) - { - //Note: - //to give small, low-priority textures some chance to be fetched, - //cut the priority in half if the texture size is larger than 256 * 256 and has a 64*64 ready. - priority *= 0.5f ; - } - pixel_priority = llclamp(pixel_priority, 0.0f, MAX_PRIORITY_PIXEL); priority += pixel_priority + PRIORITY_BOOST_LEVEL_FACTOR * mBoostLevel; if ( mBoostLevel > BOOST_HIGH) { - if(mBoostLevel > BOOST_SUPER_HIGH) - { - //for very important textures, always grant the highest priority. - priority += PRIORITY_BOOST_HIGH_FACTOR; - } - else if(mCachedRawImageReady) - { - //Note: - //to give small, low-priority textures some chance to be fetched, - //if high priority texture has a 64*64 ready, lower its fetching priority. - setAdditionalDecodePriority(0.5f) ; - } - else - { - priority += PRIORITY_BOOST_HIGH_FACTOR; - } + priority += PRIORITY_BOOST_HIGH_FACTOR; } if(mAdditionalDecodePriority > 0.0f) { // priority range += 1,000,000.f-9,000,000.f - F32 additional = PRIORITY_ADDITIONAL_FACTOR * (1.0 + mAdditionalDecodePriority * MAX_ADDITIONAL_LEVEL_FOR_PRIORITY); - if(large_enough) - { - //Note: - //to give small, low-priority textures some chance to be fetched, - //cut the additional priority to a quarter if the texture size is larger than 256 * 256 and has a 64*64 ready. - additional *= 0.25f ; - } - priority += additional; + priority += PRIORITY_ADDITIONAL_FACTOR * (1.0 + mAdditionalDecodePriority * MAX_ADDITIONAL_LEVEL_FOR_PRIORITY); } } return priority; @@ -1741,6 +1702,11 @@ void LLViewerFetchedTexture::updateVirtualSize() addTextureStats(0.f, FALSE) ;//reset } + if(mForceToSaveRawImage) + { + setAdditionalDecodePriority(0.75f) ; //boost the fetching priority + } + for(U32 i = 0 ; i < mNumFaces ; i++) { LLFace* facep = mFaceList[i] ; @@ -1853,7 +1819,6 @@ bool LLViewerFetchedTexture::updateFetch() { mFullWidth = mRawImage->getWidth() << mRawDiscardLevel; mFullHeight = mRawImage->getHeight() << mRawDiscardLevel; - setTexelsPerImage(); if(mFullWidth > MAX_IMAGE_SIZE || mFullHeight > MAX_IMAGE_SIZE) { @@ -2922,6 +2887,10 @@ void LLViewerLODTexture::processTextureStats() //static const F64 log_2 = log(2.0); static const F64 log_4 = log(4.0); + S32 fullwidth = llmin(mFullWidth,(S32)MAX_IMAGE_SIZE_DEFAULT); + S32 fullheight = llmin(mFullHeight,(S32)MAX_IMAGE_SIZE_DEFAULT); + mTexelsPerImage = (F32)fullwidth * fullheight; + F32 discard_level = 0.f; // If we know the output width and height, we can force the discard diff --git a/indra/newview/llviewertexture.h b/indra/newview/llviewertexture.h index b33d04e8dd..8b69408e4b 100644 --- a/indra/newview/llviewertexture.h +++ b/indra/newview/llviewertexture.h @@ -126,16 +126,15 @@ public: BOOST_HIGH = 10, BOOST_BUMP , BOOST_TERRAIN , // has to be high priority for minimap / low detail - BOOST_SELECTED , - BOOST_AVATAR_BAKED_SELF , - BOOST_AVATAR_SELF , // needed for baking avatar - BOOST_SUPER_HIGH , //textures higher than this need to be downloaded at the required resolution without delay. + BOOST_SELECTED , BOOST_HUD , + BOOST_AVATAR_BAKED_SELF , BOOST_ICON , BOOST_UI , BOOST_PREVIEW , BOOST_MAP , - BOOST_MAP_VISIBLE , + BOOST_MAP_VISIBLE , + BOOST_AVATAR_SELF , // needed for baking avatar BOOST_MAX_LEVEL, //other texture Categories @@ -269,7 +268,6 @@ protected: void init(bool firstinit) ; void reorganizeFaceList() ; void reorganizeVolumeList() ; - void setTexelsPerImage(); private: //note: do not make this function public. /*virtual*/ LLImageGL* getGLTexture() const ; @@ -282,7 +280,6 @@ protected: S32 mFullHeight; BOOL mUseMipMaps ; S8 mComponents; - F32 mTexelsPerImage; // Texels per image. mutable S8 mNeedsGLTexture; mutable F32 mMaxVirtualSize; // The largest virtual size of the image, in pixels - how much data to we need? mutable S32 mMaxVirtualSizeResetCounter ; @@ -601,6 +598,8 @@ private: void scaleDown() ; private: + + F32 mTexelsPerImage; // Texels per image. F32 mDiscardVirtualSize; // Virtual size used to calculate desired discard F32 mCalculatedDiscardLevel; // Last calculated discard level }; diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index d7360d8b3e..68406965f1 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -3330,26 +3330,29 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent) { // muted avatars update at 16 hz mUpdatePeriod = 16; } - else if (mVisibilityRank <= LLVOAvatar::sMaxVisible) + else if (visible && mVisibilityRank <= LLVOAvatar::sMaxVisible) { //first 25% of max visible avatars are not impostored mUpdatePeriod = 1; } - else if (mVisibilityRank > LLVOAvatar::sMaxVisible * 4) + else if (visible && mVisibilityRank > LLVOAvatar::sMaxVisible * 4) { //background avatars are REALLY slow updating impostors mUpdatePeriod = 16; } - else if (mVisibilityRank > LLVOAvatar::sMaxVisible * 3) + else if (visible && mVisibilityRank > LLVOAvatar::sMaxVisible * 3) { //back 25% of max visible avatars are slow updating impostors mUpdatePeriod = 8; } - else if (mImpostorPixelArea <= impostor_area) + else if (visible && mImpostorPixelArea <= impostor_area) { // stuff in between gets an update period based on pixel area mUpdatePeriod = llclamp((S32) sqrtf(impostor_area*4.f/mImpostorPixelArea), 2, 8); } + else if (visible && mVisibilityRank > LLVOAvatar::sMaxVisible) + { // force nearby impostors in ultra crowded areas + mUpdatePeriod = 2; + } else - { - //nearby avatars, update the impostors more frequently. - mUpdatePeriod = 4; + { // not impostored + mUpdatePeriod = 1; } visible = (LLDrawable::getCurrentFrame()+mID.mData[0])%mUpdatePeriod == 0 ? TRUE : FALSE; @@ -4412,12 +4415,10 @@ void LLVOAvatar::checkTextureLoading() return ; } -const F32 SELF_ADDITIONAL_PRI = 0.75f ; -const F32 ADDITIONAL_PRI = 0.5f; void LLVOAvatar::addBakedTextureStats( LLViewerFetchedTexture* imagep, F32 pixel_area, F32 texel_area_ratio, S32 boost_level) { //if this function is not called for the last 512 frames, the texture pipeline will stop fetching this texture. - static const S32 MAX_TEXTURE_VIRTURE_SIZE_RESET_INTERVAL = 512 ; //frames + static const S32 MAX_TEXTURE_VIRTURE_SIZE_RESET_INTERVAL = 512 ; //frames imagep->resetTextureStats(); imagep->setCanUseHTTP(false) ; //turn off http fetching for baked textures. @@ -4427,14 +4428,9 @@ void LLVOAvatar::addBakedTextureStats( LLViewerFetchedTexture* imagep, F32 pixel mMinPixelArea = llmin(pixel_area, mMinPixelArea); imagep->addTextureStats(pixel_area / texel_area_ratio); imagep->setBoostLevel(boost_level); - - if(boost_level != LLViewerTexture::BOOST_AVATAR_BAKED_SELF) - { - imagep->setAdditionalDecodePriority(ADDITIONAL_PRI) ; - } - else + if(boost_level == LLViewerTexture::BOOST_AVATAR_BAKED_SELF) { - imagep->setAdditionalDecodePriority(SELF_ADDITIONAL_PRI) ; + imagep->setAdditionalDecodePriority(1.0f) ; } } @@ -7445,7 +7441,7 @@ void LLVOAvatar::cullAvatarsByPixelArea() std::sort(LLCharacter::sInstances.begin(), LLCharacter::sInstances.end(), CompareScreenAreaGreater()); // Update the avatars that have changed status - U32 rank = 2; //1 is reserved for self. + U32 rank = 0; for (std::vector<LLCharacter*>::iterator iter = LLCharacter::sInstances.begin(); iter != LLCharacter::sInstances.end(); ++iter) { @@ -7469,7 +7465,7 @@ void LLVOAvatar::cullAvatarsByPixelArea() if (inst->isSelf()) { - inst->setVisibilityRank(1); + inst->setVisibilityRank(0); } else if (inst->mDrawable.notNull() && inst->mDrawable->isVisible()) { diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h index 6798fbbc33..5de406ff01 100644 --- a/indra/newview/llvoavatar.h +++ b/indra/newview/llvoavatar.h @@ -879,7 +879,7 @@ private: public: // Responsible for detecting the user's voice signal (and when the // user speaks, it puts a voice symbol over the avatar's head) and gesticulations - LLPointer<LLVoiceVisualizer> mVoiceVisualizer; + LLVoiceVisualizer* mVoiceVisualizer; int mCurrentGesticulationLevel; //-------------------------------------------------------------------- @@ -1059,6 +1059,5 @@ protected: // Shared with LLVOAvatarSelf *******************************************************************************/ }; // LLVOAvatar -extern const F32 SELF_ADDITIONAL_PRI; #endif // LL_VO_AVATAR_H diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp index b80e47e11a..4edbbb7402 100644 --- a/indra/newview/llvoavatarself.cpp +++ b/indra/newview/llvoavatarself.cpp @@ -2034,7 +2034,7 @@ void LLVOAvatarSelf::addLocalTextureStats( ETextureIndex type, LLViewerFetchedTe imagep->resetTextureStats(); imagep->setMaxVirtualSizeResetInterval(16); imagep->addTextureStats( desired_pixels / texel_area_ratio ); - imagep->setAdditionalDecodePriority(SELF_ADDITIONAL_PRI) ; + imagep->setAdditionalDecodePriority(1.0f) ; imagep->forceUpdateBindStats() ; if (imagep->getDiscardLevel() < 0) { diff --git a/indra/newview/llwearableitemslist.cpp b/indra/newview/llwearableitemslist.cpp index 60ebb9416e..3887f64618 100644 --- a/indra/newview/llwearableitemslist.cpp +++ b/indra/newview/llwearableitemslist.cpp @@ -85,8 +85,8 @@ void LLPanelWearableListItem::onMouseLeave(S32 x, S32 y, MASK mask) reshapeWidgets(); } -LLPanelWearableListItem::LLPanelWearableListItem(LLViewerInventoryItem* item, const LLPanelWearableListItem::Params& params) -: LLPanelInventoryListItemBase(item, params) +LLPanelWearableListItem::LLPanelWearableListItem(LLViewerInventoryItem* item) +: LLPanelInventoryListItemBase(item) { } @@ -101,19 +101,15 @@ LLPanelWearableOutfitItem* LLPanelWearableOutfitItem::create(LLViewerInventoryIt LLPanelWearableOutfitItem* list_item = NULL; if (item) { - const LLPanelInventoryListItemBase::Params& params = LLUICtrlFactory::getDefaultParams<LLPanelInventoryListItemBase>(); - - list_item = new LLPanelWearableOutfitItem(item, worn_indication_enabled, params); - list_item->initFromParams(params); - list_item->postBuild(); + list_item = new LLPanelWearableOutfitItem(item, worn_indication_enabled); + list_item->init(); } return list_item; } LLPanelWearableOutfitItem::LLPanelWearableOutfitItem(LLViewerInventoryItem* item, - bool worn_indication_enabled, - const LLPanelWearableOutfitItem::Params& params) -: LLPanelInventoryListItemBase(item, params) + bool worn_indication_enabled) +: LLPanelInventoryListItemBase(item) , mWornIndicationEnabled(worn_indication_enabled) { } @@ -136,17 +132,6 @@ void LLPanelWearableOutfitItem::updateItem(const std::string& name, ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// -static LLWidgetNameRegistry::StaticRegistrar sRegisterPanelClothingListItem(&typeid(LLPanelClothingListItem::Params), "clothing_list_item"); - - -LLPanelClothingListItem::Params::Params() -: up_btn("up_btn"), - down_btn("down_btn"), - edit_btn("edit_btn"), - lock_panel("lock_panel"), - edit_panel("edit_panel"), - lock_icon("lock_icon") -{} // static LLPanelClothingListItem* LLPanelClothingListItem::create(LLViewerInventoryItem* item) @@ -154,54 +139,24 @@ LLPanelClothingListItem* LLPanelClothingListItem::create(LLViewerInventoryItem* LLPanelClothingListItem* list_item = NULL; if(item) { - const LLPanelClothingListItem::Params& params = LLUICtrlFactory::getDefaultParams<LLPanelClothingListItem>(); - list_item = new LLPanelClothingListItem(item, params); - list_item->initFromParams(params); - list_item->postBuild(); + list_item = new LLPanelClothingListItem(item); + list_item->init(); } return list_item; } -LLPanelClothingListItem::LLPanelClothingListItem(LLViewerInventoryItem* item, const LLPanelClothingListItem::Params& params) - : LLPanelDeletableWearableListItem(item, params) -{ - LLButton::Params button_params = params.up_btn; - applyXUILayout(button_params, this); - addChild(LLUICtrlFactory::create<LLButton>(button_params)); - - button_params = params.down_btn; - applyXUILayout(button_params, this); - addChild(LLUICtrlFactory::create<LLButton>(button_params)); - - LLPanel::Params panel_params = params.lock_panel; - applyXUILayout(panel_params, this); - LLPanel* lock_panelp = LLUICtrlFactory::create<LLPanel>(panel_params); - addChild(lock_panelp); - - panel_params = params.edit_panel; - applyXUILayout(panel_params, this); - LLPanel* edit_panelp = LLUICtrlFactory::create<LLPanel>(panel_params); - addChild(edit_panelp); - - if (lock_panelp) +LLPanelClothingListItem::LLPanelClothingListItem(LLViewerInventoryItem* item) + : LLPanelDeletableWearableListItem(item) { - LLIconCtrl::Params icon_params = params.lock_icon; - applyXUILayout(icon_params, this); - lock_panelp->addChild(LLUICtrlFactory::create<LLIconCtrl>(icon_params)); } - if (edit_panelp) +LLPanelClothingListItem::~LLPanelClothingListItem() { - button_params = params.edit_btn; - applyXUILayout(button_params, this); - edit_panelp->addChild(LLUICtrlFactory::create<LLButton>(button_params)); - } - - setSeparatorVisible(false); } -LLPanelClothingListItem::~LLPanelClothingListItem() +void LLPanelClothingListItem::init() { + LLUICtrlFactory::getInstance()->buildPanel(this, "panel_clothing_list_item.xml"); } BOOL LLPanelClothingListItem::postBuild() @@ -223,62 +178,30 @@ BOOL LLPanelClothingListItem::postBuild() ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// -static LLWidgetNameRegistry::StaticRegistrar sRegisterPanelBodyPartsListItem(&typeid(LLPanelBodyPartsListItem::Params), "bodyparts_list_item"); - - -LLPanelBodyPartsListItem::Params::Params() -: edit_btn("edit_btn"), - edit_panel("edit_panel"), - lock_panel("lock_panel"), - lock_icon("lock_icon") -{} - // static LLPanelBodyPartsListItem* LLPanelBodyPartsListItem::create(LLViewerInventoryItem* item) { LLPanelBodyPartsListItem* list_item = NULL; if(item) { - const Params& params = LLUICtrlFactory::getDefaultParams<LLPanelBodyPartsListItem>(); - list_item = new LLPanelBodyPartsListItem(item, params); - list_item->initFromParams(params); - list_item->postBuild(); + list_item = new LLPanelBodyPartsListItem(item); + list_item->init(); } return list_item; } -LLPanelBodyPartsListItem::LLPanelBodyPartsListItem(LLViewerInventoryItem* item, const LLPanelBodyPartsListItem::Params& params) -: LLPanelWearableListItem(item, params) +LLPanelBodyPartsListItem::LLPanelBodyPartsListItem(LLViewerInventoryItem* item) +: LLPanelWearableListItem(item) { - LLPanel::Params panel_params = params.edit_panel; - applyXUILayout(panel_params, this); - LLPanel* edit_panelp = LLUICtrlFactory::create<LLPanel>(panel_params); - addChild(edit_panelp); - - panel_params = params.lock_panel; - applyXUILayout(panel_params, this); - LLPanel* lock_panelp = LLUICtrlFactory::create<LLPanel>(panel_params); - addChild(lock_panelp); - - if (edit_panelp) - { - LLButton::Params btn_params = params.edit_btn; - applyXUILayout(btn_params, this); - edit_panelp->addChild(LLUICtrlFactory::create<LLButton>(btn_params)); } - if (lock_panelp) +LLPanelBodyPartsListItem::~LLPanelBodyPartsListItem() { - LLIconCtrl::Params icon_params = params.lock_icon; - applyXUILayout(icon_params, this); - lock_panelp->addChild(LLUICtrlFactory::create<LLIconCtrl>(icon_params)); - } - - setSeparatorVisible(true); } -LLPanelBodyPartsListItem::~LLPanelBodyPartsListItem() +void LLPanelBodyPartsListItem::init() { + LLUICtrlFactory::getInstance()->buildPanel(this, "panel_body_parts_list_item.xml"); } BOOL LLPanelBodyPartsListItem::postBuild() @@ -291,11 +214,6 @@ BOOL LLPanelBodyPartsListItem::postBuild() return TRUE; } -static LLWidgetNameRegistry::StaticRegistrar sRegisterPanelDeletableWearableListItem(&typeid(LLPanelDeletableWearableListItem::Params), "deletable_wearable_list_item"); - -LLPanelDeletableWearableListItem::Params::Params() -: delete_btn("delete_btn") -{} // static LLPanelDeletableWearableListItem* LLPanelDeletableWearableListItem::create(LLViewerInventoryItem* item) @@ -303,22 +221,20 @@ LLPanelDeletableWearableListItem* LLPanelDeletableWearableListItem::create(LLVie LLPanelDeletableWearableListItem* list_item = NULL; if(item) { - const Params& params = LLUICtrlFactory::getDefaultParams<LLPanelDeletableWearableListItem>(); - list_item = new LLPanelDeletableWearableListItem(item, params); - list_item->initFromParams(params); - list_item->postBuild(); + list_item = new LLPanelDeletableWearableListItem(item); + list_item->init(); } return list_item; } -LLPanelDeletableWearableListItem::LLPanelDeletableWearableListItem(LLViewerInventoryItem* item, const LLPanelDeletableWearableListItem::Params& params) -: LLPanelWearableListItem(item, params) +LLPanelDeletableWearableListItem::LLPanelDeletableWearableListItem(LLViewerInventoryItem* item) +: LLPanelWearableListItem(item) { - LLButton::Params button_params = params.delete_btn; - applyXUILayout(button_params, this); - addChild(LLUICtrlFactory::create<LLButton>(button_params)); +} - setSeparatorVisible(true); +void LLPanelDeletableWearableListItem::init() +{ + LLUICtrlFactory::getInstance()->buildPanel(this, "panel_deletable_wearable_list_item.xml"); } BOOL LLPanelDeletableWearableListItem::postBuild() @@ -344,11 +260,8 @@ LLPanelAttachmentListItem* LLPanelAttachmentListItem::create(LLViewerInventoryIt LLPanelAttachmentListItem* list_item = NULL; if(item) { - const Params& params = LLUICtrlFactory::getDefaultParams<LLPanelDeletableWearableListItem>(); - - list_item = new LLPanelAttachmentListItem(item, params); - list_item->initFromParams(params); - list_item->postBuild(); + list_item = new LLPanelAttachmentListItem(item); + list_item->init(); } return list_item; } @@ -371,32 +284,27 @@ void LLPanelAttachmentListItem::updateItem(const std::string& name, ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// -static LLWidgetNameRegistry::StaticRegistrar sRegisterPanelDummyClothingListItem(&typeid(LLPanelDummyClothingListItem::Params), "dummy_clothing_list_item"); - -LLPanelDummyClothingListItem::Params::Params() -: add_panel("add_panel"), - add_btn("add_btn") -{} LLPanelDummyClothingListItem* LLPanelDummyClothingListItem::create(LLWearableType::EType w_type) { - const Params& params = LLUICtrlFactory::getDefaultParams<LLPanelDummyClothingListItem>(); - - LLPanelDummyClothingListItem* list_item = new LLPanelDummyClothingListItem(w_type, params); - list_item->initFromParams(params); - list_item->postBuild(); + LLPanelDummyClothingListItem* list_item = new LLPanelDummyClothingListItem(w_type); + list_item->init(); return list_item; } BOOL LLPanelDummyClothingListItem::postBuild() { + LLIconCtrl* icon = getChild<LLIconCtrl>("item_icon"); + setIconCtrl(icon); + setTitleCtrl(getChild<LLTextBox>("item_name")); + addWidgetToRightSide("btn_add_panel"); setIconImage(LLInventoryIcon::getIcon(LLAssetType::AT_CLOTHING, LLInventoryType::IT_NONE, mWearableType, FALSE)); updateItem(wearableTypeToString(mWearableType)); // Make it look loke clothing item - reserve space for 'delete' button - setLeftWidgetsWidth(getChildView("item_icon")->getRect().mLeft); + setLeftWidgetsWidth(icon->getRect().mLeft); setWidgetsVisible(false); reshapeWidgets(); @@ -409,23 +317,15 @@ LLWearableType::EType LLPanelDummyClothingListItem::getWearableType() const return mWearableType; } -LLPanelDummyClothingListItem::LLPanelDummyClothingListItem(LLWearableType::EType w_type, const LLPanelDummyClothingListItem::Params& params) -: LLPanelWearableListItem(NULL, params), - mWearableType(w_type) -{ - LLPanel::Params panel_params(params.add_panel); - applyXUILayout(panel_params, this); - LLPanel* add_panelp = LLUICtrlFactory::create<LLPanel>(panel_params); - addChild(add_panelp); - - if (add_panelp) +LLPanelDummyClothingListItem::LLPanelDummyClothingListItem(LLWearableType::EType w_type) + : LLPanelWearableListItem(NULL) + , mWearableType(w_type) { - LLButton::Params button_params(params.add_btn); - applyXUILayout(button_params, this); - add_panelp->addChild(LLUICtrlFactory::create<LLButton>(button_params)); } - setSeparatorVisible(true); +void LLPanelDummyClothingListItem::init() +{ + LLUICtrlFactory::getInstance()->buildPanel(this, "panel_dummy_clothing_list_item.xml"); } typedef std::map<LLWearableType::EType, std::string> clothing_to_string_map_t; diff --git a/indra/newview/llwearableitemslist.h b/indra/newview/llwearableitemslist.h index 367b648b3d..d16a2a89c8 100644 --- a/indra/newview/llwearableitemslist.h +++ b/indra/newview/llwearableitemslist.h @@ -68,7 +68,7 @@ public: protected: - LLPanelWearableListItem(LLViewerInventoryItem* item, const Params& params); + LLPanelWearableListItem(LLViewerInventoryItem* item); }; /** @@ -93,7 +93,7 @@ public: protected: LLPanelWearableOutfitItem(LLViewerInventoryItem* item, - bool worn_indication_enabled, const Params& params); + bool worn_indication_enabled); private: bool mWornIndicationEnabled; @@ -103,13 +103,6 @@ class LLPanelDeletableWearableListItem : public LLPanelWearableListItem { LOG_CLASS(LLPanelDeletableWearableListItem); public: - struct Params : public LLInitParam::Block<Params, LLPanelWearableListItem::Params> - { - Optional<LLButton::Params> delete_btn; - - Params(); - }; - static LLPanelDeletableWearableListItem* create(LLViewerInventoryItem* item); @@ -123,7 +116,9 @@ public: inline void setShowDeleteButton(bool show) { setShowWidget("btn_delete", show); } protected: - LLPanelDeletableWearableListItem(LLViewerInventoryItem* item, const Params& params); + LLPanelDeletableWearableListItem(LLViewerInventoryItem* item); + + /*virtual*/ void init(); }; /** Outfit list item for an attachment */ @@ -139,7 +134,7 @@ public: EItemState item_state = IS_DEFAULT); protected: - LLPanelAttachmentListItem(LLViewerInventoryItem* item, const Params& params) : LLPanelDeletableWearableListItem(item, params) {}; + LLPanelAttachmentListItem(LLViewerInventoryItem* item) : LLPanelDeletableWearableListItem(item) {}; }; /** @@ -152,18 +147,6 @@ class LLPanelClothingListItem : public LLPanelDeletableWearableListItem LOG_CLASS(LLPanelClothingListItem); public: - struct Params : public LLInitParam::Block<Params, LLPanelDeletableWearableListItem::Params> - { - Optional<LLButton::Params> up_btn, - down_btn, - edit_btn; - Optional<LLPanel::Params> lock_panel, - edit_panel; - Optional<LLIconCtrl::Params> lock_icon; - - Params(); - }; - static LLPanelClothingListItem* create(LLViewerInventoryItem* item); virtual ~LLPanelClothingListItem(); @@ -179,25 +162,18 @@ public: inline void setShowLockButton(bool show) { setShowWidget("btn_lock", show); } inline void setShowEditButton(bool show) { setShowWidget("btn_edit_panel", show); } -protected: - LLPanelClothingListItem(LLViewerInventoryItem* item, const Params& params); +protected: + LLPanelClothingListItem(LLViewerInventoryItem* item); + + /*virtual*/ void init(); }; class LLPanelBodyPartsListItem : public LLPanelWearableListItem { LOG_CLASS(LLPanelBodyPartsListItem); public: - struct Params : public LLInitParam::Block<Params, LLPanelWearableListItem::Params> - { - Optional<LLButton::Params> edit_btn; - Optional<LLPanel::Params> lock_panel, - edit_panel; - Optional<LLIconCtrl::Params> lock_icon; - - Params(); - }; static LLPanelBodyPartsListItem* create(LLViewerInventoryItem* item); @@ -212,7 +188,9 @@ public: inline void setShowEditButton(bool show) { setShowWidget("btn_edit_panel", show); } protected: - LLPanelBodyPartsListItem(LLViewerInventoryItem* item, const Params& params); + LLPanelBodyPartsListItem(LLViewerInventoryItem* item); + + /*virtual*/ void init(); }; @@ -224,19 +202,15 @@ protected: class LLPanelDummyClothingListItem : public LLPanelWearableListItem { public: - struct Params : public LLInitParam::Block<Params, LLPanelWearableListItem::Params> - { - Optional<LLPanel::Params> add_panel; - Optional<LLButton::Params> add_btn; - Params(); - }; static LLPanelDummyClothingListItem* create(LLWearableType::EType w_type); /*virtual*/ BOOL postBuild(); LLWearableType::EType getWearableType() const; protected: - LLPanelDummyClothingListItem(LLWearableType::EType w_type, const Params& params); + LLPanelDummyClothingListItem(LLWearableType::EType w_type); + + /*virtual*/ void init(); static std::string wearableTypeToString(LLWearableType::EType w_type); diff --git a/indra/newview/llwindebug.cpp b/indra/newview/llwindebug.cpp index 660245b02b..502fefd4ef 100644 --- a/indra/newview/llwindebug.cpp +++ b/indra/newview/llwindebug.cpp @@ -97,9 +97,6 @@ void LLWinDebug::init() // Load the dbghelp dll now, instead of waiting for the crash. // Less potential for stack mangling - // Don't install vectored exception handler if being debugged. - if(IsDebuggerPresent()) return; - if (s_first_run) { // First, try loading from the directory that the app resides in. @@ -138,42 +135,36 @@ void LLWinDebug::init() void LLWinDebug::writeDumpToFile(MINIDUMP_TYPE type, MINIDUMP_EXCEPTION_INFORMATION *ExInfop, const std::string& filename) { - // Temporary fix to switch out the code that writes the DMP file. - // Fix coming that doesn't write a mini dump file for regular C++ exceptions. - const bool enable_write_dump_file = false; - if ( enable_write_dump_file ) + if(f_mdwp == NULL || gDirUtilp == NULL) { - if(f_mdwp == NULL || gDirUtilp == NULL) - { - return; - } - else - { - std::string dump_path = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, filename); - - HANDLE hFile = CreateFileA(dump_path.c_str(), - GENERIC_WRITE, - FILE_SHARE_WRITE, - NULL, - CREATE_ALWAYS, - FILE_ATTRIBUTE_NORMAL, - NULL); + return; + } + else + { + std::string dump_path = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, filename); - if (hFile != INVALID_HANDLE_VALUE) - { - // Write the dump, ignoring the return value - f_mdwp(GetCurrentProcess(), - GetCurrentProcessId(), - hFile, - type, - ExInfop, - NULL, - NULL); - - CloseHandle(hFile); - } + HANDLE hFile = CreateFileA(dump_path.c_str(), + GENERIC_WRITE, + FILE_SHARE_WRITE, + NULL, + CREATE_ALWAYS, + FILE_ATTRIBUTE_NORMAL, + NULL); + if (hFile != INVALID_HANDLE_VALUE) + { + // Write the dump, ignoring the return value + f_mdwp(GetCurrentProcess(), + GetCurrentProcessId(), + hFile, + type, + ExInfop, + NULL, + NULL); + + CloseHandle(hFile); } + } } diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 4f4679a436..8d1edd1d41 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -7115,7 +7115,7 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in) if (LLPipeline::sWaterReflections && assertInitialized() && LLDrawPoolWater::sNeedsReflectionUpdate) { BOOL skip_avatar_update = FALSE; - if (!isAgentAvatarValid() || gAgentCamera.getCameraAnimating() || gAgentCamera.getCameraMode() != CAMERA_MODE_MOUSELOOK) + if (gAgentCamera.getCameraAnimating() || gAgentCamera.getCameraMode() != CAMERA_MODE_MOUSELOOK) { skip_avatar_update = TRUE; } diff --git a/indra/newview/skins/default/xui/da/floater_camera.xml b/indra/newview/skins/default/xui/da/floater_camera.xml index a1b98ec4ce..5b7ef6db54 100644 --- a/indra/newview/skins/default/xui/da/floater_camera.xml +++ b/indra/newview/skins/default/xui/da/floater_camera.xml @@ -22,6 +22,35 @@ Se objekt </floater.string> <panel name="controls"> + <panel name="preset_views_list"> + <panel_camera_item name="front_view"> + <panel_camera_item.text name="front_view_text"> + Se forfra + </panel_camera_item.text> + </panel_camera_item> + <panel_camera_item name="group_view"> + <panel_camera_item.text name="side_view_text"> + Se fra siden + </panel_camera_item.text> + </panel_camera_item> + <panel_camera_item name="rear_view"> + <panel_camera_item.text name="rear_view_text"> + Se bagfra + </panel_camera_item.text> + </panel_camera_item> + </panel> + <panel name="camera_modes_list"> + <panel_camera_item name="object_view"> + <panel_camera_item.text name="object_view_text"> + Se fra objekt + </panel_camera_item.text> + </panel_camera_item> + <panel_camera_item name="mouselook_view"> + <panel_camera_item.text name="mouselook_view_text"> + Førsteperson + </panel_camera_item.text> + </panel_camera_item> + </panel> <panel name="zoom" tool_tip="Zoom kamera mod fokus"> <joystick_rotate name="cam_rotate_stick" tool_tip="Kamera kredser rundt om fokus"/> <slider_bar name="zoom_slider" tool_tip="Zoom kamera mod fokus"/> diff --git a/indra/newview/skins/default/xui/da/menu_inventory.xml b/indra/newview/skins/default/xui/da/menu_inventory.xml index 96da784fe4..35551318d1 100644 --- a/indra/newview/skins/default/xui/da/menu_inventory.xml +++ b/indra/newview/skins/default/xui/da/menu_inventory.xml @@ -59,6 +59,7 @@ <menu_item_call label="Kopiér" name="Copy"/> <menu_item_call label="Indsæt" name="Paste"/> <menu_item_call label="Sæt ind som link" name="Paste As Link"/> + <menu_item_call label="Slet" name="Remove Link"/> <menu_item_call label="Slet" name="Delete"/> <menu_item_call label="Slet systemfolder" name="Delete System Folder"/> <menu_item_call label="start konference chat" name="Conference Chat Folder"/> diff --git a/indra/newview/skins/default/xui/da/menu_inventory_add.xml b/indra/newview/skins/default/xui/da/menu_inventory_add.xml index dc79e4109e..07f70d7190 100644 --- a/indra/newview/skins/default/xui/da/menu_inventory_add.xml +++ b/indra/newview/skins/default/xui/da/menu_inventory_add.xml @@ -5,6 +5,7 @@ <menu_item_call label="Lyd (L$[COST])..." name="Upload Sound"/> <menu_item_call label="Animation (L$[COST])..." name="Upload Animation"/> <menu_item_call label="Hent mange (L$[COST] pr. fil)..." name="Bulk Upload"/> + <menu_item_call label="Sæt standardværdier for upload rettigheder" name="perm prefs"/> </menu> <menu_item_call label="Ny mappe" name="New Folder"/> <menu_item_call label="Nyt script" name="New Script"/> diff --git a/indra/newview/skins/default/xui/da/menu_viewer.xml b/indra/newview/skins/default/xui/da/menu_viewer.xml index 0d36a08652..bb4ee1800a 100644 --- a/indra/newview/skins/default/xui/da/menu_viewer.xml +++ b/indra/newview/skins/default/xui/da/menu_viewer.xml @@ -92,7 +92,6 @@ <menu_item_call label="Sæt scripts til "Not Running"" name="Set Scripts to Not Running"/> </menu> <menu label="Valg" name="Options"> - <menu_item_call label="Sæt standard rettigheder" name="perm prefs"/> <menu_item_check label="Vis avancerede rettigheder" name="DebugPermissions"/> <menu_item_check label="Vælg kun egne objekter" name="Select Only My Objects"/> <menu_item_check label="Vis kun flytbare objekter" name="Select Only Movable Objects"/> @@ -110,6 +109,7 @@ <menu_item_call label="Lyd (L$[COST])..." name="Upload Sound"/> <menu_item_call label="Animation (L$[COST])..." name="Upload Animation"/> <menu_item_call label="Mange (L$[COST] pr. fil)..." name="Bulk Upload"/> + <menu_item_call label="Sæt standardværdier for upload rettigheder" name="perm prefs"/> </menu> </menu> <menu label="Hjælp" name="Help"> diff --git a/indra/newview/skins/default/xui/da/notifications.xml b/indra/newview/skins/default/xui/da/notifications.xml index 163df5b8d2..73a42e7fb8 100644 --- a/indra/newview/skins/default/xui/da/notifications.xml +++ b/indra/newview/skins/default/xui/da/notifications.xml @@ -231,7 +231,7 @@ Er du sikker på at du vil fortsætte? Slet favorit <nolink>[PICK]</nolink>? </notification> <notification name="DeleteOutfits"> - Slet valgte sæt? + Slet det valgte sæt? <usetemplate name="okcancelbuttons" notext="Annullér" yestext="OK"/> </notification> <notification name="CacheWillClear"> diff --git a/indra/newview/skins/default/xui/da/panel_nearby_media.xml b/indra/newview/skins/default/xui/da/panel_nearby_media.xml index 95bfc89f20..7d25b2af99 100644 --- a/indra/newview/skins/default/xui/da/panel_nearby_media.xml +++ b/indra/newview/skins/default/xui/da/panel_nearby_media.xml @@ -23,6 +23,12 @@ <button label="Mere >>" label_selected="Mindre <<" name="less_btn" tool_tip="Advancerede kontroller"/> </panel> <panel name="nearby_media_panel"> + <text name="nearby_media_title"> + Media tæt på + </text> + <text name="show_text"> + Vis: + </text> <combo_box name="show_combo"> <combo_box.item label="Overalt" name="All"/> <combo_box.item label="På dette sted" name="WithinParcel"/> diff --git a/indra/newview/skins/default/xui/da/strings.xml b/indra/newview/skins/default/xui/da/strings.xml index b6580a4515..9b33ca6f0d 100644 --- a/indra/newview/skins/default/xui/da/strings.xml +++ b/indra/newview/skins/default/xui/da/strings.xml @@ -181,6 +181,7 @@ <string name="TooltipMustSingleDrop"> Kun et enkelt element kan trækkes ind her </string> + <string name="TooltipPrice" value="L$[BELØB]:"/> <string name="TooltipHttpUrl"> Klik for at se denne hjemmeside </string> @@ -233,7 +234,6 @@ Klik for at starte secondlife:// kommando </string> <string name="CurrentURL" value=" Nuværende URL: [CurrentURL]"/> - <string name="TooltipPrice" value="L$[AMOUNT]: "/> <string name="SLurlLabelTeleport"> Teleportér til </string> @@ -882,12 +882,57 @@ <string name="invalid_not_worn"> ugyldig </string> + <string name="create_new_shape"> + Opret ny figur + </string> + <string name="create_new_skin"> + Opret nyt hud + </string> + <string name="create_new_hair"> + Opret nyt hår + </string> + <string name="create_new_eyes"> + Opret nye øjne + </string> + <string name="create_new_shirt"> + Opret ny trøje + </string> + <string name="create_new_pants"> + Opret nye bukser + </string> + <string name="create_new_shoes"> + Opret nye sko + </string> + <string name="create_new_socks"> + Opret nye strømper + </string> + <string name="create_new_jacket"> + Opret ny jakke + </string> + <string name="create_new_gloves"> + Opret nye handsker + </string> + <string name="create_new_undershirt"> + Opret ny undertrøje + </string> + <string name="create_new_underpants"> + Opret nye underbukser + </string> + <string name="create_new_skirt"> + Opret ny nederdel + </string> + <string name="create_new_alpha"> + Opret ny alpha + </string> + <string name="create_new_tattoo"> + Opret ny tatovering + </string> + <string name="create_new_invalid"> + ugyldig + </string> <string name="NewWearable"> Ny [WEARABLE_ITEM] </string> - <string name="CreateNewWearable"> - Opret [WEARABLE_TYPE] - </string> <string name="next"> Næste </string> @@ -1068,6 +1113,9 @@ <string name="InvFolder Favorite"> Favoritter </string> + <string name="InvFolder favorite"> + Favoritter + </string> <string name="InvFolder Current Outfit"> Nuværende sæt </string> @@ -1603,12 +1651,6 @@ <string name="BusyModeResponseDefault"> Beboeren du sendte en besked er 'optaget', hvilket betyder at han/hun ikke vil forstyrres. Din besked vil blive vis i hans/hendes IM panel til senere visning. </string> - <string name="NoOutfits"> - Du har ikke nogen sæt endnu. Prøv [secondlife:///app/search/all/ Search] - </string> - <string name="NoOutfitsTabsMatched"> - Fandt du ikke hvad du søgte? Prøv [secondlife:///app/search/all/[SEARCH_TERM] Search]. - </string> <string name="MuteByName"> (Efter navn) </string> diff --git a/indra/newview/skins/default/xui/de/floater_camera.xml b/indra/newview/skins/default/xui/de/floater_camera.xml index 418e717bf6..d49c207f98 100644 --- a/indra/newview/skins/default/xui/de/floater_camera.xml +++ b/indra/newview/skins/default/xui/de/floater_camera.xml @@ -22,6 +22,35 @@ Objekt ansehen </floater.string> <panel name="controls"> + <panel name="preset_views_list"> + <panel_camera_item name="front_view"> + <panel_camera_item.text name="front_view_text"> + Vorderansicht + </panel_camera_item.text> + </panel_camera_item> + <panel_camera_item name="group_view"> + <panel_camera_item.text name="side_view_text"> + Seitenansicht + </panel_camera_item.text> + </panel_camera_item> + <panel_camera_item name="rear_view"> + <panel_camera_item.text name="rear_view_text"> + Hinteransicht + </panel_camera_item.text> + </panel_camera_item> + </panel> + <panel name="camera_modes_list"> + <panel_camera_item name="object_view"> + <panel_camera_item.text name="object_view_text"> + Objektansicht + </panel_camera_item.text> + </panel_camera_item> + <panel_camera_item name="mouselook_view"> + <panel_camera_item.text name="mouselook_view_text"> + Mouselook + </panel_camera_item.text> + </panel_camera_item> + </panel> <panel name="zoom" tool_tip="Kamera auf Fokus zoomen"> <joystick_rotate name="cam_rotate_stick" tool_tip="Kamera um Fokus kreisen"/> <slider_bar name="zoom_slider" tool_tip="Kamera auf Fokus zoomen"/> diff --git a/indra/newview/skins/default/xui/de/menu_inventory.xml b/indra/newview/skins/default/xui/de/menu_inventory.xml index 59e93b113d..43722e0dcf 100644 --- a/indra/newview/skins/default/xui/de/menu_inventory.xml +++ b/indra/newview/skins/default/xui/de/menu_inventory.xml @@ -61,7 +61,7 @@ <menu_item_call label="Kopieren" name="Copy"/> <menu_item_call label="Einfügen" name="Paste"/> <menu_item_call label="Als Link einfügen" name="Paste As Link"/> - <menu_item_call label="Link entfernen" name="Remove Link"/> + <menu_item_call label="Löschen" name="Remove Link"/> <menu_item_call label="Löschen" name="Delete"/> <menu_item_call label="Systemordner löschen" name="Delete System Folder"/> <menu_item_call label="Konferenz-Chat starten" name="Conference Chat Folder"/> diff --git a/indra/newview/skins/default/xui/de/menu_inventory_add.xml b/indra/newview/skins/default/xui/de/menu_inventory_add.xml index 531edc02f1..dccee6712d 100644 --- a/indra/newview/skins/default/xui/de/menu_inventory_add.xml +++ b/indra/newview/skins/default/xui/de/menu_inventory_add.xml @@ -5,6 +5,7 @@ <menu_item_call label="Sound ([COST] L$)..." name="Upload Sound"/> <menu_item_call label="Animation ([COST] L$)..." name="Upload Animation"/> <menu_item_call label="Mehrfach-Upload ([COST] L$ pro Datei)..." name="Bulk Upload"/> + <menu_item_call label="Hochlade-Berechtigungen (Standard) festlegen" name="perm prefs"/> </menu> <menu_item_call label="Neuer Ordner" name="New Folder"/> <menu_item_call label="Neues Skript" name="New Script"/> diff --git a/indra/newview/skins/default/xui/de/menu_viewer.xml b/indra/newview/skins/default/xui/de/menu_viewer.xml index b9b6a8ed50..45ae8a0c95 100644 --- a/indra/newview/skins/default/xui/de/menu_viewer.xml +++ b/indra/newview/skins/default/xui/de/menu_viewer.xml @@ -94,7 +94,6 @@ <menu_item_call label="Skripts auf nicht ausführen einstellen" name="Set Scripts to Not Running"/> </menu> <menu label="Optionen" name="Options"> - <menu_item_call label="Hochlade-Berechtigungen (Standard) festlegen" name="perm prefs"/> <menu_item_check label="Erweiterte Berechtigungen anzeigen" name="DebugPermissions"/> <menu_item_check label="Nur meine Objekte auswählen" name="Select Only My Objects"/> <menu_item_check label="Nur bewegliche Objekte auswählen" name="Select Only Movable Objects"/> @@ -112,6 +111,7 @@ <menu_item_call label="Sound ([COST] L$)..." name="Upload Sound"/> <menu_item_call label="Animation ([COST] L$)..." name="Upload Animation"/> <menu_item_call label="Mehrfach-Upload ([COST] L$ pro Datei)..." name="Bulk Upload"/> + <menu_item_call label="Hochlade-Berechtigungen (Standard) festlegen" name="perm prefs"/> </menu> </menu> <menu label="Hilfe" name="Help"> diff --git a/indra/newview/skins/default/xui/de/notifications.xml b/indra/newview/skins/default/xui/de/notifications.xml index 968f0f9ed1..24582e4be3 100644 --- a/indra/newview/skins/default/xui/de/notifications.xml +++ b/indra/newview/skins/default/xui/de/notifications.xml @@ -366,7 +366,7 @@ Sind Sie sicher, dass Sie fortfahren wollen? <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/> </notification> <notification name="DeleteOutfits"> - Das/Die ausgewählte(n) Outfit(s) löschen? + Das ausgewählte Outfit löschen? <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/> </notification> <notification name="PromptGoToEventsPage"> diff --git a/indra/newview/skins/default/xui/de/panel_nearby_media.xml b/indra/newview/skins/default/xui/de/panel_nearby_media.xml index e633ae1dde..e7886fa149 100644 --- a/indra/newview/skins/default/xui/de/panel_nearby_media.xml +++ b/indra/newview/skins/default/xui/de/panel_nearby_media.xml @@ -23,6 +23,12 @@ <button label="Mehr >>" label_selected="Weniger <<" name="less_btn" tool_tip="Erweiterte Steuerung"/> </panel> <panel name="nearby_media_panel"> + <text name="nearby_media_title"> + Medien in der Nähe + </text> + <text name="show_text"> + Anzeigen: + </text> <combo_box name="show_combo"> <combo_box.item label="Alle" name="All"/> <combo_box.item label="Auf dieser Parzelle" name="WithinParcel"/> diff --git a/indra/newview/skins/default/xui/de/panel_people.xml b/indra/newview/skins/default/xui/de/panel_people.xml index 6db4cf76f1..8acb680175 100644 --- a/indra/newview/skins/default/xui/de/panel_people.xml +++ b/indra/newview/skins/default/xui/de/panel_people.xml @@ -56,7 +56,7 @@ Sie suchen nach Leuten? Verwenden Sie die [secondlife:///app/worldmap Karte]. <button label="IM" name="im_btn" tool_tip="Instant Messenger öffnen"/> <button label="Anrufen" name="call_btn" tool_tip="Diesen Einwohner anrufen"/> <button label="Teilen" name="share_btn" tool_tip="Inventarobjekt teilen"/> - <button label="Teleportieren" name="teleport_btn" tool_tip="Teleport anbieten"/> + <button label="Teleport" name="teleport_btn" tool_tip="Teleport anbieten"/> <button label="Gruppenprofil" name="group_info_btn" tool_tip="Gruppeninformationen anzeigen"/> <button label="Gruppen-Chat" name="chat_btn" tool_tip="Chat öffnen"/> <button label="Gruppe anrufen" name="group_call_btn" tool_tip="Diese Gruppe anrufen"/> diff --git a/indra/newview/skins/default/xui/de/strings.xml b/indra/newview/skins/default/xui/de/strings.xml index 91aad12e72..abe03e1adb 100644 --- a/indra/newview/skins/default/xui/de/strings.xml +++ b/indra/newview/skins/default/xui/de/strings.xml @@ -196,6 +196,7 @@ <string name="TooltipMustSingleDrop"> Sie können nur ein einzelnes Objekt hierher ziehen </string> + <string name="TooltipPrice" value="[AMOUNT] L$"/> <string name="TooltipHttpUrl"> Anklicken, um Webseite anzuzeigen </string> @@ -248,7 +249,6 @@ Anklicken, um Befehl secondlife:// auszuführen </string> <string name="CurrentURL" value=" CurrentURL: [CurrentURL]"/> - <string name="TooltipPrice" value="[AMOUNT]L$: "/> <string name="SLurlLabelTeleport"> Teleportieren nach </string> @@ -906,12 +906,57 @@ <string name="invalid_not_worn"> ungültig </string> + <string name="create_new_shape"> + Neue Form/Gestalt erstellen + </string> + <string name="create_new_skin"> + Neue Haut erstellen + </string> + <string name="create_new_hair"> + Neue Haare erstellen + </string> + <string name="create_new_eyes"> + Neue Augen erstellen + </string> + <string name="create_new_shirt"> + Neues Hemd erstellen + </string> + <string name="create_new_pants"> + Neue Hose erstellen + </string> + <string name="create_new_shoes"> + Neue Schuhe erstellen + </string> + <string name="create_new_socks"> + Neue Socken erstellen + </string> + <string name="create_new_jacket"> + Neue Jacke erstellen + </string> + <string name="create_new_gloves"> + Neue Handschuhe erstellen + </string> + <string name="create_new_undershirt"> + Neues Unterhemd erstellen + </string> + <string name="create_new_underpants"> + Neue Unterhose erstellen + </string> + <string name="create_new_skirt"> + Neuer Rock erstellen + </string> + <string name="create_new_alpha"> + Neue Alpha erstellen + </string> + <string name="create_new_tattoo"> + Neue Tätowierung erstellen + </string> + <string name="create_new_invalid"> + ungültig + </string> <string name="NewWearable"> Neue/r/s [WEARABLE_ITEM] </string> - <string name="CreateNewWearable"> - [WEARABLE_TYPE] erstellen - </string> <string name="next"> Weiter </string> @@ -1098,6 +1143,9 @@ <string name="InvFolder Favorite"> Favoriten </string> + <string name="InvFolder favorite"> + Favoriten + </string> <string name="InvFolder Current Outfit"> Aktuelles Outfit </string> @@ -1639,12 +1687,6 @@ <string name="BusyModeResponseDefault"> Der Einwohner/Die Einwohnerin ist „beschäftigt”, d.h. er/sie möchte im Moment nicht gestört werden. Ihre Nachricht wird dem Einwohner/der Einwohnerin als IM angezeigt, und kann später beantwortet werden. </string> - <string name="NoOutfits"> - Sie haben noch Outfits. Versuchen Sie es mit der [secondlife:///app/search/all Suche]. - </string> - <string name="NoOutfitsTabsMatched"> - Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/all/[SEARCH_TERM] Suche]. - </string> <string name="MuteByName"> (Nach Namen) </string> diff --git a/indra/newview/skins/default/xui/en/floater_camera.xml b/indra/newview/skins/default/xui/en/floater_camera.xml index da2be18db6..8c3aa2c9a4 100644 --- a/indra/newview/skins/default/xui/en/floater_camera.xml +++ b/indra/newview/skins/default/xui/en/floater_camera.xml @@ -71,8 +71,7 @@ image_name="Cam_Preset_Front_Off" /> <panel_camera_item.selected_picture image_name="Cam_Preset_Front_On" /> - <panel_camera_item.text - name="front_view_text"> + <panel_camera_item.text> Front View </panel_camera_item.text> </panel_camera_item> @@ -86,8 +85,7 @@ image_name="Cam_Preset_Side_Off" /> <panel_camera_item.selected_picture image_name="Cam_Preset_Side_On" /> - <panel_camera_item.text - name="side_view_text"> + <panel_camera_item.text> Side View </panel_camera_item.text> </panel_camera_item> @@ -102,8 +100,7 @@ image_name="Cam_Preset_Back_Off" /> <panel_camera_item.selected_picture image_name="Cam_Preset_Back_On" /> - <panel_camera_item.text - name="rear_view_text"> + <panel_camera_item.text> Rear View </panel_camera_item.text> </panel_camera_item> @@ -125,8 +122,7 @@ <panel_camera_item.mousedown_callback function="CameraPresets.ChangeView" parameter="object_view" /> - <panel_camera_item.text - name="object_view_text"> + <panel_camera_item.text> Object View </panel_camera_item.text> <panel_camera_item.picture @@ -140,8 +136,7 @@ <panel_camera_item.mousedown_callback function="CameraPresets.ChangeView" parameter="mouselook_view" /> - <panel_camera_item.text - name="mouselook_view_text"> + <panel_camera_item.text> Mouselook View </panel_camera_item.text> <panel_camera_item.picture diff --git a/indra/newview/skins/default/xui/en/menu_inventory_add.xml b/indra/newview/skins/default/xui/en/menu_inventory_add.xml index ae98abf4fb..5ad099e2d9 100644 --- a/indra/newview/skins/default/xui/en/menu_inventory_add.xml +++ b/indra/newview/skins/default/xui/en/menu_inventory_add.xml @@ -50,13 +50,8 @@ function="File.UploadBulk" parameter="" /> </menu_item_call> - <menu_item_call - label="Set Default Upload Permissions" - name="perm prefs"> - <menu_item_call.on_click - function="Floater.Toggle" - parameter="perm_prefs" /> - </menu_item_call> + <menu_item_separator + layout="topleft" /> </menu> <menu_item_call diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index ccdc8266be..a8fe1bc984 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -707,6 +707,13 @@ label="Options" name="Options" tear_off="true"> + <menu_item_call + label="Set Default Upload Permissions" + name="perm prefs"> + <menu_item_call.on_click + function="Floater.Toggle" + parameter="perm_prefs" /> + </menu_item_call> <menu_item_check label="Show Advanced Permissions" name="DebugPermissions"> @@ -866,13 +873,8 @@ function="File.UploadBulk" parameter="" /> </menu_item_call> - <menu_item_call - label="Set Default Upload Permissions" - name="perm prefs"> - <menu_item_call.on_click - function="Floater.Toggle" - parameter="perm_prefs" /> - </menu_item_call> + <menu_item_separator + layout="topleft" /> </menu> </menu> <menu diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index bf2cb636c8..616904d7f6 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -819,7 +819,7 @@ Delete pick <nolink>[PICK]</nolink>? icon="alertmodal.tga" name="DeleteOutfits" type="alertmodal"> - Delete the selected outfit? + Delete the selected outfit/s? <usetemplate name="okcancelbuttons" notext="Cancel" @@ -5577,6 +5577,7 @@ If you stay in this region you will be logged out. <notification icon="notify.tga" name="LoadWebPage" + persist="true" type="notify"> Load web page [URL]? @@ -5676,6 +5677,7 @@ Grant this request? <notification icon="notify.tga" name="ScriptDialog" + persist="true" type="notify"> [NAME]'s '[TITLE]' [MESSAGE] @@ -5690,6 +5692,7 @@ Grant this request? <notification icon="notify.tga" name="ScriptDialogGroup" + persist="true" type="notify"> [GROUPNAME]'s '[TITLE]' [MESSAGE] diff --git a/indra/newview/skins/default/xui/en/panel_nearby_media.xml b/indra/newview/skins/default/xui/en/panel_nearby_media.xml index 584ca8b3b5..d8675b3512 100644 --- a/indra/newview/skins/default/xui/en/panel_nearby_media.xml +++ b/indra/newview/skins/default/xui/en/panel_nearby_media.xml @@ -104,7 +104,6 @@ follows="top|left" font="SansSerif" left="10" - name="nearby_media_title" width="100"> Nearby Media </text> @@ -115,7 +114,6 @@ font="SansSerif" top_pad="15" left="10" - name="show_text" width="40"> Show: </text> 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 d18f0d57ca..b43aa0a824 100644 --- a/indra/newview/skins/default/xui/en/panel_outfits_list.xml +++ b/indra/newview/skins/default/xui/en/panel_outfits_list.xml @@ -14,9 +14,9 @@ background_visible="true" bg_alpha_color="DkGray2" 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.value="NoOutfitsTabsMatched" no_matched_tabs_text.v_pad="10" - no_visible_tabs_text.value="You don't have any outfits yet. Try [secondlife:///app/search/all/ Search]" + no_visible_tabs_text.value="NoOutfits" follows="all" height="400" layout="topleft" diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index 2e865af1e6..f75580ae72 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -1957,9 +1957,6 @@ Clears (deletes) the media and all params from the given face. <string name="InvFolder Animations">Animations</string> <string name="InvFolder Gestures">Gestures</string> <string name="InvFolder Favorite">Favorites</string> - <!-- historically default name of the Favorites folder can start from either "f" or "F" letter. - We should localize both of them with the same value --> - <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> @@ -2198,6 +2195,10 @@ Clears (deletes) the media and all params from the given face. <!-- panel preferences general --> <string name="BusyModeResponseDefault">The Resident you messaged is in 'busy mode' which means they have requested not to be disturbed. Your message will still be shown in their IM panel for later viewing.</string> + <!-- Outfits Panel --> + <string name="NoOutfits">You don't have any outfits yet. Try [secondlife:///app/search/all/ Search]</string> + <string name="NoOutfitsTabsMatched">Didn't find what you're looking for? Try [secondlife:///app/search/all/[SEARCH_TERM] Search].</string> + <!-- Mute --> <string name="MuteByName">(By name)</string> <string name="MuteAgent">(Resident)</string> diff --git a/indra/newview/skins/default/xui/en/widgets/bodyparts_list_item.xml b/indra/newview/skins/default/xui/en/widgets/bodyparts_list_item.xml deleted file mode 100644 index c08267de82..0000000000 --- a/indra/newview/skins/default/xui/en/widgets/bodyparts_list_item.xml +++ /dev/null @@ -1,73 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<bodyparts_list_item - follows="top|right|left" - height="23" - layout="topleft" - left="0" - name="wearable_item" - bottom="0" - width="380"> - <item_icon - height="16" - follows="top|left" - image_name="Inv_Object" - layout="topleft" - left="0" - name="item_icon" - top="2" - width="16" /> - <item_name - follows="left|right" - height="16" - layout="topleft" - left="21" - allow_html="false" - use_ellipses="true" - name="item_name" - text_color="white" - top="5" - value="..." - width="359" /> - <lock_panel - background_visible="false" - name="btn_lock" - layout="topleft" - follows="top|right" - top="0" - left="0" - height="23" - width="23" - tab_stop="false" - tool_tip="You don't have permission to edit"/> - <lock_icon - name="btn_lock1" - layout="topleft" - follows="top|right" - image_name="Locked_Icon" - top="2" - left="5" - height="13" - width="9" - tab_stop="false" /> - <edit_panel - background_visible="false" - name="btn_edit_panel" - layout="topleft" - follows="top|right" - top="1" - left="17" - height="23" - width="26" - tab_stop="false"/> - <edit_btn - name="btn_edit" - layout="topleft" - follows="top|right" - image_overlay="Edit_Wrench" - top="0" - left="0" - height="23" - width="23" - tab_stop="false" - tool_tip="Edit this shape"/> -</bodyparts_list_item> diff --git a/indra/newview/skins/default/xui/en/widgets/clothing_list_item.xml b/indra/newview/skins/default/xui/en/widgets/clothing_list_item.xml deleted file mode 100644 index f7a05e9bc4..0000000000 --- a/indra/newview/skins/default/xui/en/widgets/clothing_list_item.xml +++ /dev/null @@ -1,93 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<clothing_list_item - follows="top|right|left" - height="23" - layout="topleft" - left="0" - name="wearable_item" - bottom="0" - width="380"> - <lock_icon - height="16" - follows="top|left" - image_name="Inv_Object" - layout="topleft" - left="21" - name="item_icon" - top="2" - width="16" /> - <item_name - follows="left|right" - height="16" - layout="topleft" - left="42" - allow_html="false" - use_ellipses="true" - name="item_name" - text_color="white" - top="5" - value="..." - width="359" /> - <up_btn - name="btn_move_up" - layout="topleft" - follows="top|right" - image_overlay="UpArrow_Off" - top="1" - left="0" - height="23" - width="23" - tab_stop="false" /> - <down_btn - name="btn_move_down" - layout="topleft" - follows="top|right" - image_overlay="DownArrow_Off" - top="1" - left="26" - height="23" - width="23" - tab_stop="false" /> - <lock_panel - background_visible="false" - name="btn_lock" - layout="topleft" - follows="top|right" - top="0" - left="0" - height="23" - width="23" - tab_stop="false" - tool_tip="You don't have permission to edit"/> - <lock_icon - name="btn_lock1" - layout="topleft" - follows="top|right" - image_name="Locked_Icon" - top="2" - left="5" - height="13" - width="9" - tab_stop="false" /> - <edit_panel - background_visible="false" - name="btn_edit_panel" - layout="topleft" - follows="top|right" - top="0" - left="26" - height="23" - width="26" - tab_stop="false"/> - <edit_btn - name="btn_edit" - layout="topleft" - follows="top|right" - image_overlay="Edit_Wrench" - top="1" - left="0" - height="23" - width="23" - tab_stop="false" - tool_tip="Edit this wearable"/> -</clothing_list_item> diff --git a/indra/newview/skins/default/xui/en/widgets/deletable_wearable_list_item.xml b/indra/newview/skins/default/xui/en/widgets/deletable_wearable_list_item.xml deleted file mode 100644 index 88a4682e13..0000000000 --- a/indra/newview/skins/default/xui/en/widgets/deletable_wearable_list_item.xml +++ /dev/null @@ -1,43 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<deletable_wearable_list_item - follows="top|right|left" - height="23" - layout="topleft" - left="0" - name="deletable_wearable_item" - bottom="0" - width="380"> - <delete_btn - name="btn_delete" - layout="topleft" - follows="top|left" - image_unselected="Toast_CloseBtn" - image_selected="Toast_CloseBtn" - top="3" - left="0" - height="18" - width="18" - tab_stop="false" - tool_tip="Remove from outfit"/> - <item_icon - height="16" - follows="top|left" - image_name="Inv_Object" - layout="topleft" - left="24" - name="item_icon" - top="2" - width="16" /> - <item_name - follows="left|right" - height="16" - layout="topleft" - left="45" - allow_html="false" - use_ellipses="true" - name="item_name" - text_color="white" - top="5" - value="..." - width="359" /> -</deletable_wearable_list_item> diff --git a/indra/newview/skins/default/xui/en/widgets/dummy_clothing_list_item.xml b/indra/newview/skins/default/xui/en/widgets/dummy_clothing_list_item.xml deleted file mode 100644 index 80a877a6c2..0000000000 --- a/indra/newview/skins/default/xui/en/widgets/dummy_clothing_list_item.xml +++ /dev/null @@ -1,52 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<dummy_clothing_list_item - follows="top|right|left" - height="23" - layout="topleft" - left="0" - name="dummy_clothing_item" - bottom="0" - width="380"> - <item_icon - height="16" - color="0.75 0.75 0.75 1" - follows="top|left" - image_name="Inv_Object" - layout="topleft" - left="20" - name="item_icon" - top="2" - width="16" /> - <item_name - follows="left|right" - height="16" - layout="topleft" - left="41" - allow_html="false" - use_ellipses="true" - name="item_name" - text_color="LtGray_50" - top="4" - value="..." - width="359" /> - <add_panel - name="btn_add_panel" - layout="topleft" - follows="top|right" - top="0" - left="0" - height="23" - width="26" - tab_stop="false"/> - <add_btn - name="btn_add" - layout="topleft" - follows="top|right" - image_overlay="AddItem_Off" - top="0" - left="0" - height="23" - width="23" - tab_stop="false" - tool_tip="Add more items of this type" /> -</dummy_clothing_list_item> diff --git a/indra/newview/skins/default/xui/en/widgets/inventory_list_item.xml b/indra/newview/skins/default/xui/en/widgets/inventory_list_item.xml index 0a5930c820..50be0ac1a1 100644 --- a/indra/newview/skins/default/xui/en/widgets/inventory_list_item.xml +++ b/indra/newview/skins/default/xui/en/widgets/inventory_list_item.xml @@ -1,13 +1,11 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <inventory_list_item - follows="top|right|left" - height="20" - name="inventory_item" - tab_stop="false" - hover_image="ListItem_Over" - selected_image="ListItem_Select" - separator_image="Wearables_Divider" - width="380"> + height="0" + layout="topleft" + left="0" + name="inventory_list_item" + top="0" + width="0"> <!-- DEFAULT style for inventory list item --> <default_style font="SansSerifSmall" @@ -18,25 +16,4 @@ font="SansSerifSmall" font.style="BOLD" color="EmphasisColor" /> - <item_icon - height="16" - follows="top|left" - image_name="Inv_Object" - layout="topleft" - left="0" - name="item_icon" - top="0" - width="16" /> - <item_name - follows="left|right" - height="20" - layout="topleft" - left="21" - allow_html="false" - use_ellipses="true" - name="item_name" - text_color="white" - top="4" - value="..." - width="359" /> </inventory_list_item> diff --git a/indra/newview/skins/default/xui/es/floater_camera.xml b/indra/newview/skins/default/xui/es/floater_camera.xml index c625407ba2..ccf3d4bf91 100644 --- a/indra/newview/skins/default/xui/es/floater_camera.xml +++ b/indra/newview/skins/default/xui/es/floater_camera.xml @@ -22,6 +22,35 @@ Centrar el objeto </floater.string> <panel name="controls"> + <panel name="preset_views_list"> + <panel_camera_item name="front_view"> + <panel_camera_item.text name="front_view_text"> + De frente + </panel_camera_item.text> + </panel_camera_item> + <panel_camera_item name="group_view"> + <panel_camera_item.text name="side_view_text"> + Vista lateral + </panel_camera_item.text> + </panel_camera_item> + <panel_camera_item name="rear_view"> + <panel_camera_item.text name="rear_view_text"> + Desde detrás + </panel_camera_item.text> + </panel_camera_item> + </panel> + <panel name="camera_modes_list"> + <panel_camera_item name="object_view"> + <panel_camera_item.text name="object_view_text"> + Vista de objeto + </panel_camera_item.text> + </panel_camera_item> + <panel_camera_item name="mouselook_view"> + <panel_camera_item.text name="mouselook_view_text"> + Vista subjetiva + </panel_camera_item.text> + </panel_camera_item> + </panel> <panel name="zoom" tool_tip="Hacer zoom con la cámara en lo enfocado"> <joystick_rotate name="cam_rotate_stick" tool_tip="La cámara gira alrededor del punto de vista"/> <slider_bar name="zoom_slider" tool_tip="Hacer zoom en lo enfocado"/> diff --git a/indra/newview/skins/default/xui/es/menu_inventory.xml b/indra/newview/skins/default/xui/es/menu_inventory.xml index 2937b0c4e3..94ee162bbc 100644 --- a/indra/newview/skins/default/xui/es/menu_inventory.xml +++ b/indra/newview/skins/default/xui/es/menu_inventory.xml @@ -61,7 +61,7 @@ <menu_item_call label="Copiar" name="Copy"/> <menu_item_call label="Pegar" name="Paste"/> <menu_item_call label="Pegar como enlace" name="Paste As Link"/> - <menu_item_call label="Quitar el enlace" name="Remove Link"/> + <menu_item_call label="Borrar" name="Remove Link"/> <menu_item_call label="Borrar" name="Delete"/> <menu_item_call label="Borrar carpeta del sistema" name="Delete System Folder"/> <menu_item_call label="Empezar multiconferencia" name="Conference Chat Folder"/> diff --git a/indra/newview/skins/default/xui/es/menu_inventory_add.xml b/indra/newview/skins/default/xui/es/menu_inventory_add.xml index 91cb4a08ff..ba106e8335 100644 --- a/indra/newview/skins/default/xui/es/menu_inventory_add.xml +++ b/indra/newview/skins/default/xui/es/menu_inventory_add.xml @@ -5,6 +5,7 @@ <menu_item_call label="Sonido ([COST] L$)..." name="Upload Sound"/> <menu_item_call label="Animación ([COST] L$)..." name="Upload Animation"/> <menu_item_call label="Masivo ([COST] L$ por archivo)..." name="Bulk Upload"/> + <menu_item_call label="Configurar los permisos por defecto de subida" name="perm prefs"/> </menu> <menu_item_call label="Carpeta nueva" name="New Folder"/> <menu_item_call label="Script nuevo" name="New Script"/> diff --git a/indra/newview/skins/default/xui/es/menu_viewer.xml b/indra/newview/skins/default/xui/es/menu_viewer.xml index 66c0bf9311..f6ad18cf3a 100644 --- a/indra/newview/skins/default/xui/es/menu_viewer.xml +++ b/indra/newview/skins/default/xui/es/menu_viewer.xml @@ -94,7 +94,6 @@ <menu_item_call label="Configurar scripts como no ejecutándose" name="Set Scripts to Not Running"/> </menu> <menu label="Opciones" name="Options"> - <menu_item_call label="Configurar los permisos por defecto de subida" name="perm prefs"/> <menu_item_check label="Mostrar los permisos avanzados" name="DebugPermissions"/> <menu_item_check label="Seleccionar sólo mis objetos" name="Select Only My Objects"/> <menu_item_check label="Seleccionar sólo los objetos movibles" name="Select Only Movable Objects"/> @@ -112,6 +111,7 @@ <menu_item_call label="Sonido ([COST] L$)..." name="Upload Sound"/> <menu_item_call label="Animación ([COST] L$)..." name="Upload Animation"/> <menu_item_call label="Masivo ([COST] L$ por archivo)..." name="Bulk Upload"/> + <menu_item_call label="Configurar los permisos por defecto de subida" name="perm prefs"/> </menu> </menu> <menu label="Ayuda" name="Help"> diff --git a/indra/newview/skins/default/xui/es/panel_nearby_media.xml b/indra/newview/skins/default/xui/es/panel_nearby_media.xml index d1a14c877f..b78ecd0cd0 100644 --- a/indra/newview/skins/default/xui/es/panel_nearby_media.xml +++ b/indra/newview/skins/default/xui/es/panel_nearby_media.xml @@ -23,6 +23,12 @@ <button label="Más >>" label_selected="Menos <<" name="less_btn" tool_tip="Controles avanzados"/> </panel> <panel name="nearby_media_panel"> + <text name="nearby_media_title"> + Media cercanos + </text> + <text name="show_text"> + Mostrar: + </text> <combo_box name="show_combo"> <combo_box.item label="Todo" name="All"/> <combo_box.item label="En esta parcela" name="WithinParcel"/> diff --git a/indra/newview/skins/default/xui/es/strings.xml b/indra/newview/skins/default/xui/es/strings.xml index 917b0641cc..392e289a75 100644 --- a/indra/newview/skins/default/xui/es/strings.xml +++ b/indra/newview/skins/default/xui/es/strings.xml @@ -184,6 +184,7 @@ <string name="TooltipMustSingleDrop"> Aquí se puede arrastrar sólo un ítem </string> + <string name="TooltipPrice" value="[AMOUNT] L$:"/> <string name="TooltipHttpUrl"> Pulsa para ver esta página web </string> @@ -236,7 +237,6 @@ Pulsa para ejecutar el comando secondlife:// </string> <string name="CurrentURL" value="URL actual: [CurrentURL]"/> - <string name="TooltipPrice" value="[AMOUNT]L$: "/> <string name="SLurlLabelTeleport"> Teleportarse a </string> @@ -885,12 +885,57 @@ <string name="invalid_not_worn"> no válido/a </string> + <string name="create_new_shape"> + Crear una anatomía nueva + </string> + <string name="create_new_skin"> + Crear una piel nueva + </string> + <string name="create_new_hair"> + Crear pelo nuevo + </string> + <string name="create_new_eyes"> + Crear ojos nuevos + </string> + <string name="create_new_shirt"> + Crear una camisa nueva + </string> + <string name="create_new_pants"> + Crear unos pantalones nuevos + </string> + <string name="create_new_shoes"> + Crear unos zapatos nuevos + </string> + <string name="create_new_socks"> + Crear unos calcetines nuevos + </string> + <string name="create_new_jacket"> + Crear una chaqueta nueva + </string> + <string name="create_new_gloves"> + Crear unos guantes nuevos + </string> + <string name="create_new_undershirt"> + Crear una camiseta nueva + </string> + <string name="create_new_underpants"> + Crear ropa interior nueva + </string> + <string name="create_new_skirt"> + Crear una falda nueva + </string> + <string name="create_new_alpha"> + Crear una capa alfa nueva + </string> + <string name="create_new_tattoo"> + Crear un tatuaje nuevo + </string> + <string name="create_new_invalid"> + no válido/a + </string> <string name="NewWearable"> Nuevo [WEARABLE_ITEM] </string> - <string name="CreateNewWearable"> - Crear [WEARABLE_TYPE] - </string> <string name="next"> Siguiente </string> @@ -1071,6 +1116,9 @@ <string name="InvFolder Favorite"> Favoritos </string> + <string name="InvFolder favorite"> + Favoritos + </string> <string name="InvFolder Current Outfit"> Vestuario actual </string> @@ -1606,12 +1654,6 @@ <string name="BusyModeResponseDefault"> El Residente al que has enviado un mensaje ha solicitado que no se le moleste porque está en modo ocupado. Podrá ver tu mensaje más adelante, ya que éste aparecerá en su panel de MI. </string> - <string name="NoOutfits"> - Todavía no tienes vestuario. Intenta con [secondlife:///app/search/all/ Buscar] - </string> - <string name="NoOutfitsTabsMatched"> - ¿No encuentras lo que buscas? Intenta con [secondlife:///app/search/all/[SEARCH_TERM] Buscar]. - </string> <string name="MuteByName"> (Por el nombre) </string> diff --git a/indra/newview/skins/default/xui/fr/floater_camera.xml b/indra/newview/skins/default/xui/fr/floater_camera.xml index b0834fe170..1d62a89ff2 100644 --- a/indra/newview/skins/default/xui/fr/floater_camera.xml +++ b/indra/newview/skins/default/xui/fr/floater_camera.xml @@ -22,6 +22,35 @@ Voir l'objet </floater.string> <panel name="controls"> + <panel name="preset_views_list"> + <panel_camera_item name="front_view"> + <panel_camera_item.text name="front_view_text"> + Vue frontale + </panel_camera_item.text> + </panel_camera_item> + <panel_camera_item name="group_view"> + <panel_camera_item.text name="side_view_text"> + Vue latérale + </panel_camera_item.text> + </panel_camera_item> + <panel_camera_item name="rear_view"> + <panel_camera_item.text name="rear_view_text"> + Vue arrière + </panel_camera_item.text> + </panel_camera_item> + </panel> + <panel name="camera_modes_list"> + <panel_camera_item name="object_view"> + <panel_camera_item.text name="object_view_text"> + Vue de l'objet + </panel_camera_item.text> + </panel_camera_item> + <panel_camera_item name="mouselook_view"> + <panel_camera_item.text name="mouselook_view_text"> + Vue subjective + </panel_camera_item.text> + </panel_camera_item> + </panel> <panel name="zoom" tool_tip="Zoomer en direction du point central"> <joystick_rotate name="cam_rotate_stick" tool_tip="Faire tourner la caméra autour du point central"/> <slider_bar name="zoom_slider" tool_tip="Zoomer en direction du point central"/> diff --git a/indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml index fca1a329a2..29b61fc98d 100644 --- a/indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml +++ b/indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml @@ -44,7 +44,7 @@ <text name="OwnerLabel"> Vous : </text> - <check_box label="Éditer" name="CheckOwnerModify"/> + <check_box label="Modifier" name="CheckOwnerModify"/> <check_box label="Copier" name="CheckOwnerCopy"/> <check_box label="Revendre" name="CheckOwnerTransfer"/> <text name="AnyoneLabel" width="80"> @@ -58,7 +58,7 @@ <text name="NextOwnerLabel" width="192"> Le prochain propriétaire : </text> - <check_box label="Éditer" name="CheckNextOwnerModify"/> + <check_box label="Modifier" name="CheckNextOwnerModify"/> <check_box label="Copier" name="CheckNextOwnerCopy"/> <check_box label="Revendre" name="CheckNextOwnerTransfer"/> <check_box label="À vendre" name="CheckPurchase"/> diff --git a/indra/newview/skins/default/xui/fr/menu_attachment_self.xml b/indra/newview/skins/default/xui/fr/menu_attachment_self.xml index 3f6cd85685..4516b624b8 100644 --- a/indra/newview/skins/default/xui/fr/menu_attachment_self.xml +++ b/indra/newview/skins/default/xui/fr/menu_attachment_self.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <context_menu name="Attachment Pie"> <menu_item_call label="Toucher" name="Attachment Object Touch"/> - <menu_item_call label="Éditer" name="Edit..."/> + <menu_item_call label="Modifier" name="Edit..."/> <menu_item_call label="Détacher" name="Detach"/> <menu_item_call label="Me lever" name="Stand Up"/> <menu_item_call label="Changer de tenue" name="Change Outfit"/> diff --git a/indra/newview/skins/default/xui/fr/menu_inspect_object_gear.xml b/indra/newview/skins/default/xui/fr/menu_inspect_object_gear.xml index 0ecce069bd..e2b215cbb8 100644 --- a/indra/newview/skins/default/xui/fr/menu_inspect_object_gear.xml +++ b/indra/newview/skins/default/xui/fr/menu_inspect_object_gear.xml @@ -7,7 +7,7 @@ <menu_item_call label="Prendre" name="take"/> <menu_item_call label="Prendre une copie" name="take_copy"/> <menu_item_call label="Ouvrir" name="open"/> - <menu_item_call label="Éditer" name="edit"/> + <menu_item_call label="Modifier" name="edit"/> <menu_item_call label="Porter" name="wear"/> <menu_item_call label="Signaler" name="report"/> <menu_item_call label="Ignorer" name="block"/> diff --git a/indra/newview/skins/default/xui/fr/menu_inventory.xml b/indra/newview/skins/default/xui/fr/menu_inventory.xml index 0e12ff68c6..a2279cf0ac 100644 --- a/indra/newview/skins/default/xui/fr/menu_inventory.xml +++ b/indra/newview/skins/default/xui/fr/menu_inventory.xml @@ -61,7 +61,7 @@ <menu_item_call label="Copier" name="Copy"/> <menu_item_call label="Coller" name="Paste"/> <menu_item_call label="Coller comme lien" name="Paste As Link"/> - <menu_item_call label="Supprimer le lien" name="Remove Link"/> + <menu_item_call label="Supprimer" name="Remove Link"/> <menu_item_call label="Supprimer" name="Delete"/> <menu_item_call label="Supprimer le dossier système" name="Delete System Folder"/> <menu_item_call label="Démarrer le chat conférence" name="Conference Chat Folder"/> @@ -79,7 +79,7 @@ <menu_item_call label="Porter" name="Wearable And Object Wear"/> <menu label="Attacher à" name="Attach To"/> <menu label="Attacher au HUD " name="Attach To HUD"/> - <menu_item_call label="Éditer" name="Wearable Edit"/> + <menu_item_call label="Modifier" name="Wearable Edit"/> <menu_item_call label="Ajouter" name="Wearable Add"/> <menu_item_call label="Enlever" name="Take Off"/> <menu_item_call label="--aucune option--" name="--no options--"/> diff --git a/indra/newview/skins/default/xui/fr/menu_inventory_add.xml b/indra/newview/skins/default/xui/fr/menu_inventory_add.xml index 57b0a768c2..fe096b4a7e 100644 --- a/indra/newview/skins/default/xui/fr/menu_inventory_add.xml +++ b/indra/newview/skins/default/xui/fr/menu_inventory_add.xml @@ -5,6 +5,7 @@ <menu_item_call label="Son ([COST] L$)..." name="Upload Sound"/> <menu_item_call label="Animation ([COST] L$)..." name="Upload Animation"/> <menu_item_call label="Lot ([COST] L$ par fichier)..." name="Bulk Upload"/> + <menu_item_call label="Définir les droits de chargement par défaut" name="perm prefs"/> </menu> <menu_item_call label="Nouveau dossier" name="New Folder"/> <menu_item_call label="Nouveau script" name="New Script"/> diff --git a/indra/newview/skins/default/xui/fr/menu_object.xml b/indra/newview/skins/default/xui/fr/menu_object.xml index 6492a83e06..576fc66d46 100644 --- a/indra/newview/skins/default/xui/fr/menu_object.xml +++ b/indra/newview/skins/default/xui/fr/menu_object.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <context_menu name="Object Pie"> <menu_item_call label="Toucher" name="Object Touch"/> - <menu_item_call label="Éditer" name="Edit..."/> + <menu_item_call label="Modifier" name="Edit..."/> <menu_item_call label="Construire" name="Build"/> <menu_item_call label="Ouvrir" name="Open"/> <menu_item_call label="M'asseoir ici" name="Object Sit"/> diff --git a/indra/newview/skins/default/xui/fr/menu_place.xml b/indra/newview/skins/default/xui/fr/menu_place.xml index 441b476ad2..6b0f4db752 100644 --- a/indra/newview/skins/default/xui/fr/menu_place.xml +++ b/indra/newview/skins/default/xui/fr/menu_place.xml @@ -3,5 +3,5 @@ <menu_item_call label="Enregistrer comme repère" name="landmark"/> <menu_item_call label="Créer un favori" name="pick"/> <menu_item_call label="Acheter un pass" name="pass"/> - <menu_item_call label="Éditer" name="edit"/> + <menu_item_call label="Modifier" name="edit"/> </toggleable_menu> diff --git a/indra/newview/skins/default/xui/fr/menu_viewer.xml b/indra/newview/skins/default/xui/fr/menu_viewer.xml index ec9bee9a64..6338fa0cd0 100644 --- a/indra/newview/skins/default/xui/fr/menu_viewer.xml +++ b/indra/newview/skins/default/xui/fr/menu_viewer.xml @@ -61,8 +61,8 @@ </menu> <menu label="Construire" name="BuildTools"> <menu_item_check label="Construire" name="Show Build Tools"/> - <menu label="Sélectionner l'outil de construction" name="Select Tool"> - <menu_item_call label="Outil de zoom" name="Focus"/> + <menu label="Sélectionner un outil de construction" name="Select Tool"> + <menu_item_call label="Outil de mise au point" name="Focus"/> <menu_item_call label="Outil de déplacement" name="Move"/> <menu_item_call label="Outil de modification" name="Edit"/> <menu_item_call label="Outil de création" name="Create"/> @@ -94,7 +94,6 @@ <menu_item_call label="Définir les scripts sur Pas d'exécution" name="Set Scripts to Not Running"/> </menu> <menu label="Options" name="Options"> - <menu_item_call label="Définir les droits de chargement par défaut" name="perm prefs"/> <menu_item_check label="Afficher les droits avancés" name="DebugPermissions"/> <menu_item_check label="Sélectionner mes objets uniquement" name="Select Only My Objects"/> <menu_item_check label="Sélectionner les objets déplaçables uniquement" name="Select Only Movable Objects"/> @@ -112,6 +111,7 @@ <menu_item_call label="Son ([COST] L$)..." name="Upload Sound"/> <menu_item_call label="Animation ([COST] L$)..." name="Upload Animation"/> <menu_item_call label="Lot ([COST] L$ par fichier)..." name="Bulk Upload"/> + <menu_item_call label="Définir les droits de chargement par défaut" name="perm prefs"/> </menu> </menu> <menu label="Aide" name="Help"> @@ -187,8 +187,8 @@ <menu_item_check label="Joystick Flycam" name="Joystick Flycam"/> <menu_item_call label="Réinitialiser la vue" name="Reset View"/> <menu_item_call label="Regarder la dernière conversation" name="Look at Last Chatter"/> - <menu label="Sélectionner l'outil de construction" name="Select Tool"> - <menu_item_call label="Outil de zoom" name="Focus"/> + <menu label="Sélectionner un outil de construction" name="Select Tool"> + <menu_item_call label="Outil de mise au point" name="Focus"/> <menu_item_call label="Outil de déplacement" name="Move"/> <menu_item_call label="Outil de modification" name="Edit"/> <menu_item_call label="Outil de création" name="Create"/> diff --git a/indra/newview/skins/default/xui/fr/notifications.xml b/indra/newview/skins/default/xui/fr/notifications.xml index 3dc4f4bd93..bad92f200c 100644 --- a/indra/newview/skins/default/xui/fr/notifications.xml +++ b/indra/newview/skins/default/xui/fr/notifications.xml @@ -358,7 +358,7 @@ Voulez-vous vraiment continuer ? <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/> </notification> <notification name="DeleteOutfits"> - Supprimer la ou les tenues sélectionnées ? + Supprimer la tenue sélectionnée ? <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/> </notification> <notification name="PromptGoToEventsPage"> diff --git a/indra/newview/skins/default/xui/fr/panel_edit_wearable.xml b/indra/newview/skins/default/xui/fr/panel_edit_wearable.xml index 4b1572b052..624026efbb 100644 --- a/indra/newview/skins/default/xui/fr/panel_edit_wearable.xml +++ b/indra/newview/skins/default/xui/fr/panel_edit_wearable.xml @@ -103,6 +103,6 @@ </panel> <panel name="button_panel"> <button label="Enregistrer sous" name="save_as_button"/> - <button label="Annuler les modifications" name="revert_button" width="130"/> + <button label="Annuler" name="revert_button" width="130"/> </panel> </panel> diff --git a/indra/newview/skins/default/xui/fr/panel_login.xml b/indra/newview/skins/default/xui/fr/panel_login.xml index f5847e0ee0..1b3e1c1c90 100644 --- a/indra/newview/skins/default/xui/fr/panel_login.xml +++ b/indra/newview/skins/default/xui/fr/panel_login.xml @@ -23,7 +23,7 @@ <combo_box name="start_location_combo" width="152"> <combo_box.item label="Dernier emplacement" name="MyLastLocation"/> <combo_box.item label="Domicile" name="MyHome"/> - <combo_box.item label="<Saisissez le nom de la région>" name="Typeregionname"/> + <combo_box.item label="<Saisir le nom de la région>" name="Typeregionname"/> </combo_box> </layout_panel> <layout_panel name="links"> diff --git a/indra/newview/skins/default/xui/fr/panel_nearby_media.xml b/indra/newview/skins/default/xui/fr/panel_nearby_media.xml index 36388b0bc1..978ca86d62 100644 --- a/indra/newview/skins/default/xui/fr/panel_nearby_media.xml +++ b/indra/newview/skins/default/xui/fr/panel_nearby_media.xml @@ -23,6 +23,12 @@ <button label="Plus >>" label_selected="Moins <<" name="less_btn" tool_tip="Options avancées"/> </panel> <panel name="nearby_media_panel"> + <text name="nearby_media_title"> + Médias proches + </text> + <text name="show_text"> + Afficher : + </text> <combo_box name="show_combo"> <combo_box.item label="Tout" name="All"/> <combo_box.item label="Sur cette parcelle" name="WithinParcel"/> diff --git a/indra/newview/skins/default/xui/fr/panel_places.xml b/indra/newview/skins/default/xui/fr/panel_places.xml index efb06cfce9..52a69db23c 100644 --- a/indra/newview/skins/default/xui/fr/panel_places.xml +++ b/indra/newview/skins/default/xui/fr/panel_places.xml @@ -6,7 +6,7 @@ <panel name="button_panel"> <button label="Téléporter" name="teleport_btn" tool_tip="Me téléporter jusqu'à la zone sélectionnée"/> <button label="Carte" name="map_btn" tool_tip="Afficher la zone correspondante sur la carte du monde"/> - <button label="Éditer" name="edit_btn" tool_tip="Modifier les informations du repère"/> + <button label="Modifier" name="edit_btn" tool_tip="Modifier les informations du repère"/> <button label="▼" name="overflow_btn" tool_tip="Afficher d'autres options"/> <button label="Enregistrer" name="save_btn"/> <button label="Annuler" name="cancel_btn"/> diff --git a/indra/newview/skins/default/xui/fr/role_actions.xml b/indra/newview/skins/default/xui/fr/role_actions.xml index c91bbbcf51..d731fa6896 100644 --- a/indra/newview/skins/default/xui/fr/role_actions.xml +++ b/indra/newview/skins/default/xui/fr/role_actions.xml @@ -3,7 +3,7 @@ <action_set description="Ces pouvoirs permettent d'ajouter et de supprimer des membres du groupe et permettent aux nouveaux membres de rejoindre le groupe sans recevoir d'invitation." name="Membership"> <action description="Inviter des membres dans ce groupe" longdescription="Invitez des personnes à rejoindre ce groupe en utilisant le bouton Inviter dans l'onglet Membres de la section Rôles." name="member invite" value="1"/> <action description="Expulser des membres du groupe" longdescription="Expulsez des personnes de ce groupe en utilisant le bouton Expulser dans l'onglet Membres de la section Rôles. Un propriétaire peut expulser tout le monde à l'exception des autres propriétaires. Si vous n'êtes pas propriétaire, vous pouvez expulser un membre d'un groupe uniquement si il n'a que le rôle Tous et AUCUN autre rôle. Pour supprimer des membres des rôles, vous devez disposer du pouvoir correspondant." name="member eject" value="2"/> - <action description="Activer Inscription libre et modifiez les frais d'inscription" longdescription="Activez Inscription libre pour permettre aux nouveaux membres de s'inscrire sans invitation, et changez les frais d'inscription dans la section Général." name="member options" value="3"/> + <action description="Activer Inscription libre et modifier les frais d'inscription" longdescription="Activez Inscription libre pour permettre aux nouveaux membres de s'inscrire sans invitation, et changez les frais d'inscription dans la section Général." name="member options" value="3"/> </action_set> <action_set description="Ces pouvoirs permettent d'ajouter, de supprimer et de modifier les rôles dans le groupe et d'y assigner des membres et des pouvoirs." name="Roles"> <action description="Créer des rôles" longdescription="Créez de nouveaux rôles dans l'onglet Rôles de la section Rôles." name="role create" value="4"/> diff --git a/indra/newview/skins/default/xui/fr/strings.xml b/indra/newview/skins/default/xui/fr/strings.xml index f8da908cff..0a269016f5 100644 --- a/indra/newview/skins/default/xui/fr/strings.xml +++ b/indra/newview/skins/default/xui/fr/strings.xml @@ -196,6 +196,7 @@ <string name="TooltipMustSingleDrop"> Impossible de faire glisser plus d'un objet ici </string> + <string name="TooltipPrice" value="[AMOUNT] L$ :"/> <string name="TooltipHttpUrl"> Cliquez pour afficher cette page web </string> @@ -248,7 +249,6 @@ Cliquez pour exécuter la commande secondlife:// command </string> <string name="CurrentURL" value=" URL actuelle : [CurrentURL]"/> - <string name="TooltipPrice" value="[AMOUNT]L$: "/> <string name="SLurlLabelTeleport"> Me téléporter vers </string> @@ -906,12 +906,57 @@ <string name="invalid_not_worn"> non valide </string> + <string name="create_new_shape"> + Créer une nouvelle silhouette + </string> + <string name="create_new_skin"> + Créer une nouvelle peau + </string> + <string name="create_new_hair"> + Créer de nouveaux cheveux + </string> + <string name="create_new_eyes"> + Créer de nouveaux yeux + </string> + <string name="create_new_shirt"> + Créer une nouvelle chemise + </string> + <string name="create_new_pants"> + Créer un nouveau pantalon + </string> + <string name="create_new_shoes"> + Créer de nouvelles chaussures + </string> + <string name="create_new_socks"> + Créer de nouvelles chaussettes + </string> + <string name="create_new_jacket"> + Créer une nouvelle veste + </string> + <string name="create_new_gloves"> + Créer de nouveaux gants + </string> + <string name="create_new_undershirt"> + Créer un nouveau débardeur + </string> + <string name="create_new_underpants"> + Créer un nouveau caleçon + </string> + <string name="create_new_skirt"> + Créer une nouvelle jupe + </string> + <string name="create_new_alpha"> + Créer un nouvel alpha + </string> + <string name="create_new_tattoo"> + Créer un nouveau tatouage + </string> + <string name="create_new_invalid"> + non valide + </string> <string name="NewWearable"> Nouv. [WEARABLE_ITEM] </string> - <string name="CreateNewWearable"> - Créer [WEARABLE_TYPE] - </string> <string name="next"> Suivant </string> @@ -1098,6 +1143,9 @@ <string name="InvFolder Favorite"> Favoris </string> + <string name="InvFolder favorite"> + Favoris + </string> <string name="InvFolder Current Outfit"> Tenue actuelle </string> @@ -1639,12 +1687,6 @@ <string name="BusyModeResponseDefault"> Le résident auquel vous avez envoyé un message est en mode Occupé, ce qui signifie qu'il a demandé à ne pas être dérangé. Votre message restera affiché dans son panneau IM afin qu'il puisse le lire ultérieurement. </string> - <string name="NoOutfits"> - Aucune tenue n'est actuellement en votre possession. Essayez [secondlife:///app/search/all Rechercher]. - </string> - <string name="NoOutfitsTabsMatched"> - Vous n'avez pas trouvé ce que vous cherchiez ? Essayez [secondlife:///app/search/all/Rechercher [SEARCH_TERM]]. - </string> <string name="MuteByName"> (par nom) </string> diff --git a/indra/newview/skins/default/xui/it/floater_camera.xml b/indra/newview/skins/default/xui/it/floater_camera.xml index f524bf9874..3fdf4f48a2 100644 --- a/indra/newview/skins/default/xui/it/floater_camera.xml +++ b/indra/newview/skins/default/xui/it/floater_camera.xml @@ -22,6 +22,35 @@ Vedi oggetto </floater.string> <panel name="controls"> + <panel name="preset_views_list"> + <panel_camera_item name="front_view"> + <panel_camera_item.text name="front_view_text"> + Visuale frontale + </panel_camera_item.text> + </panel_camera_item> + <panel_camera_item name="group_view"> + <panel_camera_item.text name="side_view_text"> + Visuale laterale + </panel_camera_item.text> + </panel_camera_item> + <panel_camera_item name="rear_view"> + <panel_camera_item.text name="rear_view_text"> + Visuale posteriore + </panel_camera_item.text> + </panel_camera_item> + </panel> + <panel name="camera_modes_list"> + <panel_camera_item name="object_view"> + <panel_camera_item.text name="object_view_text"> + Visuale oggetto + </panel_camera_item.text> + </panel_camera_item> + <panel_camera_item name="mouselook_view"> + <panel_camera_item.text name="mouselook_view_text"> + Visuale soggettiva + </panel_camera_item.text> + </panel_camera_item> + </panel> <panel name="zoom" tool_tip="Avvicina la telecamera nell'inquadratura"> <joystick_rotate name="cam_rotate_stick" tool_tip="Ruota la visuale intorno al punto focale"/> <slider_bar name="zoom_slider" tool_tip="Zoom verso il centro focale"/> diff --git a/indra/newview/skins/default/xui/it/menu_inventory.xml b/indra/newview/skins/default/xui/it/menu_inventory.xml index 0f879ad9cc..f2eb8b1bf7 100644 --- a/indra/newview/skins/default/xui/it/menu_inventory.xml +++ b/indra/newview/skins/default/xui/it/menu_inventory.xml @@ -61,7 +61,7 @@ <menu_item_call label="Copia" name="Copy"/> <menu_item_call label="Incolla" name="Paste"/> <menu_item_call label="Incolla come link" name="Paste As Link"/> - <menu_item_call label="Rimuovi link" name="Remove Link"/> + <menu_item_call label="Elimina" name="Remove Link"/> <menu_item_call label="Cancella" name="Delete"/> <menu_item_call label="Elimina la cartella di sistema" name="Delete System Folder"/> <menu_item_call label="Inizia la conferenza chat" name="Conference Chat Folder"/> diff --git a/indra/newview/skins/default/xui/it/menu_inventory_add.xml b/indra/newview/skins/default/xui/it/menu_inventory_add.xml index 05f53f44ba..5e61625f84 100644 --- a/indra/newview/skins/default/xui/it/menu_inventory_add.xml +++ b/indra/newview/skins/default/xui/it/menu_inventory_add.xml @@ -5,6 +5,7 @@ <menu_item_call label="Suono ([COST]L$)..." name="Upload Sound"/> <menu_item_call label="Animazione ([COST]L$)..." name="Upload Animation"/> <menu_item_call label="In blocco ([COST]L$ per file)..." name="Bulk Upload"/> + <menu_item_call label="Definisci diritti di caricamento predefiniti" name="perm prefs"/> </menu> <menu_item_call label="Nuova cartella" name="New Folder"/> <menu_item_call label="Nuovo script" name="New Script"/> diff --git a/indra/newview/skins/default/xui/it/menu_viewer.xml b/indra/newview/skins/default/xui/it/menu_viewer.xml index 6290b79211..f0dd035b5d 100644 --- a/indra/newview/skins/default/xui/it/menu_viewer.xml +++ b/indra/newview/skins/default/xui/it/menu_viewer.xml @@ -94,7 +94,6 @@ <menu_item_call label="Imposta script come non in esecuzione" name="Set Scripts to Not Running"/> </menu> <menu label="Opzioni" name="Options"> - <menu_item_call label="Definisci diritti di caricamento predefiniti" name="perm prefs"/> <menu_item_check label="Mostra autorizzazioni avanzate" name="DebugPermissions"/> <menu_item_check label="Seleziona solo i miei oggetti" name="Select Only My Objects"/> <menu_item_check label="Seleziona solo gli oggetti spostabili" name="Select Only Movable Objects"/> @@ -112,6 +111,7 @@ <menu_item_call label="Suono ([COST] L$)..." name="Upload Sound"/> <menu_item_call label="Animazione ([COST] L$)..." name="Upload Animation"/> <menu_item_call label="In blocco ([COST] L$ per file)..." name="Bulk Upload"/> + <menu_item_call label="Definisci diritti di caricamento predefiniti" name="perm prefs"/> </menu> </menu> <menu label="Aiuto" name="Help"> diff --git a/indra/newview/skins/default/xui/it/panel_nearby_media.xml b/indra/newview/skins/default/xui/it/panel_nearby_media.xml index 01e21d520a..bec36fd427 100644 --- a/indra/newview/skins/default/xui/it/panel_nearby_media.xml +++ b/indra/newview/skins/default/xui/it/panel_nearby_media.xml @@ -23,6 +23,12 @@ <button label="Più >>" label_selected="Meno <<" name="less_btn" tool_tip="Opzioni avanzate"/> </panel> <panel name="nearby_media_panel"> + <text name="nearby_media_title"> + Multimedia vicini + </text> + <text name="show_text"> + Mostra: + </text> <combo_box name="show_combo"> <combo_box.item label="Tutto" name="All"/> <combo_box.item label="In questo lotto" name="WithinParcel"/> diff --git a/indra/newview/skins/default/xui/it/strings.xml b/indra/newview/skins/default/xui/it/strings.xml index 52fbd87420..69c84be22c 100644 --- a/indra/newview/skins/default/xui/it/strings.xml +++ b/indra/newview/skins/default/xui/it/strings.xml @@ -190,6 +190,7 @@ <string name="TooltipMustSingleDrop"> Solo un singolo oggetto può essere creato qui </string> + <string name="TooltipPrice" value="L$ [AMOUNT]:"/> <string name="TooltipHttpUrl"> Clicca per visitare questa pagina web </string> @@ -242,7 +243,6 @@ Clicca per avviare il comando secondlife:// </string> <string name="CurrentURL" value="URL attuale: [CurrentURL]"/> - <string name="TooltipPrice" value="L$[AMOUNT]: "/> <string name="SLurlLabelTeleport"> Teleportati a </string> @@ -891,12 +891,57 @@ <string name="invalid_not_worn"> non valido </string> + <string name="create_new_shape"> + Crea nuova figura corporea + </string> + <string name="create_new_skin"> + Crea nuova pelle + </string> + <string name="create_new_hair"> + Crea nuovi capelli + </string> + <string name="create_new_eyes"> + Crea nuovi occhi + </string> + <string name="create_new_shirt"> + Crea nuova camicia + </string> + <string name="create_new_pants"> + Crea nuovi pantaloni + </string> + <string name="create_new_shoes"> + Crea nuove scarpe + </string> + <string name="create_new_socks"> + Crea nuove calze + </string> + <string name="create_new_jacket"> + Crea nuova giacca + </string> + <string name="create_new_gloves"> + Crea nuovi guanti + </string> + <string name="create_new_undershirt"> + Crea nuova maglietta intima + </string> + <string name="create_new_underpants"> + Crea nuovi slip + </string> + <string name="create_new_skirt"> + Crea nuova gonna + </string> + <string name="create_new_alpha"> + Crea nuovo Alpha + </string> + <string name="create_new_tattoo"> + Crea un nuovo tatuaggio + </string> + <string name="create_new_invalid"> + non valido + </string> <string name="NewWearable"> Nuovo [WEARABLE_ITEM] </string> - <string name="CreateNewWearable"> - Crea [WEARABLE_TYPE] - </string> <string name="next"> Avanti </string> @@ -1077,6 +1122,9 @@ <string name="InvFolder Favorite"> Preferiti </string> + <string name="InvFolder favorite"> + Preferiti + </string> <string name="InvFolder Current Outfit"> Abbigliamento attuale </string> @@ -1612,12 +1660,6 @@ <string name="BusyModeResponseDefault"> Il residente al quale hai inviato un messaggio è in modalità 'occupato', ovvero ha chiesto di non essere disturbato. Il tuo messaggio comparirà nel suo pannello IM, dove potrà essere letto in un secondo momento. </string> - <string name="NoOutfits"> - Non hai ancora vestiario da indossare. Prova [secondlife:///app/search/all Cerca]. - </string> - <string name="NoOutfitsTabsMatched"> - Non riesci a trovare quello che cerchi? Prova [secondlife:///app/search/all/[SEARCH_TERM] Cerca]. - </string> <string name="MuteByName"> (In base al nome) </string> diff --git a/indra/newview/skins/default/xui/ja/floater_camera.xml b/indra/newview/skins/default/xui/ja/floater_camera.xml index ec5c2a64a5..71a20c8e18 100644 --- a/indra/newview/skins/default/xui/ja/floater_camera.xml +++ b/indra/newview/skins/default/xui/ja/floater_camera.xml @@ -22,6 +22,35 @@ オブジェクトを見る </floater.string> <panel name="controls"> + <panel name="preset_views_list"> + <panel_camera_item name="front_view"> + <panel_camera_item.text name="front_view_text"> + 前方視界 + </panel_camera_item.text> + </panel_camera_item> + <panel_camera_item name="group_view"> + <panel_camera_item.text name="side_view_text"> + グループ視界 + </panel_camera_item.text> + </panel_camera_item> + <panel_camera_item name="rear_view"> + <panel_camera_item.text name="rear_view_text"> + 後方視界 + </panel_camera_item.text> + </panel_camera_item> + </panel> + <panel name="camera_modes_list"> + <panel_camera_item name="object_view"> + <panel_camera_item.text name="object_view_text"> + オブジェクト視点 + </panel_camera_item.text> + </panel_camera_item> + <panel_camera_item name="mouselook_view"> + <panel_camera_item.text name="mouselook_view_text"> + 一人称視点 + </panel_camera_item.text> + </panel_camera_item> + </panel> <panel name="zoom" tool_tip="向いている方法にカメラをズーム"> <joystick_rotate name="cam_rotate_stick" tool_tip="自分を軸にカメラを回す"/> <slider_bar name="zoom_slider" tool_tip="向いている方向にカメラをズーム"/> diff --git a/indra/newview/skins/default/xui/ja/menu_inventory.xml b/indra/newview/skins/default/xui/ja/menu_inventory.xml index ceae7f7d9c..6999f9a3f3 100644 --- a/indra/newview/skins/default/xui/ja/menu_inventory.xml +++ b/indra/newview/skins/default/xui/ja/menu_inventory.xml @@ -61,7 +61,7 @@ <menu_item_call label="コピー" name="Copy"/> <menu_item_call label="貼り付け" name="Paste"/> <menu_item_call label="リンクを貼り付ける" name="Paste As Link"/> - <menu_item_call label="リンクを外す" name="Remove Link"/> + <menu_item_call label="削除" name="Remove Link"/> <menu_item_call label="削除" name="Delete"/> <menu_item_call label="システムフォルダを削除する" name="Delete System Folder"/> <menu_item_call label="コンファレンスチャットを開始する" name="Conference Chat Folder"/> diff --git a/indra/newview/skins/default/xui/ja/menu_inventory_add.xml b/indra/newview/skins/default/xui/ja/menu_inventory_add.xml index 14ad7900e1..42dcd06a07 100644 --- a/indra/newview/skins/default/xui/ja/menu_inventory_add.xml +++ b/indra/newview/skins/default/xui/ja/menu_inventory_add.xml @@ -5,6 +5,7 @@ <menu_item_call label="サウンド (L$[COST] )..." name="Upload Sound"/> <menu_item_call label="アニメーション (L$ [COST] )..." name="Upload Animation"/> <menu_item_call label="一括 (ファイルにつき L$[COST] )..." name="Bulk Upload"/> + <menu_item_call label="デフォルトのアップロード権限を設定" name="perm prefs"/> </menu> <menu_item_call label="新規フォルダ" name="New Folder"/> <menu_item_call label="新規スクリプト" name="New Script"/> diff --git a/indra/newview/skins/default/xui/ja/menu_viewer.xml b/indra/newview/skins/default/xui/ja/menu_viewer.xml index 7c4912fa07..164341ad2f 100644 --- a/indra/newview/skins/default/xui/ja/menu_viewer.xml +++ b/indra/newview/skins/default/xui/ja/menu_viewer.xml @@ -94,7 +94,6 @@ <menu_item_call label="スクリプトを実行停止にする" name="Set Scripts to Not Running"/> </menu> <menu label="オプション" name="Options"> - <menu_item_call label="デフォルトのアップロード権限を設定する" name="perm prefs"/> <menu_item_check label="権限の詳細を表示する" name="DebugPermissions"/> <menu_item_check label="私のオブジェクトだけを選択する" name="Select Only My Objects"/> <menu_item_check label="動的オブジェクトだけを選択する" name="Select Only Movable Objects"/> @@ -112,6 +111,7 @@ <menu_item_call label="サウンド(L$[COST])..." name="Upload Sound"/> <menu_item_call label="アニメーション(L$[COST])..." name="Upload Animation"/> <menu_item_call label="一括 (ファイルにつきL$[COST])..." name="Bulk Upload"/> + <menu_item_call label="デフォルトのアップロード権限を設定" name="perm prefs"/> </menu> </menu> <menu label="ヘルプ" name="Help"> diff --git a/indra/newview/skins/default/xui/ja/panel_nearby_media.xml b/indra/newview/skins/default/xui/ja/panel_nearby_media.xml index d0e423bd18..b3df3503bb 100644 --- a/indra/newview/skins/default/xui/ja/panel_nearby_media.xml +++ b/indra/newview/skins/default/xui/ja/panel_nearby_media.xml @@ -23,6 +23,12 @@ <button label="詳細 >>" label_selected="簡易 <<" name="less_btn" tool_tip="アドバンスコントロール"/> </panel> <panel name="nearby_media_panel"> + <text name="nearby_media_title"> + 近くのメディア + </text> + <text name="show_text"> + 表示: + </text> <combo_box name="show_combo"> <combo_box.item label="すべて" name="All"/> <combo_box.item label="この区画内" name="WithinParcel"/> diff --git a/indra/newview/skins/default/xui/ja/strings.xml b/indra/newview/skins/default/xui/ja/strings.xml index 3ed110df4d..350a98aaf0 100644 --- a/indra/newview/skins/default/xui/ja/strings.xml +++ b/indra/newview/skins/default/xui/ja/strings.xml @@ -196,6 +196,7 @@ <string name="TooltipMustSingleDrop"> アイテムは 1 つだけここにドラッグできます </string> + <string name="TooltipPrice" value="L$[AMOUNT]:"/> <string name="TooltipHttpUrl"> クリックしてこの Web ページを見ます </string> @@ -248,7 +249,6 @@ クリックして secondlife:// コマンドを出します </string> <string name="CurrentURL" value=" 現在の URL: [CurrentURL]"/> - <string name="TooltipPrice" value="L$[AMOUNT]: "/> <string name="SLurlLabelTeleport"> テレポート </string> @@ -906,12 +906,57 @@ <string name="invalid_not_worn"> 無効 </string> + <string name="create_new_shape"> + 新しいシェイプを作成 + </string> + <string name="create_new_skin"> + 新しいスキンを作成 + </string> + <string name="create_new_hair"> + 新しい髪を作成 + </string> + <string name="create_new_eyes"> + 新しい目を作成 + </string> + <string name="create_new_shirt"> + 新しいシャツを作成 + </string> + <string name="create_new_pants"> + 新しいパンツを作成 + </string> + <string name="create_new_shoes"> + 新しい靴を作成 + </string> + <string name="create_new_socks"> + 新しい靴下を作成 + </string> + <string name="create_new_jacket"> + 新しい上着を作成 + </string> + <string name="create_new_gloves"> + 新しい手袋を作成 + </string> + <string name="create_new_undershirt"> + 新しい下着シャツを作成 + </string> + <string name="create_new_underpants"> + 新しい下着パンツを作成 + </string> + <string name="create_new_skirt"> + 新しいスカートを作成 + </string> + <string name="create_new_alpha"> + 新しいアルファを作成 + </string> + <string name="create_new_tattoo"> + 新しいタトゥを作成 + </string> + <string name="create_new_invalid"> + 無効 + </string> <string name="NewWearable"> 新しい [WEARABLE_ITEM] </string> - <string name="CreateNewWearable"> - [WEARABLE_TYPE]を作成 - </string> <string name="next"> 次へ </string> @@ -1098,6 +1143,9 @@ <string name="InvFolder Favorite"> お気に入り </string> + <string name="InvFolder favorite"> + お気に入り + </string> <string name="InvFolder Current Outfit"> 着用中のアウトフィット </string> @@ -1639,12 +1687,6 @@ <string name="BusyModeResponseDefault"> メッセージを送った住人は、誰にも邪魔をされたくないため現在「取り込み中」モードです。 あなたのメッセージは、あとで確認できるように IM パネルに表示されます。 </string> - <string name="NoOutfits"> - アウトフィットがまだありません。[secondlife:///app/search/all/ 検索]をお試しください。 - </string> - <string name="NoOutfitsTabsMatched"> - お探しのものは見つかりましたか?[secondlife:///app/search/all/[SEARCH_TERM] 検索]をお試しください。 - </string> <string name="MuteByName"> (名称別) </string> diff --git a/indra/newview/skins/default/xui/pl/floater_camera.xml b/indra/newview/skins/default/xui/pl/floater_camera.xml index b11da91b5b..bdff791609 100644 --- a/indra/newview/skins/default/xui/pl/floater_camera.xml +++ b/indra/newview/skins/default/xui/pl/floater_camera.xml @@ -22,6 +22,35 @@ Zobacz obiekt </floater.string> <panel name="controls"> + <panel name="preset_views_list"> + <panel_camera_item name="front_view"> + <panel_camera_item.text name="front_view_text"> + Widok z przodu + </panel_camera_item.text> + </panel_camera_item> + <panel_camera_item name="group_view"> + <panel_camera_item.text name="side_view_text"> + Podgląd grupy + </panel_camera_item.text> + </panel_camera_item> + <panel_camera_item name="rear_view"> + <panel_camera_item.text name="rear_view_text"> + Widok z tyłu + </panel_camera_item.text> + </panel_camera_item> + </panel> + <panel name="camera_modes_list"> + <panel_camera_item name="object_view"> + <panel_camera_item.text name="object_view_text"> + Widok obiektu + </panel_camera_item.text> + </panel_camera_item> + <panel_camera_item name="mouselook_view"> + <panel_camera_item.text name="mouselook_view_text"> + Widok panoramiczny + </panel_camera_item.text> + </panel_camera_item> + </panel> <panel name="zoom" tool_tip="Najedź kamerą w kierunku obiektu"> <joystick_rotate name="cam_rotate_stick" tool_tip="Obracaj kamerę wokoł osi"/> <slider_bar name="zoom_slider" tool_tip="Przybliż kamerę do ogniskowej"/> diff --git a/indra/newview/skins/default/xui/pl/menu_inventory.xml b/indra/newview/skins/default/xui/pl/menu_inventory.xml index f26bc10c26..f1f7d0d855 100644 --- a/indra/newview/skins/default/xui/pl/menu_inventory.xml +++ b/indra/newview/skins/default/xui/pl/menu_inventory.xml @@ -59,6 +59,7 @@ <menu_item_call label="Kopiuj" name="Copy"/> <menu_item_call label="Wklej" name="Paste"/> <menu_item_call label="Wklej jako link" name="Paste As Link"/> + <menu_item_call label="Usuń" name="Remove Link"/> <menu_item_call label="Usuń" name="Delete"/> <menu_item_call label="Skasuj Folder Systemu" name="Delete System Folder"/> <menu_item_call label="Rozpocznij konferencję czatową" name="Conference Chat Folder"/> diff --git a/indra/newview/skins/default/xui/pl/menu_inventory_add.xml b/indra/newview/skins/default/xui/pl/menu_inventory_add.xml index b4d85c2c5c..8f520113c0 100644 --- a/indra/newview/skins/default/xui/pl/menu_inventory_add.xml +++ b/indra/newview/skins/default/xui/pl/menu_inventory_add.xml @@ -5,6 +5,7 @@ <menu_item_call label="dźwięk (L$[COST])..." name="Upload Sound"/> <menu_item_call label="animację (L$[COST])..." name="Upload Animation"/> <menu_item_call label="zbiór plików (L$[COST] za jeden plik)..." name="Bulk Upload"/> + <menu_item_call label="Ustaw domyślne pozwolenia ładowania" name="perm prefs"/> </menu> <menu_item_call label="Nowy folder" name="New Folder"/> <menu_item_call label="Nowy skrypt" name="New Script"/> diff --git a/indra/newview/skins/default/xui/pl/menu_viewer.xml b/indra/newview/skins/default/xui/pl/menu_viewer.xml index 5907e6b3f4..16a89b2b27 100644 --- a/indra/newview/skins/default/xui/pl/menu_viewer.xml +++ b/indra/newview/skins/default/xui/pl/menu_viewer.xml @@ -92,7 +92,6 @@ <menu_item_call label="Wstrzymaj Działanie Skryptów w Selekcji" name="Set Scripts to Not Running"/> </menu> <menu label="Opcje" name="Options"> - <menu_item_call label="Ustaw Domyślne Pozwolenia Ładowania" name="perm prefs"/> <menu_item_check label="Pokaż Zaawansowane Pozwolenia" name="DebugPermissions"/> <menu_item_check label="Wybierz Tylko Moje Obiekty" name="Select Only My Objects"/> <menu_item_check label="Wybierz Tylko Obiekty Przesuwalne" name="Select Only Movable Objects"/> @@ -110,6 +109,7 @@ <menu_item_call label="dźwięk (L$[COST])..." name="Upload Sound"/> <menu_item_call label="animację (L$[COST])..." name="Upload Animation"/> <menu_item_call label="zbiór plików (L$[COST] za jeden plik)..." name="Bulk Upload"/> + <menu_item_call label="Ustaw domyślne pozwolenia ładowania" name="perm prefs"/> </menu> </menu> <menu label="Pomoc" name="Help"> diff --git a/indra/newview/skins/default/xui/pl/panel_nearby_media.xml b/indra/newview/skins/default/xui/pl/panel_nearby_media.xml index cc023a12bf..86c7275e79 100644 --- a/indra/newview/skins/default/xui/pl/panel_nearby_media.xml +++ b/indra/newview/skins/default/xui/pl/panel_nearby_media.xml @@ -23,6 +23,12 @@ <button label="Więcej >>" label_selected="Mniej <<" name="less_btn" tool_tip="Zaawansowane"/> </panel> <panel name="nearby_media_panel"> + <text name="nearby_media_title"> + Media w pobliżu + </text> + <text name="show_text"> + Pokaż: + </text> <combo_box name="show_combo"> <combo_box.item label="Wszystkie" name="All"/> <combo_box.item label="Na obecnej Parceli" name="WithinParcel"/> diff --git a/indra/newview/skins/default/xui/pl/strings.xml b/indra/newview/skins/default/xui/pl/strings.xml index 4a21b1447b..bd1fb6a5da 100644 --- a/indra/newview/skins/default/xui/pl/strings.xml +++ b/indra/newview/skins/default/xui/pl/strings.xml @@ -181,6 +181,7 @@ <string name="TooltipMustSingleDrop"> Tylko pojedynczy obiekt może być tutaj przeciągnięty </string> + <string name="TooltipPrice" value="L$[AMOUNT]:"/> <string name="TooltipHttpUrl"> Kliknij by zobaczyć zawartość tej strony internetowej </string> @@ -233,7 +234,6 @@ Kliknij by uruchomić secondlife:// command </string> <string name="CurrentURL" value=" Obecny Adres: [CurrentURL]"/> - <string name="TooltipPrice" value="L$[AMOUNT]: "/> <string name="SLurlLabelTeleport"> Teleportuj do </string> @@ -882,12 +882,57 @@ <string name="invalid_not_worn"> nieważny </string> + <string name="create_new_shape"> + Nowy kształt + </string> + <string name="create_new_skin"> + Nowa skórka + </string> + <string name="create_new_hair"> + Nowe włosy + </string> + <string name="create_new_eyes"> + Nowe oczy + </string> + <string name="create_new_shirt"> + Nowa koszula + </string> + <string name="create_new_pants"> + Nowe spodnie + </string> + <string name="create_new_shoes"> + Nowe buty + </string> + <string name="create_new_socks"> + Nowe skarpetki + </string> + <string name="create_new_jacket"> + Nowa kurtka + </string> + <string name="create_new_gloves"> + Nowe rękawiczki + </string> + <string name="create_new_undershirt"> + Nowy podkoszulek + </string> + <string name="create_new_underpants"> + Nowa bielizna + </string> + <string name="create_new_skirt"> + Nowa spódnica + </string> + <string name="create_new_alpha"> + Nowe alpha + </string> + <string name="create_new_tattoo"> + Nowy tatuaż + </string> + <string name="create_new_invalid"> + nieważny + </string> <string name="NewWearable"> Nowa [WEARABLE_ITEM] </string> - <string name="CreateNewWearable"> - Stwórz [WEARABLE_TYPE] - </string> <string name="next"> Następne </string> @@ -1065,6 +1110,9 @@ <string name="InvFolder Gestures"> Gesturki </string> + <string name="InvFolder favorite"> + Ulubione + </string> <string name="InvFolder Current Outfit"> Obecne Ubranie </string> @@ -1600,12 +1648,6 @@ <string name="BusyModeResponseDefault"> Rezydent, do którego wysłałeś wiadomość prywatną znajduje się w trybie pracy. Oznacza to, iż Twoja wiadomość zostanie zapisana do przeglądnięcia poźniej. </string> - <string name="NoOutfits"> - Nie posiadasz żadnych strojów. Spróbuj [secondlife:///app/search/all/ Szukaj] - </string> - <string name="NoOutfitsTabsMatched"> - Nie znaleziono tego czego szukasz? Spróbuj [secondlife:///app/search/all/[SEARCH_TERM] Szukaj]. - </string> <string name="MuteByName"> (Nazwa) </string> diff --git a/indra/newview/skins/default/xui/pt/floater_camera.xml b/indra/newview/skins/default/xui/pt/floater_camera.xml index 7343bd9aa8..4f3729c623 100644 --- a/indra/newview/skins/default/xui/pt/floater_camera.xml +++ b/indra/newview/skins/default/xui/pt/floater_camera.xml @@ -22,6 +22,35 @@ Visualizar objeto </floater.string> <panel name="controls"> + <panel name="preset_views_list"> + <panel_camera_item name="front_view"> + <panel_camera_item.text name="front_view_text"> + Vista frontal + </panel_camera_item.text> + </panel_camera_item> + <panel_camera_item name="group_view"> + <panel_camera_item.text name="side_view_text"> + Vista lateral + </panel_camera_item.text> + </panel_camera_item> + <panel_camera_item name="rear_view"> + <panel_camera_item.text name="rear_view_text"> + Vista de trás + </panel_camera_item.text> + </panel_camera_item> + </panel> + <panel name="camera_modes_list"> + <panel_camera_item name="object_view"> + <panel_camera_item.text name="object_view_text"> + Vista de objetos + </panel_camera_item.text> + </panel_camera_item> + <panel_camera_item name="mouselook_view"> + <panel_camera_item.text name="mouselook_view_text"> + Vista do mouse + </panel_camera_item.text> + </panel_camera_item> + </panel> <panel name="zoom" tool_tip="Aproximar a Câmera in direção ao Foco"> <joystick_rotate name="cam_rotate_stick" tool_tip="Girar câmera ao redor do foco"/> <slider_bar name="zoom_slider" tool_tip="Zoom de câmera para focalizar"/> diff --git a/indra/newview/skins/default/xui/pt/floater_land_holdings.xml b/indra/newview/skins/default/xui/pt/floater_land_holdings.xml index 2b0d6790f2..7475bdd5b8 100644 --- a/indra/newview/skins/default/xui/pt/floater_land_holdings.xml +++ b/indra/newview/skins/default/xui/pt/floater_land_holdings.xml @@ -7,28 +7,28 @@ <column label="Área" name="area"/> </scroll_list> <button label="Teletransporte" label_selected="Teletransporte" name="Teleport" tool_tip="Teletransportar para o centro do terreno."/> - <button label="Mapa" label_selected="Mapa" name="Show on Map" tool_tip="Mostrar terreno na mápa-mundi" width="130"/> + <button label="Mostrar no mapa" label_selected="Mapa" name="Show on Map" tool_tip="Mostrar terreno no mápa-mundi" width="130"/> <text name="contrib_label"> - Contribuições para os seus grupos: + Contribuições de grupos: </text> <scroll_list name="grant list"> <column label="Grupo" name="group"/> <column label="Área" name="area"/> </scroll_list> <text name="allowed_label" width="380"> - Propriedades de terreno permitidas com o plano de pagamento atual: + Metragem permitida com o plano atual: </text> <text left_delta="390" name="allowed_text"> [AREA] m² </text> <text name="current_label"> - Propriedades de terrenos atuais: + Metragem atual: </text> <text left_delta="390" name="current_text"> [AREA] m² </text> <text name="available_label"> - Disponível para compra de terras: + Metragem disponível para compra: </text> <text left_delta="390" name="available_text"> [AREA] m² diff --git a/indra/newview/skins/default/xui/pt/floater_tools.xml b/indra/newview/skins/default/xui/pt/floater_tools.xml index e70bd0575e..67d8e35cf2 100644 --- a/indra/newview/skins/default/xui/pt/floater_tools.xml +++ b/indra/newview/skins/default/xui/pt/floater_tools.xml @@ -342,9 +342,9 @@ <text name="text revolutions"> Revoluções </text> - <texture_picker label="Texture de Escultura" name="sculpt texture control" tool_tip="Click to choose a picture"/> - <check_box label="Espelho" name="sculpt mirror control" tool_tip="Flips sculpted prim along the X axis"/> - <check_box label="De dentro para fora" name="sculpt invert control" tool_tip="Inverts the sculpted prims normals, making it appear inside-out"/> + <texture_picker label="Textura de escultura" name="sculpt texture control" tool_tip="Selecionar imagem"/> + <check_box label="Espelho" name="sculpt mirror control" tool_tip="Inverte o prim esculpido no eixo X"/> + <check_box label="De dentro para fora" name="sculpt invert control" tool_tip="Inverte o prim esculpido normals, making it appear inside-out"/> <text name="label sculpt type"> Tipo costura </text> @@ -361,9 +361,9 @@ Selecione apenas um prim para editar suas características. </text> <text name="edit_object"> - Editar características do Objeto: + Editar características do objeto: </text> - <check_box label="Flexíbilidade" name="Flexible1D Checkbox Ctrl" tool_tip="Allows object to flex about the Z axis (Client-side only)"/> + <check_box label="Flexibilidade" name="Flexible1D Checkbox Ctrl" tool_tip="Allows object to flex about the Z axis (Client-side only)"/> <spinner label="Suavidade" name="FlexNumSections"/> <spinner label="Gravidade" name="FlexGravity"/> <spinner label="Arrastar" name="FlexFriction"/> @@ -438,17 +438,17 @@ <combo_box.item label="Weave" name="weave"/> </combo_box> <text name="tex scale"> - Repeats / Face + Repetições/Face </text> <spinner label="Horizontal (U)" name="TexScaleU"/> - <check_box label="Flip" name="checkbox flip s"/> + <check_box label="Inverter" name="checkbox flip s"/> <spinner label="Vertical (V)" name="TexScaleV"/> - <check_box label="Flip" name="checkbox flip t"/> - <spinner label="Rotation˚" name="TexRot"/> - <spinner label="Repeats / Meter" name="rptctrl"/> + <check_box label="Inverter" name="checkbox flip t"/> + <spinner label="Rotação˚" name="TexRot"/> + <spinner label="Repetições/Metro" name="rptctrl"/> <button label="Aplicar" label_selected="Aplicar" name="button apply"/> <text name="tex offset"> - Texture Offset + Offset de textura </text> <spinner label="Horizontal (U)" name="TexOffsetU"/> <spinner label="Vertical (V)" name="TexOffsetV"/> @@ -463,13 +463,13 @@ </panel> </panel> <panel label="Conteúdo" name="Contents"> - <button label="Novo Script" label_selected="Novo script" name="button new script"/> + <button label="Novo script" label_selected="Novo script" name="button new script"/> <button label="Autorizações" name="button permissions"/> </panel> </tab_container> <panel name="land info panel"> <text name="label_parcel_info"> - Informações do Lote + Informações do lote </text> <text name="label_area_price"> Preço: L$[PRICE] por [AREA] m² diff --git a/indra/newview/skins/default/xui/pt/menu_inventory.xml b/indra/newview/skins/default/xui/pt/menu_inventory.xml index 1ee197ce30..1b1efd3270 100644 --- a/indra/newview/skins/default/xui/pt/menu_inventory.xml +++ b/indra/newview/skins/default/xui/pt/menu_inventory.xml @@ -61,7 +61,7 @@ <menu_item_call label="Copiar" name="Copy"/> <menu_item_call label="Colar" name="Paste"/> <menu_item_call label="Colar como link" name="Paste As Link"/> - <menu_item_call label="Remover link" name="Remove Link"/> + <menu_item_call label="Excluir" name="Remove Link"/> <menu_item_call label="Apagar" name="Delete"/> <menu_item_call label="Excluir pasta do sistema" name="Delete System Folder"/> <menu_item_call label="Pasta conversa em conferência" name="Conference Chat Folder"/> diff --git a/indra/newview/skins/default/xui/pt/menu_inventory_add.xml b/indra/newview/skins/default/xui/pt/menu_inventory_add.xml index fc40384891..2723f39287 100644 --- a/indra/newview/skins/default/xui/pt/menu_inventory_add.xml +++ b/indra/newview/skins/default/xui/pt/menu_inventory_add.xml @@ -5,6 +5,7 @@ <menu_item_call label="Som (L$[COST])..." name="Upload Sound"/> <menu_item_call label="Animação (L$[COST])..." name="Upload Animation"/> <menu_item_call label="Volume (L$[COST] per file)..." name="Bulk Upload"/> + <menu_item_call label="Autorizações de upload padrão" name="perm prefs"/> </menu> <menu_item_call label="Nova pasta" name="New Folder"/> <menu_item_call label="Novo script" name="New Script"/> diff --git a/indra/newview/skins/default/xui/pt/menu_viewer.xml b/indra/newview/skins/default/xui/pt/menu_viewer.xml index d9ff847647..d5e0808000 100644 --- a/indra/newview/skins/default/xui/pt/menu_viewer.xml +++ b/indra/newview/skins/default/xui/pt/menu_viewer.xml @@ -94,7 +94,6 @@ <menu_item_call label="Scripts em modo não execução" name="Set Scripts to Not Running"/> </menu> <menu label="Opções" name="Options"> - <menu_item_call label="Definir permissões padrão de upload" name="perm prefs"/> <menu_item_check label="Mostrar permissões avançadas" name="DebugPermissions"/> <menu_item_check label="Só selecionar meus objetos" name="Select Only My Objects"/> <menu_item_check label="Só selecionar objetos móveis" name="Select Only Movable Objects"/> @@ -112,6 +111,7 @@ <menu_item_call label="Som (L$[COST])..." name="Upload Sound"/> <menu_item_call label="Animação (L$[COST])..." name="Upload Animation"/> <menu_item_call label="Volume (L$[COST] por arquivo)..." name="Bulk Upload"/> + <menu_item_call label="Autorizações de upload padrão" name="perm prefs"/> </menu> </menu> <menu label="Ajuda" name="Help"> diff --git a/indra/newview/skins/default/xui/pt/notifications.xml b/indra/newview/skins/default/xui/pt/notifications.xml index 5ab5de59d9..2a1b5f995a 100644 --- a/indra/newview/skins/default/xui/pt/notifications.xml +++ b/indra/newview/skins/default/xui/pt/notifications.xml @@ -356,7 +356,7 @@ Tem certeza de que quer prosseguir? <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Apagar"/> </notification> <notification name="DeleteOutfits"> - Excluir look(s) selecionado(s)? + Excluir o look selecionado? <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/> </notification> <notification name="PromptGoToEventsPage"> diff --git a/indra/newview/skins/default/xui/pt/panel_nearby_media.xml b/indra/newview/skins/default/xui/pt/panel_nearby_media.xml index 8d08177eed..672b8e6735 100644 --- a/indra/newview/skins/default/xui/pt/panel_nearby_media.xml +++ b/indra/newview/skins/default/xui/pt/panel_nearby_media.xml @@ -23,6 +23,12 @@ <button label="Mais >>" label_selected="Menos <<" name="less_btn" tool_tip="Controles avançados"/> </panel> <panel name="nearby_media_panel"> + <text name="nearby_media_title"> + Mídia por perto + </text> + <text name="show_text"> + Mostrar: + </text> <combo_box name="show_combo"> <combo_box.item label="Tudo" name="All"/> <combo_box.item label="Neste lote" name="WithinParcel"/> diff --git a/indra/newview/skins/default/xui/pt/panel_place_profile.xml b/indra/newview/skins/default/xui/pt/panel_place_profile.xml index 554c4d897d..af6c9ea346 100644 --- a/indra/newview/skins/default/xui/pt/panel_place_profile.xml +++ b/indra/newview/skins/default/xui/pt/panel_place_profile.xml @@ -7,7 +7,7 @@ <string name="allocated" value="alocados"/> <string name="title_place" value="Perfil da região"/> <string name="title_teleport_history" value="Teletransportes"/> - <string name="not_available" value="(N\A)"/> + <string name="not_available" value="(N/A)"/> <string name="unknown" value="(Desconhecido)"/> <string name="public" value="(público)"/> <string name="none_text" value="(nenhum)"/> @@ -56,7 +56,7 @@ <text name="voice_value" value="Ligado"/> <text name="fly_label" value="Voar:"/> <text name="fly_value" value="Ligado"/> - <text name="push_label" value="Empurrar:"/> + <text name="push_label" value="Empurrões:"/> <text name="push_value" value="Desligado"/> <text name="build_label" value="Construir:"/> <text name="build_value" value="Ligado"/> diff --git a/indra/newview/skins/default/xui/pt/panel_region_general.xml b/indra/newview/skins/default/xui/pt/panel_region_general.xml index d1a5eaa11e..e06f3c74bf 100644 --- a/indra/newview/skins/default/xui/pt/panel_region_general.xml +++ b/indra/newview/skins/default/xui/pt/panel_region_general.xml @@ -18,26 +18,26 @@ <text name="region_type"> desconhecido </text> - <check_box label="Bloquear Terraform" name="block_terraform_check"/> - <check_box label="Bloquear Vôo" name="block_fly_check"/> - <check_box label="Permitir Dano" name="allow_damage_check"/> - <check_box label="Restringir Empurrar" name="restrict_pushobject"/> - <check_box label="Permitir Revenda de Terra" name="allow_land_resell_check"/> - <check_box label="Permitir Unir/Dividir Terra" name="allow_parcel_changes_check"/> - <check_box label="Bloquear Mostrar Terra na Busca" name="block_parcel_search_check" tool_tip="Permitir que as pessoas vejam esta região e seus lotes nos resultados de busca"/> - <spinner label="Limit do Agente" name="agent_limit_spin"/> - <spinner label="Objeto Bonus" name="object_bonus_spin"/> + <check_box label="Bloquear terraplenagem" name="block_terraform_check"/> + <check_box label="Bloquear voos" name="block_fly_check"/> + <check_box label="Permitir dano" name="allow_damage_check"/> + <check_box label="Restringir empurrões" name="restrict_pushobject"/> + <check_box label="Permitir revenda do terreno" name="allow_land_resell_check"/> + <check_box label="Permitir junção/divisão do terreno" name="allow_parcel_changes_check"/> + <check_box label="Bloquear exibição do terreno na busca" name="block_parcel_search_check" tool_tip="Permitir que as pessoas vejam esta região e seus lotes nos resultados de busca"/> + <spinner label="Limite do agente" name="agent_limit_spin"/> + <spinner label="Bônus de objetos" name="object_bonus_spin"/> <text label="Maturidade" name="access_text"> Classificação: </text> <icons_combo_box label="Mature" name="access_combo"> - <icons_combo_box.item label="Adult" name="Adult" value="42"/> - <icons_combo_box.item label="Mature" name="Mature" value="21"/> - <icons_combo_box.item label="PG" name="PG" value="13"/> + <icons_combo_box.item label="Adulto" name="Adult" value="42"/> + <icons_combo_box.item label="Moderado" name="Mature" value="21"/> + <icons_combo_box.item label="Geral" name="PG" value="13"/> </icons_combo_box> <button label="Aplicar" name="apply_btn"/> <button label="Teletransportar um residente para início..." name="kick_btn"/> <button label="Teletransportar todos para início..." name="kick_all_btn"/> - <button label="Enviar Mensagem para a Região..." name="im_btn"/> - <button label="Gerenciar Telehub..." name="manage_telehub_btn"/> + <button label="Enviar mensagem para a região..." name="im_btn"/> + <button label="Gerenciar telehub..." name="manage_telehub_btn"/> </panel> diff --git a/indra/newview/skins/default/xui/pt/strings.xml b/indra/newview/skins/default/xui/pt/strings.xml index 95ad41743e..85256d8ab9 100644 --- a/indra/newview/skins/default/xui/pt/strings.xml +++ b/indra/newview/skins/default/xui/pt/strings.xml @@ -184,6 +184,7 @@ <string name="TooltipMustSingleDrop"> Apenas um item único pode ser arrastado para este local </string> + <string name="TooltipPrice" value="L$[AMOUNT]"/> <string name="TooltipHttpUrl"> Clique para ver a página web </string> @@ -236,7 +237,6 @@ Clique para ativar no secondlife:// comando </string> <string name="CurrentURL" value="URL atual: [CurrentURL]"/> - <string name="TooltipPrice" value="L$[AMOUNT]: "/> <string name="SLurlLabelTeleport"> Teletransportar para </string> @@ -885,12 +885,57 @@ <string name="invalid_not_worn"> inválido </string> + <string name="create_new_shape"> + Criar novo físico + </string> + <string name="create_new_skin"> + Criar pele nova + </string> + <string name="create_new_hair"> + Criar cabelo novo + </string> + <string name="create_new_eyes"> + Criar olhos novos + </string> + <string name="create_new_shirt"> + Criar camisa nova + </string> + <string name="create_new_pants"> + Criar calças novas + </string> + <string name="create_new_shoes"> + Criar sapatos novos + </string> + <string name="create_new_socks"> + Criar meias novas + </string> + <string name="create_new_jacket"> + Criar jaqueta nova + </string> + <string name="create_new_gloves"> + Criar luvas novas + </string> + <string name="create_new_undershirt"> + Criar camiseta nova + </string> + <string name="create_new_underpants"> + Criar roupa de baixo nova + </string> + <string name="create_new_skirt"> + Criar saia nova + </string> + <string name="create_new_alpha"> + Criar Alpha novo + </string> + <string name="create_new_tattoo"> + Criar nova tatuagem + </string> + <string name="create_new_invalid"> + inválido + </string> <string name="NewWearable"> Novo [WEARABLE_ITEM] </string> - <string name="CreateNewWearable"> - Criar [WEARABLE_TYPE] - </string> <string name="next"> Próximo </string> @@ -1071,6 +1116,9 @@ <string name="InvFolder Favorite"> Favoritos </string> + <string name="InvFolder favorite"> + Favoritos + </string> <string name="InvFolder Current Outfit"> Look atual </string> @@ -1606,12 +1654,6 @@ <string name="BusyModeResponseDefault"> O residente para o qual escreveu está no modo 'ocupado', ou seja, ele prefere não receber nada no momento. Sua mensagem será exibida como uma MI mais tarde. </string> - <string name="NoOutfits"> - Você ainda não tem nenhum look. Tente fazer uma [secondlife:///app/search/groups Busca]. - </string> - <string name="NoOutfitsTabsMatched"> - Não encontrou o que procura? Tente buscar no [secondlife:///app/search/people/[SEARCH_TERM] Search]. - </string> <string name="MuteByName"> (por nome) </string> |