DD-403: Make the sort order persistent in marketplace listings floater
parent
acc1ae5bef
commit
7816dfd5ac
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue