Added layer manager undo actions

This commit is contained in:
Yousef Khadadeh 2026-01-04 11:37:38 +03:00
parent 18c7dab0ff
commit 2dec0ab2c5
6 changed files with 374 additions and 17 deletions

View file

@ -13,17 +13,19 @@ class DrawingProgramLayer;
class World;
class DrawingProgramLayerManager;
struct DrawingProgramLayerListItemMetaInfoUndoData {
struct DrawingProgramLayerListItemMetaInfo {
std::string name;
float alpha = 1.0f;
SerializedBlendMode blendMode = SerializedBlendMode::SRC_OVER;
bool operator==(const DrawingProgramLayerListItemMetaInfo&) const = default;
};
struct DrawingProgramLayerListItemUndoData {
WorldUndoManager::UndoObjectID undoID;
DrawingProgramLayerListItemMetaInfoUndoData metaInfo;
DrawingProgramLayerListItemMetaInfo metaInfo;
std::optional<std::vector<DrawingProgramLayerListItemUndoData>> folderData;
std::optional<std::vector<DrawingProgramComponentUndoData>> layerData;
void scale_up(const WorldScalar& scaleUpAmount);
};
class DrawingProgramLayerListItem {
@ -59,6 +61,9 @@ class DrawingProgramLayerListItem {
void set_blend_mode(DrawingProgramLayerManager& layerMan, SerializedBlendMode newBlendMode) const;
SerializedBlendMode get_blend_mode() const;
void set_metainfo(DrawingProgramLayerManager& layerMan, const DrawingProgramLayerListItemMetaInfo& metaInfo);
DrawingProgramLayerListItemMetaInfo get_metainfo() const;
uint32_t get_component_count() const;
private:
static void write_constructor_func(const NetworkingObjects::NetObjTemporaryPtr<DrawingProgramLayerListItem>& o, cereal::PortableBinaryOutputArchive& a);