#include #include #include #include #include namespace hex::plugin::builtin { void openProject() { fs::openFileBrowser(fs::DialogMode::Open, { {"Project File", "hexproj"} }, [](const auto &path) { if (!ProjectFile::load(path)) { ui::ToastError::open(hex::format("hex.builtin.popup.error.project.load"_lang, wolv::util::toUTF8String(path))); } }); } void saveProject() { if (ImHexApi::Provider::isValid() && ProjectFile::hasPath()) { if (!ProjectFile::store()) { ui::ToastError::open("hex.builtin.popup.error.project.save"_lang); } else { log::debug("Project saved"); } } } void saveProjectAs() { fs::openFileBrowser(fs::DialogMode::Save, { {"Project File", "hexproj"} }, [](std::fs::path path) { if (path.extension() != ".hexproj") { path.replace_extension(".hexproj"); } if (!ProjectFile::store(path)) { ui::ToastError::open("hex.builtin.popup.error.project.save"_lang); } }); } }