diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 1b53a06a851bf1698a033b7a83b089b1013381f8..778020a92ec408a4c6b940cb6914193d39a611d7 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 eb7601f67e15ca984ff833ded326153c160f3943..b2d36479cd0929c1c894a91440c63e10ccf5b165 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 9fad31c4560df212031ca17c9a1226099719f76a..ffc098e28a238ef1de11a9c90d3e0a5fc6811367 100755 --- a/indra/newview/llfloatermarketplacelistings.h +++ b/indra/newview/llfloatermarketplacelistings.h @@ -75,6 +75,8 @@ class LLPanelMarketplaceListings : public LLPanel void onTabChange(); void onFilterEdit(const std::string& search_string); + void setSortOrder(U32 sort_order); + LLFolderView* mRootFolder; LLButton* mAuditBtn; LLFilterEditor* mFilterEditor;