mirror of
https://github.com/aseprite/aseprite.git
synced 2025-02-05 18:40:37 +00:00
Add duplicate slices
This commit is contained in:
parent
ca013ff5d8
commit
25ca9e4a13
@ -32,6 +32,7 @@
|
||||
#include "doc/palette.h"
|
||||
#include "doc/sprite.h"
|
||||
#include "doc/tag.h"
|
||||
#include "doc/slice.h"
|
||||
#include "os/display.h"
|
||||
#include "os/system.h"
|
||||
#include "ui/system.h"
|
||||
@ -511,6 +512,17 @@ Doc* Doc::duplicate(DuplicateType type) const
|
||||
for (const Tag* tag : sourceSprite->tags())
|
||||
spriteCopy->tags().add(new Tag(*tag));
|
||||
|
||||
// Copy slices
|
||||
for (const Slice *slice : sourceSprite->slices()) {
|
||||
auto sliceCopy = new Slice(*slice);
|
||||
sliceCopy->setUserData(slice->userData());
|
||||
|
||||
for (frame_t i(0); i < sourceSprite->totalFrames(); ++i)
|
||||
sliceCopy->insert(i, *slice->getByFrame(i));
|
||||
|
||||
spriteCopy->slices().add(sliceCopy);
|
||||
}
|
||||
|
||||
// Copy color palettes
|
||||
{
|
||||
PalettesList::const_iterator it = sourceSprite->getPalettes().begin();
|
||||
|
@ -41,6 +41,14 @@ Slice::Slice()
|
||||
{
|
||||
}
|
||||
|
||||
Slice::Slice(const Slice& other)
|
||||
: WithUserData(ObjectType::Slice)
|
||||
, m_owner(nullptr)
|
||||
, m_name(other.m_name)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
Slice::~Slice()
|
||||
{
|
||||
ASSERT(!m_owner);
|
||||
|
@ -54,6 +54,7 @@ namespace doc {
|
||||
typedef List::const_iterator const_iterator;
|
||||
|
||||
Slice();
|
||||
Slice(const Slice& other);
|
||||
~Slice();
|
||||
|
||||
int getMemSize() const override;
|
||||
@ -88,8 +89,6 @@ namespace doc {
|
||||
Slices* m_owner;
|
||||
std::string m_name;
|
||||
List m_keys;
|
||||
|
||||
DISABLE_COPYING(Slice);
|
||||
};
|
||||
|
||||
} // namespace doc
|
||||
|
Loading…
x
Reference in New Issue
Block a user