|  |  |  | @ -89,7 +89,7 @@ TogglesPanel::TogglesPanel(SettingsWindow *parent) : ListWidget(parent) { | 
			
		
	
		
			
				
					|  |  |  |  |     toggle->setEnabled(!locked); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     if (needs_restart && !locked) { | 
			
		
	
		
			
				
					|  |  |  |  |       toggle->setDescription(toggle->getDescription() + " " + tr("Changing this setting will restart openpilot if the car is powered on.")); | 
			
		
	
		
			
				
					|  |  |  |  |       toggle->setDescription(toggle->getDescription() + tr(" Changing this setting will restart openpilot if the car is powered on.")); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       QObject::connect(uiState(), &UIState::engagedChanged, [toggle](bool engaged) { | 
			
		
	
		
			
				
					|  |  |  |  |         toggle->setEnabled(!engaged); | 
			
		
	
	
		
			
				
					|  |  |  | @ -210,12 +210,20 @@ DevicePanel::DevicePanel(SettingsWindow *parent) : ListWidget(parent) { | 
			
		
	
		
			
				
					|  |  |  |  |   auto resetCalibBtn = new ButtonControl(tr("Reset Calibration"), tr("RESET"), ""); | 
			
		
	
		
			
				
					|  |  |  |  |   connect(resetCalibBtn, &ButtonControl::showDescriptionEvent, this, &DevicePanel::updateCalibDescription); | 
			
		
	
		
			
				
					|  |  |  |  |   connect(resetCalibBtn, &ButtonControl::clicked, [&]() { | 
			
		
	
		
			
				
					|  |  |  |  |     if (ConfirmationDialog::confirm(tr("Are you sure you want to reset calibration?"), tr("Reset"), this)) { | 
			
		
	
		
			
				
					|  |  |  |  |       params.remove("CalibrationParams"); | 
			
		
	
		
			
				
					|  |  |  |  |       params.remove("LiveTorqueParameters"); | 
			
		
	
		
			
				
					|  |  |  |  |       params.remove("LiveParameters"); | 
			
		
	
		
			
				
					|  |  |  |  |       params.remove("LiveParametersV2"); | 
			
		
	
		
			
				
					|  |  |  |  |       params.remove("LiveDelay"); | 
			
		
	
		
			
				
					|  |  |  |  |     if (!uiState()->engaged()) { | 
			
		
	
		
			
				
					|  |  |  |  |       if (ConfirmationDialog::confirm(tr("Are you sure you want to reset calibration?"), tr("Reset"), this)) { | 
			
		
	
		
			
				
					|  |  |  |  |         // Check engaged again in case it changed while the dialog was open
 | 
			
		
	
		
			
				
					|  |  |  |  |         if (!uiState()->engaged()) { | 
			
		
	
		
			
				
					|  |  |  |  |           params.remove("CalibrationParams"); | 
			
		
	
		
			
				
					|  |  |  |  |           params.remove("LiveTorqueParameters"); | 
			
		
	
		
			
				
					|  |  |  |  |           params.remove("LiveParameters"); | 
			
		
	
		
			
				
					|  |  |  |  |           params.remove("LiveParametersV2"); | 
			
		
	
		
			
				
					|  |  |  |  |           params.remove("LiveDelay"); | 
			
		
	
		
			
				
					|  |  |  |  |           params.putBool("OnroadCycleRequested", true); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |  |     } else { | 
			
		
	
		
			
				
					|  |  |  |  |       ConfirmationDialog::alert(tr("Disengage to Reset Calibration"), this); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |   }); | 
			
		
	
		
			
				
					|  |  |  |  |   addItem(resetCalibBtn); | 
			
		
	
	
		
			
				
					|  |  |  | @ -255,7 +263,7 @@ DevicePanel::DevicePanel(SettingsWindow *parent) : ListWidget(parent) { | 
			
		
	
		
			
				
					|  |  |  |  |   }); | 
			
		
	
		
			
				
					|  |  |  |  |   QObject::connect(uiState(), &UIState::offroadTransition, [=](bool offroad) { | 
			
		
	
		
			
				
					|  |  |  |  |     for (auto btn : findChildren<ButtonControl *>()) { | 
			
		
	
		
			
				
					|  |  |  |  |       if (btn != pair_device) { | 
			
		
	
		
			
				
					|  |  |  |  |       if (btn != pair_device && btn != resetCalibBtn) { | 
			
		
	
		
			
				
					|  |  |  |  |         btn->setEnabled(offroad); | 
			
		
	
		
			
				
					|  |  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
	
		
			
				
					|  |  |  | @ -309,6 +317,7 @@ void DevicePanel::updateCalibDescription() { | 
			
		
	
		
			
				
					|  |  |  |  |       qInfo() << "invalid CalibrationParams"; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  |   desc += tr(" Resetting calibration will restart openpilot if the car is powered on."); | 
			
		
	
		
			
				
					|  |  |  |  |   qobject_cast<ButtonControl *>(sender())->setDescription(desc); | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | 
 |