[jasper/world/studio] Make UndoCommand undo/redo return ox::Error
All checks were successful
Build / build (push) Successful in 3m9s
All checks were successful
Build / build (push) Successful in 3m9s
This commit is contained in:
parent
815f23a0b5
commit
6eb78f90cf
@ -20,17 +20,18 @@ AddObjectSet::AddObjectSet(WorldDoc &doc, ox::UUID const&objSetUuid):
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddObjectSet::redo() noexcept {
|
ox::Error AddObjectSet::redo() noexcept {
|
||||||
m_doc.objSets.insert(m_insertIdx, {
|
m_doc.objSets.insert(m_insertIdx, {
|
||||||
.path = std::move(m_path),
|
.path = std::move(m_path),
|
||||||
.id = ++m_doc.objSetIdIdx,
|
.id = ++m_doc.objSetIdIdx,
|
||||||
});
|
});
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddObjectSet::undo() noexcept {
|
ox::Error AddObjectSet::undo() noexcept {
|
||||||
m_path = std::move(m_doc.objSets[m_insertIdx].path);
|
m_path = std::move(m_doc.objSets[m_insertIdx].path);
|
||||||
--m_doc.objSetIdIdx;
|
--m_doc.objSetIdIdx;
|
||||||
std::ignore = m_doc.objSets.erase(m_insertIdx);
|
return m_doc.objSets.erase(m_insertIdx).error;
|
||||||
}
|
}
|
||||||
|
|
||||||
int AddObjectSet::commandId() const noexcept {
|
int AddObjectSet::commandId() const noexcept {
|
||||||
@ -43,13 +44,14 @@ RmObjectSet::RmObjectSet(WorldDoc &doc, size_t idx):
|
|||||||
m_idx(idx) {
|
m_idx(idx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void RmObjectSet::redo() noexcept {
|
ox::Error RmObjectSet::redo() noexcept {
|
||||||
m_entry = std::move(m_doc.objSets[m_idx]);
|
m_entry = std::move(m_doc.objSets[m_idx]);
|
||||||
std::ignore = m_doc.objSets.erase(m_idx);
|
return m_doc.objSets.erase(m_idx).error;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RmObjectSet::undo() noexcept {
|
ox::Error RmObjectSet::undo() noexcept {
|
||||||
m_doc.objSets.emplace(m_idx, std::move(m_entry));
|
m_doc.objSets.emplace(m_idx, std::move(m_entry));
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
int RmObjectSet::commandId() const noexcept {
|
int RmObjectSet::commandId() const noexcept {
|
||||||
|
@ -19,8 +19,8 @@ class AddObjectSet: public studio::UndoCommand {
|
|||||||
ox::String m_path;
|
ox::String m_path;
|
||||||
public:
|
public:
|
||||||
AddObjectSet(WorldDoc &doc, ox::UUID const&objSetUuid);
|
AddObjectSet(WorldDoc &doc, ox::UUID const&objSetUuid);
|
||||||
void redo() noexcept override;
|
ox::Error redo() noexcept override;
|
||||||
void undo() noexcept override;
|
ox::Error undo() noexcept override;
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
int commandId() const noexcept override;
|
int commandId() const noexcept override;
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
@ -36,8 +36,8 @@ class RmObjectSet: public studio::UndoCommand {
|
|||||||
ObjectSetEntry m_entry;
|
ObjectSetEntry m_entry;
|
||||||
public:
|
public:
|
||||||
RmObjectSet(WorldDoc &doc, size_t idx);
|
RmObjectSet(WorldDoc &doc, size_t idx);
|
||||||
void redo() noexcept override;
|
ox::Error redo() noexcept override;
|
||||||
void undo() noexcept override;
|
ox::Error undo() noexcept override;
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
int commandId() const noexcept override;
|
int commandId() const noexcept override;
|
||||||
};
|
};
|
||||||
|
@ -18,16 +18,18 @@ EditWorldSizeCommand::EditWorldSizeCommand(
|
|||||||
m_oldSize(m_doc.columns, m_doc.rows),
|
m_oldSize(m_doc.columns, m_doc.rows),
|
||||||
m_newSize(size) {}
|
m_newSize(size) {}
|
||||||
|
|
||||||
void EditWorldSizeCommand::redo() noexcept {
|
ox::Error EditWorldSizeCommand::redo() noexcept {
|
||||||
m_oldMap = m_doc.tiles;
|
m_oldMap = m_doc.tiles;
|
||||||
resize(m_doc, m_newSize);
|
resize(m_doc, m_newSize);
|
||||||
oxLogError(loadWorldStatic(m_objCache, m_doc).moveTo(m_worldStatic));
|
oxReturnError(loadWorldStatic(m_objCache, m_doc).moveTo(m_worldStatic));
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditWorldSizeCommand::undo() noexcept {
|
ox::Error EditWorldSizeCommand::undo() noexcept {
|
||||||
resize(m_doc, m_oldSize);
|
resize(m_doc, m_oldSize);
|
||||||
m_doc.tiles = std::move(m_oldMap);
|
m_doc.tiles = std::move(m_oldMap);
|
||||||
oxLogError(loadWorldStatic(m_objCache, m_doc).moveTo(m_worldStatic));
|
oxReturnError(loadWorldStatic(m_objCache, m_doc).moveTo(m_worldStatic));
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
bool EditWorldSizeCommand::mergeWith(studio::UndoCommand const&cmd) noexcept {
|
bool EditWorldSizeCommand::mergeWith(studio::UndoCommand const&cmd) noexcept {
|
||||||
|
@ -27,8 +27,8 @@ class EditWorldSizeCommand: public studio::UndoCommand {
|
|||||||
WorldDoc &doc,
|
WorldDoc &doc,
|
||||||
WorldStatic &worldStatic,
|
WorldStatic &worldStatic,
|
||||||
ox::Size const&size);
|
ox::Size const&size);
|
||||||
void redo() noexcept override;
|
ox::Error redo() noexcept override;
|
||||||
void undo() noexcept override;
|
ox::Error undo() noexcept override;
|
||||||
bool mergeWith(studio::UndoCommand const&cmd) noexcept override;
|
bool mergeWith(studio::UndoCommand const&cmd) noexcept override;
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
int commandId() const noexcept override;
|
int commandId() const noexcept override;
|
||||||
|
@ -27,12 +27,14 @@ ModifyTilesCommand::ModifyTilesCommand(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ModifyTilesCommand::redo() noexcept {
|
ox::Error ModifyTilesCommand::redo() noexcept {
|
||||||
swap();
|
swap();
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
void ModifyTilesCommand::undo() noexcept {
|
ox::Error ModifyTilesCommand::undo() noexcept {
|
||||||
swap();
|
swap();
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
int ModifyTilesCommand::commandId() const noexcept {
|
int ModifyTilesCommand::commandId() const noexcept {
|
||||||
|
@ -29,8 +29,8 @@ class ModifyTilesCommand: public studio::UndoCommand {
|
|||||||
WorldStatic &worldStatic,
|
WorldStatic &worldStatic,
|
||||||
ObjectCache &objCache,
|
ObjectCache &objCache,
|
||||||
ox::Vector<Mod> mods);
|
ox::Vector<Mod> mods);
|
||||||
void redo() noexcept override;
|
ox::Error redo() noexcept override;
|
||||||
void undo() noexcept override;
|
ox::Error undo() noexcept override;
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
int commandId() const noexcept override;
|
int commandId() const noexcept override;
|
||||||
private:
|
private:
|
||||||
|
@ -19,15 +19,17 @@ AddObject::AddObject(WorldObjectSet &doc) noexcept:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddObject::redo() noexcept {
|
ox::Error AddObject::redo() noexcept {
|
||||||
++m_doc.objIdIdx;
|
++m_doc.objIdIdx;
|
||||||
m_doc.objects.emplace(m_insertIdx, std::move(m_obj));
|
m_doc.objects.emplace(m_insertIdx, std::move(m_obj));
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddObject::undo() noexcept {
|
ox::Error AddObject::undo() noexcept {
|
||||||
m_obj = std::move(m_doc.objects[m_insertIdx]);
|
m_obj = std::move(m_doc.objects[m_insertIdx]);
|
||||||
std::ignore = m_doc.objects.erase(m_insertIdx);
|
oxReturnError(m_doc.objects.erase(m_insertIdx));
|
||||||
--m_doc.objIdIdx;
|
--m_doc.objIdIdx;
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
int AddObject::commandId() const noexcept {
|
int AddObject::commandId() const noexcept {
|
||||||
|
@ -19,8 +19,8 @@ class AddObject: public studio::UndoCommand {
|
|||||||
WorldObject m_obj{};
|
WorldObject m_obj{};
|
||||||
public:
|
public:
|
||||||
AddObject(WorldObjectSet &doc) noexcept;
|
AddObject(WorldObjectSet &doc) noexcept;
|
||||||
void redo() noexcept override;
|
ox::Error redo() noexcept override;
|
||||||
void undo() noexcept override;
|
ox::Error undo() noexcept override;
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
int commandId() const noexcept override;
|
int commandId() const noexcept override;
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
|
@ -14,20 +14,21 @@ AddPalette::AddPalette(WorldObjectSet &doc, ox::FileAddress palAddr) noexcept:
|
|||||||
m_palAddr(std::move(palAddr)) {
|
m_palAddr(std::move(palAddr)) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddPalette::redo() noexcept {
|
ox::Error AddPalette::redo() noexcept {
|
||||||
m_doc.palettes.emplace_back(PaletteCycle{
|
m_doc.palettes.emplace_back(PaletteCycle{
|
||||||
.palette = m_palAddr
|
.palette = m_palAddr
|
||||||
});
|
});
|
||||||
std::sort(m_doc.palettes.begin(), m_doc.palettes.end(), [](PaletteCycle const&a, PaletteCycle const&b) {
|
std::sort(m_doc.palettes.begin(), m_doc.palettes.end(), [](PaletteCycle const&a, PaletteCycle const&b) {
|
||||||
return a.palette.getPath().or_value("") < b.palette.getPath().or_value("");
|
return a.palette.getPath().or_value("") < b.palette.getPath().or_value("");
|
||||||
});
|
});
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddPalette::undo() noexcept {
|
ox::Error AddPalette::undo() noexcept {
|
||||||
auto const idx = std::find_if(m_doc.palettes.begin(), m_doc.palettes.end(), [this](PaletteCycle const&v) {
|
auto const idx = std::find_if(m_doc.palettes.begin(), m_doc.palettes.end(), [this](PaletteCycle const&v) {
|
||||||
return v.palette == m_palAddr;
|
return v.palette == m_palAddr;
|
||||||
});
|
});
|
||||||
std::ignore = m_doc.palettes.erase(idx);
|
return m_doc.palettes.erase(idx).error;
|
||||||
}
|
}
|
||||||
|
|
||||||
int AddPalette::commandId() const noexcept {
|
int AddPalette::commandId() const noexcept {
|
||||||
|
@ -18,8 +18,8 @@ class AddPalette: public studio::UndoCommand {
|
|||||||
ox::FileAddress m_palAddr;
|
ox::FileAddress m_palAddr;
|
||||||
public:
|
public:
|
||||||
AddPalette(WorldObjectSet &doc, ox::FileAddress palAddr) noexcept;
|
AddPalette(WorldObjectSet &doc, ox::FileAddress palAddr) noexcept;
|
||||||
void redo() noexcept override;
|
ox::Error redo() noexcept override;
|
||||||
void undo() noexcept override;
|
ox::Error undo() noexcept override;
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
int commandId() const noexcept override;
|
int commandId() const noexcept override;
|
||||||
};
|
};
|
||||||
|
@ -19,16 +19,18 @@ ChangeTileSheet::ChangeTileSheet(
|
|||||||
m_selectedTilesheetIdx(selectedTilesheetIdx) {
|
m_selectedTilesheetIdx(selectedTilesheetIdx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void ChangeTileSheet::redo() noexcept {
|
ox::Error ChangeTileSheet::redo() noexcept {
|
||||||
m_oldVal = std::move(m_doc.tilesheet);
|
m_oldVal = std::move(m_doc.tilesheet);
|
||||||
m_doc.tilesheet = std::move(m_newVal);
|
m_doc.tilesheet = std::move(m_newVal);
|
||||||
m_selectedTilesheetIdx = m_newIdx;
|
m_selectedTilesheetIdx = m_newIdx;
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
void ChangeTileSheet::undo() noexcept {
|
ox::Error ChangeTileSheet::undo() noexcept {
|
||||||
m_newVal = std::move(m_doc.tilesheet);
|
m_newVal = std::move(m_doc.tilesheet);
|
||||||
m_doc.tilesheet = std::move(m_oldVal);
|
m_doc.tilesheet = std::move(m_oldVal);
|
||||||
m_selectedTilesheetIdx = m_oldIdx;
|
m_selectedTilesheetIdx = m_oldIdx;
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
int ChangeTileSheet::commandId() const noexcept {
|
int ChangeTileSheet::commandId() const noexcept {
|
||||||
|
@ -26,8 +26,8 @@ class ChangeTileSheet: public studio::UndoCommand {
|
|||||||
ox::FileAddress newVal,
|
ox::FileAddress newVal,
|
||||||
size_t newIdx,
|
size_t newIdx,
|
||||||
size_t &selectedTilesheetIdx) noexcept;
|
size_t &selectedTilesheetIdx) noexcept;
|
||||||
void redo() noexcept override;
|
ox::Error redo() noexcept override;
|
||||||
void undo() noexcept override;
|
ox::Error undo() noexcept override;
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
int commandId() const noexcept override;
|
int commandId() const noexcept override;
|
||||||
};
|
};
|
||||||
|
@ -16,15 +16,17 @@ EditObjectName::EditObjectName(WorldObjectSet &doc, size_t objIdx, ox::String ne
|
|||||||
m_newVal(std::move(newName)) {
|
m_newVal(std::move(newName)) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditObjectName::redo() noexcept {
|
ox::Error EditObjectName::redo() noexcept {
|
||||||
auto &obj = m_doc.objects[m_objIdx];
|
auto &obj = m_doc.objects[m_objIdx];
|
||||||
obj.name = std::move(m_newVal);
|
obj.name = std::move(m_newVal);
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditObjectName::undo() noexcept {
|
ox::Error EditObjectName::undo() noexcept {
|
||||||
auto &obj = m_doc.objects[m_objIdx];
|
auto &obj = m_doc.objects[m_objIdx];
|
||||||
m_newVal = std::move(obj.name);
|
m_newVal = std::move(obj.name);
|
||||||
obj.name = m_oldVal;
|
obj.name = m_oldVal;
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
int EditObjectName::commandId() const noexcept {
|
int EditObjectName::commandId() const noexcept {
|
||||||
@ -51,14 +53,16 @@ EditObjectSubSheet::EditObjectSubSheet(
|
|||||||
m_oldVal(m_doc.objects[m_objIdx].subsheetId) {
|
m_oldVal(m_doc.objects[m_objIdx].subsheetId) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditObjectSubSheet::redo() noexcept {
|
ox::Error EditObjectSubSheet::redo() noexcept {
|
||||||
auto &obj = m_doc.objects[m_objIdx];
|
auto &obj = m_doc.objects[m_objIdx];
|
||||||
obj.subsheetId = m_newVal;
|
obj.subsheetId = m_newVal;
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditObjectSubSheet::undo() noexcept {
|
ox::Error EditObjectSubSheet::undo() noexcept {
|
||||||
auto &obj = m_doc.objects[m_objIdx];
|
auto &obj = m_doc.objects[m_objIdx];
|
||||||
obj.subsheetId = m_oldVal;
|
obj.subsheetId = m_oldVal;
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
int EditObjectSubSheet::commandId() const noexcept {
|
int EditObjectSubSheet::commandId() const noexcept {
|
||||||
@ -73,14 +77,16 @@ EditObjectPalette::EditObjectPalette(WorldObjectSet &doc, size_t objIdx, uint16_
|
|||||||
m_newVal(palBank) {
|
m_newVal(palBank) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditObjectPalette::redo() noexcept {
|
ox::Error EditObjectPalette::redo() noexcept {
|
||||||
auto &obj = m_doc.objects[m_objIdx];
|
auto &obj = m_doc.objects[m_objIdx];
|
||||||
obj.palBank = m_newVal;
|
obj.palBank = m_newVal;
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditObjectPalette::undo() noexcept {
|
ox::Error EditObjectPalette::undo() noexcept {
|
||||||
auto &obj = m_doc.objects[m_objIdx];
|
auto &obj = m_doc.objects[m_objIdx];
|
||||||
obj.palBank = m_oldVal;
|
obj.palBank = m_oldVal;
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
@ -96,14 +102,16 @@ EditObjectCollisionMap::EditObjectCollisionMap(WorldObjectSet &doc, size_t objId
|
|||||||
m_newVal(colMap) {
|
m_newVal(colMap) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditObjectCollisionMap::redo() noexcept {
|
ox::Error EditObjectCollisionMap::redo() noexcept {
|
||||||
auto &obj = m_doc.objects[m_objIdx];
|
auto &obj = m_doc.objects[m_objIdx];
|
||||||
obj.collisionMap = m_newVal;
|
obj.collisionMap = m_newVal;
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditObjectCollisionMap::undo() noexcept {
|
ox::Error EditObjectCollisionMap::undo() noexcept {
|
||||||
auto &obj = m_doc.objects[m_objIdx];
|
auto &obj = m_doc.objects[m_objIdx];
|
||||||
obj.collisionMap = m_oldVal;
|
obj.collisionMap = m_oldVal;
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
|
@ -20,8 +20,8 @@ class EditObjectName: public studio::UndoCommand {
|
|||||||
ox::String m_newVal{};
|
ox::String m_newVal{};
|
||||||
public:
|
public:
|
||||||
EditObjectName(WorldObjectSet &doc, size_t objIdx, ox::String newName) noexcept;
|
EditObjectName(WorldObjectSet &doc, size_t objIdx, ox::String newName) noexcept;
|
||||||
void redo() noexcept override;
|
ox::Error redo() noexcept override;
|
||||||
void undo() noexcept override;
|
ox::Error undo() noexcept override;
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
int commandId() const noexcept override;
|
int commandId() const noexcept override;
|
||||||
bool mergeWith(UndoCommand const&cmd) noexcept override;
|
bool mergeWith(UndoCommand const&cmd) noexcept override;
|
||||||
@ -35,8 +35,8 @@ class EditObjectSubSheet: public studio::UndoCommand {
|
|||||||
ncore::SubSheetId const m_oldVal{};
|
ncore::SubSheetId const m_oldVal{};
|
||||||
public:
|
public:
|
||||||
EditObjectSubSheet(WorldObjectSet &doc, size_t objIdx, ncore::SubSheetId subSheetId) noexcept;
|
EditObjectSubSheet(WorldObjectSet &doc, size_t objIdx, ncore::SubSheetId subSheetId) noexcept;
|
||||||
void redo() noexcept override;
|
ox::Error redo() noexcept override;
|
||||||
void undo() noexcept override;
|
ox::Error undo() noexcept override;
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
int commandId() const noexcept override;
|
int commandId() const noexcept override;
|
||||||
};
|
};
|
||||||
@ -49,8 +49,8 @@ class EditObjectPalette: public studio::UndoCommand {
|
|||||||
uint16_t const m_newVal{};
|
uint16_t const m_newVal{};
|
||||||
public:
|
public:
|
||||||
EditObjectPalette(WorldObjectSet &doc, size_t objIdx, uint16_t palBank) noexcept;
|
EditObjectPalette(WorldObjectSet &doc, size_t objIdx, uint16_t palBank) noexcept;
|
||||||
void redo() noexcept override;
|
ox::Error redo() noexcept override;
|
||||||
void undo() noexcept override;
|
ox::Error undo() noexcept override;
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
int commandId() const noexcept override;
|
int commandId() const noexcept override;
|
||||||
};
|
};
|
||||||
@ -63,8 +63,8 @@ class EditObjectCollisionMap: public studio::UndoCommand {
|
|||||||
CollisionMap const m_newVal{};
|
CollisionMap const m_newVal{};
|
||||||
public:
|
public:
|
||||||
EditObjectCollisionMap(WorldObjectSet &doc, size_t objIdx, CollisionMap colMap) noexcept;
|
EditObjectCollisionMap(WorldObjectSet &doc, size_t objIdx, CollisionMap colMap) noexcept;
|
||||||
void redo() noexcept override;
|
ox::Error redo() noexcept override;
|
||||||
void undo() noexcept override;
|
ox::Error undo() noexcept override;
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
int commandId() const noexcept override;
|
int commandId() const noexcept override;
|
||||||
};
|
};
|
||||||
|
@ -13,12 +13,14 @@ EditPalette::EditPalette(PaletteCycle &doc, uint16_t interval) noexcept:
|
|||||||
m_newVal(interval) {
|
m_newVal(interval) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditPalette::redo() noexcept {
|
ox::Error EditPalette::redo() noexcept {
|
||||||
m_doc.intervalMs = m_newVal;
|
m_doc.intervalMs = m_newVal;
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditPalette::undo() noexcept {
|
ox::Error EditPalette::undo() noexcept {
|
||||||
m_doc.intervalMs = m_oldVal;
|
m_doc.intervalMs = m_oldVal;
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
int EditPalette::commandId() const noexcept {
|
int EditPalette::commandId() const noexcept {
|
||||||
|
@ -19,8 +19,8 @@ class EditPalette: public studio::UndoCommand {
|
|||||||
uint16_t const m_newVal{};
|
uint16_t const m_newVal{};
|
||||||
public:
|
public:
|
||||||
EditPalette(PaletteCycle &doc, uint16_t interval) noexcept;
|
EditPalette(PaletteCycle &doc, uint16_t interval) noexcept;
|
||||||
void redo() noexcept override;
|
ox::Error redo() noexcept override;
|
||||||
void undo() noexcept override;
|
ox::Error undo() noexcept override;
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
int commandId() const noexcept override;
|
int commandId() const noexcept override;
|
||||||
};
|
};
|
||||||
|
@ -12,13 +12,14 @@ RmObject::RmObject(WorldObjectSet &doc, size_t const rmIdx) noexcept:
|
|||||||
m_rmIdx(rmIdx) {
|
m_rmIdx(rmIdx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void RmObject::redo() noexcept {
|
ox::Error RmObject::redo() noexcept {
|
||||||
m_obj = std::move(m_doc.objects[m_rmIdx]);
|
m_obj = std::move(m_doc.objects[m_rmIdx]);
|
||||||
std::ignore = m_doc.objects.erase(m_rmIdx);
|
return m_doc.objects.erase(m_rmIdx).error;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RmObject::undo() noexcept {
|
ox::Error RmObject::undo() noexcept {
|
||||||
m_doc.objects.emplace(m_rmIdx, std::move(m_obj));
|
m_doc.objects.emplace(m_rmIdx, std::move(m_obj));
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
int RmObject::commandId() const noexcept {
|
int RmObject::commandId() const noexcept {
|
||||||
|
@ -19,8 +19,8 @@ class RmObject: public studio::UndoCommand {
|
|||||||
WorldObject m_obj{};
|
WorldObject m_obj{};
|
||||||
public:
|
public:
|
||||||
RmObject(WorldObjectSet &doc, size_t rmIdx) noexcept;
|
RmObject(WorldObjectSet &doc, size_t rmIdx) noexcept;
|
||||||
void redo() noexcept override;
|
ox::Error redo() noexcept override;
|
||||||
void undo() noexcept override;
|
ox::Error undo() noexcept override;
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
int commandId() const noexcept override;
|
int commandId() const noexcept override;
|
||||||
};
|
};
|
||||||
|
@ -14,16 +14,18 @@ RmPalette::RmPalette(WorldObjectSet &doc, size_t rmIdx) noexcept:
|
|||||||
m_rmIdx(rmIdx) {
|
m_rmIdx(rmIdx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void RmPalette::redo() noexcept {
|
ox::Error RmPalette::redo() noexcept {
|
||||||
m_pal = std::move(m_doc.palettes[m_rmIdx]);
|
m_pal = std::move(m_doc.palettes[m_rmIdx]);
|
||||||
std::ignore = m_doc.palettes.erase(m_rmIdx);
|
std::ignore = m_doc.palettes.erase(m_rmIdx);
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
void RmPalette::undo() noexcept {
|
ox::Error RmPalette::undo() noexcept {
|
||||||
m_doc.palettes.emplace_back(std::move(m_pal));
|
m_doc.palettes.emplace_back(std::move(m_pal));
|
||||||
std::sort(m_doc.palettes.begin(), m_doc.palettes.end(), [](PaletteCycle const&a, PaletteCycle const&b) {
|
std::sort(m_doc.palettes.begin(), m_doc.palettes.end(), [](PaletteCycle const&a, PaletteCycle const&b) {
|
||||||
return a.palette.getPath().or_value("") < b.palette.getPath().or_value("");
|
return a.palette.getPath().or_value("") < b.palette.getPath().or_value("");
|
||||||
});
|
});
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
int RmPalette::commandId() const noexcept {
|
int RmPalette::commandId() const noexcept {
|
||||||
|
@ -19,8 +19,8 @@ class RmPalette: public studio::UndoCommand {
|
|||||||
size_t const m_rmIdx = 0;
|
size_t const m_rmIdx = 0;
|
||||||
public:
|
public:
|
||||||
RmPalette(WorldObjectSet &doc, size_t rmIdx) noexcept;
|
RmPalette(WorldObjectSet &doc, size_t rmIdx) noexcept;
|
||||||
void redo() noexcept override;
|
ox::Error redo() noexcept override;
|
||||||
void undo() noexcept override;
|
ox::Error undo() noexcept override;
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
int commandId() const noexcept override;
|
int commandId() const noexcept override;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user