2022-11-25 10:47:11 +01:00
|
|
|
|
|
|
|
#include <hex/ui/view.hpp>
|
|
|
|
#include <hex/api/project_file_manager.hpp>
|
2023-01-07 17:16:43 +01:00
|
|
|
#include <hex/helpers/logger.hpp>
|
2022-11-25 10:47:11 +01:00
|
|
|
|
2023-04-08 00:58:53 +02:00
|
|
|
#include <content/popups/popup_notification.hpp>
|
2022-11-25 10:47:11 +01:00
|
|
|
|
|
|
|
namespace hex::plugin::builtin {
|
|
|
|
|
|
|
|
void openProject() {
|
|
|
|
fs::openFileBrowser(fs::DialogMode::Open, { {"Project File", "hexproj"} },
|
|
|
|
[](const auto &path) {
|
|
|
|
if (!ProjectFile::load(path)) {
|
2023-04-08 00:58:53 +02:00
|
|
|
PopupError::open("hex.builtin.popup.error.project.load"_lang);
|
2022-11-25 10:47:11 +01:00
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
void saveProject() {
|
2023-01-07 17:16:43 +01:00
|
|
|
if (ImHexApi::Provider::isValid() && ProjectFile::hasPath()) {
|
|
|
|
if (!ProjectFile::store()) {
|
2023-04-08 00:58:53 +02:00
|
|
|
PopupError::open("hex.builtin.popup.error.project.save"_lang);
|
2023-01-07 17:16:43 +01:00
|
|
|
} else {
|
|
|
|
log::debug("Project saved");
|
|
|
|
}
|
2022-11-25 10:47:11 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
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)) {
|
2023-04-08 00:58:53 +02:00
|
|
|
PopupError::open("hex.builtin.popup.error.project.save"_lang);
|
2022-11-25 10:47:11 +01:00
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|