summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMerov Linden <merov@lindenlab.com>2015-05-15 20:10:45 -0700
committerMerov Linden <merov@lindenlab.com>2015-05-15 20:10:45 -0700
commit7816dfd5ac8ebb92f66c738d7f0ed61bbf7c0282 (patch)
tree33dc423a25cb5bf4277becbbf5a86d8135df689d
parentacc1ae5bef49c75a1c288af336987e96b3bf2f5c (diff)
DD-403: Make the sort order persistent in marketplace listings floater
-rwxr-xr-xindra/newview/app_settings/settings.xml11
-rwxr-xr-xindra/newview/llfloatermarketplacelistings.cpp37
-rwxr-xr-xindra/newview/llfloatermarketplacelistings.h2
3 files changed, 36 insertions, 14 deletions
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 1b53a06a85..778020a92e 100755
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -4790,6 +4790,17 @@
<key>Value</key>
<integer>7</integer>
</map>
+ <key>MarketplaceListingsSortOrder</key>
+ <map>
+ <key>Comment</key>
+ <string>Specifies sort for marketplace listings</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>U32</string>
+ <key>Value</key>
+ <integer>2</integer>
+ </map>
<key>InvertMouse</key>
<map>
<key>Comment</key>
diff --git a/indra/newview/llfloatermarketplacelistings.cpp b/indra/newview/llfloatermarketplacelistings.cpp
index eb7601f67e..b2d36479cd 100755
--- a/indra/newview/llfloatermarketplacelistings.cpp
+++ b/indra/newview/llfloatermarketplacelistings.cpp
@@ -118,6 +118,9 @@ void LLPanelMarketplaceListings::buildAllPanels()
tabs_panel->setCommitCallback(boost::bind(&LLPanelMarketplaceListings::onTabChange, this));
tabs_panel->selectTabPanel(panel_all_items); // All panel selected by default
mRootFolder = panel_all_items->getRootFolder(); // Keep the root of the all panel
+
+ // Set the default sort order
+ setSortOrder(gSavedSettings.getU32("MarketplaceListingsSortOrder"));
}
LLInventoryPanel* LLPanelMarketplaceListings::buildInventoryPanel(const std::string& childname, const std::string& filename)
@@ -134,6 +137,23 @@ LLInventoryPanel* LLPanelMarketplaceListings::buildInventoryPanel(const std::str
return panel;
}
+void LLPanelMarketplaceListings::setSortOrder(U32 sort_order)
+{
+ mSortOrder = sort_order;
+ gSavedSettings.setU32("MarketplaceListingsSortOrder", sort_order);
+
+ // Set each panel with that sort order
+ LLTabContainer* tabs_panel = getChild<LLTabContainer>("marketplace_filter_tabs");
+ LLInventoryPanel* panel = (LLInventoryPanel*)tabs_panel->getPanelByName("All Items");
+ panel->setSortOrder(mSortOrder);
+ panel = (LLInventoryPanel*)tabs_panel->getPanelByName("Active Items");
+ panel->setSortOrder(mSortOrder);
+ panel = (LLInventoryPanel*)tabs_panel->getPanelByName("Inactive Items");
+ panel->setSortOrder(mSortOrder);
+ panel = (LLInventoryPanel*)tabs_panel->getPanelByName("Unassociated Items");
+ panel->setSortOrder(mSortOrder);
+}
+
void LLPanelMarketplaceListings::onFilterEdit(const std::string& search_string)
{
// Find active panel
@@ -234,27 +254,16 @@ void LLPanelMarketplaceListings::onViewSortMenuItemClicked(const LLSD& userdata)
// We're making sort options exclusive, default is SO_FOLDERS_BY_NAME
if (chosen_item == "sort_by_stock_amount")
{
- mSortOrder = LLInventoryFilter::SO_FOLDERS_BY_WEIGHT;
+ setSortOrder(LLInventoryFilter::SO_FOLDERS_BY_WEIGHT);
}
else if (chosen_item == "sort_by_name")
{
- mSortOrder = LLInventoryFilter::SO_FOLDERS_BY_NAME;
+ setSortOrder(LLInventoryFilter::SO_FOLDERS_BY_NAME);
}
else if (chosen_item == "sort_by_recent")
{
- mSortOrder = LLInventoryFilter::SO_DATE;
+ setSortOrder(LLInventoryFilter::SO_DATE);
}
- //mSortOrder = (mSortOrder == LLInventoryFilter::SO_FOLDERS_BY_NAME ? LLInventoryFilter::SO_FOLDERS_BY_WEIGHT : LLInventoryFilter::SO_FOLDERS_BY_NAME);
- // Set each panel with that sort order
- LLTabContainer* tabs_panel = getChild<LLTabContainer>("marketplace_filter_tabs");
- LLInventoryPanel* panel = (LLInventoryPanel*)tabs_panel->getPanelByName("All Items");
- panel->setSortOrder(mSortOrder);
- panel = (LLInventoryPanel*)tabs_panel->getPanelByName("Active Items");
- panel->setSortOrder(mSortOrder);
- panel = (LLInventoryPanel*)tabs_panel->getPanelByName("Inactive Items");
- panel->setSortOrder(mSortOrder);
- panel = (LLInventoryPanel*)tabs_panel->getPanelByName("Unassociated Items");
- panel->setSortOrder(mSortOrder);
}
// Filter option
else if (chosen_item == "show_only_listing_folders")
diff --git a/indra/newview/llfloatermarketplacelistings.h b/indra/newview/llfloatermarketplacelistings.h
index 9fad31c456..ffc098e28a 100755
--- a/indra/newview/llfloatermarketplacelistings.h
+++ b/indra/newview/llfloatermarketplacelistings.h
@@ -75,6 +75,8 @@ private:
void onTabChange();
void onFilterEdit(const std::string& search_string);
+ void setSortOrder(U32 sort_order);
+
LLFolderView* mRootFolder;
LLButton* mAuditBtn;
LLFilterEditor* mFilterEditor;