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" />
+
+
+
+
+
+
+
+
+