From 19b31ff31acdeca42db29b06344527ebf8ee208c Mon Sep 17 00:00:00 2001 From: David Capello Date: Tue, 14 Jun 2016 12:58:07 -0300 Subject: [PATCH] Fix UnlinkCel command to support layer groups --- src/app/commands/cmd_unlink_cel.cpp | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/src/app/commands/cmd_unlink_cel.cpp b/src/app/commands/cmd_unlink_cel.cpp index 274c4a11d..5a126bee8 100644 --- a/src/app/commands/cmd_unlink_cel.cpp +++ b/src/app/commands/cmd_unlink_cel.cpp @@ -16,7 +16,6 @@ #include "app/modules/gui.h" #include "app/transaction.h" #include "app/ui/status_bar.h" -#include "app/ui/timeline.h" #include "doc/cel.h" #include "doc/layer.h" #include "doc/sprite.h" @@ -53,22 +52,16 @@ void UnlinkCelCommand::onExecute(Context* context) { Transaction transaction(writer.context(), "Unlink Cel"); - // TODO the range of selected frames should be in doc::Site. - auto range = App::instance()->timeline()->range(); - if (range.enabled()) { - Sprite* sprite = writer.sprite(); - - for (LayerIndex layerIdx = range.layerBegin(); layerIdx <= range.layerEnd(); ++layerIdx) { - Layer* layer = sprite->indexToLayer(layerIdx); + const Site* site = writer.site(); + if (site->inTimeline() && + !site->selectedLayers().empty()) { + for (Layer* layer : site->selectedLayers()) { if (!layer->isImage()) continue; LayerImage* layerImage = static_cast(layer); - for (frame_t frame = range.frameEnd(), - begin = range.frameBegin()-1; - frame != begin; - --frame) { + for (frame_t frame : site->selectedFrames().reversed()) { Cel* cel = layerImage->cel(frame); if (cel && cel->links()) { if (layerImage->isEditable())