Index: binaries/data/mods/mod/gui/gui.rng
===================================================================
--- binaries/data/mods/mod/gui/gui.rng
+++ binaries/data/mods/mod/gui/gui.rng
@@ -107,6 +107,12 @@
+
+
+ asc
+ desc
+
+
@@ -596,6 +602,11 @@
+
+
+
+
+
Index: source/gui/ObjectTypes/COList.h
===================================================================
--- source/gui/ObjectTypes/COList.h
+++ source/gui/ObjectTypes/COList.h
@@ -30,7 +30,7 @@
public:
COListColumn(IGUIObject* owner, const CStr& cid)
: m_Id(cid), m_Width(0), m_Heading(owner, "heading_" + cid), m_List(owner, "list_" + cid),
- m_Hidden(owner, "hidden_" + cid, false)
+ m_Hidden(owner, "hidden_" + cid, false), m_SortOrder(owner, " sort_order_" + cid, 1)
{}
// Avoid copying the strings.
NONCOPYABLE(COListColumn);
@@ -41,6 +41,7 @@
CGUISimpleSetting m_Heading; // CGUIString??
CGUISimpleSetting m_List;
CGUISimpleSetting m_Hidden;
+ CGUISimpleSetting m_SortOrder;
};
/**
Index: source/gui/ObjectTypes/COList.cpp
===================================================================
--- source/gui/ObjectTypes/COList.cpp
+++ source/gui/ObjectTypes/COList.cpp
@@ -161,7 +161,7 @@
{
if (column.m_Id != static_cast(m_SelectedColumn))
{
- m_SelectedColumnOrder.Set(-1, true);
+ m_SelectedColumnOrder.Set(column.m_SortOrder, true);
CStr selected_column = column.m_Id;
m_SelectedColumn.Set(selected_column, true);
}
@@ -244,6 +244,10 @@
{
column.m_Heading.Set(attr_value.FromUTF8(), false);
}
+ else if (attr_name == "sort_order")
+ {
+ column.m_SortOrder.Set(attr_value == "desc" ? -1 : 1, false);
+ }
}
for (XMBElement grandchild : child.GetChildNodes())