From 6d46851b61e482965412d2e4b74d1846efefe21d Mon Sep 17 00:00:00 2001 From: skidd13 Date: Tue, 27 May 2008 10:27:30 +0000 Subject: [PATCH] (svn r13286) -Codechange: GUIList Sort returns now if the list sequence has been altered --- src/sortlist_type.h | 16 ++++++++++------ src/station_gui.cpp | 2 +- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/sortlist_type.h b/src/sortlist_type.h index 7ae99dd6bd..6e6d9c7fa1 100644 --- a/src/sortlist_type.h +++ b/src/sortlist_type.h @@ -188,18 +188,19 @@ public: * sorted data. * * @param compare The function to compare two list items + * @return true if the list sequence has been altered * */ - FORCEINLINE void Sort(SortFunction *compare) + FORCEINLINE bool Sort(SortFunction *compare) { /* Do not sort if the resort bit is not set */ - if (!HASBITS(this->flags, VL_RESORT)) return; + if (!HASBITS(this->flags, VL_RESORT)) return false; CLRBITS(this->flags, VL_RESORT); this->ResetResortTimer(); /* Do not sort when the list is not sortable */ - if (!this->IsSortable()) return; + if (!this->IsSortable()) return false; const bool desc = HASBITS(this->flags, VL_DESC); @@ -207,7 +208,7 @@ public: qsort(this->data, this->items, sizeof(T), (int (CDECL *)(const void *, const void *))compare); if (desc) this->Reverse(); - return; + return true; } T *a = this->data; @@ -238,6 +239,7 @@ public: } } } + return true; } /** @@ -253,11 +255,13 @@ public: /** * Overload of Sort() * Overloaded to reduce external code + * + * @return true if the list sequence has been altered */ - void Sort() + bool Sort() { assert(this->func_list != NULL); - this->Sort(this->func_list[this->sort_type]); + return this->Sort(this->func_list[this->sort_type]); } /** diff --git a/src/station_gui.cpp b/src/station_gui.cpp index 0f7cdf6e74..0d8f481d9f 100644 --- a/src/station_gui.cpp +++ b/src/station_gui.cpp @@ -197,7 +197,7 @@ protected: /** Sort the stations list */ void SortStationsList() { - this->stations.Sort(); + if (!this->stations.Sort()) return; /* Reset name sorter sort cache */ this->last_station = NULL;