changeset 5608:5dcef0df6a67 draft

(svn r8065) -Feature: The station list does now remember the sort settings
author celestar <celestar@openttd.org>
date Thu, 11 Jan 2007 15:30:35 +0000
parents f746786ae8b3
children 358c07fb3212
files src/station_gui.cpp
diffstat 1 files changed, 6 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/station_gui.cpp
+++ b/src/station_gui.cpp
@@ -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);