diff options
Diffstat (limited to 'indra/newview')
88 files changed, 964 insertions, 340 deletions
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index f87cdbc43e..e5d72310cd 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -4334,7 +4334,7 @@ <key>Type</key> <string>String</string> <key>Value</key> - <string>home</string> + <string>last</string> </map> <key>LoginPage</key> <map> diff --git a/indra/newview/installers/windows/install_icon.ico b/indra/newview/installers/windows/install_icon.ico Binary files differindex 1e00530c90..efe6c4f323 100644 --- a/indra/newview/installers/windows/install_icon.ico +++ b/indra/newview/installers/windows/install_icon.ico diff --git a/indra/newview/installers/windows/uninstall_icon.ico b/indra/newview/installers/windows/uninstall_icon.ico Binary files differindex c4ec6c70bd..05e1546860 100644 --- a/indra/newview/installers/windows/uninstall_icon.ico +++ b/indra/newview/installers/windows/uninstall_icon.ico diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 948d38befb..6d4c90c2b9 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -304,7 +304,8 @@ static std::string gLaunchFileOnQuit; // Used on Win32 for other apps to identify our window (eg, win_setup) const char* const VIEWER_WINDOW_CLASSNAME = "Second Life"; - +static const S32 FIRST_RUN_WINDOW_WIDTH = 1024; +static const S32 FIRST_RUN_WINDOW_HRIGHT = 768; //---------------------------------------------------------------------------- // List of entries from strings.xml to always replace @@ -2362,12 +2363,35 @@ bool LLAppViewer::initWindow() // store setting in a global for easy access and modification gNoRender = gSavedSettings.getBOOL("DisableRendering"); + S32 window_x = gSavedSettings.getS32("WindowX"); + S32 window_y = gSavedSettings.getS32("WindowY"); + S32 window_width = gSavedSettings.getS32("WindowWidth"); + S32 window_height = gSavedSettings.getS32("WindowHeight"); + + bool show_maximized = gSavedSettings.getBOOL("WindowMaximized"); + + bool first_run = gSavedSettings.getBOOL("FirstLoginThisInstall"); + + if (first_run)//for first login + { + window_width = FIRST_RUN_WINDOW_WIDTH;//yep hardcoded + window_height = FIRST_RUN_WINDOW_HRIGHT; + + //if screen resolution is lower then 1024*768 then show maximized + LLDisplayInfo display_info; + if(display_info.getDisplayWidth() <= FIRST_RUN_WINDOW_WIDTH + || display_info.getDisplayHeight()<=FIRST_RUN_WINDOW_HRIGHT) + { + show_maximized = true; + } + } + // always start windowed BOOL ignorePixelDepth = gSavedSettings.getBOOL("IgnorePixelDepth"); gViewerWindow = new LLViewerWindow(gWindowTitle, VIEWER_WINDOW_CLASSNAME, - gSavedSettings.getS32("WindowX"), gSavedSettings.getS32("WindowY"), - gSavedSettings.getS32("WindowWidth"), gSavedSettings.getS32("WindowHeight"), + window_x, window_y, + window_width, window_height, FALSE, ignorePixelDepth); LLNotificationsUI::LLNotificationManager::getInstance(); @@ -2378,7 +2402,7 @@ bool LLAppViewer::initWindow() gViewerWindow->toggleFullscreen(FALSE); } - if (gSavedSettings.getBOOL("WindowMaximized")) + if (show_maximized) { gViewerWindow->mWindow->maximize(); gViewerWindow->getWindow()->setNativeAspectRatio(gSavedSettings.getF32("FullScreenAspectRatio")); diff --git a/indra/newview/llavatarlist.cpp b/indra/newview/llavatarlist.cpp index 50d8672083..45c540b3a3 100644 --- a/indra/newview/llavatarlist.cpp +++ b/indra/newview/llavatarlist.cpp @@ -183,6 +183,15 @@ void LLAvatarList::sortByName() sort(); } +void LLAvatarList::setDirty(bool val /*= true*/, bool force_refresh /*= false*/) +{ + mDirty = val; + if(mDirty && force_refresh) + { + refresh(); + } +} + ////////////////////////////////////////////////////////////////////////// // PROTECTED SECTION ////////////////////////////////////////////////////////////////////////// diff --git a/indra/newview/llavatarlist.h b/indra/newview/llavatarlist.h index 0e4215e91a..00c72f1f9d 100644 --- a/indra/newview/llavatarlist.h +++ b/indra/newview/llavatarlist.h @@ -73,7 +73,7 @@ public: virtual void clear(); void setNameFilter(const std::string& filter); - void setDirty(bool val = true) { mDirty = val; } + void setDirty(bool val = true, bool force_refresh = false); uuid_vector_t& getIDs() { return mIDs; } bool contains(const LLUUID& id); diff --git a/indra/newview/llclassifiedstatsresponder.cpp b/indra/newview/llclassifiedstatsresponder.cpp index ecd1879090..95f17aa7ba 100644 --- a/indra/newview/llclassifiedstatsresponder.cpp +++ b/indra/newview/llclassifiedstatsresponder.cpp @@ -43,11 +43,12 @@ #include "llview.h" #include "message.h" -LLClassifiedStatsResponder::LLClassifiedStatsResponder(LLHandle<LLView> classified_panel_handle, LLUUID classified_id) -: mClassifiedPanelHandle(classified_panel_handle), +LLClassifiedStatsResponder::LLClassifiedStatsResponder(LLUUID classified_id) +: mClassifiedID(classified_id) { } + /*virtual*/ void LLClassifiedStatsResponder::result(const LLSD& content) { @@ -58,17 +59,12 @@ void LLClassifiedStatsResponder::result(const LLSD& content) S32 search_map = content["search_map_clicks"].asInteger(); S32 search_profile = content["search_profile_clicks"].asInteger(); - LLPanelClassified* classified_panelp = (LLPanelClassified*)mClassifiedPanelHandle.get(); - - if(classified_panelp) - { - classified_panelp->setClickThrough(mClassifiedID, - teleport + search_teleport, - map + search_map, - profile + search_profile, - true); - } - + LLPanelClassifiedInfo::setClickThrough( + mClassifiedID, + teleport + search_teleport, + map + search_map, + profile + search_profile, + true); } /*virtual*/ @@ -77,5 +73,3 @@ void LLClassifiedStatsResponder::error(U32 status, const std::string& reason) llinfos << "LLClassifiedStatsResponder::error(" << status << ": " << reason << ")" << llendl; } - - diff --git a/indra/newview/llclassifiedstatsresponder.h b/indra/newview/llclassifiedstatsresponder.h index 9c52ed5ae1..4a74f7b129 100644 --- a/indra/newview/llclassifiedstatsresponder.h +++ b/indra/newview/llclassifiedstatsresponder.h @@ -40,7 +40,7 @@ class LLClassifiedStatsResponder : public LLHTTPClient::Responder { public: - LLClassifiedStatsResponder(LLHandle<LLView> classified_panel_handle, LLUUID classified_id); + LLClassifiedStatsResponder(LLUUID classified_id); //If we get back a normal response, handle it here virtual void result(const LLSD& content); //If we get back an error (not found, etc...), handle it here @@ -48,7 +48,6 @@ public: virtual void error(U32 status, const std::string& reason); protected: - LLHandle<LLView> mClassifiedPanelHandle; LLUUID mClassifiedID; }; diff --git a/indra/newview/lldebugview.cpp b/indra/newview/lldebugview.cpp index 169a963d0d..f113cc49d4 100644 --- a/indra/newview/lldebugview.cpp +++ b/indra/newview/lldebugview.cpp @@ -81,11 +81,13 @@ void LLDebugView::init() r.setLeftTopAndSize(25, rect.getHeight() - 50, (S32) (gViewerWindow->getWindowRectScaled().getWidth() * 0.75f), (S32) (gViewerWindow->getWindowRectScaled().getHeight() * 0.75f)); + mFastTimerView = new LLFastTimerView(r); mFastTimerView->setFollowsTop(); mFastTimerView->setFollowsLeft(); mFastTimerView->setVisible(FALSE); // start invisible addChild(mFastTimerView); + mFastTimerView->setRect(rect); r.setLeftTopAndSize(25, rect.getHeight() - 50, (S32) (gViewerWindow->getWindowRectScaled().getWidth() * 0.75f), (S32) (gViewerWindow->getWindowRectScaled().getHeight() * 0.75f)); diff --git a/indra/newview/llfasttimerview.cpp b/indra/newview/llfasttimerview.cpp index 4fa97e789b..8bc3b5a75f 100644 --- a/indra/newview/llfasttimerview.cpp +++ b/indra/newview/llfasttimerview.cpp @@ -44,6 +44,7 @@ #include "llfontgl.h" #include "llsdserialize.h" #include "lltooltip.h" +#include "llbutton.h" #include "llappviewer.h" #include "llviewertexturelist.h" @@ -99,6 +100,8 @@ LLFastTimerView::LLFastTimerView(const LLRect& rect) FTV_NUM_TIMERS = LLFastTimer::NamedTimer::instanceCount(); mPrintStats = -1; mAverageCyclesPerTimer = 0; + setCanMinimize(false); + setCanClose(true); } @@ -139,6 +142,18 @@ LLFastTimer::NamedTimer* LLFastTimerView::getLegendID(S32 y) BOOL LLFastTimerView::handleMouseDown(S32 x, S32 y, MASK mask) { + + { + S32 local_x = x - mButtons[BUTTON_CLOSE]->getRect().mLeft; + S32 local_y = y - mButtons[BUTTON_CLOSE]->getRect().mBottom; + if(mButtons[BUTTON_CLOSE]->getVisible() + && mButtons[BUTTON_CLOSE]->pointInView(local_x, local_y) ) + { + return LLFloater::handleMouseDown(x, y, mask);; + } + } + + if (x < mBarRect.mLeft) { LLFastTimer::NamedTimer* idp = getLegendID(y); @@ -188,6 +203,15 @@ BOOL LLFastTimerView::handleMouseDown(S32 x, S32 y, MASK mask) BOOL LLFastTimerView::handleMouseUp(S32 x, S32 y, MASK mask) { + { + S32 local_x = x - mButtons[BUTTON_CLOSE]->getRect().mLeft; + S32 local_y = y - mButtons[BUTTON_CLOSE]->getRect().mBottom; + if(mButtons[BUTTON_CLOSE]->getVisible() + && mButtons[BUTTON_CLOSE]->pointInView(local_x, local_y) ) + { + return LLFloater::handleMouseUp(x, y, mask);; + } + } return FALSE; } @@ -1191,5 +1215,8 @@ void LLFastTimerView::doAnalysis(std::string baseline, std::string target, std:: return ; } } - +void LLFastTimerView::onClickCloseBtn() +{ + setVisible(false); +} diff --git a/indra/newview/llfasttimerview.h b/indra/newview/llfasttimerview.h index f5c8f23818..ac06990913 100644 --- a/indra/newview/llfasttimerview.h +++ b/indra/newview/llfasttimerview.h @@ -63,7 +63,9 @@ public: LLFastTimer::NamedTimer* getLegendID(S32 y); F64 getTime(const std::string& name); - + +protected: + virtual void onClickCloseBtn(); private: typedef std::vector<std::vector<S32> > bar_positions_t; bar_positions_t mBarStart; diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 780393a9c0..839d3f0c21 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -985,7 +985,8 @@ void LLFloaterPreference::cleanupBadSetting() if (gSavedPerAccountSettings.getString("BusyModeResponse2") == "|TOKEN COPY BusyModeResponse|") { llwarns << "cleaning old BusyModeResponse" << llendl; - gSavedPerAccountSettings.setString("BusyModeResponse2", gSavedPerAccountSettings.getText("BusyModeResponse")); + //LLTrans::getString("BusyModeResponseDefault") is used here for localization (EXT-5885) + gSavedPerAccountSettings.setString("BusyModeResponse2", LLTrans::getString("BusyModeResponseDefault")); } } @@ -1288,7 +1289,7 @@ BOOL LLPanelPreference::postBuild() if (hasChild("media_enabled")) { bool media_enabled = gSavedSettings.getBOOL("AudioStreamingMedia"); - getChild<LLCheckBoxCtrl>("voice_call_friends_only_check")->setCommitCallback(boost::bind(&showFriendsOnlyWarning, _1, _2)); + getChild<LLCheckBoxCtrl>("media_enabled")->set(media_enabled); getChild<LLCheckBoxCtrl>("autoplay_enabled")->setEnabled(media_enabled); } @@ -1296,7 +1297,11 @@ BOOL LLPanelPreference::postBuild() { getChild<LLCheckBoxCtrl>("music_enabled")->set(gSavedSettings.getBOOL("AudioStreamingMusic")); } - + if (hasChild("voice_call_friends_only_check")) + { + getChild<LLCheckBoxCtrl>("voice_call_friends_only_check")->setCommitCallback(boost::bind(&showFriendsOnlyWarning, _1, _2)); + } + apply(); return true; } diff --git a/indra/newview/llfriendcard.cpp b/indra/newview/llfriendcard.cpp index ac060cef15..18f81fe506 100644 --- a/indra/newview/llfriendcard.cpp +++ b/indra/newview/llfriendcard.cpp @@ -44,24 +44,28 @@ // Constants; -static const std::string INVENTORY_STRING_FRIENDS_SUBFOLDER = "InvFolder Friends"; -static const std::string INVENTORY_STRING_FRIENDS_ALL_SUBFOLDER = "InvFolder All"; +static const std::string INVENTORY_STRING_FRIENDS_SUBFOLDER = "Friends"; +static const std::string INVENTORY_STRING_FRIENDS_ALL_SUBFOLDER = "All"; // helper functions -// NOTE: Usage of LLTrans::getString(); in next two functions to set localized -// folders' names is caused by a hack in the LLFolderViewItem::refreshFromListener() -// method for protected asset types. -// So, localized names will be got from the strings with "InvFolder LABEL_NAME" -// in the strings.xml +// NOTE: For now Friends & All folders are created as protected folders of the LLFolderType::FT_CALLINGCARD type. +// So, their names will be processed in the LLFolderViewItem::refreshFromListener() to be localized +// using "InvFolder LABEL_NAME" as LLTrans::findString argument. + +// We must use in this file their hard-coded names to ensure found them on different locales. EXT-5829. +// These hard-coded names will be stored in InventoryItems but shown localized in FolderViewItems + +// If hack in the LLFolderViewItem::refreshFromListener() to localize protected folder is removed +// or these folders are not protected these names should be localized in another place/way. inline const std::string get_friend_folder_name() { - return LLTrans::getString(INVENTORY_STRING_FRIENDS_SUBFOLDER); + return INVENTORY_STRING_FRIENDS_SUBFOLDER; } inline const std::string get_friend_all_subfolder_name() { - return LLTrans::getString(INVENTORY_STRING_FRIENDS_ALL_SUBFOLDER); + return INVENTORY_STRING_FRIENDS_ALL_SUBFOLDER; } void move_from_to_arrays(LLInventoryModel::cat_array_t& from, LLInventoryModel::cat_array_t& to) @@ -350,9 +354,9 @@ const LLUUID& LLFriendCardsManager::findFriendAllSubfolderUUIDImpl() const return findChildFolderUUID(friendFolderUUID, friendAllSubfolderName); } -const LLUUID& LLFriendCardsManager::findChildFolderUUID(const LLUUID& parentFolderUUID, const std::string& localizedName) const +const LLUUID& LLFriendCardsManager::findChildFolderUUID(const LLUUID& parentFolderUUID, const std::string& nonLocalizedName) const { - LLNameCategoryCollector matchFolderFunctor(localizedName); + LLNameCategoryCollector matchFolderFunctor(nonLocalizedName); return get_folder_uuid(parentFolderUUID, matchFolderFunctor); } diff --git a/indra/newview/llfriendcard.h b/indra/newview/llfriendcard.h index b94d5ec2c0..1cda52c1d7 100644 --- a/indra/newview/llfriendcard.h +++ b/indra/newview/llfriendcard.h @@ -120,7 +120,7 @@ private: return (mBuddyIDSet.end() != mBuddyIDSet.find(avatarID)); } - const LLUUID& findChildFolderUUID(const LLUUID& parentFolderUUID, const std::string& localizedName) const; + const LLUUID& findChildFolderUUID(const LLUUID& parentFolderUUID, const std::string& nonLocalizedName) const; const LLUUID& findFriendFolderUUIDImpl() const; const LLUUID& findFriendAllSubfolderUUIDImpl() const; const LLUUID& findFriendCardInventoryUUIDImpl(const LLUUID& avatarID); diff --git a/indra/newview/llgrouplist.h b/indra/newview/llgrouplist.h index f3ac676edd..0e9da25c58 100644 --- a/indra/newview/llgrouplist.h +++ b/indra/newview/llgrouplist.h @@ -74,6 +74,11 @@ public: void setNameFilter(const std::string& filter); void toggleIcons(); bool getIconsVisible() const { return mShowIcons; } + + // *WORKAROUND: two methods to overload appropriate Params due to localization issue: + // no_groups_msg & no_filtered_groups_msg attributes are not defined as translatable in VLT. See EXT-5931 + void setNoGroupsMsg(const std::string& msg) { mNoGroupsMsg = msg; } + void setNoFilteredGroupsMsg(const std::string& msg) { mNoFilteredGroupsMsg = msg; } private: void setDirty(bool val = true) { mDirty = val; } diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp index 8cdc50eb70..77eaebb0bc 100644 --- a/indra/newview/llimfloater.cpp +++ b/indra/newview/llimfloater.cpp @@ -127,12 +127,6 @@ void LLIMFloater::onFocusReceived() { LLIMModel::getInstance()->setActiveSessionID(mSessionID); - // return focus to the input field when active tab in the multitab container is clicked. - if (isChatMultiTab() && mInputEditor) - { - mInputEditor->setFocus(TRUE); - } - LLBottomTray::getInstance()->getChicletPanel()->setChicletToggleState(mSessionID, true); } @@ -682,15 +676,6 @@ void LLIMFloater::onInputEditorFocusReceived( LLFocusableElement* caller, void* //in disconnected state IM input editor should be disabled self->mInputEditor->setEnabled(!gDisconnected); } - - // when IM Floater is a part of the multitab container LLTabContainer set focus to the first - // child on tab button's mouse up. This leads input field lost focus. See EXT-3852. - if (isChatMultiTab()) - { - // So, clear control captured mouse to prevent LLTabContainer set focus on the panel's first child. - // do not pass self->mInputEditor, this leads to have "Edit Text" mouse pointer wherever it is. - gFocusMgr.setMouseCapture(NULL); - } } // static diff --git a/indra/newview/llimfloatercontainer.cpp b/indra/newview/llimfloatercontainer.cpp index d518318b0e..9eb11a6ac4 100644 --- a/indra/newview/llimfloatercontainer.cpp +++ b/indra/newview/llimfloatercontainer.cpp @@ -96,8 +96,29 @@ void LLIMFloaterContainer::addFloater(LLFloater* floaterp, LLUUID session_id = floaterp->getKey(); - floaterp->mCloseSignal.connect(boost::bind(&LLIMFloaterContainer::onCloseFloater, this, session_id)); - mSessions[session_id] = floaterp; + LLIconCtrl* icon = 0; + + if(gAgent.isInGroup(session_id, TRUE)) + { + LLGroupIconCtrl::Params icon_params = LLUICtrlFactory::instance().getDefaultParams<LLGroupIconCtrl>(); + icon_params.group_id = session_id; + icon = LLUICtrlFactory::instance().createWidget<LLGroupIconCtrl>(icon_params); + + mSessions[session_id] = floaterp; + floaterp->mCloseSignal.connect(boost::bind(&LLIMFloaterContainer::onCloseFloater, this, session_id)); + } + else + { + LLUUID avatar_id = LLIMModel::getInstance()->getOtherParticipantID(session_id); + + LLAvatarIconCtrl::Params icon_params = LLUICtrlFactory::instance().getDefaultParams<LLAvatarIconCtrl>(); + icon_params.avatar_id = avatar_id; + icon = LLUICtrlFactory::instance().createWidget<LLAvatarIconCtrl>(icon_params); + + mSessions[session_id] = floaterp; + floaterp->mCloseSignal.connect(boost::bind(&LLIMFloaterContainer::onCloseFloater, this, session_id)); + } + mTabContainer->setTabImage(floaterp, icon); } void LLIMFloaterContainer::onCloseFloater(LLUUID& id) @@ -134,6 +155,8 @@ void LLIMFloaterContainer::setMinimized(BOOL b) if (isMinimized() == b) return; LLMultiFloater::setMinimized(b); + // Hide minimized floater (see EXT-5315) + setVisible(!b); if (isMinimized()) return; diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 1dc601e260..b3f085ef6d 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -1565,7 +1565,7 @@ void LLCallDialog::onOpen(const LLSD& key) LLDockableFloater::onOpen(key); // it should be over the all floaters. EXT-5116 - gFloaterView->bringToFront(this); + gFloaterView->bringToFront(this, FALSE); } void LLCallDialog::setIcon(const LLSD& session_id, const LLSD& participant_id) diff --git a/indra/newview/llnamelistctrl.cpp b/indra/newview/llnamelistctrl.cpp index 114fef8712..883d4cdf4b 100644 --- a/indra/newview/llnamelistctrl.cpp +++ b/indra/newview/llnamelistctrl.cpp @@ -47,6 +47,8 @@ static LLDefaultChildRegistry::Register<LLNameListCtrl> r("name_list"); +static const S32 info_icon_size = 16; + void LLNameListCtrl::NameTypeNames::declareValues() { declare("INDIVIDUAL", LLNameListCtrl::INDIVIDUAL); @@ -138,6 +140,29 @@ void LLNameListCtrl::showInspector(const LLUUID& avatar_id, bool is_group) LLFloaterReg::showInstance("inspect_avatar", LLSD().with("avatar_id", avatar_id)); } +void LLNameListCtrl::mouseOverHighlightNthItem( S32 target_index ) +{ + if (getHighlightedItemInx()!= target_index) + { + if(getHighlightedItemInx()!=-1) + { + LLScrollListItem* item = getItemList()[getHighlightedItemInx()]; + LLScrollListText* cell = dynamic_cast<LLScrollListText*>(item->getColumn(mNameColumnIndex)); + if(cell) + cell->setTextWidth(cell->getTextWidth() + info_icon_size); + } + if(target_index != -1) + { + LLScrollListItem* item = getItemList()[target_index]; + LLScrollListText* cell = dynamic_cast<LLScrollListText*>(item->getColumn(mNameColumnIndex)); + if(cell) + cell->setTextWidth(cell->getTextWidth() - info_icon_size); + } + } + + LLScrollListCtrl::mouseOverHighlightNthItem(target_index); +} + //virtual BOOL LLNameListCtrl::handleToolTip(S32 x, S32 y, MASK mask) { @@ -164,7 +189,7 @@ BOOL LLNameListCtrl::handleToolTip(S32 x, S32 y, MASK mask) // Spawn at right side of cell LLPointer<LLUIImage> icon = LLUI::getUIImage("Info_Small"); - LLCoordGL pos( sticky_rect.mRight - 16, sticky_rect.mTop - (sticky_rect.getHeight() - icon->getHeight())/2 ); + LLCoordGL pos( sticky_rect.mRight - info_icon_size, sticky_rect.mTop - (sticky_rect.getHeight() - icon->getHeight())/2 ); // Should we show a group or an avatar inspector? bool is_group = hit_item->getValue()["is_group"].asBoolean(); diff --git a/indra/newview/llnamelistctrl.h b/indra/newview/llnamelistctrl.h index 23b1cb6897..1c26ee5db4 100644 --- a/indra/newview/llnamelistctrl.h +++ b/indra/newview/llnamelistctrl.h @@ -120,6 +120,8 @@ public: void setAllowCallingCardDrop(BOOL b) { mAllowCallingCardDrop = b; } /*virtual*/ void updateColumns(); + + /*virtual*/ void mouseOverHighlightNthItem( S32 index ); private: void showInspector(const LLUUID& avatar_id, bool is_group); diff --git a/indra/newview/llnotificationhandler.h b/indra/newview/llnotificationhandler.h index 0d5c431d75..a163b6fd62 100644 --- a/indra/newview/llnotificationhandler.h +++ b/indra/newview/llnotificationhandler.h @@ -122,9 +122,17 @@ protected: class LLSysHandler : public LLEventHandler { public: + LLSysHandler(); virtual ~LLSysHandler() {}; virtual bool processNotification(const LLSD& notify)=0; + +protected : + static void init(); + void removeExclusiveNotifications(const LLNotificationPtr& notif); + + typedef std::list< std::set<std::string> > exclusive_notif_sets; + static exclusive_notif_sets sExclusiveNotificationGroups; }; /** @@ -171,6 +179,7 @@ public: protected: virtual void onDeleteToast(LLToast* toast); + virtual void onRejectToast(const LLUUID& id); virtual void initChannel(); }; diff --git a/indra/newview/llnotificationhandlerutil.cpp b/indra/newview/llnotificationhandlerutil.cpp index 9de9998cbd..88bb769109 100644 --- a/indra/newview/llnotificationhandlerutil.cpp +++ b/indra/newview/llnotificationhandlerutil.cpp @@ -43,6 +43,75 @@ using namespace LLNotificationsUI; +// static +std::list< std::set<std::string> > LLSysHandler::sExclusiveNotificationGroups; + +// static +void LLSysHandler::init() +{ + std::set<std::string> online_offline_group; + online_offline_group.insert("FriendOnline"); + online_offline_group.insert("FriendOffline"); + + sExclusiveNotificationGroups.push_back(online_offline_group); +} + +LLSysHandler::LLSysHandler() +{ + if(sExclusiveNotificationGroups.empty()) + { + init(); + } +} + +void LLSysHandler::removeExclusiveNotifications(const LLNotificationPtr& notif) +{ + LLScreenChannel* channel = dynamic_cast<LLScreenChannel *>(mChannel); + if (channel == NULL) + { + return; + } + + class ExclusiveMatcher: public LLScreenChannel::Matcher + { + public: + ExclusiveMatcher(const std::set<std::string>& excl_group, + const std::string& from_name) : + mExclGroup(excl_group), mFromName(from_name) + { + } + bool matches(const LLNotificationPtr notification) const + { + for (std::set<std::string>::const_iterator it = mExclGroup.begin(); it + != mExclGroup.end(); it++) + { + std::string from_name = LLHandlerUtil::getSubstitutionName(notification); + if (notification->getName() == *it && from_name == mFromName) + { + return true; + } + } + return false; + } + private: + const std::set<std::string>& mExclGroup; + const std::string& mFromName; + }; + + + for (exclusive_notif_sets::iterator it = sExclusiveNotificationGroups.begin(); it + != sExclusiveNotificationGroups.end(); it++) + { + std::set<std::string> group = *it; + std::set<std::string>::iterator g_it = group.find(notif->getName()); + if (g_it != group.end()) + { + channel->killMatchedToasts(ExclusiveMatcher(group, + LLHandlerUtil::getSubstitutionName(notif))); + } + } +} + const static std::string GRANTED_MODIFY_RIGHTS("GrantedModifyRights"), REVOKED_MODIFY_RIGHTS("RevokedModifyRights"), OBJECT_GIVE_ITEM( "ObjectGiveItem"), OBJECT_GIVE_ITEM_UNKNOWN_USER( @@ -249,9 +318,15 @@ LLUUID LLHandlerUtil::spawnIMSession(const std::string& name, const LLUUID& from // static std::string LLHandlerUtil::getSubstitutionName(const LLNotificationPtr& notification) { - return notification->getSubstitutions().has("NAME") + std::string res = notification->getSubstitutions().has("NAME") ? notification->getSubstitutions()["NAME"] : notification->getSubstitutions()["[NAME]"]; + if (res.empty()) + { + LLUUID from_id = notification->getPayload()["FROM_ID"]; + gCacheName->getFullName(from_id, res); + } + return res; } // static diff --git a/indra/newview/llnotificationtiphandler.cpp b/indra/newview/llnotificationtiphandler.cpp index be76959d07..4e2c5085ed 100644 --- a/indra/newview/llnotificationtiphandler.cpp +++ b/indra/newview/llnotificationtiphandler.cpp @@ -40,6 +40,7 @@ #include "lltoastnotifypanel.h" #include "llviewercontrol.h" #include "llviewerwindow.h" +#include "llnotificationmanager.h" using namespace LLNotificationsUI; @@ -82,6 +83,10 @@ LLTipHandler::LLTipHandler(e_notification_type type, const LLSD& id) // Getting a Channel for our notifications mChannel = LLChannelManager::getInstance()->createNotificationChannel(); + + LLScreenChannel* channel = dynamic_cast<LLScreenChannel*>(mChannel); + if(channel) + channel->setOnRejectToastCallback(boost::bind(&LLTipHandler::onRejectToast, this, _1)); } //-------------------------------------------------------------------------- @@ -167,6 +172,8 @@ bool LLTipHandler::processNotification(const LLSD& notify) p.is_tip = true; p.can_be_stored = false; + removeExclusiveNotifications(notification); + LLScreenChannel* channel = dynamic_cast<LLScreenChannel*>(mChannel); if(channel) channel->addToast(p); @@ -185,4 +192,14 @@ void LLTipHandler::onDeleteToast(LLToast* toast) //-------------------------------------------------------------------------- +void LLTipHandler::onRejectToast(const LLUUID& id) +{ + LLNotificationPtr notification = LLNotifications::instance().find(id); + if (notification + && LLNotificationManager::getInstance()->getHandlerForNotification( + notification->getType()) == this) + { + LLNotifications::instance().cancel(notification); + } +} diff --git a/indra/newview/llpanelclassified.cpp b/indra/newview/llpanelclassified.cpp index 836331b44b..6f0b7df935 100644 --- a/indra/newview/llpanelclassified.cpp +++ b/indra/newview/llpanelclassified.cpp @@ -41,6 +41,7 @@ #include "lldir.h" #include "lldispatcher.h" #include "llfloaterreg.h" +#include "llhttpclient.h" #include "llnotifications.h" #include "llnotificationsutil.h" #include "llparcel.h" @@ -83,6 +84,7 @@ const S32 DECLINE_TO_STATE = 0; //static std::list<LLPanelClassified*> LLPanelClassified::sAllPanels; +std::list<LLPanelClassifiedInfo*> LLPanelClassifiedInfo::sAllPanels; // "classifiedclickthrough" // strings[0] = classified_id @@ -103,10 +105,10 @@ public: S32 teleport_clicks = atoi(strings[1].c_str()); S32 map_clicks = atoi(strings[2].c_str()); S32 profile_clicks = atoi(strings[3].c_str()); - LLPanelClassified::setClickThrough(classified_id, teleport_clicks, - map_clicks, - profile_clicks, - false); + + LLPanelClassifiedInfo::setClickThrough( + classified_id, teleport_clicks, map_clicks, profile_clicks, false); + return true; } }; @@ -497,7 +499,7 @@ void LLPanelClassified::sendClassifiedInfoRequest() if (!url.empty()) { llinfos << "Classified stat request via capability" << llendl; - LLHTTPClient::post(url, body, new LLClassifiedStatsResponder(((LLView*)this)->getHandle(), mClassifiedID)); + LLHTTPClient::post(url, body, new LLClassifiedStatsResponder(mClassifiedID)); } } } @@ -1157,11 +1159,20 @@ LLPanelClassifiedInfo::LLPanelClassifiedInfo() , mScrollContainer(NULL) , mScrollingPanelMinHeight(0) , mScrollingPanelWidth(0) + , mSnapshotStreched(false) + , mTeleportClicksOld(0) + , mMapClicksOld(0) + , mProfileClicksOld(0) + , mTeleportClicksNew(0) + , mMapClicksNew(0) + , mProfileClicksNew(0) { + sAllPanels.push_back(this); } LLPanelClassifiedInfo::~LLPanelClassifiedInfo() { + sAllPanels.remove(this); } // static @@ -1184,6 +1195,8 @@ BOOL LLPanelClassifiedInfo::postBuild() mScrollingPanelMinHeight = mScrollContainer->getScrolledViewRect().getHeight(); mScrollingPanelWidth = mScrollingPanel->getRect().getWidth(); + mSnapshotRect = getChild<LLUICtrl>("classified_snapshot")->getRect(); + return TRUE; } @@ -1215,6 +1228,8 @@ void LLPanelClassifiedInfo::reshape(S32 width, S32 height, BOOL called_from_pare { mScrollingPanel->reshape(mScrollingPanelWidth + scrollbar_size, scroll_height); } + + mSnapshotRect = getChild<LLUICtrl>("classified_snapshot")->getRect(); } void LLPanelClassifiedInfo::onOpen(const LLSD& key) @@ -1242,6 +1257,19 @@ void LLPanelClassifiedInfo::onOpen(const LLSD& key) LLAvatarPropertiesProcessor::getInstance()->addObserver(getAvatarId(), this); LLAvatarPropertiesProcessor::getInstance()->sendClassifiedInfoRequest(getClassifiedId()); + gGenericDispatcher.addHandler("classifiedclickthrough", &sClassifiedClickThrough); + + // While we're at it let's get the stats from the new table if that + // capability exists. + std::string url = gAgent.getRegion()->getCapability("SearchStatRequest"); + if (!url.empty()) + { + llinfos << "Classified stat request via capability" << llendl; + LLSD body; + body["classified_id"] = getClassifiedId(); + LLHTTPClient::post(url, body, new LLClassifiedStatsResponder(getClassifiedId())); + } + setInfoLoaded(false); } @@ -1263,6 +1291,7 @@ void LLPanelClassifiedInfo::processProperties(void* data, EAvatarProcessorType t static std::string mature_str = getString("type_mature"); static std::string pg_str = getString("type_pg"); static LLUIString price_str = getString("l$_price"); + static std::string date_fmt = getString("date_fmt"); bool mature = is_cf_mature(c_info->flags); childSetValue("content_type", mature ? mature_str : pg_str); @@ -1271,6 +1300,10 @@ void LLPanelClassifiedInfo::processProperties(void* data, EAvatarProcessorType t price_str.setArg("[PRICE]", llformat("%d", c_info->price_for_listing)); childSetValue("price_for_listing", LLSD(price_str)); + std::string date_str = date_fmt; + LLStringUtil::format(date_str, LLSD().with("datetime", (S32) c_info->creation_date)); + childSetText("creation_date", date_str); + setInfoLoaded(true); } } @@ -1286,22 +1319,17 @@ void LLPanelClassifiedInfo::resetData() mPosGlobal.clearVec(); childSetValue("category", LLStringUtil::null); childSetValue("content_type", LLStringUtil::null); + childSetText("click_through_text", LLStringUtil::null); } void LLPanelClassifiedInfo::resetControls() { - if(getAvatarId() == gAgent.getID()) - { - childSetEnabled("edit_btn", TRUE); - childSetVisible("edit_btn", TRUE); - childSetVisible("auto_renew", TRUE); - } - else - { - childSetEnabled("edit_btn", FALSE); - childSetVisible("edit_btn", FALSE); - childSetVisible("auto_renew", FALSE); - } + bool is_self = getAvatarId() == gAgent.getID(); + + childSetEnabled("edit_btn", is_self); + childSetVisible("edit_btn", is_self); + childSetVisible("price_layout_panel", is_self); + childSetVisible("clickthrough_layout_panel", is_self); } void LLPanelClassifiedInfo::setClassifiedName(const std::string& name) @@ -1332,6 +1360,21 @@ void LLPanelClassifiedInfo::setClassifiedLocation(const std::string& location) void LLPanelClassifiedInfo::setSnapshotId(const LLUUID& id) { childSetValue("classified_snapshot", id); + if(!mSnapshotStreched) + { + LLUICtrl* snapshot = getChild<LLUICtrl>("classified_snapshot"); + snapshot->setRect(mSnapshotRect); + } + mSnapshotStreched = false; +} + +void LLPanelClassifiedInfo::draw() +{ + LLPanel::draw(); + + // Stretch in draw because it takes some time to load a texture, + // going to try to stretch snapshot until texture is loaded + stretchSnapshot(); } LLUUID LLPanelClassifiedInfo::getSnapshotId() @@ -1340,6 +1383,62 @@ LLUUID LLPanelClassifiedInfo::getSnapshotId() } // static +void LLPanelClassifiedInfo::setClickThrough( + const LLUUID& classified_id, + S32 teleport, + S32 map, + S32 profile, + bool from_new_table) +{ + llinfos << "Click-through data for classified " << classified_id << " arrived: [" + << teleport << ", " << map << ", " << profile << "] (" + << (from_new_table ? "new" : "old") << ")" << llendl; + + for (panel_list_t::iterator iter = sAllPanels.begin(); iter != sAllPanels.end(); ++iter) + { + LLPanelClassifiedInfo* self = *iter; + if (self->getClassifiedId() != classified_id) + { + continue; + } + + // *HACK: Skip LLPanelClassifiedEdit instances: they don't display clicks data. + // Those instances should not be in the list at all. + if (typeid(*self) != typeid(LLPanelClassifiedInfo)) + { + continue; + } + + llinfos << "Updating classified info panel" << llendl; + + // We need to check to see if the data came from the new stat_table + // or the old classified table. We also need to cache the data from + // the two separate sources so as to display the aggregate totals. + + if (from_new_table) + { + self->mTeleportClicksNew = teleport; + self->mMapClicksNew = map; + self->mProfileClicksNew = profile; + } + else + { + self->mTeleportClicksOld = teleport; + self->mMapClicksOld = map; + self->mProfileClicksOld = profile; + } + + static LLUIString ct_str = self->getString("click_through_text_fmt"); + + ct_str.setArg("[TELEPORT]", llformat("%d", self->mTeleportClicksNew + self->mTeleportClicksOld)); + ct_str.setArg("[MAP]", llformat("%d", self->mMapClicksNew + self->mMapClicksOld)); + ct_str.setArg("[PROFILE]", llformat("%d", self->mProfileClicksNew + self->mProfileClicksOld)); + + self->childSetText("click_through_text", ct_str.getString()); + } +} + +// static std::string LLPanelClassifiedInfo::createLocationText( const std::string& original_name, const std::string& sim_name, @@ -1370,6 +1469,41 @@ std::string LLPanelClassifiedInfo::createLocationText( return location_text; } +void LLPanelClassifiedInfo::stretchSnapshot() +{ + // *NOTE dzaporozhan + // Could be moved to LLTextureCtrl + + LLTextureCtrl* texture_ctrl = getChild<LLTextureCtrl>("classified_snapshot"); + LLViewerFetchedTexture* texture = texture_ctrl->getTexture(); + + if(!texture || mSnapshotStreched) + { + return; + } + + if(0 == texture->getOriginalWidth() || 0 == texture->getOriginalHeight()) + { + // looks like texture is not loaded yet + llinfos << "Missing image size" << llendl; + return; + } + + LLRect rc = mSnapshotRect; + F32 t_width = texture->getFullWidth(); + F32 t_height = texture->getFullHeight(); + + F32 ratio = llmin<F32>( (rc.getWidth() / t_width), (rc.getHeight() / t_height) ); + + t_width *= ratio; + t_height *= ratio; + + rc.setCenterAndSize(rc.getCenterX(), rc.getCenterY(), llfloor(t_width), llfloor(t_height)); + texture_ctrl->setRect(rc); + + mSnapshotStreched = true; +} + void LLPanelClassifiedInfo::onMapClick() { LLFloaterWorldMap::getInstance()->trackLocation(getPosGlobal()); @@ -1388,6 +1522,7 @@ void LLPanelClassifiedInfo::onTeleportClick() void LLPanelClassifiedInfo::onExit() { LLAvatarPropertiesProcessor::getInstance()->removeObserver(getAvatarId(), this); + gGenericDispatcher.addHandler("classifiedclickthrough", NULL); // deregister our handler } ////////////////////////////////////////////////////////////////////////// diff --git a/indra/newview/llpanelclassified.h b/indra/newview/llpanelclassified.h index 9e33e55b88..43b47d4e3e 100644 --- a/indra/newview/llpanelclassified.h +++ b/indra/newview/llpanelclassified.h @@ -250,12 +250,21 @@ public: void setInfoLoaded(bool loaded) { mInfoLoaded = loaded; } + static void setClickThrough( + const LLUUID& classified_id, + S32 teleport, + S32 map, + S32 profile, + bool from_new_table); + void setExitCallback(const commit_callback_t& cb); void setEditClassifiedCallback(const commit_callback_t& cb); /*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE); + /*virtual*/ void draw(); + protected: LLPanelClassifiedInfo(); @@ -269,6 +278,8 @@ protected: const std::string& sim_name, const LLVector3d& pos_global); + void stretchSnapshot(); + void onMapClick(); void onTeleportClick(); void onExit(); @@ -281,11 +292,25 @@ private: LLUUID mParcelId; bool mInfoLoaded; + bool mSnapshotStreched; + LLRect mSnapshotRect; + LLScrollContainer* mScrollContainer; LLPanel* mScrollingPanel; S32 mScrollingPanelMinHeight; S32 mScrollingPanelWidth; + + // Needed for stat tracking + S32 mTeleportClicksOld; + S32 mMapClicksOld; + S32 mProfileClicksOld; + S32 mTeleportClicksNew; + S32 mMapClicksNew; + S32 mProfileClicksNew; + + typedef std::list<LLPanelClassifiedInfo*> panel_list_t; + static panel_list_t sAllPanels; }; class LLPanelClassifiedEdit : public LLPanelClassifiedInfo diff --git a/indra/newview/llpanelnearbymedia.cpp b/indra/newview/llpanelnearbymedia.cpp index c02f154dc8..a73c25a979 100644 --- a/indra/newview/llpanelnearbymedia.cpp +++ b/indra/newview/llpanelnearbymedia.cpp @@ -549,11 +549,10 @@ void LLPanelNearByMedia::refreshParcelItems() MediaClass choice = (MediaClass)choice_llsd.asInteger(); // Only show "special parcel items" if "All" or "Within" filter // (and if media is "enabled") - bool should_include = gSavedSettings.getBOOL("AudioStreamingMedia") && - (choice == MEDIA_CLASS_ALL || choice == MEDIA_CLASS_WITHIN_PARCEL); + bool should_include = (choice == MEDIA_CLASS_ALL || choice == MEDIA_CLASS_WITHIN_PARCEL); // First Parcel Media: add or remove it as necessary - if (should_include && LLViewerMedia::hasParcelMedia()) + if (gSavedSettings.getBOOL("AudioStreamingMedia") &&should_include && LLViewerMedia::hasParcelMedia()) { // Yes, there is parcel media. if (NULL == mParcelMediaItem) @@ -716,11 +715,14 @@ void LLPanelNearByMedia::refreshList() } } } - mDisableAllCtrl->setEnabled(gSavedSettings.getBOOL("AudioStreamingMedia") && + mDisableAllCtrl->setEnabled((gSavedSettings.getBOOL("AudioStreamingMusic") || + gSavedSettings.getBOOL("AudioStreamingMedia")) && (LLViewerMedia::isAnyMediaShowing() || LLViewerMedia::isParcelMediaPlaying() || LLViewerMedia::isParcelAudioPlaying())); - mEnableAllCtrl->setEnabled(gSavedSettings.getBOOL("AudioStreamingMedia") && + + mEnableAllCtrl->setEnabled( (gSavedSettings.getBOOL("AudioStreamingMusic") || + gSavedSettings.getBOOL("AudioStreamingMedia")) && (disabled_count > 0 || // parcel media (if we have it, and it isn't playing, enable "start") (LLViewerMedia::hasParcelMedia() && ! LLViewerMedia::isParcelMediaPlaying()) || @@ -979,20 +981,13 @@ void LLPanelNearByMedia::onMoreLess() void LLPanelNearByMedia::updateControls() { - if (! gSavedSettings.getBOOL("AudioStreamingMedia")) - { - // Just show disabled controls - showDisabledControls(); - return; - } - LLUUID selected_media_id = mMediaList->getValue().asUUID(); if (selected_media_id == PARCEL_AUDIO_LIST_ITEM_UUID) { if (!LLViewerMedia::hasParcelAudio() || !gSavedSettings.getBOOL("AudioStreamingMusic")) { - // Shouldn't happen, but do this anyway + // disable controls if audio streaming music is disabled from preference showDisabledControls(); } else { @@ -1005,9 +1000,9 @@ void LLPanelNearByMedia::updateControls() } else if (selected_media_id == PARCEL_MEDIA_LIST_ITEM_UUID) { - if (!LLViewerMedia::hasParcelMedia()) + if (!LLViewerMedia::hasParcelMedia() || !gSavedSettings.getBOOL("AudioStreamingMedia")) { - // Shouldn't happen, but do this anyway + // disable controls if audio streaming media is disabled from preference showDisabledControls(); } else { @@ -1034,7 +1029,7 @@ void LLPanelNearByMedia::updateControls() else { LLViewerMediaImpl* impl = LLViewerMedia::getMediaImplFromTextureID(selected_media_id); - if (NULL == impl) + if (NULL == impl || !gSavedSettings.getBOOL("AudioStreamingMedia")) { showDisabledControls(); } diff --git a/indra/newview/llpanelpeople.cpp b/indra/newview/llpanelpeople.cpp index d2a518a06a..03e8ab644e 100644 --- a/indra/newview/llpanelpeople.cpp +++ b/indra/newview/llpanelpeople.cpp @@ -519,6 +519,8 @@ BOOL LLPanelPeople::postBuild() mRecentList->setShowIcons("RecentListShowIcons"); mGroupList = getChild<LLGroupList>("group_list"); + mGroupList->setNoGroupsMsg(getString("no_groups_msg")); + mGroupList->setNoFilteredGroupsMsg(getString("no_filtered_groups_msg")); mNearbyList->setContextMenu(&LLPanelPeopleMenus::gNearbyMenu); mRecentList->setContextMenu(&LLPanelPeopleMenus::gNearbyMenu); @@ -683,9 +685,15 @@ void LLPanelPeople::updateFriendList() online_friendsp.push_back(buddy_id); } - mOnlineFriendList->setDirty(); - mAllFriendList->setDirty(); - + /* + * Avatarlists will be hidden by showFriendsAccordionsIfNeeded(), if they do not have items. + * But avatarlist can be updated only if it is visible @see LLAvatarList::draw(); + * So we need to do force update of lists to avoid inconsistency of data and view of avatarlist. + */ + mOnlineFriendList->setDirty(true, !mOnlineFriendList->filterHasMatches());// do force update if list do NOT have items + mAllFriendList->setDirty(true, !mAllFriendList->filterHasMatches()); + //update trash and other buttons according to a selected item + updateButtons(); showFriendsAccordionsIfNeeded(); } @@ -1434,9 +1442,6 @@ void LLPanelPeople::onFriendListRefreshComplete(LLUICtrl*ctrl, const LLSD& param { showAccordion("tab_all", param.asInteger()); } - - LLAccordionCtrl* accordion = getChild<LLAccordionCtrl>("friends_accordion"); - accordion->arrange(); } void LLPanelPeople::setAccordionCollapsedByUser(LLUICtrl* acc_tab, bool collapsed) diff --git a/indra/newview/llscreenchannel.cpp b/indra/newview/llscreenchannel.cpp index c75d90be6f..a4426b370e 100644 --- a/indra/newview/llscreenchannel.cpp +++ b/indra/newview/llscreenchannel.cpp @@ -687,7 +687,10 @@ void LLNotificationsUI::LLScreenChannel::startFadingToasts() while (it != mToastList.end()) { ToastElem& elem = *it; - elem.toast->startFading(); + if (elem.toast->getVisible()) + { + elem.toast->startFading(); + } ++it; } } diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index 732c23982b..9fb496c214 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -360,12 +360,14 @@ void LLStatusBar::refresh() // Disable media toggle if there's no media, parcel media, and no parcel audio // (or if media is disabled) - mMediaToggle->setEnabled(gSavedSettings.getBOOL("AudioStreamingMedia") && - (LLViewerMedia::hasInWorldMedia() || LLViewerMedia::hasParcelMedia() || LLViewerMedia::hasParcelAudio())); + bool button_enabled = (gSavedSettings.getBOOL("AudioStreamingMusic")||gSavedSettings.getBOOL("AudioStreamingMedia")) && + (LLViewerMedia::hasInWorldMedia() || LLViewerMedia::hasParcelMedia() || LLViewerMedia::hasParcelAudio()); + mMediaToggle->setEnabled(button_enabled); // Note the "sense" of the toggle is opposite whether media is playing or not - mMediaToggle->setValue(! (LLViewerMedia::isAnyMediaShowing() || + bool any_media_playing = (LLViewerMedia::isAnyMediaShowing() || LLViewerMedia::isParcelMediaPlaying() || - LLViewerMedia::isParcelAudioPlaying())); + LLViewerMedia::isParcelAudioPlaying()); + mMediaToggle->setValue(!any_media_playing); } void LLStatusBar::setVisibleForMouselook(bool visible) diff --git a/indra/newview/lltexlayer.cpp b/indra/newview/lltexlayer.cpp index 662e6dcabe..6ed95f2cbf 100644 --- a/indra/newview/lltexlayer.cpp +++ b/indra/newview/lltexlayer.cpp @@ -1130,7 +1130,8 @@ LLTexLayerInterface::LLTexLayerInterface(LLTexLayerSet* const layer_set): } LLTexLayerInterface::LLTexLayerInterface(const LLTexLayerInterface &layer, LLWearable *wearable): - mTexLayerSet( layer.mTexLayerSet ) + mTexLayerSet( layer.mTexLayerSet ), + mInfo(NULL) { // don't add visual params for cloned layers setInfo(layer.getInfo(), wearable); @@ -1140,11 +1141,12 @@ LLTexLayerInterface::LLTexLayerInterface(const LLTexLayerInterface &layer, LLWea BOOL LLTexLayerInterface::setInfo(const LLTexLayerInfo *info, LLWearable* wearable ) // This sets mInfo and calls initialization functions { - //llassert(mInfo == NULL); // nyx says this is probably bogus but needs investigating - if (mInfo != NULL) // above llassert(), but softened into a warning - { - llwarns << "BAD STUFF! mInfo != NULL" << llendl; - } + // setInfo should only be called once. Code is not robust enough to handle redefinition of a texlayer. + // Not a critical warning, but could be useful for debugging later issues. -Nyx + if (mInfo != NULL) + { + llwarns << "mInfo != NULL" << llendl; + } mInfo = info; //mID = info->mID; // No ID diff --git a/indra/newview/lltexturectrl.h b/indra/newview/lltexturectrl.h index 8ca92c3d87..837f837430 100644 --- a/indra/newview/lltexturectrl.h +++ b/indra/newview/lltexturectrl.h @@ -183,6 +183,8 @@ public: void setShowLoadingPlaceholder(BOOL showLoadingPlaceholder); + LLViewerFetchedTexture* getTexture() { return mTexturep; } + private: BOOL allowDrop(LLInventoryItem* item); BOOL doDrop(LLInventoryItem* item); diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index 86336e353c..344c4c469b 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -851,7 +851,7 @@ void LLViewerMedia::updateMedia(void *dummy_arg) } } // update the audio stream here as well - if(!inworld_media_enabled || !inworld_audio_enabled) + if( !inworld_audio_enabled) { if(LLViewerMedia::isParcelAudioPlaying() && gAudiop && LLViewerMedia::hasParcelAudio()) { diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index f1ec489a20..30f2d2c41b 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -695,22 +695,15 @@ BOOL LLViewerWindow::handleAnyMouseClick(LLWindow *window, LLCoordGL pos, MASK { S32 local_x, local_y; top_ctrl->screenPointToLocal( x, y, &local_x, &local_y ); - if (down) + if (top_ctrl->pointInView(local_x, local_y)) { - if (top_ctrl->pointInView(local_x, local_y)) - { - return top_ctrl->handleAnyMouseClick(local_x, local_y, mask, clicktype, down) ; - } - else - { - gFocusMgr.setTopCtrl(NULL); - } + return top_ctrl->handleAnyMouseClick(local_x, local_y, mask, clicktype, down) ; } else { - if (top_ctrl->pointInView(local_x, local_y) && top_ctrl->handleMouseUp(local_x, local_y, mask)) + if (down) { - return TRUE; + gFocusMgr.setTopCtrl(NULL); } } } diff --git a/indra/newview/llwearablelist.cpp b/indra/newview/llwearablelist.cpp index d6a9837b86..b2de31218b 100644 --- a/indra/newview/llwearablelist.cpp +++ b/indra/newview/llwearablelist.cpp @@ -235,8 +235,9 @@ LLWearable* LLWearableList::createNewWearable( EWearableType type ) LLWearable *wearable = generateNewWearable(); wearable->setType( type ); - std::string name = "New "; - name.append( wearable->getTypeLabel() ); + LLSD item_name = LLSD().with("[WEARABLE_ITEM]", wearable->getTypeLabel()); + std::string name = LLTrans::getString("NewWearable"); + LLStringUtil::format(name, item_name); wearable->setName( name ); LLPermissions perm; diff --git a/indra/newview/res/ll_icon.ico b/indra/newview/res/ll_icon.ico Binary files differindex c35a3fa3a3..87985b9285 100644 --- a/indra/newview/res/ll_icon.ico +++ b/indra/newview/res/ll_icon.ico diff --git a/indra/newview/secondlife.icns b/indra/newview/secondlife.icns Binary files differindex ceb6036e0e..4560d4bb24 100644 --- a/indra/newview/secondlife.icns +++ b/indra/newview/secondlife.icns diff --git a/indra/newview/skins/default/xui/da/floater_world_map.xml b/indra/newview/skins/default/xui/da/floater_world_map.xml index 137e8509a4..b5ec1cb302 100644 --- a/indra/newview/skins/default/xui/da/floater_world_map.xml +++ b/indra/newview/skins/default/xui/da/floater_world_map.xml @@ -5,7 +5,8 @@ Forklaring </text> </panel> - <panel> + <panel + name="layout_panel_2"> <button label="Vis min position" label_selected="Vis min position" name="Show My Location" tool_tip="Centrér kort om min avatars position"/> <text name="person_label"> Mig @@ -36,12 +37,14 @@ </text> <check_box label="Adult" name="event_adult_chk"/> </panel> - <panel> + <panel + name="layout_panel_3"> <text name="find_on_map_label"> Find på kort </text> </panel> - <panel> + <panel + name="layout_panel_4"> <combo_box label="Venner online" name="friend combo" tool_tip="Vis venner på kort"> <combo_box.item label="Mine venner online" name="item1"/> </combo_box> @@ -58,12 +61,14 @@ <button label="Kopiér SLurl" name="copy_slurl" tool_tip="Kopierer denne lokation som SLurl der kan bruges på web."/> <button label="Vis selektion" label_selected="Vis destination" name="Show Destination" tool_tip="Centrér kortet på valgte lokation"/> </panel> - <panel> + <panel + name="layout_panel_5"> <text name="zoom_label"> Zoom </text> </panel> - <panel> + <panel + name="layout_panel_6"> <slider label="Zoom" name="zoom slider"/> </panel> </floater> diff --git a/indra/newview/skins/default/xui/da/panel_place_profile.xml b/indra/newview/skins/default/xui/da/panel_place_profile.xml index 24316fea14..74753c64d4 100644 --- a/indra/newview/skins/default/xui/da/panel_place_profile.xml +++ b/indra/newview/skins/default/xui/da/panel_place_profile.xml @@ -48,7 +48,7 @@ <text name="maturity_value" value="ukendt"/> <accordion name="advanced_info_accordion"> <accordion_tab name="parcel_characteristics_tab" title="Parcel"> - <panel> + <panel name="parcel_characteristics_panel"> <text name="rating_label" value="Rating:"/> <text name="rating_value" value="ukendt"/> <text name="voice_label" value="Stem:"/> @@ -67,7 +67,7 @@ </panel> </accordion_tab> <accordion_tab name="region_information_tab" title="Region"> - <panel> + <panel name="region_information_panel"> <text name="region_name_label" value="Region:"/> <text name="region_type_label" value="Type:"/> <text name="region_rating_label" value="Rating:"/> @@ -77,7 +77,7 @@ </panel> </accordion_tab> <accordion_tab name="estate_information_tab" title="Estate"> - <panel> + <panel name="estate_information_panel"> <text name="estate_name_label" value="Estate:"/> <text name="estate_rating_label" value="Rating:"/> <text name="estate_owner_label" value="Ejer:"/> @@ -85,7 +85,7 @@ </panel> </accordion_tab> <accordion_tab name="sales_tab" title="Til salg"> - <panel> + <panel name="sales_panel"> <text name="sales_price_label" value="Pris:"/> <text name="area_label" value="Areal:"/> <text name="traffic_label" value="Trafik:"/> diff --git a/indra/newview/skins/default/xui/da/sidepanel_task_info.xml b/indra/newview/skins/default/xui/da/sidepanel_task_info.xml index 6ade03ce56..666c6936fe 100644 --- a/indra/newview/skins/default/xui/da/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/da/sidepanel_task_info.xml @@ -36,7 +36,7 @@ <panel.string name="Sale Mixed"> Blandet salg </panel.string> - <panel label=""> + <panel name="properties_panel" label=""> <text name="Name:"> Navn: </text> @@ -74,7 +74,7 @@ </combo_box> <spinner label="Pris: L$" name="Edit Cost"/> <check_box label="Vis i søgning" name="search_check" tool_tip="Lad personer se dette objekt i søgeresultater"/> - <panel name="perms_build"> + <panel name="perms_inv"> <text name="perm_modify"> Du kan redigere dette objekt </text> diff --git a/indra/newview/skins/default/xui/de/floater_avatar_textures.xml b/indra/newview/skins/default/xui/de/floater_avatar_textures.xml index cf1b809aa1..92c0c4a27a 100644 --- a/indra/newview/skins/default/xui/de/floater_avatar_textures.xml +++ b/indra/newview/skins/default/xui/de/floater_avatar_textures.xml @@ -16,7 +16,7 @@ <texture_picker label="Haare" name="hair_grain"/> <texture_picker label="Alpha: Haare" name="hair_alpha"/> <texture_picker label="Kopf" name="head-baked"/> - <texture_picker label="Make-Uup" name="head_bodypaint"/> + <texture_picker label="Make-Up" name="head_bodypaint"/> <texture_picker label="Kopf: Alpha" name="head_alpha"/> <texture_picker label="Kopftattoo" name="head_tattoo"/> <texture_picker label="Augen" name="eyes-baked"/> diff --git a/indra/newview/skins/default/xui/de/floater_customize.xml b/indra/newview/skins/default/xui/de/floater_customize.xml index b1e9ef6f19..cf7b208c1a 100644 --- a/indra/newview/skins/default/xui/de/floater_customize.xml +++ b/indra/newview/skins/default/xui/de/floater_customize.xml @@ -40,17 +40,17 @@ <text name="no modify instructions"> Sie sind nicht berechtigt, diese Kleidung zu bearbeiten. </text> - <text name="Item Action Label" right="100"> + <text name="Item Action Label"> Form: </text> <button label="Neue Form/Gestalt" label_selected="Neue Form/Gestalt" name="Create New"/> - <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107" name="Save"/> - <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." left="194" name="Save As" width="105"/> + <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" name="Save"/> + <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." name="Save As"/> </panel> <panel label="Haut" name="Skin"> <button label="Hautfarbe" label_selected="Hautfarbe" left="2" name="Skin Color" width="92"/> <button label="Gesichtsdetails" label_selected="Gesichtsdetails" left="2" name="Face Detail" width="92"/> - <button label="Make-Uup" label_selected="Make-Uup" left="2" name="Makeup" width="92"/> + <button label="Make-Up" label_selected="Make-Up" left="2" name="Makeup" width="92"/> <button label="Körperdetails" label_selected="Körperdetails" left="2" name="Body Detail" width="92"/> <text name="title"> [DESC] diff --git a/indra/newview/skins/default/xui/de/floater_world_map.xml b/indra/newview/skins/default/xui/de/floater_world_map.xml index 7d8a634452..5258364656 100644 --- a/indra/newview/skins/default/xui/de/floater_world_map.xml +++ b/indra/newview/skins/default/xui/de/floater_world_map.xml @@ -5,7 +5,8 @@ Legende </text> </panel> - <panel> + <panel + name="layout_panel_2"> <button label="Meine Position" label_selected="Wo bin ich?" name="Show My Location" tool_tip="Karte auf Position meines Avatars zentrieren"/> <text name="me_label"> Ich @@ -48,12 +49,14 @@ Adult </text> </panel> - <panel> + <panel + name="layout_panel_3"> <text name="find_on_map_label"> Auf Karte anzeigen </text> </panel> - <panel> + <panel + name="layout_panel_4"> <combo_box label="Online-Freunde" name="friend combo" tool_tip="Freunde auf Karte anzeigen"> <combo_box.item label="Meine Freunde: Online" name="item1"/> </combo_box> @@ -71,12 +74,14 @@ <button font="SansSerifSmall" label="SLurl kopieren" name="copy_slurl" tool_tip="Kopiert die aktuelle Position als SLurl zur Verwendung im Web."/> <button label="Auswahl anzeigen" label_selected="Ziel anzeigen" name="Show Destination" tool_tip="Karte auf ausgewählte Position zentrieren"/> </panel> - <panel> + <panel + name="layout_panel_5"> <text name="zoom_label"> Zoom </text> </panel> - <panel> + <panel + name="layout_panel_6"> <slider label="Zoom" name="zoom slider"/> </panel> </floater> diff --git a/indra/newview/skins/default/xui/de/panel_edit_skin.xml b/indra/newview/skins/default/xui/de/panel_edit_skin.xml index 46bd1d9f4d..90b06a29bc 100644 --- a/indra/newview/skins/default/xui/de/panel_edit_skin.xml +++ b/indra/newview/skins/default/xui/de/panel_edit_skin.xml @@ -8,7 +8,7 @@ <accordion name="wearable_accordion"> <accordion_tab name="skin_color_tab" title="Hautfarbe"/> <accordion_tab name="skin_face_tab" title="Gesichtsdetails"/> - <accordion_tab name="skin_makeup_tab" title="Make-Uup"/> + <accordion_tab name="skin_makeup_tab" title="Make-Up"/> <accordion_tab name="skin_body_tab" title="Körperdetails"/> </accordion> </panel> diff --git a/indra/newview/skins/default/xui/de/panel_im_control_panel.xml b/indra/newview/skins/default/xui/de/panel_im_control_panel.xml index 0dca272633..abf8011d9d 100644 --- a/indra/newview/skins/default/xui/de/panel_im_control_panel.xml +++ b/indra/newview/skins/default/xui/de/panel_im_control_panel.xml @@ -14,7 +14,7 @@ <layout_panel name="share_btn_panel"> <button label="Teilen" name="share_btn"/> </layout_panel> - <layout_panel name="share_btn_panel"> + <layout_panel name="pay_btn_panel"> <button label="Bezahlen" name="pay_btn"/> </layout_panel> <layout_panel name="call_btn_panel"> diff --git a/indra/newview/skins/default/xui/de/panel_place_profile.xml b/indra/newview/skins/default/xui/de/panel_place_profile.xml index fd4da94edc..3af4ee5a1e 100644 --- a/indra/newview/skins/default/xui/de/panel_place_profile.xml +++ b/indra/newview/skins/default/xui/de/panel_place_profile.xml @@ -68,7 +68,7 @@ <text name="maturity_value" value="unbekannt"/> <accordion name="advanced_info_accordion"> <accordion_tab name="parcel_characteristics_tab" title="Parzelle"> - <panel> + <panel name="parcel_characteristics_panel"> <text name="rating_label" value="Einstufung:"/> <text name="rating_value" value="unbekannt"/> <text name="voice_label" value="Voice:"/> @@ -87,7 +87,7 @@ </panel> </accordion_tab> <accordion_tab name="region_information_tab" title="Region"> - <panel> + <panel name="region_information_panel"> <text name="region_name_label" value="Region:"/> <text name="region_name" value="Mooseland"/> <text name="region_type_label" value="Typ:"/> @@ -104,7 +104,7 @@ </panel> </accordion_tab> <accordion_tab name="estate_information_tab" title="Grundstück"> - <panel> + <panel name="estate_information_panel"> <text name="estate_name_label" value="Grundstück:"/> <text name="estate_rating_label" value="Einstufung:"/> <text name="estate_owner_label" value="Eigentümer:"/> @@ -112,7 +112,7 @@ </panel> </accordion_tab> <accordion_tab name="sales_tab" title="Zum Verkauf"> - <panel> + <panel name="sales_panel"> <text name="sales_price_label" value="Preis:"/> <text name="area_label" value="Gebiet:"/> <text name="traffic_label" value="Traffic:"/> diff --git a/indra/newview/skins/default/xui/de/panel_preferences_chat.xml b/indra/newview/skins/default/xui/de/panel_preferences_chat.xml index f580691c0d..626e35dd0b 100644 --- a/indra/newview/skins/default/xui/de/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/de/panel_preferences_chat.xml @@ -1,10 +1,16 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Text-Chat" name="chat"> + <text name="font_size"> + Schriftgröße: + </text> <radio_group name="chat_font_size"> <radio_item label="Klein" name="radio" value="0"/> <radio_item label="Mittel" name="radio2" value="1"/> <radio_item label="Groß" name="radio3" value="2"/> </radio_group> + <text name="font_colors"> + Schriftfarbe: + </text> <color_swatch label="Sie" name="user"/> <text name="text_box1"> Ich diff --git a/indra/newview/skins/default/xui/de/panel_region_estate.xml b/indra/newview/skins/default/xui/de/panel_region_estate.xml index b0c6dce8cf..59a4c148a8 100644 --- a/indra/newview/skins/default/xui/de/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/de/panel_region_estate.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Grundstück" name="Estate"> <text name="estate_help_text"> - Änderungen auf dieser Registerkarte wirken sich auf alle Regionen auf dem Grundstück aus. + Änderungen wirken sich auf alle Regionen des Grundstücks aus. </text> <text name="estate_text"> Grundstück: @@ -16,7 +16,7 @@ (unbekannt) </text> <text name="Only Allow"> - Zugang auf Einwohner beschränken, die überprüft wurden von: + Zugang nur dann, wenn überprüft mit: </text> <check_box label="Zahlungsinformation gespeichert" name="limit_payment" tool_tip="Nicht identifizierte Einwohner verbannen"/> <check_box label="Altersüberprüfung" name="limit_age_verified" tool_tip="Einwohner ohne Altersüberprüfung verbannen. Weitere Informationen finden Sie auf [SUPPORT_SITE]."/> @@ -69,6 +69,6 @@ <button label="?" name="ban_resident_help"/> <button label="Hinzufügen..." name="add_banned_avatar_btn"/> <button label="Entfernen..." name="remove_banned_avatar_btn"/> - <button label="Nachricht an Grundstück senden..." name="message_estate_btn"/> - <button label="Benutzer von Grundstück werfen..." name="kick_user_from_estate_btn"/> + <button label="Nachricht an Grundstück" name="message_estate_btn"/> + <button label="Einwohner hinauswerfen" name="kick_user_from_estate_btn"/> </panel> diff --git a/indra/newview/skins/default/xui/de/sidepanel_task_info.xml b/indra/newview/skins/default/xui/de/sidepanel_task_info.xml index 825acac79d..81f1ebdf91 100644 --- a/indra/newview/skins/default/xui/de/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/de/sidepanel_task_info.xml @@ -38,7 +38,7 @@ </panel.string> <text name="title" value="Objektprofil"/> <text name="where" value="(inworld)"/> - <panel label=""> + <panel name="properties_panel" label=""> <text name="Name:"> Name: </text> diff --git a/indra/newview/skins/default/xui/de/strings.xml b/indra/newview/skins/default/xui/de/strings.xml index c9307a5d7d..28b259896d 100644 --- a/indra/newview/skins/default/xui/de/strings.xml +++ b/indra/newview/skins/default/xui/de/strings.xml @@ -753,7 +753,7 @@ Alpha </string> <string name="tattoo"> - Tätowierung + Taetowierung </string> <string name="invalid"> ungültig @@ -979,7 +979,7 @@ Gummi </string> <string name="Light"> - Licht + Hell </string> <string name="KBShift"> Umschalt-Taste @@ -2056,7 +2056,7 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_ Kinn-Hals </string> <string name="Clear"> - Löschen + Transparent </string> <string name="Cleft"> Spalte @@ -2359,16 +2359,16 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_ Farbe Innenseite </string> <string name="In Shdw Opacity"> - Deckkraft: innerer Lidschatten + Deckkraft: innen </string> <string name="Inner Eye Corner"> Ecke: Nasenseite </string> <string name="Inner Eye Shadow"> - Innerer Lidschatten + Innenlid </string> <string name="Inner Shadow"> - Innerer Lidschatten + Innenlid </string> <string name="Jacket Length"> Jackenlänge @@ -2761,10 +2761,10 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_ Aus </string> <string name="Out Shdw Color"> - Farbe: Oberer Lidschatten + Farbe: Oben </string> <string name="Out Shdw Opacity"> - Deckkraft: Oberer Lidschatten + Deckkraft: Oben </string> <string name="Outer Eye Corner"> Äußerer Augenwinkel @@ -2935,7 +2935,7 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_ Schuhart </string> <string name="Short"> - Sandale + Klein </string> <string name="Short Arms"> Kurze Arme @@ -3064,7 +3064,7 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_ Nach vorne </string> <string name="Tall"> - Stiefel + Groß </string> <string name="Taper Back"> Ansatzbreite hinten diff --git a/indra/newview/skins/default/xui/en/floater_customize.xml b/indra/newview/skins/default/xui/en/floater_customize.xml index b048eeceb6..fd10938539 100644 --- a/indra/newview/skins/default/xui/en/floater_customize.xml +++ b/indra/newview/skins/default/xui/en/floater_customize.xml @@ -286,7 +286,7 @@ height="23" layout="topleft" name="Item Action Label" - right="132" + right="90" width="100"> Shape: </text> @@ -307,7 +307,7 @@ label_selected="Save" layout="topleft" name="Save" - right="218" + right="190" top="477" width="82" /> <button @@ -319,7 +319,7 @@ name="Save As" top="477" right="304" - width="82" /> + width="110" /> </panel> <panel border="false" diff --git a/indra/newview/skins/default/xui/en/floater_im_container.xml b/indra/newview/skins/default/xui/en/floater_im_container.xml index 0f098bbb52..65a05f3ec5 100644 --- a/indra/newview/skins/default/xui/en/floater_im_container.xml +++ b/indra/newview/skins/default/xui/en/floater_im_container.xml @@ -22,7 +22,9 @@ tab_width="64" tab_max_width = "134" tab_height="16" - halign="center" + use_custom_icon_ctrl="true" + tab_icon_ctrl_pad="2" + halign="left" use_ellipses="true" top="0" width="390" /> diff --git a/indra/newview/skins/default/xui/en/floater_world_map.xml b/indra/newview/skins/default/xui/en/floater_world_map.xml index 86ac7c8e54..291f8f6f51 100644 --- a/indra/newview/skins/default/xui/en/floater_world_map.xml +++ b/indra/newview/skins/default/xui/en/floater_world_map.xml @@ -53,7 +53,8 @@ follows="right|top" height="126" top_pad="0" - width="238"> + width="238" + name="layout_panel_2"> <button follows="right|top" height="22" @@ -374,7 +375,8 @@ top_pad="0" width="238" background_visible="true" - bg_alpha_color="DkGray2"> + bg_alpha_color="DkGray2" + name="layout_panel_3"> <text text_color="White" font="SansSerifLarge" @@ -396,7 +398,8 @@ follows="right|top|bottom" height="310" top_pad="0" - width="238"> + width="238" + name="layout_panel_4"> <icon color="0.5 0 0 1" follows="top|right" @@ -638,7 +641,8 @@ top_pad="0" width="238" background_visible="true" - bg_alpha_color="DkGray2"> + bg_alpha_color="DkGray2" + name="layout_panel_5"> <text text_color="White" font="SansSerifLarge" @@ -660,7 +664,8 @@ height="30" min_height="30" top_pad="0" - width="238"> + width="238" + name="layout_panel_6"> <icon follows="left|bottom" height="16" @@ -670,7 +675,7 @@ mouse_opaque="true" name="zoom_icon" top_pad="7" - width="16" /> + width="16" ></icon> <slider follows="left|bottom" height="16" diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 936f4a3fab..14347e146b 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -249,7 +249,7 @@ Save all changes to clothing/body parts? Non-friends won't know that you've choosen to ignore their calls and instant messages. <usetemplate name="okbutton" - yestext="Yes"/> + yestext="OK"/> </notification> <notification diff --git a/indra/newview/skins/default/xui/en/panel_classified_info.xml b/indra/newview/skins/default/xui/en/panel_classified_info.xml index 903a9689f1..869a05f27d 100644 --- a/indra/newview/skins/default/xui/en/panel_classified_info.xml +++ b/indra/newview/skins/default/xui/en/panel_classified_info.xml @@ -22,6 +22,14 @@ name="l$_price"> L$[PRICE] </panel.string> +<panel.string + name="click_through_text_fmt"> + [TELEPORT] teleport, [MAP] map, [MAP] profile + </panel.string> + <panel.string + name="date_fmt"> + [mthnum,datetime,slt]/[day,datetime,slt]/[year,datetime,slt] + </panel.string> <button follows="top|right" height="23" @@ -71,10 +79,10 @@ follows="left|top|right" height="197" layout="topleft" - left="11" + left="10" name="classified_snapshot" top="10" - width="286" /> + width="275" /> <text_editor allow_scroll="false" bg_visible="false" @@ -86,13 +94,24 @@ font="SansSerifBig" font.style="BOLD" left="10" - top_pad="10" + top_pad="0" name="classified_name" read_only="true" text_color="white" v_pad="0" value="[name]" use_ellipses="true" /> + <text + follows="left|top" + font.style="BOLD" + height="10" + layout="topleft" + left="10" + name="classified_location_label" + text_color="white" + top_pad="5" + value="Location:" + width="250" /> <text_editor allow_scroll="false" bg_visible="false" @@ -103,10 +122,22 @@ left="10" name="classified_location" read_only="true" + top_pad="5" width="290" word_wrap="true" v_pad="0" value="[loading...]" /> + <text + follows="left|top" + font.style="BOLD" + height="10" + layout="topleft" + left="10" + name="content_type_label" + text_color="white" + top_pad="0" + value="Content Type:" + width="140" /> <text_editor allow_scroll="false" bg_visible="false" @@ -114,13 +145,24 @@ h_pad="0" height="18" layout="topleft" - left="10" + left_pad="0" name="content_type" read_only="true" - width="290" - top_pad="5" + width="150" + top_pad="-10" v_pad="0" value="[content type]" /> + <text + follows="left|top" + font.style="BOLD" + height="10" + layout="topleft" + left="10" + name="category_label" + text_color="white" + top_pad="0" + value="Category:" + width="140" /> <text_editor allow_html="true" allow_scroll="false" @@ -129,13 +171,24 @@ h_pad="0" height="18" layout="topleft" - left="10" + left_pad="0" name="category" read_only="true" - width="290" - top_pad="5" + width="150" + top_pad="-10" v_pad="0" value="[category]" /> + <text + follows="left|top" + font.style="BOLD" + height="10" + layout="topleft" + left="10" + name="creation_date_label" + text_color="white" + top_pad="0" + value="Creation date:" + width="140" /> <text_editor allow_scroll="false" bg_visible="false" @@ -144,39 +197,151 @@ halign="left" height="16" layout="topleft" + left_pad="0" + name="creation_date" + read_only="true" + top_pad="-10" + tool_tip="Creation date" + v_pad="0" + value="[date]" + width="150" /> + <text + follows="left|top" + font.style="BOLD" + height="10" + layout="topleft" left="10" + name="price_for_listing_label" + text_color="white" + top_pad="0" + value="Price for listing:" + width="140" /> + <text_editor + allow_scroll="false" + bg_visible="false" + follows="left|top" + h_pad="0" + halign="left" + height="16" + layout="topleft" + left_pad="0" name="price_for_listing" read_only="true" - top_pad="5" + top_pad="-10" tool_tip="Price for listing." v_pad="0" - width="105" /> + value="[price]" + width="150" /> + <layout_stack + animate="false" + name="descr_stack" + layout="topleft" + follows="top|left" + orientation="vertical" + left="10" + top_pad="0" + width="290" + height="250"> + <layout_panel + auto_resize="false" + name="clickthrough_layout_panel" + layout="topleft" + follows="top|left" + left="0" + top="0" + width="290" + height="26" + user_resize="false"> + <text + follows="left|top" + font.style="BOLD" + height="10" + layout="topleft" + left="0" + name="click_through_label" + text_color="white" + top_pad="0" + value="Clicks:" + width="140" /> + <text_editor + allow_scroll="false" + bg_visible="false" + follows="left|top" + h_pad="0" + halign="left" + height="16" + layout="topleft" + left_pad="0" + name="click_through_text" + read_only="true" + top_pad="-10" + tool_tip="Click through data" + v_pad="0" + value="[clicks]" + width="150" /> + </layout_panel> + <layout_panel + auto_resize="false" + name="price_layout_panel" + layout="topleft" + follows="top|left" + left="0" + top="0" + width="290" + height="26" + user_resize="false"> <check_box enabled="false" height="16" label="Auto renew each week" layout="topleft" - left="10" + follows="top|left" + left="0" name="auto_renew" - top_pad="5" + top="0" v_pad="0" width="290" /> + </layout_panel> + <layout_panel + name="descr_layout_panel" + layout="topleft" + follows="top|left" + left="0" + top="0" + width="290" + height="215" + user_resize="false"> + <text + auto_resize="false" + follows="left|top" + font.style="BOLD" + height="10" + layout="topleft" + left="0" + name="classified_desc_label" + text_color="white" + top="0" + value="Description:" + width="250" /> <text_editor allow_html="true" - allow_scroll="false" + allow_scroll="true" bg_visible="false" follows="left|top|right" h_pad="0" height="200" layout="topleft" - left="10" + left="0" max_length="1023" name="classified_desc" read_only="true" + top_pad="5" width="290" v_pad="0" value="[description]" word_wrap="true" /> + </layout_panel> + </layout_stack> </panel> </scroll_container> <panel diff --git a/indra/newview/skins/default/xui/en/panel_edit_classified.xml b/indra/newview/skins/default/xui/en/panel_edit_classified.xml index 66d5389d9b..6cc6c51fe0 100644 --- a/indra/newview/skins/default/xui/en/panel_edit_classified.xml +++ b/indra/newview/skins/default/xui/en/panel_edit_classified.xml @@ -42,16 +42,16 @@ Edit Classified </text> <scroll_container - color="DkGray2" - follows="all" - height="502" - layout="topleft" - left="8" - top_pad="10" - name="profile_scroll" - reserve_scroll_corner="false" - opaque="true" - width="312"> + color="DkGray2" + follows="all" + height="502" + layout="topleft" + left="8" + top_pad="10" + name="profile_scroll" + reserve_scroll_corner="false" + opaque="true" + width="312"> <panel name="scroll_content_panel" follows="left|top" @@ -59,17 +59,17 @@ layout="topleft" top="0" background_visible="false" - height="610" + height="690" left="0" width="285"> - <texture_picker - follows="left|top|right" - height="197" - width="272" - layout="topleft" - top="10" - left="11" - name="classified_snapshot" /> + <texture_picker + follows="left|top|right" + height="197" + width="272" + layout="topleft" + top="10" + left="11" + name="classified_snapshot" /> <icon height="197" image_name="spacer24.tga" @@ -153,7 +153,7 @@ type="string" length="1" follows="left|top" - height="50" + height="30" layout="topleft" left="10" name="classified_location" @@ -172,6 +172,17 @@ top_pad="5" name="set_to_curr_location_btn" width="156" /> + <text + follows="left|top" + font.style="BOLD" + height="10" + layout="topleft" + left="10" + name="category_label" + text_color="white" + top_pad="15" + value="Category:" + width="250" /> <combo_box follows="left|top" height="23" @@ -180,6 +191,17 @@ name="category" top_pad="5" width="156" /> + <text + follows="left|top" + font.style="BOLD" + height="10" + layout="topleft" + left="10" + name="content_type_label" + text_color="white" + top_pad="15" + value="Content type:" + width="250" /> <combo_box allow_text_entry="false" follows="left|top" @@ -199,6 +221,17 @@ General Content </combo_item> </combo_box> + <text + follows="left|top" + font.style="BOLD" + height="10" + layout="topleft" + left="10" + name="price_for_listing_label" + text_color="white" + top_pad="15" + value="Price for listing:" + width="250" /> <spinner decimal_digits="0" follows="left|top" @@ -223,9 +256,9 @@ layout="topleft" left="10" name="auto_renew" - top_pad="5" + top_pad="15" width="250" /> - </panel> + </panel> </scroll_container> <panel follows="left|right|bottom" diff --git a/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml index 4e57b428bd..701a14e1c5 100644 --- a/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml +++ b/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml @@ -44,11 +44,16 @@ background_visible="true" tab_stop="false" top="2" width="23" /> - <text + <text_editor + allow_scroll="false" + bg_visible="false" + read_only = "true" layout="topleft" name="group_name" + v_pad="0" value="(Loading...)" font="SansSerifHugeBold" + h_pad="0" height="26" left_pad="10" text_color="LtGray" @@ -100,17 +105,8 @@ background_visible="true" expanded="true" layout="topleft" name="group_general_tab" - title="General"> - <scroll_container - color="DkGray2" - follows="all" - layout="topleft" - left="0" - name="profile_scroll" - opaque="true" - height="604" - width="304" - top="0"> + title="General" + fit_panel="false"> <panel border="false" class="panel_group_general" @@ -121,24 +117,13 @@ background_visible="true" help_topic="group_general_tab" name="group_general_tab_panel" top="0" /> - </scroll_container> </accordion_tab> <accordion_tab expanded="false" layout="topleft" name="group_roles_tab" - title="Roles"> - <scroll_container - color="DkGray2" - follows="all" - layout="topleft" - left="0" - name="profile_scroll" - opaque="true" - height="680" - width="304" - top="0"> - + title="Roles" + fit_panel="false"> <panel border="false" class="panel_group_roles" @@ -148,24 +133,13 @@ background_visible="true" left="0" name="group_roles_tab_panel" top="0" /> - </scroll_container> </accordion_tab> <accordion_tab expanded="false" layout="topleft" name="group_notices_tab" - title="Notices"> - <scroll_container - color="DkGray2" - follows="all" - layout="topleft" - left="0" - name="profile_scroll" - opaque="true" - height="530" - width="304" - top="0"> - + title="Notices" + fit_panel="false"> <panel border="false" class="panel_group_notices" @@ -176,24 +150,13 @@ background_visible="true" help_topic="group_notices_tab" name="group_notices_tab_panel" top="0" /> - </scroll_container> </accordion_tab> <accordion_tab expanded="false" layout="topleft" name="group_land_tab" - title="Land/Assets"> - <scroll_container - color="DkGray2" - follows="all" - layout="topleft" - left="0" - name="profile_scroll" - opaque="true" - height="500" - width="304" - top="0"> - + title="Land/Assets" + fit_panel="false"> <panel border="false" class="panel_group_land_money" @@ -203,7 +166,6 @@ background_visible="true" left="0" name="group_land_tab_panel" top="0" /> - </scroll_container> </accordion_tab> </accordion> </layout_panel> diff --git a/indra/newview/skins/default/xui/en/panel_im_control_panel.xml b/indra/newview/skins/default/xui/en/panel_im_control_panel.xml index 28c4adf67c..88566ea037 100644 --- a/indra/newview/skins/default/xui/en/panel_im_control_panel.xml +++ b/indra/newview/skins/default/xui/en/panel_im_control_panel.xml @@ -111,7 +111,7 @@ layout="topleft" min_height="25" width="100" - name="share_btn_panel" + name="pay_btn_panel" user_resize="false"> <button auto_resize="true" diff --git a/indra/newview/skins/default/xui/en/panel_people.xml b/indra/newview/skins/default/xui/en/panel_people.xml index 540e17e413..375f5b6593 100644 --- a/indra/newview/skins/default/xui/en/panel_people.xml +++ b/indra/newview/skins/default/xui/en/panel_people.xml @@ -28,6 +28,16 @@ <string name="groups_filter_label" value="Filter Groups" /> + <!-- + *WORKAROUND: for group_list.no_groups_msg & group_list.no_filtered_groups_msg attributes. + They are not defined as translatable in VLT. See EXT-5931 + --> + <string + name="no_filtered_groups_msg" + value="[secondlife:///app/search/groups Try finding the group in search?]" /> + <string + name="no_groups_msg" + value="[secondlife:///app/search/groups Try searching for some groups to join.]" /> <filter_editor text_pad_left="10" follows="left|top|right" @@ -240,13 +250,17 @@ If you're looking for people to hang out with, [secondlife:///app/worldmap try t name="groups_panel" top="0" width="313"> + <!-- + *NOTE: no_groups_msg & group_list attributes are not defined as translatable in VLT. See EXT-5931 + Values are set from appropriate strings at the top of file via LLPeoplePanel::postBuild() + --> <group_list follows="all" height="345" layout="topleft" left="0" name="group_list" - no_filtered_groups_msg="[secondlife:///app/search/groups Try fine the group in search?]" + no_filtered_groups_msg="[secondlife:///app/search/groups Try finding the group in search?]" no_groups_msg="[secondlife:///app/search/groups Try searching for some groups to join.]" top="0" width="313" /> diff --git a/indra/newview/skins/default/xui/en/panel_place_profile.xml b/indra/newview/skins/default/xui/en/panel_place_profile.xml index 44b2508e56..01a27a08c7 100644 --- a/indra/newview/skins/default/xui/en/panel_place_profile.xml +++ b/indra/newview/skins/default/xui/en/panel_place_profile.xml @@ -333,6 +333,7 @@ height="160" layout="topleft" left="0" + name="parcel_characteristics_panel" top="0" width="275"> <icon @@ -544,6 +545,7 @@ height="125" layout="topleft" left="0" + name="region_information_panel" top="0" width="290"> <text @@ -670,6 +672,7 @@ height="189" layout="topleft" left="0" + name="estate_information_panel" top="0" width="290"> <text @@ -758,6 +761,7 @@ height="300" layout="topleft" left="0" + name="sales_panel" top="0" width="290"> <text diff --git a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml index 05a3771edf..4be4d6b432 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml @@ -171,6 +171,7 @@ Automatic position for: height="50" layout="topleft" left_pad="10" + top="190" name="background" tool_tip="Choose color for bubble chat" width="38"> diff --git a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml index 2e81139ef2..3d434361b9 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml @@ -14,6 +14,7 @@ layout="topleft" left="30" height="12" + name="font_size" width="120" top="10"> Font size: @@ -60,6 +61,7 @@ layout="topleft" left="30" height="12" + name="font_colors" top_pad="10" width="120" > diff --git a/indra/newview/skins/default/xui/en/panel_region_estate.xml b/indra/newview/skins/default/xui/en/panel_region_estate.xml index 3980eb86d3..d336e18011 100644 --- a/indra/newview/skins/default/xui/en/panel_region_estate.xml +++ b/indra/newview/skins/default/xui/en/panel_region_estate.xml @@ -59,7 +59,7 @@ left_delta="0" name="owner_text" top_pad="2" - width="80"> + width="180"> Estate owner: </text> <text diff --git a/indra/newview/skins/default/xui/en/sidepanel_task_info.xml b/indra/newview/skins/default/xui/en/sidepanel_task_info.xml index d2c9e56bc3..7713f8ef7c 100644 --- a/indra/newview/skins/default/xui/en/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/en/sidepanel_task_info.xml @@ -94,6 +94,7 @@ layout="topleft" left="10" help_topic="" + name="properties_panel" top="45" width="313" background_visible="true" diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index 455b4be264..59c54f0cad 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -1769,6 +1769,9 @@ Clears (deletes) the media and all params from the given face. <string name="tattoo">Tattoo</string> <string name="invalid">invalid</string> + <!-- Wearable List--> + <string name="NewWearable">New [WEARABLE_ITEM]</string> + <!-- LLGroupNotify --> <!-- used in the construction of a Group Notice blue dialog box, buttons, tooltip etc. Seems to be no longer utilized by code in Viewer 2.0 --> <string name="next">Next</string> @@ -2104,6 +2107,9 @@ Clears (deletes) the media and all params from the given face. <!-- panel contents --> <string name="PanelContentsNewScript">New Script</string> + <!-- 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> + <!-- Mute --> <string name="MuteByName">(by name)</string> <string name="MuteAgent">(Resident)</string> diff --git a/indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml b/indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml index 63f08a4250..413ca1d1ef 100644 --- a/indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml +++ b/indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml @@ -24,7 +24,7 @@ follows="left|top|bottom" height="20" left="2" - mouse_opaque="true" + mouse_opaque="false" name="adhoc_icon" width="21" /> <chiclet_im_adhoc.unread_notifications diff --git a/indra/newview/skins/default/xui/es/floater_world_map.xml b/indra/newview/skins/default/xui/es/floater_world_map.xml index d5708483e5..24b5ece0aa 100644 --- a/indra/newview/skins/default/xui/es/floater_world_map.xml +++ b/indra/newview/skins/default/xui/es/floater_world_map.xml @@ -5,7 +5,8 @@ Leyenda </text> </panel> - <panel> + <panel + name="layout_panel_2"> <button label="Mostrar mi posición" label_selected="Mostrar mi posición" name="Show My Location" tool_tip="Centrar el mapa en la posición de mi avatar"/> <text name="me_label"> Yo @@ -48,12 +49,14 @@ Adulto </text> </panel> - <panel> + <panel + name="layout_panel_3"> <text name="find_on_map_label"> Encontrar en el mapa </text> </panel> - <panel> + <panel + name="layout_panel_4"> <combo_box label="Amigos conectados" name="friend combo" tool_tip="Ver a los amigos en el mapa"> <combo_box.item label="Mis amigos conectados" name="item1"/> </combo_box> @@ -71,12 +74,14 @@ <button label="Copiar la SLurl" name="copy_slurl" tool_tip="Copiar la SLurl de esta posición para usarla en una web."/> <button label="Ver lo elegido" label_selected="Mostrar el destino" name="Show Destination" tool_tip="Centrar el mapa en la localización elegida"/> </panel> - <panel> + <panel + name="layout_panel_5"> <text name="zoom_label"> Zoom </text> </panel> - <panel> + <panel + name="layout_panel_6"> <slider label="Zoom" name="zoom slider"/> </panel> </floater> diff --git a/indra/newview/skins/default/xui/es/panel_im_control_panel.xml b/indra/newview/skins/default/xui/es/panel_im_control_panel.xml index 09969a796c..f218324d50 100644 --- a/indra/newview/skins/default/xui/es/panel_im_control_panel.xml +++ b/indra/newview/skins/default/xui/es/panel_im_control_panel.xml @@ -13,7 +13,7 @@ <layout_panel name="share_btn_panel"> <button label="Compartir" name="share_btn"/> </layout_panel> - <layout_panel name="share_btn_panel"> + <layout_panel name="pay_btn_panel"> <button label="Pagar" name="pay_btn"/> </layout_panel> <layout_panel name="call_btn_panel"> diff --git a/indra/newview/skins/default/xui/es/panel_place_profile.xml b/indra/newview/skins/default/xui/es/panel_place_profile.xml index 9d4a958e16..2c873ef464 100644 --- a/indra/newview/skins/default/xui/es/panel_place_profile.xml +++ b/indra/newview/skins/default/xui/es/panel_place_profile.xml @@ -49,7 +49,7 @@ <text name="maturity_value" value="desconocido"/> <accordion name="advanced_info_accordion"> <accordion_tab name="parcel_characteristics_tab" title="Parcela"> - <panel> + <panel name="parcel_characteristics_panel"> <text name="rating_label" value="Calificación:"/> <text name="rating_value" value="desconocida"/> <text name="voice_label" value="Voz:"/> @@ -68,7 +68,7 @@ </panel> </accordion_tab> <accordion_tab name="region_information_tab" title="Región"> - <panel> + <panel name="region_information_panel"> <text name="region_name_label" value="Región:"/> <text name="region_type_label" value="Tipo:"/> <text name="region_rating_label" value="Calificación:"/> @@ -78,7 +78,7 @@ </panel> </accordion_tab> <accordion_tab name="estate_information_tab" title="Estado"> - <panel> + <panel name="estate_information_panel"> <text name="estate_name_label" value="Estado:"/> <text name="estate_rating_label" value="Calificación:"/> <text name="estate_owner_label" value="Propietario:"/> @@ -86,7 +86,7 @@ </panel> </accordion_tab> <accordion_tab name="sales_tab" title="En venta"> - <panel> + <panel name="sales_panel"> <text name="sales_price_label" value="Precio:"/> <text name="area_label" value="Área:"/> <text name="traffic_label" value="Tráfico:"/> diff --git a/indra/newview/skins/default/xui/es/panel_preferences_chat.xml b/indra/newview/skins/default/xui/es/panel_preferences_chat.xml index b8010e0a35..17e3b45beb 100644 --- a/indra/newview/skins/default/xui/es/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/es/panel_preferences_chat.xml @@ -1,10 +1,16 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Chat de texto" name="chat"> + <text name="font_size"> + Font size: + </text> <radio_group name="chat_font_size"> <radio_item label="Disminuir" name="radio" value="0"/> <radio_item label="Media" name="radio2" value="1"/> <radio_item label="Aumentar" name="radio3" value="2"/> </radio_group> + <text name="font_colors"> + Font colors: + </text> <color_swatch label="Usted" name="user"/> <text name="text_box1"> Yo diff --git a/indra/newview/skins/default/xui/es/sidepanel_task_info.xml b/indra/newview/skins/default/xui/es/sidepanel_task_info.xml index 6bfdbea2bc..524550fd6e 100644 --- a/indra/newview/skins/default/xui/es/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/es/sidepanel_task_info.xml @@ -38,7 +38,7 @@ </panel.string> <text name="title" value="Perfil del objeto"/> <text name="where" value="(en el mundo)"/> - <panel label=""> + <panel name="properties_panel" label=""> <text name="Name:"> Nombre: </text> diff --git a/indra/newview/skins/default/xui/fr/floater_world_map.xml b/indra/newview/skins/default/xui/fr/floater_world_map.xml index 19ea764ae8..09ec46fd59 100644 --- a/indra/newview/skins/default/xui/fr/floater_world_map.xml +++ b/indra/newview/skins/default/xui/fr/floater_world_map.xml @@ -6,7 +6,8 @@ Légende </text> </panel> - <panel> + <panel + name="layout_panel_2"> <button label="Afficher mon emplacement" label_selected="Afficher mon emplacement" name="Show My Location" tool_tip="Centrer la carte sur l'emplacement de mon avatar" width="165"/> <text name="me_label"> Moi @@ -56,12 +57,14 @@ Adulte </text> </panel> - <panel> + <panel + name="layout_panel_3"> <text name="find_on_map_label"> Situer sur la carte </text> </panel> - <panel> + <panel + name="layout_panel_4"> <combo_box label="Amis connectés" name="friend combo" tool_tip="Afficher les amis sur la carte" width="232"> <combo_box.item label="Mes amis connectés" name="item1"/> </combo_box> @@ -80,12 +83,14 @@ <button label="Copier la SLurl" left="-270" name="copy_slurl" tool_tip="Copie l'emplacement actuel sous la forme d'une SLurl à utiliser sur le Web."/> <button label="Afficher la sélection" label_selected="Afficher la destination" name="Show Destination" tool_tip="Centrer la carte sur l'endroit sélectionné" width="165"/> </panel> - <panel> + <panel + name="layout_panel_5"> <text name="zoom_label"> Zoomer </text> </panel> - <panel> + <panel + name="layout_panel_6"> <slider label="Zoom" left="-270" name="zoom slider"/> </panel> </floater> diff --git a/indra/newview/skins/default/xui/fr/panel_im_control_panel.xml b/indra/newview/skins/default/xui/fr/panel_im_control_panel.xml index 115e25e487..1f2169e22c 100644 --- a/indra/newview/skins/default/xui/fr/panel_im_control_panel.xml +++ b/indra/newview/skins/default/xui/fr/panel_im_control_panel.xml @@ -14,7 +14,7 @@ <layout_panel name="share_btn_panel"> <button label="Partager" name="share_btn"/> </layout_panel> - <layout_panel name="share_btn_panel"> + <layout_panel name="pay_btn_panel"> <button label="Payer" name="pay_btn"/> </layout_panel> <layout_panel name="call_btn_panel"> diff --git a/indra/newview/skins/default/xui/fr/panel_place_profile.xml b/indra/newview/skins/default/xui/fr/panel_place_profile.xml index d24570b0a1..2cd8744ae5 100644 --- a/indra/newview/skins/default/xui/fr/panel_place_profile.xml +++ b/indra/newview/skins/default/xui/fr/panel_place_profile.xml @@ -68,7 +68,7 @@ <text name="maturity_value" value="(inconnu)"/> <accordion name="advanced_info_accordion"> <accordion_tab name="parcel_characteristics_tab" title="Parcelle"> - <panel> + <panel name="parcel_characteristics_panel"> <text name="rating_label" value="Catégorie :"/> <text name="rating_value" value="(inconnu)"/> <text name="voice_label" value="Voix :"/> @@ -87,7 +87,7 @@ </panel> </accordion_tab> <accordion_tab name="region_information_tab" title="Région"> - <panel> + <panel name="region_information_panel"> <text name="region_name_label" value="Région :"/> <text name="region_name" value="Pays des orignaux"/> <text name="region_type_label" value="Type :"/> @@ -104,7 +104,7 @@ </panel> </accordion_tab> <accordion_tab name="estate_information_tab" title="Domaine"> - <panel> + <panel name="estate_information_panel"> <text name="estate_name_label" value="Domaine :"/> <text name="estate_rating_label" value="Catégorie :"/> <text name="estate_owner_label" value="Propriétaire :"/> @@ -112,7 +112,7 @@ </panel> </accordion_tab> <accordion_tab name="sales_tab" title="À vendre"> - <panel> + <panel name="sales_panel"> <text name="sales_price_label" value="Prix :"/> <text name="area_label" value="Surface :"/> <text name="traffic_label" value="Trafic :"/> diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml b/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml index 27242ec3de..71f7990073 100644 --- a/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml @@ -1,10 +1,16 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="Chat écrit" name="chat"> + <text name="font_size"> + Font size: + </text> <radio_group name="chat_font_size"> <radio_item label="Moins" name="radio" value="0"/> <radio_item label="Moyenne" name="radio2" value="1"/> <radio_item label="Plus" name="radio3" value="2"/> </radio_group> + <text name="font_colors"> + Font colors: + </text> <color_swatch label="Vous" name="user"/> <text name="text_box1"> Moi diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_setup.xml b/indra/newview/skins/default/xui/fr/panel_preferences_setup.xml index 3c789574a4..ecea368c54 100644 --- a/indra/newview/skins/default/xui/fr/panel_preferences_setup.xml +++ b/indra/newview/skins/default/xui/fr/panel_preferences_setup.xml @@ -17,8 +17,8 @@ <text name="text_box2"> kbps </text> - <check_box label="Port de connexion personnalisé" name="connection_port_enabled"/> - <spinner label="Numéro de port :" name="connection_port"/> + <check_box label="Port de connexion" name="connection_port_enabled"/> + <spinner label="Numéro :" name="connection_port"/> <text name="cache_size_label_l"> Taille de la mémoire </text> diff --git a/indra/newview/skins/default/xui/fr/sidepanel_task_info.xml b/indra/newview/skins/default/xui/fr/sidepanel_task_info.xml index e617ae444d..def71d96b4 100644 --- a/indra/newview/skins/default/xui/fr/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/fr/sidepanel_task_info.xml @@ -38,7 +38,7 @@ </panel.string> <text name="title" value="Profil de l'objet"/> <text name="where" value="(dans Second Life)"/> - <panel label=""> + <panel name="properties_panel" label=""> <text name="Name:"> Nom : </text> diff --git a/indra/newview/skins/default/xui/it/floater_world_map.xml b/indra/newview/skins/default/xui/it/floater_world_map.xml index a672df0d96..1b47dd7d7e 100644 --- a/indra/newview/skins/default/xui/it/floater_world_map.xml +++ b/indra/newview/skins/default/xui/it/floater_world_map.xml @@ -5,7 +5,8 @@ Legenda </text> </panel> - <panel> + <panel + name="layout_panel_2"> <button font="SansSerifSmall" label="Mostra la mia posizione" label_selected="Mostra la mia posizione" left_delta="91" name="Show My Location" tool_tip="Centra la mappa sul luogo dove si trova il mio avatar" width="135"/> <text name="person_label"> Io @@ -37,12 +38,14 @@ </text> <check_box label="Adult" name="event_adult_chk"/> </panel> - <panel> + <panel + name="layout_panel_3"> <text name="find_on_map_label"> Trova sulla Mappa </text> </panel> - <panel> + <panel + name="layout_panel_4"> <combo_box label="Amici Online" name="friend combo" tool_tip="Mostra amici sulla mappa"> <combo_box.item label="Miei Amici Online" name="item1"/> </combo_box> @@ -59,12 +62,14 @@ <button font="SansSerifSmall" label="Copia SLurl" name="copy_slurl" tool_tip="Copia il luogo attuale come SLurl per essere usato nel web."/> <button font="SansSerifSmall" label="Mostra Selezione" label_selected="Mostra destinazione" left_delta="91" name="Show Destination" tool_tip="Centra la mappa sul luogo prescelto" width="135"/> </panel> - <panel> + <panel + name="layout_panel_5"> <text name="zoom_label"> Zoom </text> </panel> - <panel> + <panel + name="layout_panel_6"> <slider label="Zoom" name="zoom slider"/> </panel> </floater> diff --git a/indra/newview/skins/default/xui/it/panel_place_profile.xml b/indra/newview/skins/default/xui/it/panel_place_profile.xml index 70e1577199..03716ba4c5 100644 --- a/indra/newview/skins/default/xui/it/panel_place_profile.xml +++ b/indra/newview/skins/default/xui/it/panel_place_profile.xml @@ -48,7 +48,7 @@ <text name="maturity_value" value="sconosciuto"/> <accordion name="advanced_info_accordion"> <accordion_tab name="parcel_characteristics_tab" title="Parcel"> - <panel> + <panel name="parcel_characteristics_panel"> <text name="rating_label" value="Valutazione:"/> <text name="rating_value" value="sconosciuto"/> <text name="voice_label" value="Voice:"/> @@ -67,7 +67,7 @@ </panel> </accordion_tab> <accordion_tab name="region_information_tab" title="Regione"> - <panel> + <panel name="region_information_panel"> <text name="region_name_label" value="Regione:"/> <text name="region_type_label" value="Scrivi:"/> <text name="region_rating_label" value="Valutazione:"/> @@ -77,7 +77,7 @@ </panel> </accordion_tab> <accordion_tab name="estate_information_tab" title="Proprietà immobiliare"> - <panel> + <panel name="estate_information_panel"> <text name="estate_name_label" value="Proprietà immobiliare:"/> <text name="estate_rating_label" value="Valutazione:"/> <text name="estate_owner_label" value="Proprietà:"/> @@ -85,7 +85,7 @@ </panel> </accordion_tab> <accordion_tab name="sales_tab" title="In vendita"> - <panel> + <panel name="sales_panel"> <text name="sales_price_label" value="Prezzo:"/> <text name="area_label" value="Area:"/> <text name="traffic_label" value="Traffico:"/> diff --git a/indra/newview/skins/default/xui/it/sidepanel_task_info.xml b/indra/newview/skins/default/xui/it/sidepanel_task_info.xml index e5f27795be..0eecdfb2a2 100644 --- a/indra/newview/skins/default/xui/it/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/it/sidepanel_task_info.xml @@ -36,7 +36,7 @@ <panel.string name="Sale Mixed"> Vendita assortita </panel.string> - <panel label=""> + <panel name="properties_panel" label=""> <text name="Name:"> Nome: </text> @@ -74,7 +74,7 @@ </combo_box> <spinner label="Prezzo: L$" name="Edit Cost"/> <check_box label="Mostra nella ricerca" name="search_check" tool_tip="Mostra questo oggetto nei risultati della ricerca"/> - <panel name="perms_build"> + <panel name="perms_inv"> <text name="perm_modify"> Puoi modificare questo oggetto </text> diff --git a/indra/newview/skins/default/xui/ja/floater_world_map.xml b/indra/newview/skins/default/xui/ja/floater_world_map.xml index 42fedfc075..04120b4bea 100644 --- a/indra/newview/skins/default/xui/ja/floater_world_map.xml +++ b/indra/newview/skins/default/xui/ja/floater_world_map.xml @@ -5,7 +5,8 @@ 表記・記号 </text> </panel> - <panel> + <panel + name="layout_panel_2"> <button label="現在地を表示" label_selected="現在地を表示" name="Show My Location" tool_tip="アバターの位置を地図の中心に表示します"/> <text name="me_label"> 自分 @@ -48,12 +49,14 @@ Adult </text> </panel> - <panel> + <panel + name="layout_panel_3"> <text name="find_on_map_label"> 地図上で探す </text> </panel> - <panel> + <panel + name="layout_panel_4"> <combo_box label="オンラインのフレンド" name="friend combo" tool_tip="フレンドを地図上に表示します"> <combo_box.item label="オンラインのフレンド" name="item1"/> </combo_box> @@ -71,12 +74,14 @@ <button label="SLurl をコピー" name="copy_slurl" tool_tip="現在地を SLurl でコピーして Web で使用します。"/> <button label="選択をを表示する" label_selected="目的地を表示" name="Show Destination" tool_tip="選択した場所を地図の中心に表示します"/> </panel> - <panel> + <panel + name="layout_panel_5"> <text name="zoom_label"> ズーム </text> </panel> - <panel> + <panel + name="layout_panel_6"> <slider label="ズーム" name="zoom slider"/> </panel> </floater> diff --git a/indra/newview/skins/default/xui/ja/panel_im_control_panel.xml b/indra/newview/skins/default/xui/ja/panel_im_control_panel.xml index be15e92aa1..f2429ac12a 100644 --- a/indra/newview/skins/default/xui/ja/panel_im_control_panel.xml +++ b/indra/newview/skins/default/xui/ja/panel_im_control_panel.xml @@ -14,7 +14,7 @@ <layout_panel name="share_btn_panel"> <button label="共有" name="share_btn"/> </layout_panel> - <layout_panel name="share_btn_panel"> + <layout_panel name="pay_btn_panel"> <button label="支払う" name="pay_btn"/> </layout_panel> <layout_panel name="call_btn_panel"> diff --git a/indra/newview/skins/default/xui/ja/panel_place_profile.xml b/indra/newview/skins/default/xui/ja/panel_place_profile.xml index 1f5031f3de..132fb95fe7 100644 --- a/indra/newview/skins/default/xui/ja/panel_place_profile.xml +++ b/indra/newview/skins/default/xui/ja/panel_place_profile.xml @@ -68,7 +68,7 @@ <text name="maturity_value" value="不明"/> <accordion name="advanced_info_accordion"> <accordion_tab name="parcel_characteristics_tab" title="区画"> - <panel> + <panel name="parcel_characteristics_panel"> <text name="rating_label" value="レーティング区分:"/> <text name="rating_value" value="不明"/> <text name="voice_label" value="ボイス:"/> @@ -87,7 +87,7 @@ </panel> </accordion_tab> <accordion_tab name="region_information_tab" title="リージョン(地域) "> - <panel> + <panel name="region_information_panel"> <text name="region_name_label" value="地域:"/> <text name="region_name" value="Mooseland"/> <text name="region_type_label" value="種類:"/> @@ -104,7 +104,7 @@ </panel> </accordion_tab> <accordion_tab name="estate_information_tab" title="エステート(不動産)"> - <panel> + <panel name="estate_information_panel"> <text name="estate_name_label" value="不動産:"/> <text name="estate_rating_label" value="レーティング区分:"/> <text name="estate_owner_label" value="所有者:"/> @@ -112,7 +112,7 @@ </panel> </accordion_tab> <accordion_tab name="sales_tab" title="販売中"> - <panel> + <panel name="sales_panel"> <text name="sales_price_label" value="価格:"/> <text name="area_label" value="面積:"/> <text name="traffic_label" value="トラフィック:"/> diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml b/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml index d6fe54fbd1..b0572804cb 100644 --- a/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml @@ -1,10 +1,16 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel label="チャット" name="chat"> + <text name="font_size"> + Font size: + </text> <radio_group name="chat_font_size"> <radio_item label="小" name="radio" value="0"/> <radio_item label="中" name="radio2" value="1"/> <radio_item label="大" name="radio3" value="2"/> </radio_group> + <text name="font_colors"> + Font colors: + </text> <color_swatch label="自分" name="user"/> <text name="text_box1"> 自分 diff --git a/indra/newview/skins/default/xui/ja/sidepanel_task_info.xml b/indra/newview/skins/default/xui/ja/sidepanel_task_info.xml index ab00953f1a..439891bab1 100644 --- a/indra/newview/skins/default/xui/ja/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/ja/sidepanel_task_info.xml @@ -38,7 +38,7 @@ </panel.string> <text name="title" value="オブジェクトのプロフィール"/> <text name="where" value="(インワールド)"/> - <panel label=""> + <panel name="properties_panel" label=""> <text name="Name:"> 名前: </text> diff --git a/indra/newview/skins/default/xui/ja/strings.xml b/indra/newview/skins/default/xui/ja/strings.xml index 3e9be493ff..76b702e581 100644 --- a/indra/newview/skins/default/xui/ja/strings.xml +++ b/indra/newview/skins/default/xui/ja/strings.xml @@ -1900,7 +1900,7 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ 後ろ髪の毛先 </string> <string name="Baggy"> - たるんでいる + たるんだ下まぶた </string> <string name="Bangs"> 前髪 @@ -1990,7 +1990,7 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ 広 </string> <string name="Brow Size"> - 眉毛の大きさ + 眉毛上の隆起 </string> <string name="Bug Eyes"> Bug Eyes @@ -2023,7 +2023,7 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ 膨らみ大 </string> <string name="Chaplin"> - Chaplin + チャップリン </string> <string name="Cheek Bones"> ほお骨 @@ -2044,7 +2044,7 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ あごの長さ </string> <string name="Chin Heavy"> - あごに重点 + あごを強調 </string> <string name="Chin In"> ひいたあご @@ -2236,7 +2236,7 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ ひたいの角度 </string> <string name="Forehead Heavy"> - ひたいに重点 + ひたいを強調 </string> <string name="Freckles"> しみ・そばかす @@ -2386,7 +2386,7 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ あごの形 </string> <string name="Join"> - 寄せた + 寄せた胸 </string> <string name="Jowls"> えら @@ -2491,7 +2491,7 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ 口紅の色 </string> <string name="Long"> - 長 + ロング </string> <string name="Long Head"> 前後幅が広い頭 @@ -2887,7 +2887,7 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ 骨張った脚 </string> <string name="Separate"> - 離れた + 離れた胸 </string> <string name="Shallow"> なだらか @@ -2935,7 +2935,7 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ 靴の長さ </string> <string name="Short"> - 短 + ショート </string> <string name="Short Arms"> 短 @@ -3049,7 +3049,7 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ 縦長 </string> <string name="Sunken"> - こけた + こけたほお </string> <string name="Sunken Chest"> 小 @@ -3064,7 +3064,7 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ 前へ </string> <string name="Tall"> - 高 + トール </string> <string name="Taper Back"> 後ろに先細 @@ -3160,7 +3160,7 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ ウエストの高さ </string> <string name="Well-Fed"> - つまった + つまったほお </string> <string name="White Hair"> 白髪 @@ -3181,7 +3181,7 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ ワイルド </string> <string name="Wrinkles"> - しわあり + しわ </string> <string name="LocationCtrlAddLandmarkTooltip"> マイ ランドマークに追加 diff --git a/indra/newview/skins/default/xui/pt/floater_world_map.xml b/indra/newview/skins/default/xui/pt/floater_world_map.xml index 81f8ce7846..75f9d13ad3 100644 --- a/indra/newview/skins/default/xui/pt/floater_world_map.xml +++ b/indra/newview/skins/default/xui/pt/floater_world_map.xml @@ -5,7 +5,8 @@ Legenda </text> </panel> - <panel> + <panel + name="layout_panel_2"> <button font="SansSerifSmall" label="Mostra minha localização" label_selected="Mostra minha localização" left_delta="91" name="Show My Location" tool_tip="Centrar o mapa na localização do meu avatar" width="135"/> <text name="person_label"> Eu @@ -36,12 +37,14 @@ </text> <check_box label="Adult" name="event_adult_chk"/> </panel> - <panel> + <panel + name="layout_panel_3"> <text name="find_on_map_label"> Localizar no mapa </text> </panel> - <panel> + <panel + name="layout_panel_4"> <combo_box label="Amigos Conectados" name="friend combo" tool_tip="Mostrar amigos no mapa"> <combo_box.item label="Amigos conectados" name="item1"/> </combo_box> @@ -54,12 +57,14 @@ <button font="SansSerifSmall" label="Copiar SLurl" name="copy_slurl" tool_tip="Copia a localização atual como um SLurl para usar na web."/> <button font="SansSerifSmall" label="Mostrar seleção" label_selected="Mostrar Destino" left_delta="91" name="Show Destination" tool_tip="Centralizar mapa na posição selecionada" width="135"/> </panel> - <panel> + <panel + name="layout_panel_5"> <text name="zoom_label"> Zoom </text> </panel> - <panel> + <panel + name="layout_panel_6"> <slider label="Zoom" name="zoom slider"/> </panel> </floater> 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 371f7bdb1f..210991f984 100644 --- a/indra/newview/skins/default/xui/pt/panel_place_profile.xml +++ b/indra/newview/skins/default/xui/pt/panel_place_profile.xml @@ -48,7 +48,7 @@ <text name="maturity_value" value="(Desconhecido)"/> <accordion name="advanced_info_accordion"> <accordion_tab name="parcel_characteristics_tab" title="Lote"> - <panel> + <panel name="parcel_characteristics_panel"> <text name="rating_label" value="Classificação:"/> <text name="rating_value" value="(Desconhecido)"/> <text name="voice_label" value="Voz:"/> @@ -67,7 +67,7 @@ </panel> </accordion_tab> <accordion_tab name="region_information_tab" title="Região"> - <panel> + <panel name="region_information_panel"> <text name="region_name_label" value="Região:"/> <text name="region_type_label" value="Tipo:"/> <text name="region_rating_label" value="Classificação:"/> @@ -77,7 +77,7 @@ </panel> </accordion_tab> <accordion_tab name="estate_information_tab" title="Propriedade"> - <panel> + <panel name="estate_information_panel"> <text name="estate_name_label" value="Propriedade:"/> <text name="estate_rating_label" value="Classificação:"/> <text name="estate_owner_label" value="Proprietário:"/> @@ -85,7 +85,7 @@ </panel> </accordion_tab> <accordion_tab name="sales_tab" title="À venda"> - <panel> + <panel name="sales_panel"> <text name="sales_price_label" value="Preço:"/> <text name="area_label" value="Área:"/> <text name="traffic_label" value="Trânsito:"/> diff --git a/indra/newview/skins/default/xui/pt/sidepanel_task_info.xml b/indra/newview/skins/default/xui/pt/sidepanel_task_info.xml index 3ae728e69d..7c626d7805 100644 --- a/indra/newview/skins/default/xui/pt/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/pt/sidepanel_task_info.xml @@ -36,7 +36,7 @@ <panel.string name="Sale Mixed"> Venda mista </panel.string> - <panel label=""> + <panel name="properties_panel" label=""> <text name="Name:"> Nome: </text> @@ -74,7 +74,7 @@ </combo_box> <spinner label="Preço: L$" name="Edit Cost"/> <check_box label="Mostrar nos resultados de busca" name="search_check" tool_tip="Incluir o objeto nos resultados de busca"/> - <panel name="perms_build"> + <panel name="perms_inv"> <text name="perm_modify"> Você pode modificar este objeto </text> |