diff --git a/src/DrawingProgram/Tools/ScreenshotTool.cpp b/src/DrawingProgram/Tools/ScreenshotTool.cpp index 72638e1..de83cde 100644 --- a/src/DrawingProgram/Tools/ScreenshotTool.cpp +++ b/src/DrawingProgram/Tools/ScreenshotTool.cpp @@ -24,6 +24,7 @@ #include "Helpers/SCollision.hpp" #include #include +#include "../../FileHelpers.hpp" #include "../../GridManager.hpp" @@ -111,6 +112,10 @@ void ScreenshotTool::gui_toolbox(Toolbar& t) { auto world = w.lock(); if(world && world->drawProg.drawTool->get_type() == DrawingProgramToolType::SCREENSHOT) { ScreenshotTool* screenshotTool = static_cast(world->drawProg.drawTool.get()); + if(world->main.conf.forceExtensionOnPath) + screenshotTool->controls.screenshotSavePath = force_extension_on_path(p, setExtensionFilter.extensions); + else + screenshotTool->controls.screenshotSavePath = p; screenshotTool->controls.screenshotSavePath = p; screenshotTool->controls.screenshotSaveType = world->main.toolConfig.screenshot.selectedType; screenshotTool->controls.setToTakeScreenshot = true; diff --git a/src/GlobalConfig.hpp b/src/GlobalConfig.hpp index dd366b0..173ce62 100644 --- a/src/GlobalConfig.hpp +++ b/src/GlobalConfig.hpp @@ -49,6 +49,12 @@ class GlobalConfig { float guiScale = 1.0f; #endif + #if defined(__EMSCRIPTEN__) || defined(_WIN32) + bool forceExtensionOnPath = true; + #else + bool forceExtensionOnPath = false; + #endif + double dragZoomSpeed = 0.02; double scrollZoomSpeed = 0.4; float jumpTransitionTime = 0.5f; diff --git a/src/Toolbar.cpp b/src/Toolbar.cpp index 08b89c9..efa2f0b 100644 --- a/src/Toolbar.cpp +++ b/src/Toolbar.cpp @@ -1545,6 +1545,7 @@ void Toolbar::general_settings_inner_gui() { main.set_vsync_value(main.conf.vsyncValue); }); + checkbox_boolean_field(gui, "force extension on path", "Force extension on path when saving files", &main.conf.forceExtensionOnPath); #ifndef __EMSCRIPTEN__ checkbox_boolean_field(gui, "apply display scale", "Apply display scale", &main.conf.applyDisplayScale); #endif diff --git a/src/World.cpp b/src/World.cpp index b0c5899..d408ee8 100644 --- a/src/World.cpp +++ b/src/World.cpp @@ -49,6 +49,7 @@ #include "CanvasComponents/CanvasComponentContainer.hpp" #include "CanvasComponents/CanvasComponentAllocator.hpp" #include "WorldScreenshot.hpp" +#include "FileHelpers.hpp" #ifdef __EMSCRIPTEN__ #include @@ -478,7 +479,10 @@ void World::autosave_to_directory(const std::filesystem::path& directoryToSaveAt void World::save_to_file(const std::filesystem::path& filePathToSaveAt) { try { - filePath = filePathToSaveAt; + if(main.conf.forceExtensionOnPath) + filePath = force_extension_on_path(filePathToSaveAt, FILE_EXTENSION); + else + filePath = filePathToSaveAt; std::stringstream f; f.write(VersionConstants::CURRENT_SAVEFILE_HEADER.c_str(), VersionConstants::SAVEFILE_HEADER_LEN);