[jasper/world/studio] Cleanup

This commit is contained in:
Gary Talent 2025-01-19 19:12:20 -06:00
parent f678c8f8fc
commit a1a2b4154e
2 changed files with 23 additions and 18 deletions

View File

@ -269,11 +269,11 @@ void WorldObjectSetEditorImGui::drawSubSheetNode(ncore::TileSheet::SubSheet cons
void WorldObjectSetEditorImGui::drawPaletteList() noexcept {
ig::IDStackItem const idStackItem{"PaletteList"};
if (ig::PushButton("+", btnSize)) {
addPalette();
showAddPalette();
}
ImGui::SameLine();
if (ig::PushButton("-", btnSize)) {
rmPalette();
rmSelectedPalette();
}
constexpr auto flags = ImGuiTableFlags_RowBg | ImGuiTableFlags_NoBordersInBody;
if (ImGui::BeginTable("Subsheets", 1, flags)) {
@ -285,12 +285,7 @@ void WorldObjectSetEditorImGui::drawPaletteList() noexcept {
if (ig::DragDropTarget const d; d) {
auto const [fr, err] = ig::getDragDropPayload<studio::FileRef>("FileRef");
if (!err && endsWith(fr.path, ncore::FileExt_npal)) {
auto const [uuid, err] = keel::pathToUuid(
keelCtx(m_sctx), fr.path);
if (!err) {
auto const uuidUrl = ox::sfmt("uuid://{}", uuid.toString());
std::ignore = pushCommand<AddPalette>(m_doc, ox::FileAddress{uuidUrl});
}
addPalette(fr.path);
}
}
}
@ -322,23 +317,31 @@ void WorldObjectSetEditorImGui::drawAddPalettePopup() noexcept {
auto const&palettes = m_sctx.project->fileList(ncore::FileExt_npal);
ig::ComboBox("Palette", palettes, m_addPalPopup.selectedIdx);
if (ig::PopupControlsOkCancel(popupSz.x, m_addPalPopup.show) == ig::PopupResponse::OK) {
auto [uuid, err] = keel::pathToUuid(
keelCtx(m_sctx.tctx), palettes[m_addPalPopup.selectedIdx]);
if (!err) {
auto const uuidUrl = ox::sfmt("uuid://{}", uuid.toString());
std::ignore = pushCommand<AddPalette>(m_doc, ox::FileAddress{uuidUrl});
}
addPalette(palettes[m_addPalPopup.selectedIdx]);
}
ImGui::EndPopup();
}
}
void WorldObjectSetEditorImGui::addPalette() noexcept {
void WorldObjectSetEditorImGui::addPalette(ox::StringViewCR path) noexcept {
auto const [uuid, err] = keel::pathToUuid(
keelCtx(m_sctx.tctx), path);
if (!err) {
auto const uuidUrl = ox::sfmt("uuid://{}", uuid.toString());
ox::FileAddress addr{uuidUrl};
auto const idx = ox::findIdx(m_doc.palettes.begin(), m_doc.palettes.end(), addr);
if (idx.error) {
std::ignore = pushCommand<AddPalette>(m_doc, std::move(addr));
}
}
}
void WorldObjectSetEditorImGui::showAddPalette() noexcept {
m_addPalPopup.show = true;
m_addPalPopup.selectedIdx = 0;
}
void WorldObjectSetEditorImGui::rmPalette() noexcept {
void WorldObjectSetEditorImGui::rmSelectedPalette() noexcept {
std::ignore = pushCommand<RmPalette>(m_doc, m_selectedPal);
}

View File

@ -66,9 +66,11 @@ class WorldObjectSetEditorImGui: public studio::Editor {
void drawAddPalettePopup() noexcept;
void addPalette() noexcept;
void addPalette(ox::StringViewCR path) noexcept;
void rmPalette() noexcept;
void showAddPalette() noexcept;
void rmSelectedPalette() noexcept;
ox::Error setTileSheet(ox::StringViewCR path) noexcept;