mirror of https://github.com/aseprite/aseprite.git
Merge f6b23dc4e8 into 107e846911
This commit is contained in:
commit
d3a05db5d2
|
|
@ -51,7 +51,7 @@ void DuplicateLayerCommand::onExecute(Context* context)
|
|||
Tx tx(writer, "Layer Duplication");
|
||||
LayerImage* sourceLayer = static_cast<LayerImage*>(writer.layer());
|
||||
DocApi api = document->getApi(tx);
|
||||
api.duplicateLayerAfter(sourceLayer, sourceLayer->parent(), sourceLayer, " Copy");
|
||||
api.duplicateLayerAfter(sourceLayer, sourceLayer->parent(), sourceLayer);
|
||||
tx.commit();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
#include "app/commands/new_params.h"
|
||||
#include "app/commands/params.h"
|
||||
#include "app/context_access.h"
|
||||
#include "app/i18n/strings.h"
|
||||
#include "app/ini_file.h"
|
||||
#include "app/ui_context.h"
|
||||
#include "base/fs.h"
|
||||
|
|
@ -64,7 +65,8 @@ void DuplicateSpriteCommand::onExecute(Context* context)
|
|||
|
||||
std::string duplicateFn = params().filename.isSet() ?
|
||||
params().filename() :
|
||||
base::get_file_title(fn) + " Copy" + (!ext.empty() ? "." + ext : "");
|
||||
Strings::general_copy_of(base::get_file_title(fn)) +
|
||||
(!ext.empty() ? "." + ext : "");
|
||||
|
||||
bool flatten = params().flatten.isSet() ? params().flatten() :
|
||||
get_config_bool("DuplicateSprite", "Flatten", false);
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@
|
|||
#include "app/context.h"
|
||||
#include "app/doc.h"
|
||||
#include "app/doc_undo.h"
|
||||
#include "app/i18n/strings.h"
|
||||
#include "app/pref/preferences.h"
|
||||
#include "app/snap_to_grid.h"
|
||||
#include "app/transaction.h"
|
||||
|
|
@ -725,29 +726,23 @@ Layer* DocApi::copyLayerWithSprite(doc::Layer* layer, doc::Sprite* sprite)
|
|||
return clone.release();
|
||||
}
|
||||
|
||||
Layer* DocApi::duplicateLayerAfter(Layer* sourceLayer,
|
||||
LayerGroup* parent,
|
||||
Layer* afterLayer,
|
||||
const std::string& nameSuffix)
|
||||
Layer* DocApi::duplicateLayerAfter(Layer* sourceLayer, LayerGroup* parent, Layer* afterLayer)
|
||||
{
|
||||
ASSERT(parent);
|
||||
Layer* newLayerPtr = copyLayerWithSprite(sourceLayer, parent->sprite());
|
||||
|
||||
newLayerPtr->setName(newLayerPtr->name() + nameSuffix);
|
||||
newLayerPtr->setName(Strings::general_copy_of(newLayerPtr->name()));
|
||||
|
||||
addLayer(parent, newLayerPtr, afterLayer);
|
||||
|
||||
return newLayerPtr;
|
||||
}
|
||||
|
||||
Layer* DocApi::duplicateLayerBefore(Layer* sourceLayer,
|
||||
LayerGroup* parent,
|
||||
Layer* beforeLayer,
|
||||
const std::string& nameSuffix)
|
||||
Layer* DocApi::duplicateLayerBefore(Layer* sourceLayer, LayerGroup* parent, Layer* beforeLayer)
|
||||
{
|
||||
ASSERT(parent);
|
||||
Layer* afterThis = (beforeLayer ? beforeLayer->getPreviousBrowsable() : nullptr);
|
||||
Layer* newLayer = duplicateLayerAfter(sourceLayer, parent, afterThis, nameSuffix);
|
||||
Layer* newLayer = duplicateLayerAfter(sourceLayer, parent, afterThis);
|
||||
if (newLayer)
|
||||
restackLayerBefore(newLayer, parent, beforeLayer);
|
||||
return newLayer;
|
||||
|
|
|
|||
|
|
@ -119,14 +119,8 @@ public:
|
|||
void removeLayer(Layer* layer);
|
||||
void restackLayerAfter(Layer* layer, LayerGroup* parent, Layer* afterThis);
|
||||
void restackLayerBefore(Layer* layer, LayerGroup* parent, Layer* beforeThis);
|
||||
Layer* duplicateLayerAfter(Layer* sourceLayer,
|
||||
LayerGroup* parent,
|
||||
Layer* afterLayer,
|
||||
const std::string& nameSuffix = std::string());
|
||||
Layer* duplicateLayerBefore(Layer* sourceLayer,
|
||||
LayerGroup* parent,
|
||||
Layer* beforeLayer,
|
||||
const std::string& nameSuffix = std::string());
|
||||
Layer* duplicateLayerAfter(Layer* sourceLayer, LayerGroup* parent, Layer* afterLayer);
|
||||
Layer* duplicateLayerBefore(Layer* sourceLayer, LayerGroup* parent, Layer* beforeLayer);
|
||||
|
||||
// Images API
|
||||
void replaceImage(Sprite* sprite, const ImageRef& oldImage, const ImageRef& newImage);
|
||||
|
|
|
|||
|
|
@ -405,8 +405,7 @@ static DocRange drop_range_op(Doc* doc,
|
|||
if (place == kDocRangeBefore) {
|
||||
Layer* beforeThis = (!dstLayers.empty() ? dstLayers.front() : nullptr);
|
||||
for (Layer* srcLayer : srcLayers) {
|
||||
Layer* copiedLayer =
|
||||
api.duplicateLayerBefore(srcLayer, parent, beforeThis, " Copy");
|
||||
Layer* copiedLayer = api.duplicateLayerBefore(srcLayer, parent, beforeThis);
|
||||
|
||||
resultRange.startRange(copiedLayer, -1, DocRange::kLayers);
|
||||
resultRange.endRange(copiedLayer, -1);
|
||||
|
|
@ -417,7 +416,7 @@ static DocRange drop_range_op(Doc* doc,
|
|||
|
||||
Layer* afterThis = (!dstLayers.empty() ? dstLayers.back() : nullptr);
|
||||
for (Layer* srcLayer : srcLayers) {
|
||||
Layer* copiedLayer = api.duplicateLayerAfter(srcLayer, parent, afterThis, " Copy");
|
||||
Layer* copiedLayer = api.duplicateLayerAfter(srcLayer, parent, afterThis);
|
||||
|
||||
resultRange.startRange(copiedLayer, -1, DocRange::kLayers);
|
||||
resultRange.endRange(copiedLayer, -1);
|
||||
|
|
|
|||
Loading…
Reference in New Issue