(svn r13286) -Codechange: GUIList Sort returns now if the list sequence has been altered
authorskidd13
Tue, 27 May 2008 10:27:30 +0000
changeset 9379 2c6c6a0e2233
parent 9378 37a5be34ca86
child 9380 62dabf4a5b7e
(svn r13286) -Codechange: GUIList Sort returns now if the list sequence has been altered
src/sortlist_type.h
src/station_gui.cpp
--- a/src/sortlist_type.h	Tue May 27 09:57:29 2008 +0000
+++ b/src/sortlist_type.h	Tue May 27 10:27:30 2008 +0000
@@ -188,18 +188,19 @@
 	 *  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 @@
 			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 @@
 				}
 			}
 		}
+		return true;
 	}
 
 	/**
@@ -253,11 +255,13 @@
 	/**
 	 * 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]);
 	}
 
 	/**
--- a/src/station_gui.cpp	Tue May 27 09:57:29 2008 +0000
+++ b/src/station_gui.cpp	Tue May 27 10:27:30 2008 +0000
@@ -197,7 +197,7 @@
 	/** Sort the stations list */
 	void SortStationsList()
 	{
-		this->stations.Sort();
+		if (!this->stations.Sort()) return;
 
 		/* Reset name sorter sort cache */
 		this->last_station = NULL;