mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +00:00 
			
		
		
		
	Minor frontend fixes to savestates (#5430)
This commit is contained in:
		
							parent
							
								
									66846836bc
								
							
						
					
					
						commit
						6a77547bde
					
				
					 3 changed files with 24 additions and 7 deletions
				
			
		|  | @ -413,10 +413,16 @@ void GMainWindow::InitializeSaveStateMenuActions() { | ||||||
|         ui.menu_Save_State->addAction(actions_save_state[i]); |         ui.menu_Save_State->addAction(actions_save_state[i]); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     connect(ui.action_Load_from_Newest_Slot, &QAction::triggered, |     connect(ui.action_Load_from_Newest_Slot, &QAction::triggered, [this] { | ||||||
|             [this] { actions_load_state[newest_slot - 1]->trigger(); }); |         UpdateSaveStates(); | ||||||
|     connect(ui.action_Save_to_Oldest_Slot, &QAction::triggered, |         if (newest_slot != 0) { | ||||||
|             [this] { actions_save_state[oldest_slot - 1]->trigger(); }); |             actions_load_state[newest_slot - 1]->trigger(); | ||||||
|  |         } | ||||||
|  |     }); | ||||||
|  |     connect(ui.action_Save_to_Oldest_Slot, &QAction::triggered, [this] { | ||||||
|  |         UpdateSaveStates(); | ||||||
|  |         actions_save_state[oldest_slot - 1]->trigger(); | ||||||
|  |     }); | ||||||
| 
 | 
 | ||||||
|     connect(ui.menu_Load_State->menuAction(), &QAction::hovered, this, |     connect(ui.menu_Load_State->menuAction(), &QAction::hovered, this, | ||||||
|             &GMainWindow::UpdateSaveStates); |             &GMainWindow::UpdateSaveStates); | ||||||
|  |  | ||||||
|  | @ -26,11 +26,16 @@ SERVICE_CONSTRUCT_IMPL(Service::CAM::Module) | ||||||
| namespace Service::CAM { | namespace Service::CAM { | ||||||
| 
 | 
 | ||||||
| template <class Archive> | template <class Archive> | ||||||
| void Module::serialize(Archive& ar, const unsigned int) { | void Module::serialize(Archive& ar, const unsigned int file_version) { | ||||||
|     ar& cameras; |     ar& cameras; | ||||||
|     ar& ports; |     ar& ports; | ||||||
|     ar& is_camera_reload_pending; |     ar& is_camera_reload_pending; | ||||||
|     if (Archive::is_loading::value) { |     if (file_version > 0) { | ||||||
|  |         ar& initialized; | ||||||
|  |     } else { | ||||||
|  |         initialized = true; | ||||||
|  |     } | ||||||
|  |     if (Archive::is_loading::value && initialized) { | ||||||
|         for (int i = 0; i < NumCameras; i++) { |         for (int i = 0; i < NumCameras; i++) { | ||||||
|             LoadCameraImplementation(cameras[i], i); |             LoadCameraImplementation(cameras[i], i); | ||||||
|         } |         } | ||||||
|  | @ -1077,6 +1082,8 @@ void Module::Interface::DriverInitialize(Kernel::HLERequestContext& ctx) { | ||||||
|         port.Clear(); |         port.Clear(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     cam->initialized = true; | ||||||
|  | 
 | ||||||
|     rb.Push(RESULT_SUCCESS); |     rb.Push(RESULT_SUCCESS); | ||||||
| 
 | 
 | ||||||
|     LOG_DEBUG(Service_CAM, "called"); |     LOG_DEBUG(Service_CAM, "called"); | ||||||
|  | @ -1093,6 +1100,8 @@ void Module::Interface::DriverFinalize(Kernel::HLERequestContext& ctx) { | ||||||
|         camera.impl = nullptr; |         camera.impl = nullptr; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     cam->initialized = false; | ||||||
|  | 
 | ||||||
|     rb.Push(RESULT_SUCCESS); |     rb.Push(RESULT_SUCCESS); | ||||||
| 
 | 
 | ||||||
|     LOG_DEBUG(Service_CAM, "called"); |     LOG_DEBUG(Service_CAM, "called"); | ||||||
|  |  | ||||||
|  | @ -757,6 +757,7 @@ private: | ||||||
|     void LoadCameraImplementation(CameraConfig& camera, int camera_id); |     void LoadCameraImplementation(CameraConfig& camera, int camera_id); | ||||||
| 
 | 
 | ||||||
|     Core::System& system; |     Core::System& system; | ||||||
|  |     bool initialized{}; | ||||||
|     std::array<CameraConfig, NumCameras> cameras; |     std::array<CameraConfig, NumCameras> cameras; | ||||||
|     std::array<PortConfig, 2> ports; |     std::array<PortConfig, 2> ports; | ||||||
|     Core::TimingEventType* completion_event_callback; |     Core::TimingEventType* completion_event_callback; | ||||||
|  | @ -764,7 +765,7 @@ private: | ||||||
|     std::atomic<bool> is_camera_reload_pending{false}; |     std::atomic<bool> is_camera_reload_pending{false}; | ||||||
| 
 | 
 | ||||||
|     template <class Archive> |     template <class Archive> | ||||||
|     void serialize(Archive& ar, const unsigned int); |     void serialize(Archive& ar, const unsigned int file_version); | ||||||
|     friend class boost::serialization::access; |     friend class boost::serialization::access; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  | @ -775,4 +776,5 @@ void InstallInterfaces(Core::System& system); | ||||||
| } // namespace Service::CAM
 | } // namespace Service::CAM
 | ||||||
| 
 | 
 | ||||||
| SERVICE_CONSTRUCT(Service::CAM::Module) | SERVICE_CONSTRUCT(Service::CAM::Module) | ||||||
|  | BOOST_CLASS_VERSION(Service::CAM::Module, 1) | ||||||
| BOOST_CLASS_VERSION(Service::CAM::Module::CameraConfig, 1) | BOOST_CLASS_VERSION(Service::CAM::Module::CameraConfig, 1) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue