1
0
forked from 0ad/0ad

Specify the default column sorting order in XML instead of JS.

Ref #2405, #3473.

This was SVN commit r17670.
This commit is contained in:
elexis 2016-01-18 19:23:14 +00:00
parent 9481c168bd
commit a59833102f
6 changed files with 16 additions and 9 deletions

View File

@ -53,6 +53,7 @@ ex_settings =
attribute checked { bool }?& attribute checked { bool }?&
attribute clip { bool }?& attribute clip { bool }?&
attribute default_column { text }?& attribute default_column { text }?&
attribute default_column_order { text }?&
attribute dropdown_size { xsd:decimal }?& attribute dropdown_size { xsd:decimal }?&
attribute dropdown_buffer { xsd:decimal }?& attribute dropdown_buffer { xsd:decimal }?&
attribute enabled { bool }?& attribute enabled { bool }?&

View File

@ -202,6 +202,9 @@
<optional> <optional>
<attribute name="default_column"/> <attribute name="default_column"/>
</optional> </optional>
<optional>
<attribute name="default_column_order"/>
</optional>
<optional> <optional>
<attribute name="dropdown_size"> <attribute name="dropdown_size">
<data type="decimal"/> <data type="decimal"/>

View File

@ -23,7 +23,7 @@
<!-- Left panel: Player list. --> <!-- Left panel: Player list. -->
<object name="leftPanel" size="20 30 20% 100%-280"> <object name="leftPanel" size="20 30 20% 100%-280">
<object name="playersBox" style="ModernList" sprite_asc="ModernArrowDown" default_column="name" sprite_desc="ModernArrowUp" sprite_not_sorted="ModernNotSorted" type="olist" sortable="true" size="0 0 100% 100%" font="sans-bold-stroke-13"> <object name="playersBox" style="ModernList" sprite_asc="ModernArrowDown" default_column="name" default_column_order="1" sprite_desc="ModernArrowUp" sprite_not_sorted="ModernNotSorted" type="olist" sortable="true" size="0 0 100% 100%" font="sans-bold-stroke-13">
<def id="status" width="26%"> <def id="status" width="26%">
<translatableAttribute id="heading">Status</translatableAttribute> <translatableAttribute id="heading">Status</translatableAttribute>
</def> </def>
@ -172,7 +172,7 @@
<!-- Middle panel: Filters, game list, chat box. --> <!-- Middle panel: Filters, game list, chat box. -->
<object name="middlePanel" size="20%+5 5% 100%-255 97.2%"> <object name="middlePanel" size="20%+5 5% 100%-255 97.2%">
<object name="gamesBox" style="ModernList" sprite_asc="ModernArrowDown" default_column="status" sprite_desc="ModernArrowUp" sprite_not_sorted="ModernNotSorted" type="olist" sortable="true" size="0 25 100% 48%" font="sans-stroke-13"> <object name="gamesBox" style="ModernList" sprite_asc="ModernArrowDown" default_column="status" default_column_order="1" sprite_desc="ModernArrowUp" sprite_not_sorted="ModernNotSorted" type="olist" sortable="true" size="0 25 100% 48%" font="sans-stroke-13">
<action on="SelectionChange">updateGameSelection();</action> <action on="SelectionChange">updateGameSelection();</action>
<action on="SelectionColumnChange">applyFilters();</action> <action on="SelectionColumnChange">applyFilters();</action>
<action on="mouseleftdoubleclickitem">joinSelectedGame();</action> <action on="mouseleftdoubleclickitem">joinSelectedGame();</action>

View File

@ -49,9 +49,6 @@ function init()
return; return;
} }
// By default, sort replays by date in descending order
Engine.GetGUIObjectByName("replaySelection").selected_column_order = -1;
loadReplays(); loadReplays();
displayReplayList(); displayReplayList();
} }

View File

@ -61,7 +61,7 @@
</object> </object>
<!-- Replay List in that left panel --> <!-- Replay List in that left panel -->
<object name="replaySelection" size="0 35 100% 100%" style="ModernList" type="olist" sortable="true" default_column="name" sprite_asc="ModernArrowDown" sprite_desc="ModernArrowUp" sprite_not_sorted="ModernNotSorted" font="sans-stroke-13"> <object name="replaySelection" size="0 35 100% 100%" style="ModernList" type="olist" sortable="true" default_column="name" default_column_order="-1" sprite_asc="ModernArrowDown" sprite_desc="ModernArrowUp" sprite_not_sorted="ModernNotSorted" font="sans-stroke-13">
<action on="SelectionChange">displayReplayDetails();</action> <action on="SelectionChange">displayReplayDetails();</action>
<action on="SelectionColumnChange">displayReplayList();</action> <action on="SelectionColumnChange">displayReplayList();</action>

View File

@ -24,21 +24,21 @@
#include "soundmanager/ISoundManager.h" #include "soundmanager/ISoundManager.h"
COList::COList() COList::COList()
: CList(), m_HeadingHeight(30.f), m_SelectedDef(-1), m_SelectedColumnOrder(1) : CList(), m_HeadingHeight(30.f), m_SelectedDef(-1), m_SelectedColumnOrder(0)
{ {
AddSetting(GUIST_CGUISpriteInstance, "sprite_heading"); AddSetting(GUIST_CGUISpriteInstance, "sprite_heading");
AddSetting(GUIST_bool, "sortable"); // The actual sorting is done in JS for more versatility AddSetting(GUIST_bool, "sortable"); // The actual sorting is done in JS for more versatility
AddSetting(GUIST_CStr, "selected_column"); AddSetting(GUIST_CStr, "selected_column");
AddSetting(GUIST_int, "selected_column_order"); AddSetting(GUIST_int, "selected_column_order");
AddSetting(GUIST_CStr, "default_column"); AddSetting(GUIST_CStr, "default_column");
AddSetting(GUIST_int, "default_column_order");
AddSetting(GUIST_int, "selected_def"); AddSetting(GUIST_int, "selected_def");
AddSetting(GUIST_CGUISpriteInstance, "sprite_asc"); // Show the order of sorting AddSetting(GUIST_CGUISpriteInstance, "sprite_asc"); // Show the order of sorting
AddSetting(GUIST_CGUISpriteInstance, "sprite_desc"); AddSetting(GUIST_CGUISpriteInstance, "sprite_desc");
AddSetting(GUIST_CGUISpriteInstance, "sprite_not_sorted"); AddSetting(GUIST_CGUISpriteInstance, "sprite_not_sorted");
// Nothing is selected by default.
GUI<CStr>::SetSetting(this, "selected_column", ""); GUI<CStr>::SetSetting(this, "selected_column", "");
GUI<int>::SetSetting(this, "selected_column_order", 1); GUI<int>::SetSetting(this, "selected_column_order", 0);
GUI<int>::SetSetting(this, "selected_def", -1); GUI<int>::SetSetting(this, "selected_def", -1);
} }
@ -98,6 +98,12 @@ void COList::SetupText()
if (m_SelectedDef != (size_t)-1) if (m_SelectedDef != (size_t)-1)
GUI<CStr>::SetSetting(this, "selected_column", m_ObjectsDefs[m_SelectedDef].m_Id.substr(5)); GUI<CStr>::SetSetting(this, "selected_column", m_ObjectsDefs[m_SelectedDef].m_Id.substr(5));
if (m_SelectedColumnOrder == 0)
{
GUI<int>::GetSetting(this, "default_column_order", m_SelectedColumnOrder);
GUI<int>::SetSetting(this, "selected_column_order", m_SelectedColumnOrder);
}
// Generate texts // Generate texts
float buffered_y = 0.f; float buffered_y = 0.f;