File diff r26687:39a66c00d4a4 → r26688:8dd6241f354e
src/timetable_gui.cpp
Show inline comments
 
@@ -156,6 +156,8 @@ struct TimetableWindow : Window {
 
	uint deparr_abbr_width; ///< The width of the departure/arrival abbreviation
 
	Scrollbar *vscroll;
 
	bool query_is_speed_query; ///< The currently open query window is a speed query and not a time query.
 
	bool set_start_date_all;   ///< Set start date using minutes text entry for all timetable entries (ctrl-click) action
 
	bool change_timetable_all; ///< Set wait time or speed for all timetable entries (ctrl-click) action
 

	
 
	TimetableWindow(WindowDesc *desc, WindowNumber window_number) :
 
			Window(desc),
 
@@ -551,6 +553,7 @@ struct TimetableWindow : Window {
 
				}
 

	
 
				this->query_is_speed_query = false;
 
				this->change_timetable_all = _ctrl_pressed && (order != nullptr);
 
				ShowQueryString(current, STR_TIMETABLE_CHANGE_TIME, 31, this, CS_NUMERAL, QSF_ACCEPT_UNCHANGED);
 
				break;
 
			}
 
@@ -571,19 +574,28 @@ struct TimetableWindow : Window {
 
				}
 

	
 
				this->query_is_speed_query = true;
 
				this->change_timetable_all = _ctrl_pressed && (order != nullptr);
 
				ShowQueryString(current, STR_TIMETABLE_CHANGE_SPEED, 31, this, CS_NUMERAL, QSF_NONE);
 
				break;
 
			}
 

	
 
			case WID_VT_CLEAR_TIME: { // Clear waiting time.
 
				auto [order_id, mtf] = PackTimetableArgs(v, this->sel_index, false);
 
				Command<CMD_CHANGE_TIMETABLE>::Post(STR_ERROR_CAN_T_TIMETABLE_VEHICLE, v->index, order_id, mtf, 0);
 
				if (_ctrl_pressed) {
 
					Command<CMD_BULK_CHANGE_TIMETABLE>::Post(STR_ERROR_CAN_T_TIMETABLE_VEHICLE, v->index, mtf, 0);
 
				} else {
 
					Command<CMD_CHANGE_TIMETABLE>::Post(STR_ERROR_CAN_T_TIMETABLE_VEHICLE, v->index, order_id, mtf, 0);
 
				}
 
				break;
 
			}
 

	
 
			case WID_VT_CLEAR_SPEED: { // Clear max speed button.
 
				auto [order_id, mtf] = PackTimetableArgs(v, this->sel_index, true);
 
				Command<CMD_CHANGE_TIMETABLE>::Post(STR_ERROR_CAN_T_TIMETABLE_VEHICLE, v->index, order_id, mtf, UINT16_MAX);
 
				if (_ctrl_pressed) {
 
					Command<CMD_BULK_CHANGE_TIMETABLE>::Post(STR_ERROR_CAN_T_TIMETABLE_VEHICLE, v->index, mtf, UINT16_MAX);
 
				} else {
 
					Command<CMD_CHANGE_TIMETABLE>::Post(STR_ERROR_CAN_T_TIMETABLE_VEHICLE, v->index, order_id, mtf, UINT16_MAX);
 
				}
 
				break;
 
			}
 

	
 
@@ -622,7 +634,12 @@ struct TimetableWindow : Window {
 
		}
 

	
 
		auto [order_id, mtf] = PackTimetableArgs(v, this->sel_index, this->query_is_speed_query);
 
		Command<CMD_CHANGE_TIMETABLE>::Post(STR_ERROR_CAN_T_TIMETABLE_VEHICLE, v->index, order_id, mtf, std::min<uint32>(val, UINT16_MAX));
 

	
 
		if (this->change_timetable_all) {
 
			Command<CMD_BULK_CHANGE_TIMETABLE>::Post(STR_ERROR_CAN_T_TIMETABLE_VEHICLE, v->index, mtf, std::min<uint32>(val, UINT16_MAX));
 
		} else {
 
			Command<CMD_CHANGE_TIMETABLE>::Post(STR_ERROR_CAN_T_TIMETABLE_VEHICLE, v->index, order_id, mtf, std::min<uint32>(val, UINT16_MAX));
 
		}
 
	}
 

	
 
	void OnResize() override