Changeset - r23987:415c4771a13e
[Not reviewed]
master
0 3 0
stormcone - 6 years ago 2019-05-10 17:49:50
48624099+stormcone@users.noreply.github.com
Feature: Control + click on the vehicle details button in the vehicle view window opens the vehicle group window, then selects and scrolls to the vehicle's group.
3 files changed with 24 insertions and 6 deletions:
0 comments (0 inline, 0 general)
src/group_gui.cpp
Show inline comments
 
@@ -1046,18 +1046,31 @@ static WindowDesc _train_group_desc(
 
 * Show the group window for the given company and vehicle type.
 
 * @param company The company to show the window for.
 
 * @param vehicle_type The type of vehicle to show it for.
 
 * @param group The group to be selected. Defaults to INVALID_GROUP.
 
 * @param need_existing_window Whether the existing window is needed. Defaults to false.
 
 */
 
void ShowCompanyGroup(CompanyID company, VehicleType vehicle_type)
 
void ShowCompanyGroup(CompanyID company, VehicleType vehicle_type, GroupID group = INVALID_GROUP, bool need_existing_window = false)
 
{
 
	if (!Company::IsValidID(company)) return;
 

	
 
	WindowNumber num = VehicleListIdentifier(VL_GROUP_LIST, vehicle_type, company).Pack();
 
	const WindowNumber num = VehicleListIdentifier(VL_GROUP_LIST, vehicle_type, company).Pack();
 
	VehicleGroupWindow *w;
 
	if (vehicle_type == VEH_TRAIN) {
 
		AllocateWindowDescFront<VehicleGroupWindow>(&_train_group_desc, num);
 
		w = AllocateWindowDescFront<VehicleGroupWindow>(&_train_group_desc, num, need_existing_window);
 
	} else {
 
		_other_group_desc.cls = GetWindowClassForVehicleType(vehicle_type);
 
		AllocateWindowDescFront<VehicleGroupWindow>(&_other_group_desc, num);
 
		w = AllocateWindowDescFront<VehicleGroupWindow>(&_other_group_desc, num, need_existing_window);
 
	}
 
	if (w != nullptr) w->SelectGroup(group);
 
}
 

	
 
/**
 
 * Show the group window for the given vehicle.
 
 * @param v The vehicle to show the window for.
 
 */
 
void ShowCompanyGroupForVehicle(const Vehicle *v)
 
{
 
	ShowCompanyGroup(v->owner, v->type, v->group_id, true);
 
}
 

	
 
/**
src/group_gui.h
Show inline comments
 
@@ -13,7 +13,8 @@
 
#include "company_type.h"
 
#include "vehicle_type.h"
 

	
 
void ShowCompanyGroup(CompanyID company, VehicleType veh);
 
void ShowCompanyGroup(CompanyID company, VehicleType veh, GroupID group = INVALID_GROUP, bool need_existing_window = false);
 
void ShowCompanyGroupForVehicle(const Vehicle *v);
 
void DeleteGroupHighlightOfVehicle(const Vehicle *v);
 

	
 
#endif /* GROUP_GUI_H */
src/vehicle_gui.cpp
Show inline comments
 
@@ -2698,7 +2698,11 @@ public:
 
				}
 
				break;
 
			case WID_VV_SHOW_DETAILS: // show details
 
				ShowVehicleDetailsWindow(v);
 
				if (_ctrl_pressed) {
 
					ShowCompanyGroupForVehicle(v);
 
				} else {
 
					ShowVehicleDetailsWindow(v);
 
				}
 
				break;
 
			case WID_VV_CLONE: // clone vehicle
 
				/* Suppress the vehicle GUI when share-cloning.
0 comments (0 inline, 0 general)