summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuri Chebotarev <ychebotarev@productengine.com>2010-06-16 10:10:59 +0300
committerYuri Chebotarev <ychebotarev@productengine.com>2010-06-16 10:10:59 +0300
commita66ec792c937b76ee41444a3663bcf81a362db85 (patch)
treeacba42ed25e2fc9fbaff77a8e29943acf962aa0d
parentd1cb678bac7805f7ceef1d711c7cb49731d6ccb4 (diff)
EXT-7790 FIX Reset inventory filter when showing original item in inventory
reviwed by Loren Shih at https://codereview.productengine.com/secondlife/r/575/ --HG-- branch : product-engine
-rw-r--r--indra/newview/llfloaterinventory.h1
-rw-r--r--indra/newview/llinventoryfunctions.cpp32
-rw-r--r--indra/newview/llpanelmaininventory.h3
-rw-r--r--indra/newview/llsidepanelinventory.h1
4 files changed, 36 insertions, 1 deletions
diff --git a/indra/newview/llfloaterinventory.h b/indra/newview/llfloaterinventory.h
index 473d2b189d..dc719bdafe 100644
--- a/indra/newview/llfloaterinventory.h
+++ b/indra/newview/llfloaterinventory.h
@@ -66,6 +66,7 @@ public:
/*virtual*/ void onOpen(const LLSD& key);
LLInventoryPanel* getPanel();
+ LLPanelMainInventory* getMainInventoryPanel() { return mPanelMainInventory;}
private:
LLPanelMainInventory* mPanelMainInventory;
};
diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp
index c86d463a08..68fc86467c 100644
--- a/indra/newview/llinventoryfunctions.cpp
+++ b/indra/newview/llinventoryfunctions.cpp
@@ -52,6 +52,7 @@
#include "llappearancemgr.h"
#include "llappviewer.h"
//#include "llfirstuse.h"
+#include "llfloaterinventory.h"
#include "llfocusmgr.h"
#include "llfolderview.h"
#include "llgesturemgr.h"
@@ -63,6 +64,7 @@
#include "llinventorypanel.h"
#include "lllineeditor.h"
#include "llmenugl.h"
+#include "llpanelmaininventory.h"
#include "llpreviewanim.h"
#include "llpreviewgesture.h"
#include "llpreviewnotecard.h"
@@ -74,6 +76,7 @@
#include "llscrollcontainer.h"
#include "llselectmgr.h"
#include "llsidetray.h"
+#include "llsidepanelinventory.h"
#include "lltabcontainer.h"
#include "lltooldraganddrop.h"
#include "lluictrlfactory.h"
@@ -332,9 +335,38 @@ void show_item_profile(const LLUUID& item_uuid)
void show_item_original(const LLUUID& item_uuid)
{
+ bool reset_inventory_filter = !LLSideTray::getInstance()->isPanelActive("sidepanel_inventory");
+
LLInventoryPanel* active_panel = LLInventoryPanel::getActiveInventoryPanel();
if (!active_panel) return;
active_panel->setSelection(gInventory.getLinkedItemID(item_uuid), TAKE_FOCUS_NO);
+
+ if(reset_inventory_filter)
+ {
+ LLSidepanelInventory *sidepanel_inventory =
+ dynamic_cast<LLSidepanelInventory *>(LLSideTray::getInstance()->getPanel("sidepanel_inventory"));
+ if(sidepanel_inventory)
+ {
+ LLPanelMainInventory* main_inventory = sidepanel_inventory->getMainInventoryPanel();
+
+ main_inventory->onFilterEdit("");
+ }
+
+ //now for inventory floater
+
+ LLFloaterReg::const_instance_list_t& inst_list = LLFloaterReg::getFloaterList("inventory");
+ for (LLFloaterReg::const_instance_list_t::const_iterator iter = inst_list.begin(); iter != inst_list.end(); ++iter)
+ {
+ LLFloaterInventory* floater_inventory = dynamic_cast<LLFloaterInventory*>(*iter);
+ if (floater_inventory)
+ {
+ LLPanelMainInventory* main_inventory = floater_inventory->getMainInventoryPanel();
+
+ main_inventory->onFilterEdit("");
+ }
+ }
+
+ }
}
///----------------------------------------------------------------------------
diff --git a/indra/newview/llpanelmaininventory.h b/indra/newview/llpanelmaininventory.h
index 5a068373f5..82b72ac224 100644
--- a/indra/newview/llpanelmaininventory.h
+++ b/indra/newview/llpanelmaininventory.h
@@ -84,6 +84,7 @@ public:
void setSelectCallback(const LLFolderView::signal_t::slot_type& cb);
+ void onFilterEdit(const std::string& search_string );
protected:
//
// Misc functions
@@ -98,7 +99,7 @@ protected:
void onClearSearch();
static void onFoldersByName(void *user_data);
static BOOL checkFoldersByName(void *user_data);
- void onFilterEdit(const std::string& search_string );
+
static BOOL incrementalFind(LLFolderViewItem* first_item, const char *find_text, BOOL backward);
void onFilterSelected();
diff --git a/indra/newview/llsidepanelinventory.h b/indra/newview/llsidepanelinventory.h
index 2dc17e741d..a038f99853 100644
--- a/indra/newview/llsidepanelinventory.h
+++ b/indra/newview/llsidepanelinventory.h
@@ -51,6 +51,7 @@ public:
/*virtual*/ void onOpen(const LLSD& key);
LLInventoryPanel* getActivePanel(); // Returns an active inventory panel, if any.
+ LLPanelMainInventory* getMainInventoryPanel() const { return mPanelMainInventory; }
BOOL isMainInventoryPanelActive() const;
protected: