(svn r8065) -Feature: The station list does now remember the sort settings

This commit is contained in:
celestar 2007-01-11 15:30:35 +00:00
parent 8d5a542d9b
commit 91ff746410
1 changed files with 6 additions and 1 deletions

View File

@ -266,6 +266,8 @@ static void PlayerStationsWndProc(Window *w, WindowEvent *e)
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 @@ static void PlayerStationsWndProc(Window *w, WindowEvent *e)
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 @@ static void PlayerStationsWndProc(Window *w, WindowEvent *e)
}
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 @@ static void PlayerStationsWndProc(Window *w, WindowEvent *e)
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);