Added a delete button to Persist Vehicle. (#2354)
This commit is contained in:
parent
59244c75bb
commit
251db062d0
@ -49,6 +49,16 @@ namespace big
|
||||
return spawn_vehicle_full(vehicle_json, self::ped, spawn_coords);
|
||||
}
|
||||
|
||||
void persist_car_service::delete_vehicle(std::string_view file_name, std::string folder_name)
|
||||
{
|
||||
const auto file = check_vehicle_folder(folder_name).get_file(file_name);
|
||||
|
||||
if (file.exists())
|
||||
{
|
||||
std::filesystem::remove(file.get_path());
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<std::string> persist_car_service::list_files(std::string folder_name)
|
||||
{
|
||||
std::vector<std::string> file_paths;
|
||||
|
@ -13,6 +13,7 @@ namespace big
|
||||
static Vehicle clone_ped_car(Ped ped, Vehicle vehicle);
|
||||
static void save_vehicle(Vehicle vehicle, std::string_view file_name, std::string folder_name);
|
||||
static Vehicle load_vehicle(std::string_view file_name, std::string folder_name = "", const std::optional<Vector3>& = std::nullopt);
|
||||
static void delete_vehicle(std::string_view file_name, std::string folder_name);
|
||||
|
||||
private:
|
||||
static constexpr auto model_attachment_key = "model_attachment";
|
||||
|
@ -47,6 +47,32 @@ namespace big
|
||||
|
||||
const auto vehicle_folders = persist_car_service::list_sub_folders();
|
||||
const auto vehicle_files = persist_car_service::list_files(g.persist_car.persist_vehicle_sub_folder);
|
||||
static std::string file_name_to_delete{};
|
||||
|
||||
if (!file_name_to_delete.empty())
|
||||
ImGui::OpenPopup("##deletepersistcar");
|
||||
|
||||
if (ImGui::BeginPopupModal("##deletepersistcar", nullptr, ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove))
|
||||
{
|
||||
ImGui::Text("VIEW_SELF_ANIMATIONS_ARE_YOU_SURE_DELETE"_T.data(), file_name_to_delete.c_str());
|
||||
|
||||
ImGui::Spacing();
|
||||
|
||||
if (ImGui::Button("YES"_T.data()))
|
||||
{
|
||||
persist_car_service::delete_vehicle(file_name_to_delete, g.persist_car.persist_vehicle_sub_folder);
|
||||
file_name_to_delete.clear();
|
||||
ImGui::CloseCurrentPopup();
|
||||
}
|
||||
ImGui::SameLine();
|
||||
if (ImGui::Button("NO"_T.data()))
|
||||
{
|
||||
file_name_to_delete.clear();
|
||||
ImGui::CloseCurrentPopup();
|
||||
}
|
||||
|
||||
ImGui::EndPopup();
|
||||
}
|
||||
|
||||
if (ImGui::Checkbox("PREVIEW"_T.data(), &g.persist_car.preview_vehicle))
|
||||
{
|
||||
@ -99,7 +125,7 @@ namespace big
|
||||
std::transform(pair_lower.begin(), pair_lower.end(), pair_lower.begin(), tolower);
|
||||
if (pair_lower.contains(lower_search))
|
||||
{
|
||||
if (ImGui::Selectable(pair.c_str(), selected_vehicle_file == pair))
|
||||
if (ImGui::Selectable(pair.c_str(), selected_vehicle_file == pair, ImGuiSelectableFlags_AllowItemOverlap))
|
||||
{
|
||||
selected_vehicle_file = pair;
|
||||
g_fiber_pool->queue_job([] {
|
||||
@ -108,6 +134,12 @@ namespace big
|
||||
});
|
||||
}
|
||||
|
||||
ImGui::SameLine();
|
||||
if (ImGui::SmallButton("X"))
|
||||
{
|
||||
file_name_to_delete = pair;
|
||||
}
|
||||
|
||||
if (!g.persist_car.preview_vehicle || (g.persist_car.preview_vehicle && !ImGui::IsAnyItemHovered()))
|
||||
{
|
||||
g_model_preview_service->stop_preview();
|
||||
|
Reference in New Issue
Block a user