diff options
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/llpanelmaininventory.cpp | 9 | ||||
| -rw-r--r-- | indra/newview/llpanelmaininventory.h | 1 | ||||
| -rw-r--r-- | indra/newview/llpaneloutfitsinventory.cpp | 14 | ||||
| -rw-r--r-- | indra/newview/llpaneloutfitsinventory.h | 5 | 
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; | 
