summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/company_gui.cpp44
-rw-r--r--src/group_gui.cpp45
2 files changed, 42 insertions, 47 deletions
diff --git a/src/company_gui.cpp b/src/company_gui.cpp
index 423efcb01..f4fe7f803 100644
--- a/src/company_gui.cpp
+++ b/src/company_gui.cpp
@@ -615,28 +615,6 @@ private:
ShowDropDownList(this, std::move(list), sel, widget);
}
- static bool GroupNameSorter(const Group * const &a, const Group * const &b)
- {
- static const Group *last_group[2] = { nullptr, nullptr };
- static char last_name[2][64] = { "", "" };
-
- if (a != last_group[0]) {
- last_group[0] = a;
- SetDParam(0, a->index);
- GetString(last_name[0], STR_GROUP_NAME, lastof(last_name[0]));
- }
-
- if (b != last_group[1]) {
- last_group[1] = b;
- SetDParam(0, b->index);
- GetString(last_name[1], STR_GROUP_NAME, lastof(last_name[1]));
- }
-
- int r = strnatcmp(last_name[0], last_name[1]); // Sort by name (natural sorting).
- if (r == 0) return a->index < b->index;
- return r < 0;
- }
-
void AddChildren(GUIGroupList *source, GroupID parent, int indent)
{
for (const Group *g : *source) {
@@ -665,7 +643,27 @@ private:
}
list.ForceResort();
- list.Sort(&GroupNameSorter);
+
+ /* Sort the groups by their name */
+ const Group *last_group[2] = { nullptr, nullptr };
+ char last_name[2][64] = { "", "" };
+ list.Sort([&](const Group * const &a, const Group * const &b) -> bool {
+ if (a != last_group[0]) {
+ last_group[0] = a;
+ SetDParam(0, a->index);
+ GetString(last_name[0], STR_GROUP_NAME, lastof(last_name[0]));
+ }
+
+ if (b != last_group[1]) {
+ last_group[1] = b;
+ SetDParam(0, b->index);
+ GetString(last_name[1], STR_GROUP_NAME, lastof(last_name[1]));
+ }
+
+ int r = strnatcmp(last_name[0], last_name[1]); // Sort by name (natural sorting).
+ if (r == 0) return a->index < b->index;
+ return r < 0;
+ });
AddChildren(&list, INVALID_GROUP, 0);
}
diff --git a/src/group_gui.cpp b/src/group_gui.cpp
index 0bf8589ac..8d0bba8fb 100644
--- a/src/group_gui.cpp
+++ b/src/group_gui.cpp
@@ -141,29 +141,6 @@ private:
}
}
- /** Sort the groups by their name */
- static bool GroupNameSorter(const Group * const &a, const Group * const &b)
- {
- static const Group *last_group[2] = { nullptr, nullptr };
- static char last_name[2][64] = { "", "" };
-
- if (a != last_group[0]) {
- last_group[0] = a;
- SetDParam(0, a->index);
- GetString(last_name[0], STR_GROUP_NAME, lastof(last_name[0]));
- }
-
- if (b != last_group[1]) {
- last_group[1] = b;
- SetDParam(0, b->index);
- GetString(last_name[1], STR_GROUP_NAME, lastof(last_name[1]));
- }
-
- int r = strnatcmp(last_name[0], last_name[1]); // Sort by name (natural sorting).
- if (r == 0) return a->index < b->index;
- return r < 0;
- }
-
/**
* (Re)Build the group list.
*
@@ -185,7 +162,27 @@ private:
}
list.ForceResort();
- list.Sort(&GroupNameSorter);
+
+ /* Sort the groups by their name */
+ const Group *last_group[2] = { nullptr, nullptr };
+ char last_name[2][64] = { "", "" };
+ list.Sort([&](const Group * const &a, const Group * const &b) {
+ if (a != last_group[0]) {
+ last_group[0] = a;
+ SetDParam(0, a->index);
+ GetString(last_name[0], STR_GROUP_NAME, lastof(last_name[0]));
+ }
+
+ if (b != last_group[1]) {
+ last_group[1] = b;
+ SetDParam(0, b->index);
+ GetString(last_name[1], STR_GROUP_NAME, lastof(last_name[1]));
+ }
+
+ int r = strnatcmp(last_name[0], last_name[1]); // Sort by name (natural sorting).
+ if (r == 0) return a->index < b->index;
+ return r < 0;
+ });
AddChildren(&list, INVALID_GROUP, 0);