Started work on layers undo/redo, and implemented undo action for moving bookmark list items

This commit is contained in:
Yousef Khadadeh 2026-01-03 19:05:00 +03:00
parent 974985ffcd
commit cba5c3abc9
12 changed files with 199 additions and 30 deletions

View file

@ -13,23 +13,25 @@ class DrawingProgramLayer;
class World;
class DrawingProgramLayerManager;
struct DrawingProgramLayerListItemMetaInfoInitData {
struct DrawingProgramLayerListItemMetaInfoUndoData {
std::string name;
float alpha = 1.0f;
SerializedBlendMode blendMode = SerializedBlendMode::SRC_OVER;
};
struct DrawingProgramLayerListItemInitData {
DrawingProgramLayerListItemMetaInfoInitData metaInfo;
std::optional<DrawingProgramLayerFolderInitData> folderData;
std::optional<DrawingProgramLayerInitData> layerData;
struct DrawingProgramLayerListItemUndoData {
WorldUndoManager::UndoObjectID undoID;
DrawingProgramLayerListItemMetaInfoUndoData metaInfo;
std::optional<std::vector<DrawingProgramLayerListItemUndoData>> folderData;
std::optional<std::vector<DrawingProgramComponentUndoData>> layerData;
};
class DrawingProgramLayerListItem {
public:
DrawingProgramLayerListItem();
DrawingProgramLayerListItem(NetworkingObjects::NetObjManager& netObjMan, const std::string& initName, bool isFolder);
DrawingProgramLayerListItem(NetworkingObjects::NetObjManager& netObjMan, const DrawingProgramLayerListItemInitData& initData);
DrawingProgramLayerListItem(World& w, const DrawingProgramLayerListItemUndoData& undoData);
DrawingProgramLayerListItemUndoData get_undo_data(WorldUndoManager& u) const;
bool is_folder() const;
DrawingProgramLayerFolder& get_folder() const;
DrawingProgramLayer& get_layer() const;