From 9044735e87bb311ffb60a10076251a8b966538e9 Mon Sep 17 00:00:00 2001 From: trompetin17 Date: Mon, 9 Jan 2023 14:26:03 +0000 Subject: [PATCH] Optional column "sort_order" attribute support olist GUI Patch by: @Grapjas Differential revision: D4859 Reviewed by: @trompetin17 This was SVN commit r27398. --- binaries/data/mods/mod/gui/gui.rng | 11 +++++++++++ source/gui/ObjectTypes/COList.cpp | 6 +++++- source/gui/ObjectTypes/COList.h | 3 ++- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/binaries/data/mods/mod/gui/gui.rng b/binaries/data/mods/mod/gui/gui.rng index 49f06af370..268245708e 100644 --- a/binaries/data/mods/mod/gui/gui.rng +++ b/binaries/data/mods/mod/gui/gui.rng @@ -107,6 +107,12 @@ + + + asc + desc + + @@ -596,6 +602,11 @@ + + + + + diff --git a/source/gui/ObjectTypes/COList.cpp b/source/gui/ObjectTypes/COList.cpp index 938fb9804b..e6318a7777 100644 --- a/source/gui/ObjectTypes/COList.cpp +++ b/source/gui/ObjectTypes/COList.cpp @@ -161,7 +161,7 @@ void COList::HandleMessage(SGUIMessage& Message) { 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 @@ bool COList::HandleAdditionalChildren(const XMBData& xmb, const XMBElement& chil { 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()) diff --git a/source/gui/ObjectTypes/COList.h b/source/gui/ObjectTypes/COList.h index 8fce3510ac..5b3fab9a61 100644 --- a/source/gui/ObjectTypes/COList.h +++ b/source/gui/ObjectTypes/COList.h @@ -30,7 +30,7 @@ class COListColumn 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 @@ public: CGUISimpleSetting m_Heading; // CGUIString?? CGUISimpleSetting m_List; CGUISimpleSetting m_Hidden; + CGUISimpleSetting m_SortOrder; }; /**