Export all groups (even collapsed ones) by default in JSON metadata (fix #2484)

This commit is contained in:
David Capello 2020-08-17 17:14:12 -03:00
parent 88f9fbebec
commit b355f34a70
8 changed files with 25 additions and 21 deletions

View File

@ -1,5 +1,5 @@
// Aseprite
// Copyright (C) 2019 Igara Studio S.A.
// Copyright (C) 2019-2020 Igara Studio S.A.
// Copyright (C) 2001-2018 David Capello
//
// This program is distributed under the terms of
@ -61,7 +61,7 @@ void FlattenLayers::onExecute()
backgroundIsSel = true;
}
LayerList list = layers.toLayerList();
LayerList list = layers.toBrowsableLayerList();
if (list.empty())
return; // Do nothing

View File

@ -275,7 +275,7 @@ void NewLayerCommand::onExecute(Context* context)
}
if (sameParents == selLayers.size()) {
for (Layer* newChild : selLayers.toLayerList()) {
for (Layer* newChild : selLayers.toBrowsableLayerList()) {
tx(
new cmd::MoveLayer(newChild, layer,
static_cast<LayerGroup*>(layer)->lastLayer()));

View File

@ -1365,10 +1365,14 @@ void DocExporter::createDataFile(const Samples& samples,
Layer* root = sprite->root();
LayerList layers;
if (item.selLayers)
layers = item.selLayers->toLayerList();
else
if (item.selLayers) {
// Select all layers (not only browseable ones)
layers = item.selLayers->toAllLayersList();
}
else {
// Select all visible layers by default
layers = sprite->allVisibleLayers();
}
for (Layer* layer : layers) {
// If this layer is inside a group, check that the group will

View File

@ -275,8 +275,8 @@ static DocRange drop_range_op(
if (op == Move) {
SelectedLayers srcSelLayers = from.selectedLayers();
SelectedLayers dstSelLayers = to.selectedLayers();
LayerList srcLayers = srcSelLayers.toLayerList();
LayerList dstLayers = dstSelLayers.toLayerList();
LayerList srcLayers = srcSelLayers.toBrowsableLayerList();
LayerList dstLayers = dstSelLayers.toBrowsableLayerList();
ASSERT(!srcLayers.empty());
if (srcLayers.empty())
return from;
@ -347,8 +347,8 @@ static DocRange drop_range_op(
if (allLayers.empty())
break;
LayerList srcLayers = from.selectedLayers().toLayerList();
LayerList dstLayers = to.selectedLayers().toLayerList();
LayerList srcLayers = from.selectedLayers().toBrowsableLayerList();
LayerList dstLayers = to.selectedLayers().toBrowsableLayerList();
if (srcLayers.empty() ||
dstLayers.empty())
throw std::invalid_argument("You need to specify a non-empty cels range");
@ -394,8 +394,8 @@ static DocRange drop_range_op(
if (allLayers.empty())
break;
LayerList srcLayers = from.selectedLayers().toLayerList();
LayerList dstLayers = to.selectedLayers().toLayerList();
LayerList srcLayers = from.selectedLayers().toBrowsableLayerList();
LayerList dstLayers = to.selectedLayers().toBrowsableLayerList();
ASSERT(!srcLayers.empty());
switch (op) {
@ -502,7 +502,7 @@ void reverse_frames(Doc* doc, const DocRange& range)
case DocRange::kCels:
frameBegin = range.firstFrame();
frameEnd = range.lastFrame();
layers = range.selectedLayers().toLayerList();
layers = range.selectedLayers().toBrowsableLayerList();
swapCels = true;
break;
case DocRange::kFrames:
@ -514,7 +514,7 @@ void reverse_frames(Doc* doc, const DocRange& range)
case DocRange::kLayers:
frameBegin = frame_t(0);
frameEnd = sprite->totalFrames()-1;
layers = range.selectedLayers().toLayerList();
layers = range.selectedLayers().toBrowsableLayerList();
swapCels = true;
break;
}

View File

@ -512,7 +512,7 @@ void Timeline::prepareToMoveRange()
ASSERT(m_range.enabled());
layer_t i = 0;
for (auto layer : m_range.selectedLayers().toLayerList()) {
for (auto layer : m_range.selectedLayers().toBrowsableLayerList()) {
if (layer == m_layer)
break;
++i;
@ -539,7 +539,7 @@ void Timeline::moveRange(const Range& range)
m_range = range;
layer_t i = 0;
for (auto layer : range.selectedLayers().toLayerList()) {
for (auto layer : range.selectedLayers().toBrowsableLayerList()) {
if (i == m_moveRangeData.activeRelativeLayer) {
setLayer(layer);
break;

View File

@ -481,8 +481,8 @@ void paste(Context* ctx, const bool interactive)
while (dstFrameFirst+srcRange.frames() > dstSpr->totalFrames())
api.addFrame(dstSpr, dstSpr->totalFrames());
auto srcLayers = srcRange.selectedLayers().toLayerList();
auto dstLayers = dstRange.selectedLayers().toLayerList();
auto srcLayers = srcRange.selectedLayers().toBrowsableLayerList();
auto dstLayers = dstRange.selectedLayers().toBrowsableLayerList();
auto srcIt = srcLayers.begin();
auto dstIt = dstLayers.begin();
@ -585,7 +585,7 @@ void paste(Context* ctx, const bool interactive)
// copy the parent.
SelectedLayers srcLayersSet = srcRange.selectedLayers();
srcLayersSet.removeChildrenIfParentIsSelected();
LayerList srcLayers = srcLayersSet.toLayerList();
LayerList srcLayers = srcLayersSet.toBrowsableLayerList();
// Expand frames of dstDoc if it's needed.
frame_t maxFrame = 0;

View File

@ -79,7 +79,7 @@ LayerList SelectedLayers::toAllLayersList() const
return output;
}
LayerList SelectedLayers::toLayerList() const
LayerList SelectedLayers::toBrowsableLayerList() const
{
LayerList output;

View File

@ -39,7 +39,7 @@ namespace doc {
bool contains(const Layer* layer) const;
bool hasSameParent() const;
LayerList toLayerList() const;
LayerList toBrowsableLayerList() const;
LayerList toAllLayersList() const;
void removeChildrenIfParentIsSelected();