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)

Ansariel 2013-05-17 08:54:38 +02:00
parent e558cf2bd0
commit fa620a236d
14 changed files with 471 additions and 24 deletions

View File

@ -262,6 +262,9 @@ void FSPanelRadar::updateList(const std::vector<LLSD>& 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<LLScrollListItem*> selected_items = mRadarList->getAllSelected();
@ -291,7 +294,7 @@ void FSPanelRadar::updateList(const std::vector<LLSD>& 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<LLSD>& 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<LLSD>& 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;

View File

@ -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));

View File

@ -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<FSRadar>

View File

@ -1776,6 +1776,9 @@ void LLPanelPeople::updateNearby(const std::vector<LLSD>& 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<LLScrollListItem*> selected_items = mRadarList->getAllSelected();
@ -1805,7 +1808,7 @@ void LLPanelPeople::updateNearby(const std::vector<LLSD>& 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<LLSD>& 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<LLSD>& 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;

View File

@ -0,0 +1,197 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
name="panel_radar"
width="327"
height="333">
<string name="FlagsColumnType" value="icon"/>
<string name="FlagsColumnValue_0" value=""/>
<string name="FlagsColumnValue_1" value="Payment_Info_Filled"/>
<string name="FlagsColumnValue_2" value="Payment_Info_Used"/>
<string
name="MiniMapToolTipMsg"
value="[REGION] (Double-click to open Map, shift-drag to pan)"/>
<string
name="AltMiniMapToolTipMsg"
value="[REGION] (Double-click to teleport, shift-drag to pan)"/>
<string
name="avatar_name_count"
value="Name [[TOTAL]/[IN_REGION]/[IN_CHAT_RANGE]]"/>
<panel
background_opaque="false"
background_visible="false"
follows="all"
height="333"
layout="topleft"
left="0"
name="nearby_panel"
top="0"
width="327">
<layout_stack
orientation="vertical"
clip="true"
follows="all"
layout="topleft"
top="0"
left="0"
height="306"
width="327"
mouse_opaque="false"
name="radar_ls"
auto_resize="false"
user_resize="true">
<layout_panel
layout="topleft"
top="0"
left="3"
height="140"
width="321"
min_dim="140"
follows="top"
mouse_opaque="false"
visibility_control="ShowRadarMinimap"
name="minimaplayout"
auto_resize="false"
user_resize="true">
<net_map
bg_color="NetMapBackgroundColor"
visibility_control="ShowRadarMinimap"
follows="all"
layout="topleft"
left="3"
mouse_opaque="false"
name="Net Map"
width="316"
height="140"
top="0"/>
</layout_panel>
<layout_panel
layout="topleft"
top="0"
left="0"
height="166"
width="327"
mouse_opaque="false"
follows="all"
name="radarlayout">
<radar_list
draw_heading="true"
follows="all"
height="166"
layout="topleft"
left="0"
top_pad="0"
sort_column="0"
sort_ascending="true"
name="radar_list"
draw_stripes="true"
multi_select="true"
width="327">
<radar_list.columns
label="Name"
name="name"
tool_tip="[TOTAL] avatars, [IN_REGION] in the same region, [IN_CHAT_RANGE] in chat range"
relative_width="0.34"/>
<radar_list.columns
label=""
name="voice_level"
tool_tip="Is talking on voice"
relative_width="0.07"/>
<radar_list.columns
label=""
name="in_region"
tool_tip="Is in the same region"
relative_width="0.03"/>
<radar_list.columns
label=""
name="flags"
tool_tip="Payment info status"
relative_width="0.05"/>
<radar_list.columns
label="Age"
name="age"
relative_width="0.1"/>
<radar_list.columns
label="Seen"
name="seen"
relative_width="0.15"/>
<radar_list.columns
label="Range"
name="range"
relative_width="0.16"/>
<radar_list.columns
label="av_id"
name="uuid"
relative_width="0"/>
</radar_list>
</layout_panel>
</layout_stack>
<!-- Buttons -->
<panel
background_visible="false"
follows="left|right|bottom"
height="27"
label="bottom_panel"
layout="topleft"
left="0"
name="bottom_panel_nearby"
top_pad="0"
width="327">
<menu_button
follows="bottom|left"
height="25"
image_hover_unselected="Toolbar_Left_Over"
image_overlay="OptionsMenu_Off"
image_selected="Toolbar_Left_Selected"
image_unselected="Toolbar_Left_Off"
layout="topleft"
left="0"
name="nearby_view_sort_btn"
tool_tip="Options"
top="1"
width="31"/>
<button
follows="bottom|left"
height="25"
image_hover_unselected="Toolbar_Middle_Over"
image_overlay="AddItem_Off"
image_selected="Toolbar_Middle_Selected"
image_unselected="Toolbar_Middle_Off"
layout="topleft"
left_pad="1"
name="add_friend_btn_nearby"
tool_tip="Add selected Resident to your friends List"
width="31">
<commit_callback
function="People.addFriend"/>
</button>
<icon
follows="bottom|left|right"
height="25"
image_name="Toolbar_Right_Off"
layout="topleft"
left_pad="1"
name="nearby_dummy_icon"
width="263"/>
<slider
visibility_control="LimitRadarByRange"
control_name="NearMeRange"
decimal_digits="0"
follows="bottom|left"
height="16"
increment="2"
initial_value="96"
label="Range(m):"
label_width="70"
layout="topleft"
max_val="4096"
min_val="20"
name="NearMeRange"
visible="True"
left_delta="10"
top_delta="6"
width="220"/>
</panel>
</panel>
</panel>

View File

@ -11,6 +11,10 @@
name="people_panel"
top="0"
width="333">
<string name="FlagsColumnType" value="icon"/>
<string name="FlagsColumnValue_0" value=""/>
<string name="FlagsColumnValue_1" value="Payment_Info_Filled"/>
<string name="FlagsColumnValue_2" value="Payment_Info_Used"/>
<string
name="high_server_load"
value="Due to server load, mass toggling visibility can take a while to become effective. Please be patient."/>
@ -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" />
<radar_list.columns
label=""
name="voice_level"
@ -174,8 +178,8 @@ Looking for people to hang out with? Use the search box to find topics or conten
<radar_list.columns
label=""
name="flags"
tool_tip="Has payment info on file"
relative_width="0.03" />
tool_tip="Payment info status"
relative_width="0.05" />
<radar_list.columns
label="Age"
name="age"
@ -187,7 +191,7 @@ Looking for people to hang out with? Use the search box to find topics or conten
<radar_list.columns
label="Range"
name="range"
relative_width="0.15" />
relative_width="0.16" />
<radar_list.columns
label="av_id"
name="uuid"

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -929,4 +929,7 @@ with the same filename but different name
<texture name="Script_Search" file_name="icons/script_search.png" preload="false" />
<texture name="Script_Editor" file_name="icons/script_editor.png" preload="false" />
<texture name="Script_Config" file_name="icons/script_config.png" preload="false" />
<texture name="Payment_Info_Filled" file_name="legacy/payment_info_filled.tga" preload="false" />
<texture name="Payment_Info_Used" file_name="legacy/payment_info_used.tga" preload="false" />
</textures>

View File

@ -3,6 +3,10 @@
name="panel_radar"
width="327"
height="333">
<string name="FlagsColumnType" value="text"/>
<string name="FlagsColumnValue_0" value=""/>
<string name="FlagsColumnValue_1" value="$"/>
<string name="FlagsColumnValue_2" value="$$"/>
<string
name="MiniMapToolTipMsg"
value="[REGION] (Double-click to open Map, shift-drag to pan)"/>
@ -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"/>
<radar_list.columns
label=""
name="voice_level"
@ -101,8 +105,8 @@
<radar_list.columns
label=""
name="flags"
tool_tip="Has payment info on file"
relative_width="0.03"/>
tool_tip="Payment info status"
relative_width="0.05"/>
<radar_list.columns
label="Age"
name="age"
@ -114,7 +118,7 @@
<radar_list.columns
label="Range"
name="range"
relative_width="0.15"/>
relative_width="0.16"/>
<radar_list.columns
label="av_id"
name="uuid"

View File

@ -11,6 +11,10 @@
name="people_panel"
top="0"
width="333">
<string name="FlagsColumnType" value="text"/>
<string name="FlagsColumnValue_0" value=""/>
<string name="FlagsColumnValue_1" value="$"/>
<string name="FlagsColumnValue_2" value="$$"/>
<string
name="high_server_load"
value="Due to server load, mass toggling visibility can take a while to become effective. Please be patient."/>
@ -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" />
<radar_list.columns
label=""
name="voice_level"
@ -174,8 +178,8 @@ Looking for people to hang out with? Use the search box to find topics or conten
<radar_list.columns
label=""
name="flags"
tool_tip="Has payment info on file"
relative_width="0.03" />
tool_tip="Payment info status"
relative_width="0.05" />
<radar_list.columns
label="Age"
name="age"
@ -187,7 +191,7 @@ Looking for people to hang out with? Use the search box to find topics or conten
<radar_list.columns
label="Range"
name="range"
relative_width="0.15" />
relative_width="0.16" />
<radar_list.columns
label="av_id"
name="uuid"

View File

@ -11,6 +11,10 @@
name="people_panel"
top="0"
width="333">
<string name="FlagsColumnType" value="text"/>
<string name="FlagsColumnValue_0" value=""/>
<string name="FlagsColumnValue_1" value="$"/>
<string name="FlagsColumnValue_2" value="$$"/>
<string
name="high_server_load"
value="Due to server load, mass toggling visibility can take a while to become effective. Please be patient."/>
@ -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" />
<radar_list.columns
label=""
name="voice_level"
@ -174,8 +178,8 @@ Looking for people to hang out with? Use the search box to find topics or conten
<radar_list.columns
label=""
name="flags"
tool_tip="Has payment info on file"
relative_width="0.03" />
tool_tip="Payment into status"
relative_width="0.05" />
<radar_list.columns
label="AGE"
name="age"
@ -187,7 +191,7 @@ Looking for people to hang out with? Use the search box to find topics or conten
<radar_list.columns
label="RANGE"
name="range"
relative_width="0.15" />
relative_width="0.16" />
<radar_list.columns
label="av_id"
name="uuid"

View File

@ -0,0 +1,197 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
name="panel_radar"
width="327"
height="333">
<string name="FlagsColumnType" value="icon"/>
<string name="FlagsColumnValue_0" value=""/>
<string name="FlagsColumnValue_1" value="Payment_Info_Filled"/>
<string name="FlagsColumnValue_2" value="Payment_Info_Used"/>
<string
name="MiniMapToolTipMsg"
value="[REGION] (Double-click to open Map, shift-drag to pan)"/>
<string
name="AltMiniMapToolTipMsg"
value="[REGION] (Double-click to teleport, shift-drag to pan)"/>
<string
name="avatar_name_count"
value="Name [[TOTAL]/[IN_REGION]/[IN_CHAT_RANGE]]"/>
<panel
background_opaque="false"
background_visible="false"
follows="all"
height="333"
layout="topleft"
left="0"
name="nearby_panel"
top="0"
width="327">
<layout_stack
orientation="vertical"
clip="true"
follows="all"
layout="topleft"
top="0"
left="0"
height="306"
width="327"
mouse_opaque="false"
name="radar_ls"
auto_resize="false"
user_resize="true">
<layout_panel
layout="topleft"
top="0"
left="3"
height="140"
width="321"
min_dim="140"
follows="top"
mouse_opaque="false"
visibility_control="ShowRadarMinimap"
name="minimaplayout"
auto_resize="false"
user_resize="true">
<net_map
bg_color="NetMapBackgroundColor"
visibility_control="ShowRadarMinimap"
follows="all"
layout="topleft"
left="3"
mouse_opaque="false"
name="Net Map"
width="316"
height="140"
top="0"/>
</layout_panel>
<layout_panel
layout="topleft"
top="0"
left="0"
height="166"
width="327"
mouse_opaque="false"
follows="all"
name="radarlayout">
<radar_list
draw_heading="true"
follows="all"
height="166"
layout="topleft"
left="0"
top_pad="0"
sort_column="0"
sort_ascending="true"
name="radar_list"
draw_stripes="true"
multi_select="true"
width="327">
<radar_list.columns
label="Name"
name="name"
tool_tip="[TOTAL] avatars, [IN_REGION] in the same region, [IN_CHAT_RANGE] in chat range"
relative_width="0.32"/>
<radar_list.columns
label=""
name="voice_level"
tool_tip="Is talking on voice"
relative_width="0.07"/>
<radar_list.columns
label="Distance"
name="range"
relative_width="0.15"/>
<radar_list.columns
label="Time"
name="seen"
relative_width="0.15"/>
<radar_list.columns
label="Age"
name="age"
relative_width="0.1"/>
<radar_list.columns
label=""
name="in_region"
tool_tip="Is in the same region"
relative_width="0.03"/>
<radar_list.columns
label=""
name="flags"
tool_tip="Payment info status"
relative_width="0.08"/>
<radar_list.columns
label="av_id"
name="uuid"
relative_width="0"/>
</radar_list>
</layout_panel>
</layout_stack>
<!-- Buttons -->
<panel
background_visible="false"
follows="left|right|bottom"
height="27"
label="bottom_panel"
layout="topleft"
left="0"
name="bottom_panel_nearby"
top_pad="0"
width="327">
<menu_button
follows="bottom|left"
height="25"
image_hover_unselected="Toolbar_Left_Over"
image_overlay="OptionsMenu_Off"
image_selected="Toolbar_Left_Selected"
image_unselected="Toolbar_Left_Off"
layout="topleft"
left="0"
name="nearby_view_sort_btn"
tool_tip="Options"
top="1"
width="31"/>
<button
follows="bottom|left"
height="25"
image_hover_unselected="Toolbar_Middle_Over"
image_overlay="AddItem_Off"
image_selected="Toolbar_Middle_Selected"
image_unselected="Toolbar_Middle_Off"
layout="topleft"
left_pad="1"
name="add_friend_btn_nearby"
tool_tip="Add selected Resident to your friends List"
width="31">
<commit_callback
function="People.addFriend"/>
</button>
<icon
follows="bottom|left|right"
height="25"
image_name="Toolbar_Right_Off"
layout="topleft"
left_pad="1"
name="nearby_dummy_icon"
width="263"/>
<slider
visibility_control="LimitRadarByRange"
control_name="NearMeRange"
decimal_digits="0"
follows="bottom|left"
height="16"
increment="2"
initial_value="96"
label="Range(m):"
label_width="70"
layout="topleft"
max_val="4096"
min_val="20"
name="NearMeRange"
visible="True"
left_delta="10"
top_delta="6"
width="220"/>
</panel>
</panel>
</panel>

View File

@ -10,6 +10,10 @@
name="people_panel"
top="0"
width="333">
<string name="FlagsColumnType" value="icon"/>
<string name="FlagsColumnValue_0" value=""/>
<string name="FlagsColumnValue_1" value="Payment_Info_Filled"/>
<string name="FlagsColumnValue_2" value="Payment_Info_Used"/>
<string
name="high_server_load"
value="Due to server load, mass toggling visibility can take a while to become effective. Please be patient."/>
@ -185,7 +189,7 @@ Looking for people to hang out with? Use the search box to find topics or conten
<radar_list.columns
label="Name"
name="name"
relative_width="0.37" />
relative_width="0.32" />
<radar_list.columns
label=""
name="voice_level"
@ -209,7 +213,7 @@ Looking for people to hang out with? Use the search box to find topics or conten
<radar_list.columns
label=""
name="flags"
relative_width="0.03" />
relative_width="0.08" />
<radar_list.columns
label="av_id"
name="uuid"