SaveTool: fix a few bugs.

This commit is contained in:
Guillaume Jacquemin 2022-03-21 16:31:29 +01:00
parent 592fd2ba3a
commit f4adb9e26a
3 changed files with 6 additions and 7 deletions

View File

@ -69,7 +69,7 @@ auto MassManager::importMass(Containers::StringView staged_fn, Int hangar) -> bo
return false;
}
auto it = _stagedMasses.find(staged_fn);
auto it = _stagedMasses.find(Containers::String::nullTerminatedView(staged_fn));
if(it == _stagedMasses.end()) {
_lastError = "Couldn't find "_s + staged_fn + " in the staged M.A.S.S.es."_s;

View File

@ -208,13 +208,12 @@ void SaveTool::handleFileAction(efsw::WatchID watch_id,
}
event.user.code = action;
event.user.data1 = Containers::String{filename}.release();
event.user.data1 = Containers::String{Containers::AllocatedInit, filename.c_str()}.release();
if(action == efsw::Actions::Moved) {
event.user.data2 = Containers::String{old_filename}.release();
}
SDL_PushEvent(&event);
return;
}
void SaveTool::drawEvent() {

View File

@ -475,14 +475,14 @@ void SaveTool::drawMassManager() {
}
if((_unsafeMode || _gameState == GameState::NotRunning) && ImGui::BeginDragDropTarget()) {
if(const ImGuiPayload* payload = ImGui::AcceptDragDropPayload("StagedMass")) {
if(payload->DataSize != sizeof(std::string)) {
if(payload->DataSize != sizeof(Containers::String)) {
SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, "Fatal error",
"payload->DataSize != sizeof(std::string) in SaveTool::drawMassManager()",
"payload->DataSize != sizeof(Containers::String) in SaveTool::drawMassManager()",
window());
exit(EXIT_FAILURE);
}
std::string file = *(static_cast<std::string*>(payload->Data));
Containers::StringView file = *static_cast<Containers::String*>(payload->Data);
if(!_massManager->importMass(file, i)) {
_queue.addToast(Toast::Type::Error, _massManager->lastError());
@ -584,7 +584,7 @@ void SaveTool::drawMassManager() {
drawTooltip(staged_formatted.data());
}
if(ImGui::BeginDragDropSource(ImGuiDragDropFlags_SourceNoHoldToOpenOthers)) {
ImGui::SetDragDropPayload("StagedMass", &(pair.first), sizeof(std::string));
ImGui::SetDragDropPayload("StagedMass", &(pair.first), sizeof(Containers::String));
ImGui::Text("%s - Staged", pair.second.data());