diff options
-rw-r--r-- | indra/newview/llagentpicksinfo.h | 4 | ||||
-rw-r--r-- | indra/newview/llpanelavatar.cpp | 6 | ||||
-rw-r--r-- | indra/newview/llpanelprofile.cpp | 54 | ||||
-rw-r--r-- | indra/newview/llpanelprofile.h | 2 | ||||
-rw-r--r-- | indra/newview/llpanelprofileclassifieds.cpp | 6 | ||||
-rw-r--r-- | indra/newview/llpanelprofilepicks.cpp | 5 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/panel_profile_classifieds.xml | 182 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/panel_profile_picks.xml | 190 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/panel_profile_secondlife.xml | 79 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/strings.xml | 4 |
10 files changed, 356 insertions, 176 deletions
diff --git a/indra/newview/llagentpicksinfo.h b/indra/newview/llagentpicksinfo.h index f981e08ff7..21df036cb7 100644 --- a/indra/newview/llagentpicksinfo.h +++ b/indra/newview/llagentpicksinfo.h @@ -74,10 +74,10 @@ public: void decrementNumberOfPicks() { --mNumberOfPicks; } -private: - void onServerRespond(LLAvatarPicks* picks); +private: + /** * Sets number of Picks. */ diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp index 5d5d4b676c..9a030f1d7d 100644 --- a/indra/newview/llpanelavatar.cpp +++ b/indra/newview/llpanelavatar.cpp @@ -119,6 +119,12 @@ void LLPanelProfileTab::setApplyProgress(bool started) indicator->stop(); } } + + LLPanel* panel = findChild<LLPanel>("indicator_stack"); + if (panel) + { + panel->setVisible(started); + } } LLPanelProfilePropertiesProcessorTab::LLPanelProfilePropertiesProcessorTab() diff --git a/indra/newview/llpanelprofile.cpp b/indra/newview/llpanelprofile.cpp index 031c1db7e2..542ecf8b42 100644 --- a/indra/newview/llpanelprofile.cpp +++ b/indra/newview/llpanelprofile.cpp @@ -217,6 +217,8 @@ void request_avatar_properties_coro(std::string cap_url, LLUUID agent_id) LLPanelProfilePicks *panel_picks = dynamic_cast<LLPanelProfilePicks*>(panel); if (panel_picks) { + // Refresh pick limit before processing + LLAgentPicksInfo::getInstance()->onServerRespond(&avatar_picks); panel_picks->processProperties(&avatar_picks); } @@ -820,7 +822,7 @@ BOOL LLPanelProfileSecondLife::postBuild() mGroupList = getChild<LLGroupList>("group_list"); mShowInSearchCombo = getChild<LLComboBox>("show_in_search"); mSecondLifePic = getChild<LLIconCtrl>("2nd_life_pic"); - mSecondLifePicLayout = getChild<LLPanel>("image_stack"); + mSecondLifePicLayout = getChild<LLPanel>("image_panel"); mDescriptionEdit = getChild<LLTextEditor>("sl_description_edit"); mNotesSnippet = getChild<LLTextEditor>("notes_snippet"); mAgentActionMenuButton = getChild<LLMenuButton>("agent_actions_menu"); @@ -989,6 +991,11 @@ void LLPanelProfileSecondLife::onAvatarNameCache(const LLUUID& agent_id, const L getChild<LLUICtrl>("user_name")->setValue(av_name.getAccountName()); } +void LLPanelProfileSecondLife::setNotesSnippet(std::string ¬es) +{ + mNotesSnippet->setValue(notes); +} + void LLPanelProfileSecondLife::setProfileImageUploading(bool loading) { LLLoadingIndicator* indicator = getChild<LLLoadingIndicator>("image_upload_indicator"); @@ -1077,6 +1084,7 @@ void LLPanelProfileSecondLife::fillPartnerData(const LLAvatarData* avatar_data) LLTextBox* partner_text_ctrl = getChild<LLTextBox>("partner_link"); if (avatar_data->partner_id.notNull()) { + childSetVisible("partner_layout", TRUE); LLStringUtil::format_map_t args; args["[LINK]"] = LLSLURL("agent", avatar_data->partner_id, "inspect").getSLURLString(); std::string partner_text = getString("partner_text", args); @@ -1084,7 +1092,7 @@ void LLPanelProfileSecondLife::fillPartnerData(const LLAvatarData* avatar_data) } else { - partner_text_ctrl->setText(getString("no_partner_text")); + childSetVisible("partner_layout", FALSE); } } @@ -1333,7 +1341,7 @@ void LLPanelProfileSecondLife::onCommitMenu(const LLSD& userdata) { LLAvatarActions::startCall(agent_id); } - else if (item_name == "callog") + else if (item_name == "chat_history") { LLAvatarActions::viewChatHistory(agent_id); } @@ -1443,7 +1451,7 @@ bool LLPanelProfileSecondLife::onEnableMenu(const LLSD& userdata) { return mVoiceStatus; } - else if (item_name == "callog") + else if (item_name == "chat_history") { return LLLogChat::isTranscriptExist(agent_id); } @@ -1780,6 +1788,12 @@ void LLPanelProfileFirstLife::onOpen(const LLSD& key) { LLPanelProfileTab::onOpen(key); + if (!getSelfProfile()) + { + // Otherwise as the only focusable element it will be selected + mDescriptionEdit->setTabStop(FALSE); + } + resetData(); } @@ -1953,24 +1967,6 @@ void LLPanelProfileNotes::onOpen(const LLSD& key) resetData(); } -void LLPanelProfileNotes::onCommitNotes() -{ - std::string cap_url = gAgent.getRegionCapability(PROFILE_PROPERTIES_CAP); - if (getIsLoaded()) - { - if (!cap_url.empty()) - { - std::string notes = mNotesEditor->getValue().asString(); - LLCoros::instance().launch("putAgentUserInfoCoro", - boost::bind(put_avatar_properties_coro, cap_url, getAvatarId(), LLSD().with("notes", notes))); - } - else - { - LL_WARNS() << "Failed to update notes, no cap found" << LL_ENDL; - } - } -} - void LLPanelProfileNotes::setNotesText(const std::string &text) { mSaveChanges->setEnabled(FALSE); @@ -1993,6 +1989,20 @@ void LLPanelProfileNotes::onSaveNotesChanges() { LLCoros::instance().launch("putAgentUserInfoCoro", boost::bind(put_avatar_properties_coro, cap_url, getAvatarId(), LLSD().with("notes", mCurrentNotes))); + + + LLFloater* floater_profile = LLFloaterReg::findInstance("profile", LLSD().with("id", getAvatarId())); + if (!floater_profile) + { + return; + } + + LLPanel* panel = floater_profile->findChild<LLPanel>(PANEL_SECONDLIFE, TRUE); + LLPanelProfileSecondLife *panel_sl = dynamic_cast<LLPanelProfileSecondLife*>(panel); + if (panel_sl) + { + panel_sl->setNotesSnippet(mCurrentNotes); + } } else { diff --git a/indra/newview/llpanelprofile.h b/indra/newview/llpanelprofile.h index fa98e6fd1b..8b2893905d 100644 --- a/indra/newview/llpanelprofile.h +++ b/indra/newview/llpanelprofile.h @@ -99,6 +99,7 @@ public: void onAvatarNameCache(const LLUUID& agent_id, const LLAvatarName& av_name); + void setNotesSnippet(std::string ¬es); void setProfileImageUploading(bool loading); void setProfileImageUploaded(const LLUUID &image_asset_id); @@ -314,7 +315,6 @@ public: /*virtual*/ void updateData(); protected: - void onCommitNotes(); void setNotesText(const std::string &text); void onSetNotesDirty(); void onSaveNotesChanges(); diff --git a/indra/newview/llpanelprofileclassifieds.cpp b/indra/newview/llpanelprofileclassifieds.cpp index 56f9a387a1..7f7bba3b91 100644 --- a/indra/newview/llpanelprofileclassifieds.cpp +++ b/indra/newview/llpanelprofileclassifieds.cpp @@ -207,7 +207,8 @@ void LLPanelProfileClassifieds::onOpen(const LLSD& key) resetData(); - if (getSelfProfile()) + bool own_profile = getSelfProfile(); + if (own_profile) { mNewButton->setVisible(TRUE); mNewButton->setEnabled(FALSE); @@ -215,6 +216,9 @@ void LLPanelProfileClassifieds::onOpen(const LLSD& key) mDeleteButton->setVisible(TRUE); mDeleteButton->setEnabled(FALSE); } + + childSetVisible("buttons_header", own_profile); + } void LLPanelProfileClassifieds::selectClassified(const LLUUID& classified_id, bool edit) diff --git a/indra/newview/llpanelprofilepicks.cpp b/indra/newview/llpanelprofilepicks.cpp index c452fb5abd..08c4690eaa 100644 --- a/indra/newview/llpanelprofilepicks.cpp +++ b/indra/newview/llpanelprofilepicks.cpp @@ -135,7 +135,8 @@ void LLPanelProfilePicks::onOpen(const LLSD& key) resetData(); - if (getSelfProfile()) + bool own_profile = getSelfProfile(); + if (own_profile) { mNewButton->setVisible(TRUE); mNewButton->setEnabled(FALSE); @@ -143,6 +144,8 @@ void LLPanelProfilePicks::onOpen(const LLSD& key) mDeleteButton->setVisible(TRUE); mDeleteButton->setEnabled(FALSE); } + + childSetVisible("buttons_header", own_profile); } void LLPanelProfilePicks::selectPick(const LLUUID& pick_id) diff --git a/indra/newview/skins/default/xui/en/panel_profile_classifieds.xml b/indra/newview/skins/default/xui/en/panel_profile_classifieds.xml index ff27113d53..3dfa0a58df 100644 --- a/indra/newview/skins/default/xui/en/panel_profile_classifieds.xml +++ b/indra/newview/skins/default/xui/en/panel_profile_classifieds.xml @@ -13,66 +13,130 @@ name="no_classifieds" value="No Classifieds" /> - <loading_indicator - name="progress_indicator" - top="20" - right="-10" - height="23" - width="23" - follows="top|right" - layout="topleft" - visible="false" - /> - <button - name="new_btn" - label="New..." - tool_tip="Create a new classified at the current location" - enabled="false" - top="25" - left="5" - height="20" - width="70" - follows="left|top" - layout="topleft" - visible="true" - /> - <button - name="delete_btn" - label="Delete..." - tool_tip="Delete currently selected classified" - enabled="false" - left_pad="5" - height="20" - width="70" - follows="left|top" - layout="topleft" - visible="true" - /> - <tab_container - name="tab_classifieds" - top="50" - bottom="-21" - left="4" - right="-4" + + <layout_stack + name="main_stack" + top="0" + left="0" + right="-1" + bottom="-1" + follows="all" + layout="topleft" + animate="false" + orientation="vertical"> + <layout_panel + name="buttons_header" follows="all" layout="topleft" - halign="left" - tab_position="left" - tab_width="85" - use_ellipses="true" - /> - <text - name="classifieds_panel_text" - top="300" - left="110" - right="-110" - height="25" - follows="left|top|right" + height="50" + auto_resize="false" + user_resize="false"> + <button + name="new_btn" + label="New..." + tool_tip="Create a new classified at the current location" + enabled="false" + top="25" + left="5" + height="20" + width="70" + follows="left|top" + layout="topleft" + visible="true" + /> + <button + name="delete_btn" + label="Delete..." + tool_tip="Delete currently selected classified" + enabled="false" + left_pad="5" + height="20" + width="70" + follows="left|top" + layout="topleft" + visible="true" + /> + </layout_panel> + <layout_panel + name="main_body" + follows="all" layout="topleft" - halign="center" - mouse_opaque="false" - wrap="true" - > - Loading... - </text> + height="430" + auto_resize="true" + user_resize="false"> + <tab_container + name="tab_classifieds" + top="0" + bottom="-21" + left="4" + right="-4" + follows="all" + layout="topleft" + halign="left" + tab_position="left" + tab_width="85" + use_ellipses="true" + /> + + <layout_stack + name="indicator_stack" + top="220" + left="0" + right="-1" + height="28" + follows="top|left|right" + layout="topleft" + animate="false" + orientation="horizontal"> + <layout_panel + name="indicator_spacer_left" + follows="all" + layout="topleft" + width="100" + auto_resize="true" + user_resize="false"> + </layout_panel> + <layout_panel + name="buttons_header" + follows="all" + layout="topleft" + width="25" + auto_resize="false" + user_resize="false"> + <loading_indicator + name="progress_indicator" + top="1" + left="1" + height="23" + width="23" + follows="top|left" + layout="topleft" + visible="false" + /> + </layout_panel> + <layout_panel + name="indicator_spacer_right" + follows="all" + layout="topleft" + width="100" + auto_resize="true" + user_resize="false"> + </layout_panel> + </layout_stack> + <text + name="classifieds_panel_text" + top="250" + left="110" + right="-110" + height="25" + follows="left|top|right" + layout="topleft" + halign="center" + mouse_opaque="false" + wrap="true" + > + Loading... + </text> + </layout_panel> + </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/en/panel_profile_picks.xml b/indra/newview/skins/default/xui/en/panel_profile_picks.xml index 208441e7f7..44d5c448c0 100644 --- a/indra/newview/skins/default/xui/en/panel_profile_picks.xml +++ b/indra/newview/skins/default/xui/en/panel_profile_picks.xml @@ -13,78 +13,142 @@ name="no_picks" value="No Picks" /> - <loading_indicator - name="progress_indicator" - top="20" - right="-10" - height="23" - width="23" - follows="top|right" - layout="topleft" - visible="false" - /> - <text - name="Tell everyone about your favorite places in Second Life." - top="5" - left="5" - right="-5" - height="16" - follows="left|top|right" + + <layout_stack + name="main_stack" + top="0" + left="0" + right="-1" + bottom="-1" + follows="all" + layout="topleft" + animate="false" + orientation="vertical"> + <layout_panel + name="buttons_header" + follows="all" layout="topleft" - halign="center" + height="50" + auto_resize="false" + user_resize="false"> + <text + name="header_text" + top="5" + left="5" + right="-5" + height="16" + follows="left|top|right" + layout="topleft" + halign="center" > Tell everyone about your favorite places in Second Life. - </text> - <button - name="new_btn" - label="New..." - tool_tip="Create a new pick at the current location" - enabled="false" - top_pad="4" - left="5" - height="20" - width="70" - follows="left|top" - layout="topleft" - visible="false" + </text> + <button + name="new_btn" + label="New..." + tool_tip="Create a new pick at the current location" + enabled="false" + top_pad="4" + left="5" + height="20" + width="70" + follows="left|top" + layout="topleft" + visible="false" /> - <button - name="delete_btn" - label="Delete..." - tool_tip="Delete currently selected pick" - enabled="false" - left_pad="5" - height="20" - width="70" - follows="left|top" - layout="topleft" - visible="false" + <button + name="delete_btn" + label="Delete..." + tool_tip="Delete currently selected pick" + enabled="false" + left_pad="5" + height="20" + width="70" + follows="left|top" + layout="topleft" + visible="false" /> - <tab_container - name="tab_picks" - top="50" - bottom="-5" - left="4" - right="-4" - tab_width="150" + </layout_panel> + <layout_panel + name="main_body" follows="all" layout="topleft" - halign="left" - tab_position="left" - use_ellipses="true" + height="430" + auto_resize="true" + user_resize="false"> + <tab_container + name="tab_picks" + top="0" + bottom="-5" + left="4" + right="-4" + tab_width="150" + follows="all" + layout="topleft" + halign="left" + tab_position="left" + use_ellipses="true" /> - <text - name="picks_panel_text" - top="300" - left="110" - right="-110" - height="25" - follows="left|top|right" + + <layout_stack + name="indicator_stack" + top="220" + left="0" + right="-1" + height="28" + follows="top|left|right" layout="topleft" - halign="center" - mouse_opaque="false" - wrap="true" + animate="false" + orientation="horizontal"> + <layout_panel + name="indicator_spacer_left" + follows="all" + layout="topleft" + width="100" + auto_resize="true" + user_resize="false"> + </layout_panel> + <layout_panel + name="buttons_header" + follows="all" + layout="topleft" + width="25" + auto_resize="false" + user_resize="false"> + <loading_indicator + name="progress_indicator" + top="1" + left="1" + height="23" + width="23" + follows="top|left" + layout="topleft" + visible="false" + /> + </layout_panel> + <layout_panel + name="indicator_spacer_right" + follows="all" + layout="topleft" + width="100" + auto_resize="true" + user_resize="false"> + </layout_panel> + </layout_stack> + <text + name="picks_panel_text" + top="250" + left="100" + right="-100" + height="25" + follows="left|top|right" + layout="topleft" + halign="center" + mouse_opaque="false" + wrap="true" > Loading... - </text> + </text> + </layout_panel> + </layout_stack> </panel> diff --git a/indra/newview/skins/default/xui/en/panel_profile_secondlife.xml b/indra/newview/skins/default/xui/en/panel_profile_secondlife.xml index 68d8726dc9..e23da2b7fe 100644 --- a/indra/newview/skins/default/xui/en/panel_profile_secondlife.xml +++ b/indra/newview/skins/default/xui/en/panel_profile_secondlife.xml @@ -13,9 +13,6 @@ name="AgeFormat" value="[AGE]" /> <string - name="no_partner_text" - value="Partner: None" /> - <string name="partner_text" value="Partner: [LINK]" /> <string @@ -95,7 +92,7 @@ Account: [ACCTTYPE] value="(loading...)" font="SansSerifBigLarge" top="0" - left="2" + left="10" right="-1" height="20" follows="left|top|right" @@ -105,7 +102,7 @@ Account: [ACCTTYPE] name="user_name" value="(loading...)" top_pad="0" - left="2" + left_delta="0" right="-1" height="16" follows="left|top|right" @@ -115,34 +112,64 @@ Account: [ACCTTYPE] name="user_age" value="(loading...)" top_pad="0" - left="2" + left_delta="0" right="-1" height="16" follows="left|top|right" layout="topleft"/> - <text - type="string" - name="partner_link" - value="Partner: (loading...)" + <layout_stack + name="partner_stack" top_pad="0" - left="2" + left_delta="0" right="-1" - height="16" + height="64" follows="left|top|right" layout="topleft" - translate="false" - use_ellipses="true" /> + animate="false" + orientation="vertical"> + <layout_panel + name="partner_layout" + follows="all" + layout="topleft" + height="16" + auto_resize="false" + user_resize="false" + visible="false"> + <text + type="string" + name="partner_link" + value="Partner: (loading...)" + top="0" + left="0" + right="-1" + height="16" + follows="left|top|right" + layout="topleft" + translate="false" + use_ellipses="true" + visible="true"/> + </layout_panel> + + <layout_panel + name="account_layout" + follows="all" + layout="topleft" + height="48" + auto_resize="false" + user_resize="false"> + <text + name="account_info" + value="Account: (loading...)" + top="15" + left="0" + right="-1" + height="16" + follows="left|top|right" + layout="topleft"/> + </layout_panel> + </layout_stack> - <text - name="account_info" - value="Account: (loading...)" - top_pad="0" - left="2" - right="-1" - height="16" - follows="left|top|right" - layout="topleft"/> <loading_indicator name="progress_indicator" @@ -157,7 +184,7 @@ Account: [ACCTTYPE] <menu_button layout="topleft" follows="left|bottom" - left="2" + left="10" bottom="-1" height="25" width="140" @@ -373,7 +400,9 @@ Account: [ACCTTYPE] h_pad="2" max_length="1000" parse_urls="true" - word_wrap="true"/> + word_wrap="true" + use_ellipses="true" + allow_scroll="false"/> </layout_panel> <layout_panel diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index 324f1466a8..285ea03f8a 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -2807,8 +2807,8 @@ If you continue to receive this message, please contact Second Life support for <string name="NoPicksText">You haven't created any Picks. Click the New button to create a Pick.</string> <string name="NoClassifiedsText">You haven't created any Classifieds. Click the New button to create a Classified.</string> <string name="NoAvatarPicksClassifiedsText">User has no picks or classifieds</string> - <string name="NoAvatarPicksText">User has no picks</string> - <string name="NoAvatarClassifiedsText">User has no classifieds</string> + <string name="NoAvatarPicksText">This person has no picks</string> + <string name="NoAvatarClassifiedsText">This person has no classifieds</string> <string name="PicksClassifiedsLoadingText">Loading...</string> <!-- Multi Preview Floater --> |