diff --git a/ui/mainwindow.go b/ui/mainwindow.go
index a135c3f..80649fd 100644
--- a/ui/mainwindow.go
+++ b/ui/mainwindow.go
@@ -13,6 +13,7 @@ import (
// stdlib
"fmt"
"runtime"
+ "sort"
"strconv"
"strings"
@@ -565,12 +566,22 @@ func (m *MainWindow) showShortServerInformation() {
m.server_info_store.Append(iter)
m.server_info_store.SetValue(iter, 0, "PLAYERS")
- for _, value := range parsed_players_info {
+ // Sorting keys of map.
+ players_map_keys := make([]string, 0, len(parsed_players_info))
+ for k := range parsed_players_info {
+ // ToDo: figure out how to do this properly without
+ // append().
+ players_map_keys = append(players_map_keys, k)
+ }
+
+ sort.Strings(players_map_keys)
+
+ for k := range players_map_keys {
iter = new(gtk.TreeIter)
- nick := ctx.Colorizer.Fix(value["nick"])
+ nick := ctx.Colorizer.Fix(parsed_players_info[players_map_keys[k]]["nick"])
m.server_info_store.Append(iter)
m.server_info_store.SetValue(iter, 0, nick)
- m.server_info_store.SetValue(iter, 1, "(frags: " + value["frags"] + " | ping: " + value["ping"] + ")")
+ m.server_info_store.SetValue(iter, 1, "(frags: " + parsed_players_info[players_map_keys[k]]["frags"] + " | ping: " + parsed_players_info[players_map_keys[k]]["ping"] + ")")
}
// Just a separator.
@@ -582,11 +593,19 @@ func (m *MainWindow) showShortServerInformation() {
m.server_info_store.Append(iter)
m.server_info_store.SetValue(iter, 0, "OTHER PARAMETERS")
- for key, value := range parsed_general_data {
+ // Sort it!
+ general_data_keys := make([]string, 0, len(parsed_general_data))
+ for k := range parsed_general_data {
+ general_data_keys = append(general_data_keys, k)
+ }
+
+ sort.Strings(general_data_keys)
+
+ for k := range general_data_keys {
iter = new(gtk.TreeIter)
m.server_info_store.Append(iter)
- m.server_info_store.SetValue(iter, 0, key)
- m.server_info_store.SetValue(iter, 1, value)
+ m.server_info_store.SetValue(iter, 0, general_data_keys[k])
+ m.server_info_store.SetValue(iter, 1, parsed_general_data[general_data_keys[k]])
}
}
}