summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llpanelmaininventory.cpp9
-rw-r--r--indra/newview/llpanelmaininventory.h1
-rw-r--r--indra/newview/llpaneloutfitsinventory.cpp14
-rw-r--r--indra/newview/llpaneloutfitsinventory.h5
4 files changed, 26 insertions, 3 deletions
diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp
index c0da8f3daa..961d3dec8b 100644
--- a/indra/newview/llpanelmaininventory.cpp
+++ b/indra/newview/llpanelmaininventory.cpp
@@ -400,6 +400,7 @@ void LLPanelMainInventory::onClearSearch()
mActivePanel->getRootFolder()->applyFunctorRecursively(opener);
mActivePanel->getRootFolder()->scrollToShowSelection();
}
+ mFilterSubString = "";
}
void LLPanelMainInventory::onFilterEdit(const std::string& search_string )
@@ -417,6 +418,7 @@ void LLPanelMainInventory::onFilterEdit(const std::string& search_string )
std::string uppercase_search_string = search_string;
LLStringUtil::toUpper(uppercase_search_string);
+ mFilterSubString = uppercase_search_string;
if (mActivePanel->getFilterSubString().empty() && uppercase_search_string.empty())
{
// current filter and new filter empty, do nothing
@@ -431,7 +433,7 @@ void LLPanelMainInventory::onFilterEdit(const std::string& search_string )
}
// set new filter string
- mActivePanel->setFilterSubString(uppercase_search_string);
+ mActivePanel->setFilterSubString(mFilterSubString);
}
@@ -484,6 +486,7 @@ void LLPanelMainInventory::onFilterSelected()
{
return;
}
+ setFilterSubString(mFilterSubString);
LLInventoryFilter* filter = mActivePanel->getFilter();
LLFloaterInventoryFinder *finder = getFinder();
if (finder)
@@ -542,7 +545,7 @@ void LLPanelMainInventory::draw()
{
if (mActivePanel && mFilterEditor)
{
- mFilterEditor->setText(mActivePanel->getFilterSubString());
+ mFilterEditor->setText(mFilterSubString);
}
LLPanel::draw();
}
@@ -1016,9 +1019,11 @@ void LLPanelMainInventory::onCustomAction(const LLSD& userdata)
}
const LLUUID& item_id = current_item->getListener()->getUUID();
const std::string &item_name = current_item->getListener()->getName();
+ mFilterSubString = item_name;
LLInventoryFilter *filter = mActivePanel->getFilter();
filter->setFilterSubString(item_name);
mFilterEditor->setText(item_name);
+
mFilterEditor->setFocus(TRUE);
filter->setFilterUUID(item_id);
filter->setShowFolderState(LLInventoryFilter::SHOW_NON_EMPTY_FOLDERS);
diff --git a/indra/newview/llpanelmaininventory.h b/indra/newview/llpanelmaininventory.h
index 920de2665c..69f8a14583 100644
--- a/indra/newview/llpanelmaininventory.h
+++ b/indra/newview/llpanelmaininventory.h
@@ -123,6 +123,7 @@ private:
LLInventoryPanel* mActivePanel;
LLSaveFolderState* mSavedFolderState;
std::string mFilterText;
+ std::string mFilterSubString;
//////////////////////////////////////////////////////////////////////////////////
diff --git a/indra/newview/llpaneloutfitsinventory.cpp b/indra/newview/llpaneloutfitsinventory.cpp
index 6ab9870b06..59cd01f920 100644
--- a/indra/newview/llpaneloutfitsinventory.cpp
+++ b/indra/newview/llpaneloutfitsinventory.cpp
@@ -104,6 +104,7 @@ void LLPanelOutfitsInventory::setParent(LLSidepanelAppearance* parent)
// virtual
void LLPanelOutfitsInventory::onSearchEdit(const std::string& string)
{
+ mFilterSubString = string;
if (string == "")
{
mActivePanel->setFilterSubString(LLStringUtil::null);
@@ -441,6 +442,9 @@ void LLPanelOutfitsInventory::initTabPanels()
LLInventoryPanel *panel = (*iter);
panel->setSelectCallback(boost::bind(&LLPanelOutfitsInventory::onTabSelectionChange, this, panel, _1, _2));
}
+
+ mAppearanceTabs = getChild<LLTabContainer>("appearance_tabs");
+ mAppearanceTabs->setCommitCallback(boost::bind(&LLPanelOutfitsInventory::onTabChange, this));
}
void LLPanelOutfitsInventory::onTabSelectionChange(LLInventoryPanel* tab_panel, const std::deque<LLFolderViewItem*> &items, BOOL user_action)
@@ -465,6 +469,16 @@ void LLPanelOutfitsInventory::onTabSelectionChange(LLInventoryPanel* tab_panel,
onSelectionChange(items, user_action);
}
+void LLPanelOutfitsInventory::onTabChange()
+{
+ mActivePanel = (LLInventoryPanel*)childGetVisibleTab("appearance_tabs");
+ if (!mActivePanel)
+ {
+ return;
+ }
+ mActivePanel->setFilterSubString(mFilterSubString);
+}
+
LLInventoryPanel* LLPanelOutfitsInventory::getActivePanel()
{
return mActivePanel;
diff --git a/indra/newview/llpaneloutfitsinventory.h b/indra/newview/llpaneloutfitsinventory.h
index 0f1b1b066c..1e084750a0 100644
--- a/indra/newview/llpaneloutfitsinventory.h
+++ b/indra/newview/llpaneloutfitsinventory.h
@@ -44,6 +44,7 @@ class LLSaveFolderState;
class LLButton;
class LLMenuGL;
class LLSidepanelAppearance;
+class LLTabContainer;
class LLPanelOutfitsInventory : public LLPanel
{
@@ -76,7 +77,8 @@ protected:
private:
LLSidepanelAppearance* mParent;
LLSaveFolderState* mSavedFolderState;
-
+ LLTabContainer* mAppearanceTabs;
+ std::string mFilterSubString;
public:
//////////////////////////////////////////////////////////////////////////////////
@@ -87,6 +89,7 @@ public:
protected:
void initTabPanels();
void onTabSelectionChange(LLInventoryPanel* tab_panel, const std::deque<LLFolderViewItem*> &items, BOOL user_action);
+ void onTabChange();
private:
LLInventoryPanel* mActivePanel;