EXT-7823 FIXED Accordion widget was improved to show different message when no_matched_tabs in panel or no_visible_tabs in panel.
Added "no_matched" and "no_visible" text for TeleportHistory. + Added "no_visible" text for My Outfit list. + Fixed filtering in TeleportHistory. Reviewed by Mike Antipov at https://codereview.productengine.com/secondlife/r/591/ --HG-- branch : product-enginemaster
parent
630296551b
commit
3ad0981d2f
|
|
@ -68,8 +68,9 @@ LLAccordionCtrl::LLAccordionCtrl(const Params& params):LLPanel(params)
|
|||
, mSelectedTab( NULL )
|
||||
, mTabComparator( NULL )
|
||||
, mNoVisibleTabsHelpText(NULL)
|
||||
, mNoVisibleTabsOrigString(params.no_visible_tabs_text.initial_value().asString())
|
||||
{
|
||||
initNoTabsWidget(params.empty_accordion_text);
|
||||
initNoTabsWidget(params.no_matched_tabs_text);
|
||||
|
||||
mSingleExpansion = params.single_expansion;
|
||||
if(mFitParent && !mSingleExpansion)
|
||||
|
|
@ -379,7 +380,7 @@ void LLAccordionCtrl::initNoTabsWidget(const LLTextBox::Params& tb_params)
|
|||
{
|
||||
LLTextBox::Params tp = tb_params;
|
||||
tp.rect(getLocalRect());
|
||||
mNoVisibleTabsOrigString = tp.initial_value().asString();
|
||||
mNoMatchedTabsOrigString = tp.initial_value().asString();
|
||||
mNoVisibleTabsHelpText = LLUICtrlFactory::create<LLTextBox>(tp, this);
|
||||
}
|
||||
|
||||
|
|
@ -820,7 +821,7 @@ void LLAccordionCtrl::setFilterSubString(const std::string& filter_string)
|
|||
{
|
||||
LLStringUtil::format_map_t args;
|
||||
args["[SEARCH_TERM]"] = LLURI::escape(filter_string);
|
||||
std::string text = filter_string.empty() ? LLStringUtil::null : mNoVisibleTabsOrigString;
|
||||
std::string text = filter_string.empty() ? mNoVisibleTabsOrigString : mNoMatchedTabsOrigString;
|
||||
LLStringUtil::format(text, args);
|
||||
|
||||
mNoVisibleTabsHelpText->setValue(text);
|
||||
|
|
|
|||
|
|
@ -78,12 +78,14 @@ public:
|
|||
accordion tabs are responsible for scrolling their content.
|
||||
*NOTE fit_parent works best when combined with single_expansion.
|
||||
Accordion view should implement getRequiredRect() and provide valid height*/
|
||||
Optional<LLTextBox::Params> empty_accordion_text;
|
||||
Optional<LLTextBox::Params> no_matched_tabs_text;
|
||||
Optional<LLTextBox::Params> no_visible_tabs_text;
|
||||
|
||||
Params()
|
||||
: single_expansion("single_expansion",false)
|
||||
, fit_parent("fit_parent", false)
|
||||
, empty_accordion_text("empty_accordion_text")
|
||||
, no_matched_tabs_text("no_matched_tabs_text")
|
||||
, no_visible_tabs_text("no_visible_tabs_text")
|
||||
{};
|
||||
};
|
||||
|
||||
|
|
@ -180,6 +182,8 @@ private:
|
|||
bool mAutoScrolling;
|
||||
F32 mAutoScrollRate;
|
||||
LLTextBox* mNoVisibleTabsHelpText;
|
||||
|
||||
std::string mNoMatchedTabsOrigString;
|
||||
std::string mNoVisibleTabsOrigString;
|
||||
|
||||
LLAccordionCtrlTab* mSelectedTab;
|
||||
|
|
|
|||
|
|
@ -1450,7 +1450,7 @@ void LLPanelPeople::showFriendsAccordionsIfNeeded()
|
|||
LLAccordionCtrl* accordion = getChild<LLAccordionCtrl>("friends_accordion");
|
||||
accordion->arrange();
|
||||
|
||||
// *TODO: new empty_accordion_text attribute was implemented in accordion (EXT-7368).
|
||||
// *TODO: new no_matched_tabs_text attribute was implemented in accordion (EXT-7368).
|
||||
// this code should be refactored to use it
|
||||
// keep help text in a synchronization with accordions visibility.
|
||||
updateFriendListHelpText();
|
||||
|
|
|
|||
|
|
@ -648,16 +648,18 @@ void LLTeleportHistoryPanel::refresh()
|
|||
LLDate tab_boundary_date = LLDate::now();
|
||||
|
||||
LLFlatListView* curr_flat_view = NULL;
|
||||
std::string filter_string = sFilterSubString;
|
||||
LLStringUtil::toUpper(filter_string);
|
||||
|
||||
U32 added_items = 0;
|
||||
while (mCurrentItem >= 0)
|
||||
{
|
||||
// Filtering
|
||||
if (!sFilterSubString.empty())
|
||||
if (!filter_string.empty())
|
||||
{
|
||||
std::string landmark_title(items[mCurrentItem].mTitle);
|
||||
LLStringUtil::toUpper(landmark_title);
|
||||
if( std::string::npos == landmark_title.find(sFilterSubString) )
|
||||
if( std::string::npos == landmark_title.find(filter_string) )
|
||||
{
|
||||
mCurrentItem--;
|
||||
continue;
|
||||
|
|
@ -706,7 +708,7 @@ void LLTeleportHistoryPanel::refresh()
|
|||
.getFlatItemForPersistentItem(&mContextMenu,
|
||||
items[mCurrentItem],
|
||||
mCurrentItem,
|
||||
sFilterSubString);
|
||||
filter_string);
|
||||
if ( !curr_flat_view->addItem(item, LLUUID::null, ADD_BOTTOM, false) )
|
||||
llerrs << "Couldn't add flat item to teleport history." << llendl;
|
||||
if (mLastSelectedItemIndex == mCurrentItem)
|
||||
|
|
@ -729,6 +731,8 @@ void LLTeleportHistoryPanel::refresh()
|
|||
}
|
||||
}
|
||||
|
||||
mHistoryAccordion->setFilterSubString(sFilterSubString);
|
||||
|
||||
mHistoryAccordion->arrange();
|
||||
|
||||
updateVerbs();
|
||||
|
|
|
|||
|
|
@ -14,7 +14,8 @@
|
|||
background_visible="true"
|
||||
bg_alpha_color="DkGray2"
|
||||
bg_opaque_color="DkGray2"
|
||||
empty_accordion_text.value="Didn't find what you're looking for? Try [secondlife:///app/search/all/[SEARCH_TERM] Search]."
|
||||
no_matched_tabs_text.value="Didn't find what you're looking for? Try [secondlife:///app/search/all/[SEARCH_TERM] Search]."
|
||||
no_visible_tabs_text.value="There are no any outfits. Try [secondlife:///app/search/all/ Search]."
|
||||
follows="all"
|
||||
height="400"
|
||||
layout="topleft"
|
||||
|
|
|
|||
|
|
@ -173,7 +173,6 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M
|
|||
background_visible="true"
|
||||
bg_alpha_color="DkGray2"
|
||||
bg_opaque_color="DkGray2"
|
||||
empty_accordion_text.value=""
|
||||
follows="all"
|
||||
height="356"
|
||||
layout="topleft"
|
||||
|
|
|
|||
|
|
@ -5,14 +5,16 @@
|
|||
background_visible="true"
|
||||
bg_alpha_color="DkGray">
|
||||
<accordion
|
||||
no_matched_tabs_text.value="Didn't find what you're looking for? Try [secondlife:///app/search/places/[SEARCH_TERM] Search]."
|
||||
no_visible_tabs_text.value="Teleport history is empty. Try [secondlife:///app/search/places/ Search]."
|
||||
follows="left|top|right|bottom"
|
||||
height="373"
|
||||
layout="topleft"
|
||||
left="3"
|
||||
top="0"
|
||||
name="history_accordion"
|
||||
background_visible="true"
|
||||
bg_alpha_color="DkGray2"
|
||||
background_visible="true"
|
||||
bg_alpha_color="DkGray2"
|
||||
width="307">
|
||||
<accordion_tab
|
||||
layout="topleft"
|
||||
|
|
|
|||
|
|
@ -3,12 +3,16 @@
|
|||
height="100"
|
||||
name="accordion"
|
||||
width="200">
|
||||
<empty_accordion_text
|
||||
<no_matched_tabs_text
|
||||
follows="all"
|
||||
height="100"
|
||||
h_pad="10"
|
||||
name="no_visible_items_msg"
|
||||
name="no_matched_tabs_msg"
|
||||
v_pad="15"
|
||||
width="200"
|
||||
wrap="true "/>
|
||||
<!-- This widget will not be created in viewer. Only its value will be used for empty accordion without filter. -->
|
||||
<no_visible_tabs_text
|
||||
name="no_visible_tabs_msg"
|
||||
visible="false"/>
|
||||
</accordion>
|
||||
|
|
|
|||
Loading…
Reference in New Issue