(svn r8065) -Feature: The station list does now remember the sort settings
authorcelestar
Thu, 11 Jan 2007 15:30:35 +0000
changeset 5859 158718283d16
parent 5858 dfe44c585495
child 5860 7fdc9b423ba1
(svn r8065) -Feature: The station list does now remember the sort settings
src/station_gui.cpp
--- a/src/station_gui.cpp	Thu Jan 11 14:40:12 2007 +0000
+++ b/src/station_gui.cpp	Thu Jan 11 15:30:35 2007 +0000
@@ -266,6 +266,8 @@
 	const PlayerID owner = (PlayerID)w->window_number;
 	static byte facilities = FACIL_TRAIN | FACIL_TRUCK_STOP | FACIL_BUS_STOP | FACIL_AIRPORT | FACIL_DOCK;
 	static uint16 cargo_filter = CARGO_ALL_SELECTED;
+	static Listing station_sort = {0, 0};
+
 	plstations_d *sl = &WP(w, plstations_d);
 
 	switch (e->event) {
@@ -283,7 +285,8 @@
 
 		sl->sort_list = NULL;
 		sl->flags = SL_REBUILD;
-		sl->sort_type = 0;
+		sl->sort_type = station_sort.criteria;
+		if (station_sort.order) sl->flags |= SL_ORDER;
 		sl->resort_timer = DAY_TICKS * PERIODIC_RESORT_DAYS;
 		break;
 	}
@@ -436,6 +439,7 @@
 		}
 		case STATIONLIST_WIDGET_SORTBY: /*flip sorting method asc/desc*/
 			sl->flags ^= SL_ORDER; //DESC-flag
+			station_sort.order = GB(sl->flags, 0, 1);
 			sl->flags |= SL_RESORT;
 			w->flags4 |= 5 << WF_TIMEOUT_SHL;
 			LowerWindowWidget(w, STATIONLIST_WIDGET_SORTBY);
@@ -471,6 +475,7 @@
 		if (sl->sort_type != e->we.dropdown.index) {
 			// value has changed -> resort
 			sl->sort_type = e->we.dropdown.index;
+			station_sort.criteria = sl->sort_type;
 			sl->flags |= SL_RESORT;
 		}
 		SetWindowDirty(w);