[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(
|
MoveColorCommand::MoveColorCommand(
|
||||||
Palette &pal,
|
Palette &pal,
|
||||||
size_t const page,
|
|
||||||
size_t const srcIdx,
|
size_t const srcIdx,
|
||||||
size_t const dstIdx) noexcept:
|
size_t const dstIdx) noexcept:
|
||||||
m_pal(pal),
|
m_pal(pal),
|
||||||
m_page(page),
|
|
||||||
m_srcIdx(srcIdx),
|
m_srcIdx(srcIdx),
|
||||||
m_dstIdx(dstIdx) {}
|
m_dstIdx(dstIdx) {}
|
||||||
|
|
||||||
@ -34,10 +32,10 @@ ox::Error MoveColorCommand::undo() noexcept {
|
|||||||
|
|
||||||
void MoveColorCommand::moveColor(
|
void MoveColorCommand::moveColor(
|
||||||
size_t const srcIdx, size_t const dstIdx) noexcept {
|
size_t const srcIdx, size_t const dstIdx) noexcept {
|
||||||
{
|
for (size_t page{}; page < m_pal.pages.size(); ++page) {
|
||||||
auto const c = color(m_pal, m_page, srcIdx);
|
auto const c = color(m_pal, page, srcIdx);
|
||||||
std::ignore = colors(m_pal, m_page).erase(srcIdx);
|
std::ignore = colors(m_pal, page).erase(srcIdx);
|
||||||
colors(m_pal, m_page).emplace(dstIdx, c);
|
colors(m_pal, page).emplace(dstIdx, c);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
auto name = std::move(m_pal.colorNames[srcIdx]);
|
auto name = std::move(m_pal.colorNames[srcIdx]);
|
||||||
|
@ -13,12 +13,11 @@ namespace nostalgia::gfx {
|
|||||||
class MoveColorCommand: public studio::UndoCommand {
|
class MoveColorCommand: public studio::UndoCommand {
|
||||||
private:
|
private:
|
||||||
Palette &m_pal;
|
Palette &m_pal;
|
||||||
size_t const m_page = 0;
|
|
||||||
std::size_t const m_srcIdx = 0;
|
std::size_t const m_srcIdx = 0;
|
||||||
std::size_t const m_dstIdx = 0;
|
std::size_t const m_dstIdx = 0;
|
||||||
|
|
||||||
public:
|
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;
|
~MoveColorCommand() noexcept override = default;
|
||||||
|
|
||||||
|
@ -175,7 +175,7 @@ void PaletteEditorImGui::drawColorsEditor() noexcept {
|
|||||||
if (ig::DragDropTarget const d; d) {
|
if (ig::DragDropTarget const d; d) {
|
||||||
auto const [src, err] = ig::getDragDropPayload<ColorDragDrop>();
|
auto const [src, err] = ig::getDragDropPayload<ColorDragDrop>();
|
||||||
if (!err) {
|
if (!err) {
|
||||||
std::ignore = pushCommand<MoveColorCommand>(m_pal, m_page, src.i, i);
|
std::ignore = pushCommand<MoveColorCommand>(m_pal, src.i, i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
++i;
|
++i;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user