diff options
author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2022-05-11 20:38:13 +0300 |
---|---|---|
committer | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2022-05-11 22:10:12 +0300 |
commit | 1e84d0e6494df1f5ccb3f69e53849bf26b01e385 (patch) | |
tree | a3c8341f73862dbb7e14786b80b4058fd87f65a7 /indra/newview | |
parent | 76beebae685d859d4afbff6db3ae6d7785b204da (diff) |
SL-15312 Profiles tweaks
Fix loading indicators to be at the center of picls and classified
Hide classifieds and picks related buttons for other agents
10px distance from image
Fix chat history menu button not working
Changed 'partner' field behavior
Prevent selection of disabled FL text field
Diffstat (limited to 'indra/newview')
-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 --> |