Merge pull request #292 from VacuumBreather/minor_additions

Minor additions
This commit is contained in:
Jonathan G Rennison
2021-06-28 22:41:26 +01:00
committed by GitHub
6 changed files with 25 additions and 3 deletions

View File

@@ -722,6 +722,7 @@ public:
switch (widget) { switch (widget) {
case WID_GL_SORT_BY_ORDER: // Flip sorting method ascending/descending case WID_GL_SORT_BY_ORDER: // Flip sorting method ascending/descending
this->vehgroups.ToggleSortOrder(); this->vehgroups.ToggleSortOrder();
this->vehgroups.ForceResort();
this->SetDirty(); this->SetDirty();
break; break;
@@ -1044,6 +1045,7 @@ public:
case WID_GL_SORT_BY_DROPDOWN: case WID_GL_SORT_BY_DROPDOWN:
this->vehgroups.SetSortType(index); this->vehgroups.SetSortType(index);
this->UpdateSortingInterval();
break; break;
case WID_GL_FILTER_BY_CARGO: // Select a cargo filter criteria case WID_GL_FILTER_BY_CARGO: // Select a cargo filter criteria
this->SetCargoFilterIndex(index); this->SetCargoFilterIndex(index);

View File

@@ -1340,6 +1340,7 @@ public:
} }
} }
size->width = std::max(size->width, d.width + padding.width); size->width = std::max(size->width, d.width + padding.width);
size->width = std::min<uint>(size->width, ScaleGUITrad(400));
break; break;
} }

View File

@@ -55,6 +55,7 @@ protected:
uint8 sort_type; ///< what criteria to sort on uint8 sort_type; ///< what criteria to sort on
uint8 filter_type; ///< what criteria to filter on uint8 filter_type; ///< what criteria to filter on
uint16 resort_timer; ///< resort list after a given amount of ticks if set uint16 resort_timer; ///< resort list after a given amount of ticks if set
uint16 resort_interval; ///< value to re-initialise resort_timer with after sorting
/** /**
* Check if the list is sortable * Check if the list is sortable
@@ -71,8 +72,7 @@ protected:
*/ */
void ResetResortTimer() void ResetResortTimer()
{ {
/* Resort every 10 days */ this->resort_timer = this->resort_interval;
this->resort_timer = DAY_TICKS * 10;
} }
public: public:
@@ -82,7 +82,8 @@ public:
flags(VL_NONE), flags(VL_NONE),
sort_type(0), sort_type(0),
filter_type(0), filter_type(0),
resort_timer(1) resort_timer(1),
resort_interval(DAY_TICKS * 10) /* Resort every 10 days by default */
{}; {};
/** /**
@@ -215,6 +216,12 @@ public:
SETBITS(this->flags, VL_RESORT); SETBITS(this->flags, VL_RESORT);
} }
void SetResortInterval(uint16 resort_interval)
{
this->resort_interval = std::max<uint16>(1, resort_interval);
this->resort_timer = std::min<uint16>(this->resort_timer, this->resort_interval);
}
/** /**
* Check if the sort order is descending * Check if the sort order is descending
* *

View File

@@ -3680,6 +3680,7 @@ public:
switch (widget) { switch (widget) {
case WID_TRSL_SORT_BY_DROPDOWN: case WID_TRSL_SORT_BY_DROPDOWN:
this->vehgroups.SetSortType(index); this->vehgroups.SetSortType(index);
this->UpdateSortingInterval();
break; break;
case WID_TRSL_FILTER_BY_CARGO: // Select a cargo filter criteria case WID_TRSL_FILTER_BY_CARGO: // Select a cargo filter criteria

View File

@@ -1995,6 +1995,13 @@ void BaseVehicleListWindow::DrawVehicleListItems(VehicleID selected_vehicle, int
} }
} }
void BaseVehicleListWindow::UpdateSortingInterval()
{
uint16 resort_interval = DAY_TICKS * 10;
if (this->grouping == GB_NONE && this->vehgroups.SortType() == VST_TIMETABLE_DELAY) resort_interval = DAY_TICKS;
this->vehgroups.SetResortInterval(resort_interval);
}
void BaseVehicleListWindow::UpdateSortingFromGrouping() void BaseVehicleListWindow::UpdateSortingFromGrouping()
{ {
/* Set up sorting. Make the window-specific _sorting variable /* Set up sorting. Make the window-specific _sorting variable
@@ -2011,6 +2018,7 @@ void BaseVehicleListWindow::UpdateSortingFromGrouping()
this->vehgroups.SetListing(*this->sorting); this->vehgroups.SetListing(*this->sorting);
this->vehgroups.ForceRebuild(); this->vehgroups.ForceRebuild();
this->vehgroups.NeedResort(); this->vehgroups.NeedResort();
this->UpdateSortingInterval();
} }
void BaseVehicleListWindow::UpdateVehicleGroupBy(GroupBy group_by) void BaseVehicleListWindow::UpdateVehicleGroupBy(GroupBy group_by)
@@ -2232,6 +2240,7 @@ public:
switch (widget) { switch (widget) {
case WID_VL_SORT_ORDER: // Flip sorting method ascending/descending case WID_VL_SORT_ORDER: // Flip sorting method ascending/descending
this->vehgroups.ToggleSortOrder(); this->vehgroups.ToggleSortOrder();
this->vehgroups.ForceResort();
this->SetDirty(); this->SetDirty();
break; break;
@@ -2313,6 +2322,7 @@ public:
case WID_VL_SORT_BY_PULLDOWN: case WID_VL_SORT_BY_PULLDOWN:
this->vehgroups.SetSortType(index); this->vehgroups.SetSortType(index);
this->UpdateSortingInterval();
break; break;
case WID_VL_FILTER_BY_CARGO: case WID_VL_FILTER_BY_CARGO:

View File

@@ -133,6 +133,7 @@ public:
void OnInit() override; void OnInit() override;
void UpdateSortingInterval();
void UpdateSortingFromGrouping(); void UpdateSortingFromGrouping();
void DrawVehicleListItems(VehicleID selected_vehicle, int line_height, const Rect &r) const; void DrawVehicleListItems(VehicleID selected_vehicle, int line_height, const Rect &r) const;