Fix data recovery process for collapsed layer groups

This commit is contained in:
David Capello 2016-11-29 12:36:47 -03:00
parent f57c298ad6
commit 5b5764e40e

View File

@ -72,20 +72,37 @@ public:
if (!saveObject("frtag", frtag, &Writer::writeFrameTag)) if (!saveObject("frtag", frtag, &Writer::writeFrameTag))
return false; return false;
for (Cel* cel : spr->uniqueCels()) { // Get all layers (visible, hidden, subchildren, etc.)
if (!saveObject("img", cel->image(), &Writer::writeImage)) LayerList layers = spr->allLayers();
return false;
if (!saveObject("celdata", cel->data(), &Writer::writeCelData)) // Save original cel data (skip links)
return false; for (Layer* lay : layers) {
CelList cels;
lay->getCels(cels);
for (Cel* cel : cels) {
if (cel->link()) // Skip link
continue;
if (!saveObject("img", cel->image(), &Writer::writeImage))
return false;
if (!saveObject("celdata", cel->data(), &Writer::writeCelData))
return false;
}
} }
for (Cel* cel : spr->cels()) // Save all cels (original and links)
if (!saveObject("cel", cel, &Writer::writeCel)) for (Layer* lay : layers) {
return false; CelList cels;
lay->getCels(cels);
for (Cel* cel : cels)
if (!saveObject("cel", cel, &Writer::writeCel))
return false;
}
// Save all layers (top level, groups, children, etc.) // Save all layers (top level, groups, children, etc.)
LayerList layers = spr->allLayers();
for (Layer* lay : layers) for (Layer* lay : layers)
if (!saveObject("lay", lay, &Writer::writeLayerStructure)) if (!saveObject("lay", lay, &Writer::writeLayerStructure))
return false; return false;