[nostalgia/gfx/studio] Make move color commands affect all pages
All checks were successful
Build / build (push) Successful in 3m25s
All checks were successful
Build / build (push) Successful in 3m25s
This commit is contained in:
parent
04ad0f0264
commit
098c8cb844
@ -10,11 +10,9 @@ namespace nostalgia::gfx {
|
||||
|
||||
MoveColorCommand::MoveColorCommand(
|
||||
Palette &pal,
|
||||
size_t const page,
|
||||
size_t const srcIdx,
|
||||
size_t const dstIdx) noexcept:
|
||||
m_pal(pal),
|
||||
m_page(page),
|
||||
m_srcIdx(srcIdx),
|
||||
m_dstIdx(dstIdx) {}
|
||||
|
||||
@ -34,10 +32,10 @@ ox::Error MoveColorCommand::undo() noexcept {
|
||||
|
||||
void MoveColorCommand::moveColor(
|
||||
size_t const srcIdx, size_t const dstIdx) noexcept {
|
||||
{
|
||||
auto const c = color(m_pal, m_page, srcIdx);
|
||||
std::ignore = colors(m_pal, m_page).erase(srcIdx);
|
||||
colors(m_pal, m_page).emplace(dstIdx, c);
|
||||
for (size_t page{}; page < m_pal.pages.size(); ++page) {
|
||||
auto const c = color(m_pal, page, srcIdx);
|
||||
std::ignore = colors(m_pal, page).erase(srcIdx);
|
||||
colors(m_pal, page).emplace(dstIdx, c);
|
||||
}
|
||||
{
|
||||
auto name = std::move(m_pal.colorNames[srcIdx]);
|
||||
|
@ -13,12 +13,11 @@ namespace nostalgia::gfx {
|
||||
class MoveColorCommand: public studio::UndoCommand {
|
||||
private:
|
||||
Palette &m_pal;
|
||||
size_t const m_page = 0;
|
||||
std::size_t const m_srcIdx = 0;
|
||||
std::size_t const m_dstIdx = 0;
|
||||
|
||||
public:
|
||||
MoveColorCommand(Palette &pal, size_t page, size_t srcIdx, size_t dstIdx) noexcept;
|
||||
MoveColorCommand(Palette &pal, size_t srcIdx, size_t dstIdx) noexcept;
|
||||
|
||||
~MoveColorCommand() noexcept override = default;
|
||||
|
||||
|
@ -175,7 +175,7 @@ void PaletteEditorImGui::drawColorsEditor() noexcept {
|
||||
if (ig::DragDropTarget const d; d) {
|
||||
auto const [src, err] = ig::getDragDropPayload<ColorDragDrop>();
|
||||
if (!err) {
|
||||
std::ignore = pushCommand<MoveColorCommand>(m_pal, m_page, src.i, i);
|
||||
std::ignore = pushCommand<MoveColorCommand>(m_pal, src.i, i);
|
||||
}
|
||||
}
|
||||
++i;
|
||||
|
Loading…
x
Reference in New Issue
Block a user