diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp --- a/indra/newview/llpanelmaininventory.cpp +++ b/indra/newview/llpanelmaininventory.cpp @@ -348,26 +348,31 @@ void LLPanelMainInventory::setSortBy(con gSavedSettings.setU32("InventorySortOrder", order); gSavedSettings.setBOOL("Inventory.SortByName", FALSE ); gSavedSettings.setBOOL("Inventory.SortByDate", TRUE ); } - else if (sort_field == "foldersalwaysbyname") + else if (sort_field == "foldersbyname") { U32 order = getActivePanel()->getSortOrder(); - if ( order & LLInventoryFilter::SO_FOLDERS_BY_NAME ) - { - order &= ~LLInventoryFilter::SO_FOLDERS_BY_NAME; + order |= LLInventoryFilter::SO_FOLDERS_BY_NAME; - gSavedSettings.setBOOL("Inventory.FoldersAlwaysByName", FALSE ); - } - else - { - order |= LLInventoryFilter::SO_FOLDERS_BY_NAME; + getActivePanel()->setSortOrder( order ); - gSavedSettings.setBOOL("Inventory.FoldersAlwaysByName", TRUE ); - } + gSavedSettings.setU32("InventorySortOrder", order); + + gSavedSettings.setBOOL("Inventory.FoldersAlwaysByName", TRUE ); + } + else if (sort_field == "foldersbydate") + { + U32 order = getActivePanel()->getSortOrder(); + order &= ~LLInventoryFilter::SO_FOLDERS_BY_NAME; + getActivePanel()->setSortOrder( order ); + + gSavedSettings.setU32("InventorySortOrder", order); + + gSavedSettings.setBOOL("Inventory.FoldersAlwaysByName", FALSE ); } else if (sort_field == "systemfolderstotop") { U32 order = getActivePanel()->getSortOrder(); if ( order & LLInventoryFilter::SO_SYSTEM_FOLDERS_TO_TOP ) @@ -1009,10 +1014,20 @@ void LLPanelMainInventory::onCustomActio if (command_name == "sort_by_recent") { const LLSD arg = "date"; setSortBy(arg); } + if (command_name == "sort_folders_by_name") + { + const LLSD arg = "foldersbyname"; + setSortBy(arg); + } + if (command_name == "sort_folders_by_recent") + { + const LLSD arg = "foldersbydate"; + setSortBy(arg); + } if (command_name == "sort_system_folders_to_top") { const LLSD arg = "systemfolderstotop"; setSortBy(arg); } @@ -1203,10 +1218,22 @@ BOOL LLPanelMainInventory::isActionCheck { U32 order = getActivePanel()->getSortOrder(); return order & LLInventoryFilter::SO_DATE; } + if (command_name == "sort_folders_by_name") + { + U32 order = getActivePanel()->getSortOrder(); + return order & LLInventoryFilter::SO_FOLDERS_BY_NAME; + } + + if (command_name == "sort_folders_by_recent") + { + U32 order = getActivePanel()->getSortOrder(); + return ~order & LLInventoryFilter::SO_FOLDERS_BY_NAME; + } + if (command_name == "sort_system_folders_to_top") { U32 order = getActivePanel()->getSortOrder(); return order & LLInventoryFilter::SO_SYSTEM_FOLDERS_TO_TOP; } diff --git a/indra/newview/skins/default/xui/en/menu_inventory_gear_default.xml b/indra/newview/skins/default/xui/en/menu_inventory_gear_default.xml --- a/indra/newview/skins/default/xui/en/menu_inventory_gear_default.xml +++ b/indra/newview/skins/default/xui/en/menu_inventory_gear_default.xml @@ -15,31 +15,55 @@ parameter="new_window" /> + + + + + + + + +