summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llfolderview.cpp10
-rw-r--r--indra/newview/llfolderview.h1
-rw-r--r--indra/newview/llinventorypanel.h1
-rw-r--r--indra/newview/llpanellandmarks.cpp20
4 files changed, 18 insertions, 14 deletions
diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp
index 7cf0104075..1c5d7ae9b9 100644
--- a/indra/newview/llfolderview.cpp
+++ b/indra/newview/llfolderview.cpp
@@ -357,6 +357,16 @@ void LLFolderView::openFolder(const std::string& foldername)
}
}
+void LLFolderView::openTopLevelFolders()
+{
+ for (folders_t::iterator iter = mFolders.begin();
+ iter != mFolders.end();)
+ {
+ folders_t::iterator fit = iter++;
+ (*fit)->setOpen(TRUE);
+ }
+}
+
void LLFolderView::setOpenArrangeRecursively(BOOL openitem, ERecurseType recurse)
{
// call base class to do proper recursion
diff --git a/indra/newview/llfolderview.h b/indra/newview/llfolderview.h
index 4adf6c2fbf..d18ba385d8 100644
--- a/indra/newview/llfolderview.h
+++ b/indra/newview/llfolderview.h
@@ -127,6 +127,7 @@ public:
// Close all folders in the view
void closeAllFolders();
void openFolder(const std::string& foldername);
+ void openTopLevelFolders();
virtual void toggleOpen() {};
virtual void setOpenArrangeRecursively(BOOL openitem, ERecurseType recurse);
diff --git a/indra/newview/llinventorypanel.h b/indra/newview/llinventorypanel.h
index cbbd433c1d..4f7f0a79f6 100644
--- a/indra/newview/llinventorypanel.h
+++ b/indra/newview/llinventorypanel.h
@@ -192,6 +192,7 @@ protected:
public:
BOOL getIsViewsInitialized() const { return mViewsInitialized; }
const LLUUID& getStartFolderID() const { return mStartFolderID; }
+ const std::string& getStartFolderString() { return mStartFolderString; }
protected:
// Builds the UI. Call this once the inventory is usable.
void initializeViews();
diff --git a/indra/newview/llpanellandmarks.cpp b/indra/newview/llpanellandmarks.cpp
index 975219458f..c85fab2092 100644
--- a/indra/newview/llpanellandmarks.cpp
+++ b/indra/newview/llpanellandmarks.cpp
@@ -389,10 +389,6 @@ void LLLandmarksPanel::initLandmarksPanel(LLInventorySubTreePanel* inventory_lis
}
root_folder->setParentLandmarksPanel(this);
-
- // save initial folder state to avoid incorrect work while switching between Landmarks & Teleport History tabs
- // See EXT-1609.
- inventory_list->saveFolderState();
}
void LLLandmarksPanel::initAccordion(const std::string& accordion_tab_name, LLInventorySubTreePanel* inventory_list)
@@ -995,12 +991,13 @@ void LLLandmarksPanel::doCreatePick(LLLandmark* landmark)
//////////////////////////////////////////////////////////////////////////
static void filter_list(LLInventorySubTreePanel* inventory_list, const std::string& string)
{
+ // Open the immediate children of the root folder, since those
+ // are invisible in the UI and thus must always be open.
+ inventory_list->getRootFolder()->openTopLevelFolders();
+
if (string == "")
{
inventory_list->setFilterSubString(LLStringUtil::null);
-
- // re-open folders that were initially open
- inventory_list->restoreFolderState();
}
if (inventory_list->getFilterSubString().empty() && string.empty())
@@ -1009,13 +1006,8 @@ static void filter_list(LLInventorySubTreePanel* inventory_list, const std::stri
return;
}
- // save current folder open state if no filter currently applied
- if (inventory_list->getRootFolder()->getFilterSubString().empty())
- {
- inventory_list->saveFolderState();
- }
-
- // set new filter string
+ // Set new filter string
inventory_list->setFilterSubString(string);
+
}
// EOF