Added a delete button to Persist Vehicle. (#2354)

This commit is contained in:
gir489 2023-10-30 16:29:30 -04:00 committed by GitHub
parent 59244c75bb
commit 251db062d0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 44 additions and 1 deletions

View File

@ -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;

View File

@ -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";

View File

@ -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();