summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorAndreyL ProductEngine <alihatskiy@productengine.com>2018-07-12 20:35:01 +0300
committerAndreyL ProductEngine <alihatskiy@productengine.com>2018-07-12 20:35:01 +0300
commit28cdee4e0833c96f4b0c707092814f6ed0bbfd96 (patch)
tree2c422844b1f09171caa56723bf07a164425ae968 /indra
parent599cd81b8c912d8db377f5be475ea6fd4abaab1d (diff)
MAINT-8566 Access lists search implementation
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llfloaterregioninfo.cpp45
-rw-r--r--indra/newview/llfloaterregioninfo.h5
-rw-r--r--indra/newview/skins/default/xui/en/panel_region_access.xml80
3 files changed, 123 insertions, 7 deletions
diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp
index 4f1c26d793..4babff69c2 100644
--- a/indra/newview/llfloaterregioninfo.cpp
+++ b/indra/newview/llfloaterregioninfo.cpp
@@ -3267,6 +3267,7 @@ BOOL LLPanelEstateAccess::postBuild()
avatar_name_list->setMaxItemCount(ESTATE_MAX_ACCESS_IDS);
}
+ getChild<LLUICtrl>("allowed_search_input")->setCommitCallback(boost::bind(&LLPanelEstateAccess::onAllowedSearchEdit, this, _2));
childSetAction("add_allowed_avatar_btn", boost::bind(&LLPanelEstateAccess::onClickAddAllowedAgent, this));
childSetAction("remove_allowed_avatar_btn", boost::bind(&LLPanelEstateAccess::onClickRemoveAllowedAgent, this));
@@ -3278,6 +3279,7 @@ BOOL LLPanelEstateAccess::postBuild()
group_name_list->setMaxItemCount(ESTATE_MAX_ACCESS_IDS);
}
+ getChild<LLUICtrl>("allowed_group_search_input")->setCommitCallback(boost::bind(&LLPanelEstateAccess::onAllowedGroupsSearchEdit, this, _2));
getChild<LLUICtrl>("add_allowed_group_btn")->setCommitCallback(boost::bind(&LLPanelEstateAccess::onClickAddAllowedGroup, this));
childSetAction("remove_allowed_group_btn", boost::bind(&LLPanelEstateAccess::onClickRemoveAllowedGroup, this));
@@ -3289,6 +3291,7 @@ BOOL LLPanelEstateAccess::postBuild()
banned_name_list->setMaxItemCount(ESTATE_MAX_ACCESS_IDS);
}
+ getChild<LLUICtrl>("banned_search_input")->setCommitCallback(boost::bind(&LLPanelEstateAccess::onBannedSearchEdit, this, _2));
childSetAction("add_banned_avatar_btn", boost::bind(&LLPanelEstateAccess::onClickAddBannedAgent, this));
childSetAction("remove_banned_avatar_btn", boost::bind(&LLPanelEstateAccess::onClickRemoveBannedAgent, this));
@@ -4064,3 +4067,45 @@ void LLPanelEstateAccess::requestEstateGetAccessCoro(std::string url)
panel->updateControls(gAgent.getRegion());
}
+//---------------------------------------------------------------------------
+// Access lists search
+//---------------------------------------------------------------------------
+void LLPanelEstateAccess::onAllowedSearchEdit(const std::string& search_string)
+{
+ LLPanelEstateAccess* panel = LLFloaterRegionInfo::getPanelAccess();
+ if (!panel) return;
+ LLNameListCtrl* allowed_agent_name_list = panel->getChild<LLNameListCtrl>("allowed_avatar_name_list");
+ searchAgent(allowed_agent_name_list, search_string);
+}
+
+void LLPanelEstateAccess::onAllowedGroupsSearchEdit(const std::string& search_string)
+{
+ LLPanelEstateAccess* panel = LLFloaterRegionInfo::getPanelAccess();
+ if (!panel) return;
+ LLNameListCtrl* allowed_group_name_list = panel->getChild<LLNameListCtrl>("allowed_group_name_list");
+ searchAgent(allowed_group_name_list, search_string);
+}
+
+void LLPanelEstateAccess::onBannedSearchEdit(const std::string& search_string)
+{
+ LLPanelEstateAccess* panel = LLFloaterRegionInfo::getPanelAccess();
+ if (!panel) return;
+ LLNameListCtrl* banned_agent_name_list = panel->getChild<LLNameListCtrl>("banned_avatar_name_list");
+ searchAgent(banned_agent_name_list, search_string);
+}
+
+void LLPanelEstateAccess::searchAgent(LLNameListCtrl* listCtrl, const std::string& search_string)
+{
+ if (!listCtrl) return;
+
+ if (!search_string.empty())
+ {
+ listCtrl->setSearchColumn(0); // name column
+ listCtrl->selectItemByPrefix(search_string, FALSE);
+ }
+ else
+ {
+ listCtrl->deselectAllItems(TRUE);
+ }
+}
+
diff --git a/indra/newview/llfloaterregioninfo.h b/indra/newview/llfloaterregioninfo.h
index 941c81fbec..70971c119f 100644
--- a/indra/newview/llfloaterregioninfo.h
+++ b/indra/newview/llfloaterregioninfo.h
@@ -508,6 +508,9 @@ private:
void onClickRemoveBannedAgent();
void onClickAddEstateManager();
void onClickRemoveEstateManager();
+ void onAllowedSearchEdit(const std::string& search_string);
+ void onAllowedGroupsSearchEdit(const std::string& search_string);
+ void onBannedSearchEdit(const std::string& search_string);
// Group picker callback is different, can't use core methods below
bool addAllowedGroup(const LLSD& notification, const LLSD& response);
@@ -529,6 +532,8 @@ private:
static void requestEstateGetAccessCoro(std::string url);
+ void searchAgent(LLNameListCtrl* listCtrl, const std::string& search_string);
+
bool mPendingUpdate;
};
diff --git a/indra/newview/skins/default/xui/en/panel_region_access.xml b/indra/newview/skins/default/xui/en/panel_region_access.xml
index 84967f466c..4a78cdacf0 100644
--- a/indra/newview/skins/default/xui/en/panel_region_access.xml
+++ b/indra/newview/skins/default/xui/en/panel_region_access.xml
@@ -113,6 +113,28 @@
name="allowed_panel"
right="-1"
top="0">
+ <panel
+ follows="left|top|right"
+ height="27"
+ label="top_panel"
+ layout="topleft"
+ left="0"
+ name="allowed_search_panel"
+ right="-1"
+ top="0">
+ <filter_editor
+ follows="left|top|right"
+ height="23"
+ layout="topleft"
+ left="6"
+ label="Search allowed agents"
+ max_length_chars="300"
+ name="allowed_search_input"
+ text_color="Black"
+ text_pad_left="10"
+ top="4"
+ width="498" />
+ </panel>
<text
type="string"
length="1"
@@ -130,14 +152,14 @@
<view_border
bevel_style="none"
follows="top|left"
- height="400"
+ height="370"
layout="topleft"
left="10"
top_pad="-5"
width="498" />
<name_list
follows="left|top"
- height="400"
+ height="370"
layout="topleft"
left_delta="0"
multi_select="true"
@@ -184,7 +206,29 @@
help_topic="allowed_groups_tab"
name="allowed_groups_panel"
right="-1"
- top="0">
+ top="0">
+ <panel
+ follows="left|top|right"
+ height="27"
+ label="top_panel"
+ layout="topleft"
+ left="0"
+ name="allowed_group_search_panel"
+ right="-1"
+ top="0">
+ <filter_editor
+ follows="left|top|right"
+ height="23"
+ layout="topleft"
+ left="6"
+ label="Search allowed groups"
+ max_length_chars="300"
+ name="allowed_group_search_input"
+ text_color="Black"
+ text_pad_left="10"
+ top="4"
+ width="498" />
+ </panel>
<text
type="string"
length="1"
@@ -201,14 +245,14 @@
<view_border
bevel_style="none"
follows="top|left"
- height="400"
+ height="370"
layout="topleft"
left="10"
top_pad="-5"
width="498" />
<name_list
follows="left|top"
- height="400"
+ height="370"
layout="topleft"
left_delta="0"
multi_select="true"
@@ -257,6 +301,28 @@
name="banned_panel"
right="-1"
top="0">
+ <panel
+ follows="left|top|right"
+ height="27"
+ label="top_panel"
+ layout="topleft"
+ left="0"
+ name="banned_search_panel"
+ right="-1"
+ top="0">
+ <filter_editor
+ follows="left|top|right"
+ height="23"
+ layout="topleft"
+ left="6"
+ label="Search banned agents"
+ max_length_chars="300"
+ name="banned_search_input"
+ text_color="Black"
+ text_pad_left="10"
+ top="4"
+ width="498" />
+ </panel>
<text
type="string"
length="1"
@@ -273,14 +339,14 @@
<view_border
bevel_style="none"
follows="top|left"
- height="400"
+ height="370"
layout="topleft"
left="10"
top_pad="-5"
width="498" />
<name_list
follows="left|top"
- height="400"
+ height="370"
layout="topleft"
left_delta="0"
multi_select="true"