Minor frontend fixes to savestates (#5430)
This commit is contained in:
parent
66846836bc
commit
6a77547bde
|
@ -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)
|
||||||
|
|
Reference in New Issue