From fa620a236dbddb0a8d63be28c37ae27b0e08fc12 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Fri, 17 May 2013 08:54:38 +0200 Subject: [PATCH] Make payment info in radar/people panel a skinnable option and show both payment info on file ("$" / ID card icon) and payment info used ("$$" / Dollar note) --- indra/newview/fspanelradar.cpp | 12 +- indra/newview/fsradar.cpp | 12 +- indra/newview/fsradar.h | 6 + indra/newview/llpanelpeople.cpp | 12 +- .../skins/ansastorm/xui/en/panel_fs_radar.xml | 197 ++++++++++++++++++ .../skins/ansastorm/xui/en/panel_people.xml | 12 +- .../textures/legacy/payment_info_filled.tga | Bin 0 -> 1042 bytes .../textures/legacy/payment_info_used.tga | Bin 0 -> 1042 bytes .../skins/default/textures/textures.xml | 3 + .../skins/default/xui/en/panel_fs_radar.xml | 12 +- .../skins/default/xui/en/panel_people.xml | 12 +- .../skins/metaharper/xui/en/panel_people.xml | 12 +- .../skins/vintage/xui/en/panel_fs_radar.xml | 197 ++++++++++++++++++ .../skins/vintage/xui/en/panel_people.xml | 8 +- 14 files changed, 471 insertions(+), 24 deletions(-) create mode 100644 indra/newview/skins/ansastorm/xui/en/panel_fs_radar.xml create mode 100644 indra/newview/skins/default/textures/legacy/payment_info_filled.tga create mode 100644 indra/newview/skins/default/textures/legacy/payment_info_used.tga create mode 100644 indra/newview/skins/vintage/xui/en/panel_fs_radar.xml diff --git a/indra/newview/fspanelradar.cpp b/indra/newview/fspanelradar.cpp index 9bab22d330..66c12e035c 100644 --- a/indra/newview/fspanelradar.cpp +++ b/indra/newview/fspanelradar.cpp @@ -262,6 +262,9 @@ void FSPanelRadar::updateList(const std::vector& entries, const LLSD& stat return; } + static const std::string flagsColumnType = getString("FlagsColumnType"); + static const std::string flagsColumnValues [3] = { getString("FlagsColumnValue_0"), getString("FlagsColumnValue_1"), getString("FlagsColumnValue_2") }; + // Store current selection and scroll position static S32 uuidColumnIndex = mRadarList->getColumn("uuid")->mIndex; std::vector selected_items = mRadarList->getAllSelected(); @@ -291,7 +294,7 @@ void FSPanelRadar::updateList(const std::vector& entries, const LLSD& stat row_data["columns"][2]["type"] = "icon"; row_data["columns"][2]["value"] = (entry["in_region"].asBoolean() ? "avatar_in_region" : ""); row_data["columns"][3]["column"] = "flags"; - row_data["columns"][3]["value"] = entry["flags"]; + row_data["columns"][3]["type"] = flagsColumnType; row_data["columns"][4]["column"] = "age"; row_data["columns"][4]["value"] = entry["age"]; row_data["columns"][5]["column"] = "seen"; @@ -306,6 +309,7 @@ void FSPanelRadar::updateList(const std::vector& entries, const LLSD& stat static S32 rangeColumnIndex = mRadarList->getColumn("range")->mIndex; static S32 nameColumnIndex = mRadarList->getColumn("name")->mIndex; static S32 voiceLevelColumnIndex = mRadarList->getColumn("voice_level")->mIndex; + static S32 flagsColumnIndex = mRadarList->getColumn("flags")->mIndex; LLScrollListText* radarRangeCell = (LLScrollListText*)row->getColumn(rangeColumnIndex); radarRangeCell->setColor(LLColor4(options["range_color"])); @@ -323,6 +327,12 @@ void FSPanelRadar::updateList(const std::vector& entries, const LLSD& stat { voiceLevelCell->setValue(entry["voice_level_icon"].asString()); } + + LLScrollListText* flagsCell = (LLScrollListText*)row->getColumn(flagsColumnIndex); + if (entry.has("flags")) + { + flagsCell->setValue(flagsColumnValues[entry["flags"].asInteger()]); + } } LLStringUtil::format_map_t name_count_args; diff --git a/indra/newview/fsradar.cpp b/indra/newview/fsradar.cpp index 02ffcff7de..9abd97755b 100644 --- a/indra/newview/fsradar.cpp +++ b/indra/newview/fsradar.cpp @@ -281,10 +281,14 @@ void FSRadar::updateRadarList() S32 secs = (S32)((seentime - hours * 3600 - mins * 60)); std::string avSeenStr = llformat("%d:%02d:%02d", hours, mins, secs); S32 avStatusFlags = ent->mStatus; - std::string avFlagStr = ""; - if (avStatusFlags & AVATAR_IDENTIFIED) + ERadarPaymentInfoFlag avFlag = FSRADAR_PAYMENT_INFO_NONE; + if (avStatusFlags & AVATAR_TRANSACTED) { - avFlagStr += "$"; + avFlag = FSRADAR_PAYMENT_INFO_USED; + } + else if (avStatusFlags & AVATAR_IDENTIFIED) + { + avFlag = FSRADAR_PAYMENT_INFO_FILLED; } S32 avAge = ent->mAge; std::string avName = ent->mName; @@ -448,7 +452,7 @@ void FSRadar::updateRadarList() entry["id"] = avId; entry["name"] = avName; entry["in_region"] = (regionSelf == avRegion); - entry["flags"] = avFlagStr; + entry["flags"] = avFlag; entry["age"] = (avAge > -1 ? llformat("%d", avAge) : ""); entry["seen"] = avSeenStr; entry["range"] = (avRange > AVATAR_UNKNOWN_RANGE ? llformat("%3.2f", avRange) : llformat(">%3.2f", drawRadius)); diff --git a/indra/newview/fsradar.h b/indra/newview/fsradar.h index 6c2e33d300..593ef7bbd0 100644 --- a/indra/newview/fsradar.h +++ b/indra/newview/fsradar.h @@ -47,6 +47,12 @@ typedef enum e_radar_name_format FSRADAR_NAMEFORMAT_USERNAME_DISPLAYNAME } ERadarNameFormat; +typedef enum e_radar_payment_info_flag +{ + FSRADAR_PAYMENT_INFO_NONE, + FSRADAR_PAYMENT_INFO_FILLED, + FSRADAR_PAYMENT_INFO_USED +} ERadarPaymentInfoFlag; class FSRadar : public LLSingleton diff --git a/indra/newview/llpanelpeople.cpp b/indra/newview/llpanelpeople.cpp index 948794d957..47e6b88d60 100644 --- a/indra/newview/llpanelpeople.cpp +++ b/indra/newview/llpanelpeople.cpp @@ -1776,6 +1776,9 @@ void LLPanelPeople::updateNearby(const std::vector& entries, const LLSD& s return; } + static const std::string flagsColumnType = getString("FlagsColumnType"); + static const std::string flagsColumnValues [3] = { getString("FlagsColumnValue_0"), getString("FlagsColumnValue_1"), getString("FlagsColumnValue_2") }; + // Store current selection and scroll position static S32 uuidColumnIndex = mRadarList->getColumn("uuid")->mIndex; std::vector selected_items = mRadarList->getAllSelected(); @@ -1805,7 +1808,7 @@ void LLPanelPeople::updateNearby(const std::vector& entries, const LLSD& s row_data["columns"][2]["type"] = "icon"; row_data["columns"][2]["value"] = (entry["in_region"].asBoolean() ? "avatar_in_region" : ""); row_data["columns"][3]["column"] = "flags"; - row_data["columns"][3]["value"] = entry["flags"]; + row_data["columns"][3]["type"] = flagsColumnType; row_data["columns"][4]["column"] = "age"; row_data["columns"][4]["value"] = entry["age"]; row_data["columns"][5]["column"] = "seen"; @@ -1820,6 +1823,7 @@ void LLPanelPeople::updateNearby(const std::vector& entries, const LLSD& s static S32 rangeColumnIndex = mRadarList->getColumn("range")->mIndex; static S32 nameColumnIndex = mRadarList->getColumn("name")->mIndex; static S32 voiceLevelColumnIndex = mRadarList->getColumn("voice_level")->mIndex; + static S32 flagsColumnIndex = mRadarList->getColumn("flags")->mIndex; LLScrollListText* radarRangeCell = (LLScrollListText*)row->getColumn(rangeColumnIndex); radarRangeCell->setColor(LLColor4(options["range_color"])); @@ -1837,6 +1841,12 @@ void LLPanelPeople::updateNearby(const std::vector& entries, const LLSD& s { voiceLevelCell->setValue(entry["voice_level_icon"].asString()); } + + LLScrollListText* flagsCell = (LLScrollListText*)row->getColumn(flagsColumnIndex); + if (entry.has("flags")) + { + flagsCell->setValue(flagsColumnValues[entry["flags"].asInteger()]); + } } LLStringUtil::format_map_t name_count_args; diff --git a/indra/newview/skins/ansastorm/xui/en/panel_fs_radar.xml b/indra/newview/skins/ansastorm/xui/en/panel_fs_radar.xml new file mode 100644 index 0000000000..0b8a69c956 --- /dev/null +++ b/indra/newview/skins/ansastorm/xui/en/panel_fs_radar.xml @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/indra/newview/skins/ansastorm/xui/en/panel_people.xml b/indra/newview/skins/ansastorm/xui/en/panel_people.xml index ae0bca8164..0b4408cc53 100644 --- a/indra/newview/skins/ansastorm/xui/en/panel_people.xml +++ b/indra/newview/skins/ansastorm/xui/en/panel_people.xml @@ -11,6 +11,10 @@ name="people_panel" top="0" width="333"> + + + + @@ -160,7 +164,7 @@ Looking for people to hang out with? Use the search box to find topics or conten label="Name" name="name" tool_tip="[TOTAL] avatars, [IN_REGION] in the same region, [IN_CHAT_RANGE] in chat range" - relative_width="0.37" /> + relative_width="0.34" /> + tool_tip="Payment info status" + relative_width="0.05" /> + relative_width="0.16" /> tV^;r7o@wAbxKZSozJoDv5h_9KDIy2 z%b?qqtuVR}Liy20qml1jHoLV^+@NIQEeXa%5^2P2~ACcuG7Nc>@&IS<-1dvIm zsoidCsbmr_U%Wsl7~K3^+J@`cWSTXs7zTZ;RAC9pt|rIjB2JDh;*QJns$_A#; zp8FjLU7_L3_b`J$BKPJFY8wS~_B$|}2TW}=n|ofpVL}pUE<8_#YME5rkD)tg_^$%X zzet2Hqdxrux`AsbZ-2sWwSj0f#`T6U9}3BIG6lzWX)ZKR>x~j81RSRSK={c$dLE3+ zg{2rxKYD=n!gUmi8}K|AtyYVA2M45TF{?FI2Sp=MDl{kfBjYc`;{kfS(xs=d7Vb_h z1H~y6wknKmQarXy!Qc$Nne`))h`|#MBJ*KdZ&kQ&Kshr-51+ikg z^&8fCqZjJ+CTNp7P2oD1_PjO7W zPLBrMqa&W%(Wna{Ec81a7@3T>TdVzQ?lp2|y=j=Ws$uSadB0OG8RbeTw^=G1wQ^~7 zduwy`6Vqm~uv#o+jkUG>%4&Yyh{O`txQ#lI)JW|*;gnFEcbk`Lyz{K*U6&dp?>yUa z;=0Q=Lq+5N2F6OABx#Dk|AmO}O!9=rZ|SjaqL);#9=%HP*ucWvXag%PD~f{_ zXeFiey$u~uQ(jyHN!cpSjb&nMrD*9O%<|qB+VVW-d_Ar6Nlu<~o+sb$@Ao_TdE+ zN$_uVn#SU*?&itQt+n{l-H^L5Qjxu4tbVhmtNQdYC`k($LK*kS`yflexDUk%zKZ`s zoP6VwpXu^-isSJ~dfC=QnhNsteZ-kt)g{Lw4!&LVe1(2L)jQN+O7n z?rG(a_SXTly07EAr5~s^G)7x}9e97B42`}PeAs_>wOm>GZhddvnSE@NG@mcQ{gS*F z&3*l=tqv(CiwO+avEn|8LA*_-=uqF|*G|y8>o~hrqo)SmEmel%&;0#YPb9fxG85QLBR4}gD=wM_7 zuJjbGH#gwgSo_fq5=8>n;>1{?@4S~V)I+mcjh%1i`b7n$vNo$G}2r5)sT8R zgqxPm(nHSB0g`!^iwZn*9p&{iEGOZ!NOm&Y#OimX`xkZ08XL!8a0E?uDZ20WzQTDf z^qQX;y!RJ*Ae83whP*z1CuIHL88Q59O?CNt&^{}JJ}_DuO>GqA{gLA + + + diff --git a/indra/newview/skins/default/xui/en/panel_fs_radar.xml b/indra/newview/skins/default/xui/en/panel_fs_radar.xml index 96a2dccbd5..3709d1ac90 100644 --- a/indra/newview/skins/default/xui/en/panel_fs_radar.xml +++ b/indra/newview/skins/default/xui/en/panel_fs_radar.xml @@ -3,6 +3,10 @@ name="panel_radar" width="327" height="333"> + + + + @@ -87,7 +91,7 @@ label="Name" name="name" tool_tip="[TOTAL] avatars, [IN_REGION] in the same region, [IN_CHAT_RANGE] in chat range" - relative_width="0.37"/> + relative_width="0.34"/> + tool_tip="Payment info status" + relative_width="0.05"/> + relative_width="0.16"/> + + + + @@ -160,7 +164,7 @@ Looking for people to hang out with? Use the search box to find topics or conten label="Name" name="name" tool_tip="[TOTAL] avatars, [IN_REGION] in the same region, [IN_CHAT_RANGE] in chat range" - relative_width="0.37" /> + relative_width="0.34" /> + tool_tip="Payment info status" + relative_width="0.05" /> + relative_width="0.16" /> + + + + @@ -160,7 +164,7 @@ Looking for people to hang out with? Use the search box to find topics or conten label="NAME" name="name" tool_tip="[TOTAL] avatars, [IN_REGION] in the same region, [IN_CHAT_RANGE] in chat range" - relative_width="0.37" /> + relative_width="0.35" /> + tool_tip="Payment into status" + relative_width="0.05" /> + relative_width="0.16" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/indra/newview/skins/vintage/xui/en/panel_people.xml b/indra/newview/skins/vintage/xui/en/panel_people.xml index 1c01c51831..9e71bb3a38 100644 --- a/indra/newview/skins/vintage/xui/en/panel_people.xml +++ b/indra/newview/skins/vintage/xui/en/panel_people.xml @@ -10,6 +10,10 @@ name="people_panel" top="0" width="333"> + + + + @@ -185,7 +189,7 @@ Looking for people to hang out with? Use the search box to find topics or conten + relative_width="0.32" /> + relative_width="0.08" />