diff options
Diffstat (limited to 'indra')
| -rwxr-xr-x | indra/newview/app_settings/settings.xml | 11 | ||||
| -rwxr-xr-x | indra/newview/llfloatermarketplacelistings.cpp | 37 | ||||
| -rwxr-xr-x | indra/newview/llfloatermarketplacelistings.h | 2 | 
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; | 
