mirror of
https://github.com/aseprite/aseprite.git
synced 2025-03-18 16:21:07 +00:00
Rename DocumentRange -> DocRange
This commit is contained in:
parent
432094f432
commit
d00fc99138
@ -497,13 +497,13 @@ add_library(app-lib
|
||||
context.cpp
|
||||
context_flags.cpp
|
||||
doc_api.cpp
|
||||
doc_range.cpp
|
||||
doc_range_ops.cpp
|
||||
doc_undo.cpp
|
||||
docs.cpp
|
||||
document.cpp
|
||||
document_diff.cpp
|
||||
document_exporter.cpp
|
||||
document_range.cpp
|
||||
document_range_ops.cpp
|
||||
extensions.cpp
|
||||
extra_cel.cpp
|
||||
file/file.cpp
|
||||
|
@ -30,7 +30,7 @@ CmdTransaction::CmdTransaction(const std::string& label,
|
||||
{
|
||||
}
|
||||
|
||||
void CmdTransaction::setNewDocumentRange(const DocumentRange& range)
|
||||
void CmdTransaction::setNewDocRange(const DocRange& range)
|
||||
{
|
||||
#ifdef ENABLE_UI
|
||||
if (m_ranges)
|
||||
@ -47,7 +47,7 @@ void CmdTransaction::commit()
|
||||
// commit/command (on Timeline::onAfterCommandExecution).
|
||||
//
|
||||
// So m_ranges->m_after is captured explicitly in
|
||||
// setNewDocumentRange().
|
||||
// setNewDocRange().
|
||||
}
|
||||
|
||||
std::istream* CmdTransaction::documentRangeBeforeExecute() const
|
||||
@ -78,9 +78,9 @@ void CmdTransaction::onExecute()
|
||||
// very beginning, just to save the current sprite position.
|
||||
m_spritePositionBefore = calcSpritePosition();
|
||||
#ifdef ENABLE_UI
|
||||
if (isDocumentRangeEnabled()) {
|
||||
if (isDocRangeEnabled()) {
|
||||
m_ranges.reset(new Ranges);
|
||||
calcDocumentRange().write(m_ranges->m_before);
|
||||
calcDocRange().write(m_ranges->m_before);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -125,7 +125,7 @@ SpritePosition CmdTransaction::calcSpritePosition() const
|
||||
return SpritePosition(site.layer(), site.frame());
|
||||
}
|
||||
|
||||
bool CmdTransaction::isDocumentRangeEnabled() const
|
||||
bool CmdTransaction::isDocRangeEnabled() const
|
||||
{
|
||||
#ifdef ENABLE_UI
|
||||
if (App::instance()) {
|
||||
@ -137,11 +137,11 @@ bool CmdTransaction::isDocumentRangeEnabled() const
|
||||
return false;
|
||||
}
|
||||
|
||||
DocumentRange CmdTransaction::calcDocumentRange() const
|
||||
DocRange CmdTransaction::calcDocRange() const
|
||||
{
|
||||
#ifdef ENABLE_UI
|
||||
// TODO We cannot use Context::activeSite() because it losts
|
||||
// important information about the DocumentRange() (type and
|
||||
// important information about the DocRange() (type and
|
||||
// flags).
|
||||
if (App::instance()) {
|
||||
Timeline* timeline = App::instance()->timeline();
|
||||
@ -149,7 +149,7 @@ DocumentRange CmdTransaction::calcDocumentRange() const
|
||||
return timeline->range();
|
||||
}
|
||||
#endif
|
||||
return DocumentRange();
|
||||
return DocRange();
|
||||
}
|
||||
|
||||
} // namespace app
|
||||
|
@ -9,7 +9,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "app/cmd_sequence.h"
|
||||
#include "app/document_range.h"
|
||||
#include "app/doc_range.h"
|
||||
#include "app/sprite_position.h"
|
||||
|
||||
#include <memory>
|
||||
@ -24,7 +24,7 @@ namespace app {
|
||||
CmdTransaction(const std::string& label,
|
||||
bool changeSavedState, int* savedCounter);
|
||||
|
||||
void setNewDocumentRange(const DocumentRange& range);
|
||||
void setNewDocRange(const DocRange& range);
|
||||
void commit();
|
||||
|
||||
SpritePosition spritePositionBeforeExecute() const { return m_spritePositionBefore; }
|
||||
@ -42,8 +42,8 @@ namespace app {
|
||||
|
||||
private:
|
||||
SpritePosition calcSpritePosition() const;
|
||||
bool isDocumentRangeEnabled() const;
|
||||
DocumentRange calcDocumentRange() const;
|
||||
bool isDocRangeEnabled() const;
|
||||
DocRange calcDocRange() const;
|
||||
|
||||
struct Ranges {
|
||||
std::stringstream m_before;
|
||||
|
@ -15,7 +15,7 @@
|
||||
#include "app/console.h"
|
||||
#include "app/context_access.h"
|
||||
#include "app/doc_event.h"
|
||||
#include "app/document_range.h"
|
||||
#include "app/doc_range.h"
|
||||
#include "app/modules/gui.h"
|
||||
#include "app/transaction.h"
|
||||
#include "app/ui/timeline/timeline.h"
|
||||
@ -169,11 +169,11 @@ private:
|
||||
ContextWriter writer(UIContext::instance());
|
||||
Transaction transaction(writer.context(), "Set Cel Properties");
|
||||
|
||||
DocumentRange range;
|
||||
DocRange range;
|
||||
if (m_range.enabled())
|
||||
range = m_range;
|
||||
else {
|
||||
range.startRange(m_cel->layer(), m_cel->frame(), DocumentRange::kCels);
|
||||
range.startRange(m_cel->layer(), m_cel->frame(), DocRange::kCels);
|
||||
range.endRange(m_cel->layer(), m_cel->frame());
|
||||
}
|
||||
|
||||
@ -264,7 +264,7 @@ private:
|
||||
Timer m_timer;
|
||||
Document* m_document;
|
||||
Cel* m_cel;
|
||||
DocumentRange m_range;
|
||||
DocRange m_range;
|
||||
bool m_selfUpdate;
|
||||
UserData m_userData;
|
||||
bool m_newUserData;
|
||||
|
@ -1,5 +1,5 @@
|
||||
// Aseprite
|
||||
// Copyright (C) 2001-2017 David Capello
|
||||
// Copyright (C) 2001-2018 David Capello
|
||||
//
|
||||
// This program is distributed under the terms of
|
||||
// the End-User License Agreement for Aseprite.
|
||||
@ -19,7 +19,7 @@
|
||||
#include "app/commands/params.h"
|
||||
#include "app/context_access.h"
|
||||
#include "app/doc_api.h"
|
||||
#include "app/document_range.h"
|
||||
#include "app/doc_range.h"
|
||||
#include "app/i18n/strings.h"
|
||||
#include "app/modules/gui.h"
|
||||
#include "app/transaction.h"
|
||||
|
@ -225,11 +225,11 @@ private:
|
||||
ContextWriter writer(UIContext::instance());
|
||||
Transaction transaction(writer.context(), "Set Layer Properties");
|
||||
|
||||
DocumentRange range;
|
||||
DocRange range;
|
||||
if (m_range.enabled())
|
||||
range = m_range;
|
||||
else {
|
||||
range.startRange(m_layer, -1, DocumentRange::kLayers);
|
||||
range.startRange(m_layer, -1, DocRange::kLayers);
|
||||
range.endRange(m_layer, -1);
|
||||
}
|
||||
|
||||
@ -347,7 +347,7 @@ private:
|
||||
Timer m_timer;
|
||||
Document* m_document;
|
||||
Layer* m_layer;
|
||||
DocumentRange m_range;
|
||||
DocRange m_range;
|
||||
bool m_selfUpdate;
|
||||
UserData m_userData;
|
||||
};
|
||||
|
@ -1,5 +1,5 @@
|
||||
// Aseprite
|
||||
// Copyright (C) 2001-2017 David Capello
|
||||
// Copyright (C) 2001-2018 David Capello
|
||||
//
|
||||
// This program is distributed under the terms of
|
||||
// the End-User License Agreement for Aseprite.
|
||||
@ -113,7 +113,7 @@ void NewFrameCommand::onExecute(Context* context)
|
||||
|
||||
auto timeline = App::instance()->timeline();
|
||||
timeline->prepareToMoveRange();
|
||||
DocumentRange range = timeline->range();
|
||||
DocRange range = timeline->range();
|
||||
|
||||
SelectedLayers selLayers;
|
||||
if (site->inFrames())
|
||||
|
@ -1,5 +1,5 @@
|
||||
// Aseprite
|
||||
// Copyright (C) 2001-2017 David Capello
|
||||
// Copyright (C) 2001-2018 David Capello
|
||||
//
|
||||
// This program is distributed under the terms of
|
||||
// the End-User License Agreement for Aseprite.
|
||||
@ -54,8 +54,8 @@ void NewFrameTagCommand::onExecute(Context* context)
|
||||
|
||||
auto range = App::instance()->timeline()->range();
|
||||
if (range.enabled() &&
|
||||
(range.type() == DocumentRange::kFrames ||
|
||||
range.type() == DocumentRange::kCels)) {
|
||||
(range.type() == DocRange::kFrames ||
|
||||
range.type() == DocRange::kCels)) {
|
||||
from = range.selectedFrames().firstFrame();
|
||||
to = range.selectedFrames().lastFrame();
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
// Aseprite
|
||||
// Copyright (C) 2001-2017 David Capello
|
||||
// Copyright (C) 2001-2018 David Capello
|
||||
//
|
||||
// This program is distributed under the terms of
|
||||
// the End-User License Agreement for Aseprite.
|
||||
@ -11,9 +11,9 @@
|
||||
#include "app/app.h"
|
||||
#include "app/commands/command.h"
|
||||
#include "app/context_access.h"
|
||||
#include "app/doc_range_ops.h"
|
||||
#include "app/modules/gui.h"
|
||||
#include "app/ui/timeline/timeline.h"
|
||||
#include "app/document_range_ops.h"
|
||||
|
||||
namespace app {
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
// Aseprite
|
||||
// Copyright (C) 2001-2017 David Capello
|
||||
// Copyright (C) 2001-2018 David Capello
|
||||
//
|
||||
// This program is distributed under the terms of
|
||||
// the End-User License Agreement for Aseprite.
|
||||
@ -14,7 +14,7 @@
|
||||
#include "app/commands/params.h"
|
||||
#include "app/context_access.h"
|
||||
#include "app/doc_api.h"
|
||||
#include "app/document_range.h"
|
||||
#include "app/doc_range.h"
|
||||
#include "app/i18n/strings.h"
|
||||
#include "app/modules/editors.h"
|
||||
#include "app/modules/gui.h"
|
||||
|
@ -102,9 +102,9 @@ void UndoCommand::onExecute(Context* context)
|
||||
// range because there could be inexistent layers.
|
||||
std::istream* docRangeStream;
|
||||
if (m_type == Undo)
|
||||
docRangeStream = undo->nextUndoDocumentRange();
|
||||
docRangeStream = undo->nextUndoDocRange();
|
||||
else
|
||||
docRangeStream = undo->nextRedoDocumentRange();
|
||||
docRangeStream = undo->nextRedoDocRange();
|
||||
|
||||
StatusBar* statusbar = StatusBar::instance();
|
||||
if (statusbar) {
|
||||
@ -139,13 +139,13 @@ void UndoCommand::onExecute(Context* context)
|
||||
}
|
||||
}
|
||||
|
||||
// Update timeline range. We've to deserialize the DocumentRange at
|
||||
// Update timeline range. We've to deserialize the DocRange at
|
||||
// this point when objects (possible layers) are re-created after
|
||||
// the undo and we can deserialize them.
|
||||
if (docRangeStream) {
|
||||
Timeline* timeline = App::instance()->timeline();
|
||||
if (timeline) {
|
||||
DocumentRange docRange;
|
||||
DocRange docRange;
|
||||
if (docRange.read(*docRangeStream))
|
||||
timeline->setRange(docRange);
|
||||
}
|
||||
|
@ -8,7 +8,7 @@
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include "app/document_range.h"
|
||||
#include "app/doc_range.h"
|
||||
|
||||
#include "base/serialization.h"
|
||||
#include "doc/cel.h"
|
||||
@ -24,7 +24,7 @@ using namespace base::serialization;
|
||||
using namespace base::serialization::little_endian;
|
||||
using namespace doc;
|
||||
|
||||
DocumentRange::DocumentRange()
|
||||
DocRange::DocRange()
|
||||
: m_type(kNone)
|
||||
, m_flags(m_type)
|
||||
, m_selectingFromLayer(nullptr)
|
||||
@ -32,7 +32,7 @@ DocumentRange::DocumentRange()
|
||||
{
|
||||
}
|
||||
|
||||
DocumentRange::DocumentRange(Cel* cel)
|
||||
DocRange::DocRange(Cel* cel)
|
||||
: m_type(kCels)
|
||||
, m_flags(m_type)
|
||||
, m_selectingFromLayer(nullptr)
|
||||
@ -42,7 +42,7 @@ DocumentRange::DocumentRange(Cel* cel)
|
||||
m_selectedFrames.insert(cel->frame());
|
||||
}
|
||||
|
||||
void DocumentRange::clearRange()
|
||||
void DocRange::clearRange()
|
||||
{
|
||||
m_type = kNone;
|
||||
m_flags = kNone;
|
||||
@ -50,7 +50,7 @@ void DocumentRange::clearRange()
|
||||
m_selectedFrames.clear();
|
||||
}
|
||||
|
||||
void DocumentRange::startRange(Layer* fromLayer, frame_t fromFrame, Type type)
|
||||
void DocRange::startRange(Layer* fromLayer, frame_t fromFrame, Type type)
|
||||
{
|
||||
m_type = type;
|
||||
m_flags |= type;
|
||||
@ -63,7 +63,7 @@ void DocumentRange::startRange(Layer* fromLayer, frame_t fromFrame, Type type)
|
||||
m_selectedFrames.insert(fromFrame);
|
||||
}
|
||||
|
||||
void DocumentRange::endRange(Layer* toLayer, frame_t toFrame)
|
||||
void DocRange::endRange(Layer* toLayer, frame_t toFrame)
|
||||
{
|
||||
ASSERT(enabled());
|
||||
|
||||
@ -74,7 +74,7 @@ void DocumentRange::endRange(Layer* toLayer, frame_t toFrame)
|
||||
selectFrameRange(m_selectingFromFrame, toFrame);
|
||||
}
|
||||
|
||||
void DocumentRange::selectLayer(Layer* layer)
|
||||
void DocRange::selectLayer(Layer* layer)
|
||||
{
|
||||
if (m_type == kNone)
|
||||
m_type = kLayers;
|
||||
@ -83,7 +83,7 @@ void DocumentRange::selectLayer(Layer* layer)
|
||||
m_selectedLayers.insert(layer);
|
||||
}
|
||||
|
||||
void DocumentRange::selectLayers(const SelectedLayers& selLayers)
|
||||
void DocRange::selectLayers(const SelectedLayers& selLayers)
|
||||
{
|
||||
if (m_type == kNone)
|
||||
m_type = kLayers;
|
||||
@ -93,7 +93,7 @@ void DocumentRange::selectLayers(const SelectedLayers& selLayers)
|
||||
m_selectedLayers.insert(layer);
|
||||
}
|
||||
|
||||
bool DocumentRange::contains(const Layer* layer) const
|
||||
bool DocRange::contains(const Layer* layer) const
|
||||
{
|
||||
if (enabled())
|
||||
return m_selectedLayers.contains(const_cast<Layer*>(layer));
|
||||
@ -101,15 +101,15 @@ bool DocumentRange::contains(const Layer* layer) const
|
||||
return false;
|
||||
}
|
||||
|
||||
bool DocumentRange::contains(const Layer* layer,
|
||||
const frame_t frame) const
|
||||
bool DocRange::contains(const Layer* layer,
|
||||
const frame_t frame) const
|
||||
{
|
||||
switch (m_type) {
|
||||
case DocumentRange::kNone:
|
||||
case DocRange::kNone:
|
||||
return false;
|
||||
case DocumentRange::kCels:
|
||||
case DocRange::kCels:
|
||||
return contains(layer) && contains(frame);
|
||||
case DocumentRange::kFrames:
|
||||
case DocRange::kFrames:
|
||||
if (contains(frame)) {
|
||||
if ((m_flags & (kCels | kLayers)) != 0)
|
||||
return contains(layer);
|
||||
@ -117,7 +117,7 @@ bool DocumentRange::contains(const Layer* layer,
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case DocumentRange::kLayers:
|
||||
case DocRange::kLayers:
|
||||
if (contains(layer)) {
|
||||
if ((m_flags & (kCels | kFrames)) != 0)
|
||||
return contains(frame);
|
||||
@ -129,37 +129,37 @@ bool DocumentRange::contains(const Layer* layer,
|
||||
return false;
|
||||
}
|
||||
|
||||
void DocumentRange::displace(layer_t layerDelta, frame_t frameDelta)
|
||||
void DocRange::displace(layer_t layerDelta, frame_t frameDelta)
|
||||
{
|
||||
m_selectedLayers.displace(layerDelta);
|
||||
m_selectedFrames.displace(frameDelta);
|
||||
}
|
||||
|
||||
bool DocumentRange::convertToCels(const Sprite* sprite)
|
||||
bool DocRange::convertToCels(const Sprite* sprite)
|
||||
{
|
||||
switch (m_type) {
|
||||
case DocumentRange::kNone:
|
||||
case DocRange::kNone:
|
||||
return false;
|
||||
case DocumentRange::kCels:
|
||||
case DocRange::kCels:
|
||||
break;
|
||||
case DocumentRange::kFrames: {
|
||||
case DocRange::kFrames: {
|
||||
if ((m_flags & (kCels | kLayers)) == 0) {
|
||||
for (auto layer : sprite->allBrowsableLayers())
|
||||
m_selectedLayers.insert(layer);
|
||||
}
|
||||
m_type = DocumentRange::kCels;
|
||||
m_type = DocRange::kCels;
|
||||
break;
|
||||
}
|
||||
case DocumentRange::kLayers:
|
||||
case DocRange::kLayers:
|
||||
if ((m_flags & (kCels | kFrames)) == 0)
|
||||
selectFrameRange(0, sprite->lastFrame());
|
||||
m_type = DocumentRange::kCels;
|
||||
m_type = DocRange::kCels;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool DocumentRange::write(std::ostream& os) const
|
||||
bool DocRange::write(std::ostream& os) const
|
||||
{
|
||||
write32(os, m_type);
|
||||
write32(os, m_flags);
|
||||
@ -172,7 +172,7 @@ bool DocumentRange::write(std::ostream& os) const
|
||||
return os.good();
|
||||
}
|
||||
|
||||
bool DocumentRange::read(std::istream& is)
|
||||
bool DocRange::read(std::istream& is)
|
||||
{
|
||||
clearRange();
|
||||
|
||||
@ -188,7 +188,7 @@ bool DocumentRange::read(std::istream& is)
|
||||
return is.good();
|
||||
}
|
||||
|
||||
void DocumentRange::selectLayerRange(Layer* fromLayer, Layer* toLayer)
|
||||
void DocRange::selectLayerRange(Layer* fromLayer, Layer* toLayer)
|
||||
{
|
||||
ASSERT(fromLayer);
|
||||
ASSERT(toLayer);
|
||||
@ -234,7 +234,7 @@ void DocumentRange::selectLayerRange(Layer* fromLayer, Layer* toLayer)
|
||||
} while (it);
|
||||
}
|
||||
|
||||
void DocumentRange::selectFrameRange(frame_t fromFrame, frame_t toFrame)
|
||||
void DocRange::selectFrameRange(frame_t fromFrame, frame_t toFrame)
|
||||
{
|
||||
m_selectedFrames.insert(fromFrame, toFrame);
|
||||
}
|
@ -4,8 +4,8 @@
|
||||
// This program is distributed under the terms of
|
||||
// the End-User License Agreement for Aseprite.
|
||||
|
||||
#ifndef APP_DOCUMENT_RANGE_H_INCLUDED
|
||||
#define APP_DOCUMENT_RANGE_H_INCLUDED
|
||||
#ifndef APP_DOC_RANGE_H_INCLUDED
|
||||
#define APP_DOC_RANGE_H_INCLUDED
|
||||
#pragma once
|
||||
|
||||
#include "doc/frame.h"
|
||||
@ -22,15 +22,15 @@ namespace doc {
|
||||
namespace app {
|
||||
using namespace doc;
|
||||
|
||||
class DocumentRange {
|
||||
class DocRange {
|
||||
public:
|
||||
enum Type { kNone = 0,
|
||||
kCels = 1,
|
||||
kFrames = 2,
|
||||
kLayers = 4 };
|
||||
|
||||
DocumentRange();
|
||||
DocumentRange(Cel* cel);
|
||||
DocRange();
|
||||
DocRange(Cel* cel);
|
||||
|
||||
Type type() const { return m_type; }
|
||||
bool enabled() const { return m_type != kNone; }
|
||||
@ -58,7 +58,7 @@ namespace app {
|
||||
frame_t firstFrame() const { return m_selectedFrames.firstFrame(); }
|
||||
frame_t lastFrame() const { return m_selectedFrames.lastFrame(); }
|
||||
|
||||
bool operator==(const DocumentRange& o) const {
|
||||
bool operator==(const DocRange& o) const {
|
||||
return (m_type == o.m_type &&
|
||||
m_selectedLayers == o.m_selectedLayers &&
|
||||
m_selectedFrames == o.m_selectedFrames);
|
@ -11,12 +11,12 @@
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include "app/document_range_ops.h"
|
||||
#include "app/doc_range_ops.h"
|
||||
|
||||
#include "app/app.h"
|
||||
#include "app/context_access.h"
|
||||
#include "app/doc_api.h"
|
||||
#include "app/document_range.h"
|
||||
#include "app/doc_range.h"
|
||||
#include "app/transaction.h"
|
||||
#include "app/ui/timeline/timeline.h"
|
||||
#include "doc/layer.h"
|
||||
@ -75,12 +75,12 @@ static void move_or_copy_cels(
|
||||
}
|
||||
}
|
||||
|
||||
static DocumentRange move_or_copy_frames(
|
||||
static DocRange move_or_copy_frames(
|
||||
DocApi& api, Op op,
|
||||
Sprite* sprite,
|
||||
const DocumentRange& srcRange,
|
||||
const DocRange& srcRange,
|
||||
frame_t dstFrame,
|
||||
const DocumentRangePlace place,
|
||||
const DocRangePlace place,
|
||||
const TagsHandling tagsHandling)
|
||||
{
|
||||
const SelectedFrames& srcFrames = srcRange.selectedFrames();
|
||||
@ -91,9 +91,9 @@ static DocumentRange move_or_copy_frames(
|
||||
std::clog << srcFrame << ", ";
|
||||
}
|
||||
std::clog << "] "
|
||||
<< (place == kDocumentRangeBefore ? "before":
|
||||
place == kDocumentRangeAfter ? "after":
|
||||
"as first child")
|
||||
<< (place == kDocRangeBefore ? "before":
|
||||
place == kDocRangeAfter ? "after":
|
||||
"as first child")
|
||||
<< " " << dstFrame << "\n";
|
||||
#endif
|
||||
|
||||
@ -102,8 +102,8 @@ static DocumentRange move_or_copy_frames(
|
||||
frame_t srcDelta = 0;
|
||||
frame_t firstCopiedBlock = 0;
|
||||
frame_t dstBeforeFrame =
|
||||
(place == kDocumentRangeBefore ? dstFrame:
|
||||
dstFrame+1);
|
||||
(place == kDocRangeBefore ? dstFrame:
|
||||
dstFrame+1);
|
||||
|
||||
for (; srcFrame != srcFrameEnd; ++srcFrame) {
|
||||
frame_t fromFrame = (*srcFrame)+srcDelta;
|
||||
@ -134,7 +134,7 @@ static DocumentRange move_or_copy_frames(
|
||||
std::clog << "] => "
|
||||
<< (op == Move ? "Move": "Copy")
|
||||
<< " " << (*srcFrame) << "+" << (srcDelta)
|
||||
<< (place == kDocumentRangeBefore ? " before ": " after ")
|
||||
<< (place == kDocRangeBefore ? " before ": " after ")
|
||||
<< dstFrame << " => ";
|
||||
#endif
|
||||
|
||||
@ -142,8 +142,8 @@ static DocumentRange move_or_copy_frames(
|
||||
|
||||
case Move:
|
||||
api.moveFrame(sprite, fromFrame, dstFrame,
|
||||
(place == kDocumentRangeBefore ? kDropBeforeFrame:
|
||||
kDropAfterFrame),
|
||||
(place == kDocRangeBefore ? kDropBeforeFrame:
|
||||
kDropAfterFrame),
|
||||
tagsHandling);
|
||||
|
||||
if (fromFrame < dstBeforeFrame-1) {
|
||||
@ -157,8 +157,8 @@ static DocumentRange move_or_copy_frames(
|
||||
|
||||
case Copy:
|
||||
api.copyFrame(sprite, fromFrame, dstFrame,
|
||||
(place == kDocumentRangeBefore ? kDropBeforeFrame:
|
||||
kDropAfterFrame),
|
||||
(place == kDocRangeBefore ? kDropBeforeFrame:
|
||||
kDropAfterFrame),
|
||||
tagsHandling);
|
||||
|
||||
if (fromFrame < dstBeforeFrame-1) {
|
||||
@ -181,10 +181,10 @@ static DocumentRange move_or_copy_frames(
|
||||
#endif
|
||||
}
|
||||
|
||||
DocumentRange result;
|
||||
DocRange result;
|
||||
if (!srcRange.selectedLayers().empty())
|
||||
result.selectLayers(srcRange.selectedLayers());
|
||||
result.startRange(nullptr, dstBeforeFrame-srcFrames.size(), DocumentRange::kFrames);
|
||||
result.startRange(nullptr, dstBeforeFrame-srcFrames.size(), DocRange::kFrames);
|
||||
result.endRange(nullptr, dstBeforeFrame-1);
|
||||
return result;
|
||||
}
|
||||
@ -201,25 +201,25 @@ static bool has_child(LayerGroup* parent, Layer* child)
|
||||
return false;
|
||||
}
|
||||
|
||||
static DocumentRange drop_range_op(
|
||||
static DocRange drop_range_op(
|
||||
Document* doc,
|
||||
const Op op,
|
||||
const DocumentRange& from,
|
||||
DocumentRangePlace place,
|
||||
const DocRange& from,
|
||||
DocRangePlace place,
|
||||
const TagsHandling tagsHandling,
|
||||
DocumentRange to)
|
||||
DocRange to)
|
||||
{
|
||||
// Convert "first child" operation into a insert after last child.
|
||||
LayerGroup* parent = nullptr;
|
||||
if (to.type() == DocumentRange::kLayers &&
|
||||
if (to.type() == DocRange::kLayers &&
|
||||
!to.selectedLayers().empty()) {
|
||||
if (place == kDocumentRangeFirstChild &&
|
||||
if (place == kDocRangeFirstChild &&
|
||||
(*to.selectedLayers().begin())->isGroup()) {
|
||||
place = kDocumentRangeAfter;
|
||||
place = kDocRangeAfter;
|
||||
parent = static_cast<LayerGroup*>((*to.selectedLayers().begin()));
|
||||
|
||||
to.clearRange();
|
||||
to.startRange(parent->lastLayer(), -1, DocumentRange::kLayers);
|
||||
to.startRange(parent->lastLayer(), -1, DocRange::kLayers);
|
||||
to.endRange(parent->lastLayer(), -1);
|
||||
}
|
||||
else {
|
||||
@ -235,8 +235,8 @@ static DocumentRange drop_range_op(
|
||||
}
|
||||
}
|
||||
|
||||
if (place != kDocumentRangeBefore &&
|
||||
place != kDocumentRangeAfter) {
|
||||
if (place != kDocRangeBefore &&
|
||||
place != kDocRangeAfter) {
|
||||
ASSERT(false);
|
||||
throw std::invalid_argument("Invalid 'place' argument");
|
||||
}
|
||||
@ -247,20 +247,20 @@ static DocumentRange drop_range_op(
|
||||
// Also check invalid cases, like moving a Background layer.
|
||||
switch (from.type()) {
|
||||
|
||||
case DocumentRange::kCels:
|
||||
case DocRange::kCels:
|
||||
if (from == to)
|
||||
return from;
|
||||
break;
|
||||
|
||||
case DocumentRange::kFrames:
|
||||
case DocRange::kFrames:
|
||||
if (op == Move) {
|
||||
// Simple cases with one continuos range of frames that are a
|
||||
// no-op.
|
||||
if ((from.selectedFrames().ranges() == 1) &&
|
||||
((to.firstFrame() >= from.firstFrame() &&
|
||||
to.lastFrame() <= from.lastFrame()) ||
|
||||
(place == kDocumentRangeBefore && to.firstFrame() == from.lastFrame()+1) ||
|
||||
(place == kDocumentRangeAfter && to.lastFrame() == from.firstFrame()-1)) &&
|
||||
(place == kDocRangeBefore && to.firstFrame() == from.lastFrame()+1) ||
|
||||
(place == kDocRangeAfter && to.lastFrame() == from.firstFrame()-1)) &&
|
||||
// If there are tags, this might not be a no-op
|
||||
(sprite->frameTags().empty() ||
|
||||
tagsHandling == kDontAdjustTags)) {
|
||||
@ -269,7 +269,7 @@ static DocumentRange drop_range_op(
|
||||
}
|
||||
break;
|
||||
|
||||
case DocumentRange::kLayers:
|
||||
case DocRange::kLayers:
|
||||
if (op == Move) {
|
||||
SelectedLayers srcSelLayers = from.selectedLayers();
|
||||
SelectedLayers dstSelLayers = to.selectedLayers();
|
||||
@ -294,9 +294,9 @@ static DocumentRange drop_range_op(
|
||||
if (dstSelLayers.contains(srcLayer))
|
||||
return from;
|
||||
|
||||
if ((place == kDocumentRangeBefore
|
||||
if ((place == kDocRangeBefore
|
||||
&& dstLayers.front() == srcLayers.back()->getNext()) ||
|
||||
(place == kDocumentRangeAfter
|
||||
(place == kDocRangeAfter
|
||||
&& dstLayers.back() == srcLayers.front()->getPrevious()))
|
||||
return from;
|
||||
}
|
||||
@ -308,7 +308,7 @@ static DocumentRange drop_range_op(
|
||||
}
|
||||
|
||||
// Before background
|
||||
if (place == kDocumentRangeBefore) {
|
||||
if (place == kDocRangeBefore) {
|
||||
for (Layer* background : to.selectedLayers()) {
|
||||
if (background && background->isBackground())
|
||||
throw std::runtime_error("You cannot move or copy something below the background layer");
|
||||
@ -325,7 +325,7 @@ static DocumentRange drop_range_op(
|
||||
ASSERT(false);
|
||||
throw std::invalid_argument("Invalid 'op' argument");
|
||||
}
|
||||
DocumentRange resultRange;
|
||||
DocRange resultRange;
|
||||
|
||||
{
|
||||
const app::Context* context = static_cast<app::Context*>(doc->context());
|
||||
@ -340,7 +340,7 @@ static DocumentRange drop_range_op(
|
||||
|
||||
switch (from.type()) {
|
||||
|
||||
case DocumentRange::kCels: {
|
||||
case DocRange::kCels: {
|
||||
LayerList allLayers = sprite->allBrowsableLayers();
|
||||
if (allLayers.empty())
|
||||
break;
|
||||
@ -374,9 +374,9 @@ static DocumentRange drop_range_op(
|
||||
break;
|
||||
}
|
||||
|
||||
case DocumentRange::kFrames: {
|
||||
case DocRange::kFrames: {
|
||||
frame_t dstFrame;
|
||||
if (place == kDocumentRangeBefore)
|
||||
if (place == kDocRangeBefore)
|
||||
dstFrame = to.firstFrame();
|
||||
else
|
||||
dstFrame = to.lastFrame();
|
||||
@ -387,7 +387,7 @@ static DocumentRange drop_range_op(
|
||||
break;
|
||||
}
|
||||
|
||||
case DocumentRange::kLayers: {
|
||||
case DocRange::kLayers: {
|
||||
LayerList allLayers = sprite->allBrowsableLayers();
|
||||
if (allLayers.empty())
|
||||
break;
|
||||
@ -399,7 +399,7 @@ static DocumentRange drop_range_op(
|
||||
switch (op) {
|
||||
|
||||
case Move:
|
||||
if (place == kDocumentRangeBefore) {
|
||||
if (place == kDocRangeBefore) {
|
||||
Layer* beforeThis = (!dstLayers.empty() ? dstLayers.front(): nullptr);
|
||||
Layer* afterThis = nullptr;
|
||||
|
||||
@ -412,7 +412,7 @@ static DocumentRange drop_range_op(
|
||||
afterThis = srcLayer;
|
||||
}
|
||||
}
|
||||
else if (place == kDocumentRangeAfter) {
|
||||
else if (place == kDocRangeAfter) {
|
||||
Layer* afterThis = (!dstLayers.empty() ? dstLayers.back(): nullptr);
|
||||
for (Layer* srcLayer : srcLayers) {
|
||||
api.restackLayerAfter(srcLayer, parent, afterThis);
|
||||
@ -425,17 +425,17 @@ static DocumentRange drop_range_op(
|
||||
break;
|
||||
|
||||
case Copy: {
|
||||
if (place == kDocumentRangeBefore) {
|
||||
if (place == kDocRangeBefore) {
|
||||
Layer* beforeThis = (!dstLayers.empty() ? dstLayers.front(): nullptr);
|
||||
for (Layer* srcLayer : srcLayers) {
|
||||
Layer* copiedLayer = api.duplicateLayerBefore(
|
||||
srcLayer, parent, beforeThis);
|
||||
|
||||
resultRange.startRange(copiedLayer, -1, DocumentRange::kLayers);
|
||||
resultRange.startRange(copiedLayer, -1, DocRange::kLayers);
|
||||
resultRange.endRange(copiedLayer, -1);
|
||||
}
|
||||
}
|
||||
else if (place == kDocumentRangeAfter) {
|
||||
else if (place == kDocRangeAfter) {
|
||||
std::reverse(srcLayers.begin(), srcLayers.end());
|
||||
|
||||
Layer* afterThis = (!dstLayers.empty() ? dstLayers.back(): nullptr);
|
||||
@ -443,7 +443,7 @@ static DocumentRange drop_range_op(
|
||||
Layer* copiedLayer = api.duplicateLayerAfter(
|
||||
srcLayer, parent, afterThis);
|
||||
|
||||
resultRange.startRange(copiedLayer, -1, DocumentRange::kLayers);
|
||||
resultRange.startRange(copiedLayer, -1, DocRange::kLayers);
|
||||
resultRange.endRange(copiedLayer, -1);
|
||||
}
|
||||
}
|
||||
@ -454,8 +454,8 @@ static DocumentRange drop_range_op(
|
||||
}
|
||||
}
|
||||
|
||||
if (resultRange.type() != DocumentRange::kNone)
|
||||
transaction.setNewDocumentRange(resultRange);
|
||||
if (resultRange.type() != DocRange::kNone)
|
||||
transaction.setNewDocRange(resultRange);
|
||||
|
||||
transaction.commit();
|
||||
}
|
||||
@ -463,27 +463,27 @@ static DocumentRange drop_range_op(
|
||||
return resultRange;
|
||||
}
|
||||
|
||||
DocumentRange move_range(Document* doc,
|
||||
const DocumentRange& from,
|
||||
const DocumentRange& to,
|
||||
const DocumentRangePlace place,
|
||||
DocRange move_range(Document* doc,
|
||||
const DocRange& from,
|
||||
const DocRange& to,
|
||||
const DocRangePlace place,
|
||||
const TagsHandling tagsHandling)
|
||||
{
|
||||
return drop_range_op(doc, Move, from, place,
|
||||
tagsHandling, DocumentRange(to));
|
||||
tagsHandling, DocRange(to));
|
||||
}
|
||||
|
||||
DocumentRange copy_range(Document* doc,
|
||||
const DocumentRange& from,
|
||||
const DocumentRange& to,
|
||||
const DocumentRangePlace place,
|
||||
DocRange copy_range(Document* doc,
|
||||
const DocRange& from,
|
||||
const DocRange& to,
|
||||
const DocRangePlace place,
|
||||
const TagsHandling tagsHandling)
|
||||
{
|
||||
return drop_range_op(doc, Copy, from, place,
|
||||
tagsHandling, DocumentRange(to));
|
||||
tagsHandling, DocRange(to));
|
||||
}
|
||||
|
||||
void reverse_frames(Document* doc, const DocumentRange& range)
|
||||
void reverse_frames(Document* doc, const DocRange& range)
|
||||
{
|
||||
const app::Context* context = static_cast<app::Context*>(doc->context());
|
||||
const ContextReader reader(context);
|
||||
@ -497,19 +497,19 @@ void reverse_frames(Document* doc, const DocumentRange& range)
|
||||
bool swapCels = false;
|
||||
|
||||
switch (range.type()) {
|
||||
case DocumentRange::kCels:
|
||||
case DocRange::kCels:
|
||||
frameBegin = range.firstFrame();
|
||||
frameEnd = range.lastFrame();
|
||||
layers = range.selectedLayers().toLayerList();
|
||||
swapCels = true;
|
||||
break;
|
||||
case DocumentRange::kFrames:
|
||||
case DocRange::kFrames:
|
||||
frameBegin = range.firstFrame();
|
||||
frameEnd = range.lastFrame();
|
||||
layers = sprite->allLayers();
|
||||
moveFrames = true;
|
||||
break;
|
||||
case DocumentRange::kLayers:
|
||||
case DocRange::kLayers:
|
||||
frameBegin = frame_t(0);
|
||||
frameEnd = sprite->totalFrames()-1;
|
||||
layers = range.selectedLayers().toLayerList();
|
||||
@ -544,7 +544,7 @@ void reverse_frames(Document* doc, const DocumentRange& range)
|
||||
}
|
||||
}
|
||||
|
||||
transaction.setNewDocumentRange(range);
|
||||
transaction.setNewDocRange(range);
|
||||
transaction.commit();
|
||||
}
|
||||
|
43
src/app/doc_range_ops.h
Normal file
43
src/app/doc_range_ops.h
Normal file
@ -0,0 +1,43 @@
|
||||
// Aseprite
|
||||
// Copyright (C) 2001-2018 David Capello
|
||||
//
|
||||
// This program is distributed under the terms of
|
||||
// the End-User License Agreement for Aseprite.
|
||||
|
||||
#ifndef APP_DOC_RANGE_OPS_H_INCLUDED
|
||||
#define APP_DOC_RANGE_OPS_H_INCLUDED
|
||||
#pragma once
|
||||
|
||||
#include "app/tags_handling.h"
|
||||
|
||||
#include <vector>
|
||||
|
||||
namespace app {
|
||||
class Document;
|
||||
class DocRange;
|
||||
|
||||
enum DocRangePlace {
|
||||
kDocRangeBefore,
|
||||
kDocRangeAfter,
|
||||
kDocRangeFirstChild,
|
||||
};
|
||||
|
||||
// These functions returns the new location of the "from" range or
|
||||
// throws an std::runtime_error() in case that the operation cannot
|
||||
// be done. (E.g. the background layer cannot be moved.)
|
||||
DocRange move_range(Document* doc,
|
||||
const DocRange& from,
|
||||
const DocRange& to,
|
||||
const DocRangePlace place,
|
||||
const TagsHandling tagsHandling = kDefaultTagsAdjustment);
|
||||
DocRange copy_range(Document* doc,
|
||||
const DocRange& from,
|
||||
const DocRange& to,
|
||||
const DocRangePlace place,
|
||||
const TagsHandling tagsHandling = kDefaultTagsAdjustment);
|
||||
|
||||
void reverse_frames(Document* doc, const DocRange& range);
|
||||
|
||||
} // namespace app
|
||||
|
||||
#endif
|
@ -7,11 +7,11 @@
|
||||
#include "tests/test.h"
|
||||
|
||||
#include "app/context.h"
|
||||
#include "app/doc_api.h"
|
||||
#include "app/doc_range.h"
|
||||
#include "app/doc_range_ops.h"
|
||||
#include "app/doc_undo.h"
|
||||
#include "app/document.h"
|
||||
#include "app/doc_api.h"
|
||||
#include "app/document_range.h"
|
||||
#include "app/document_range_ops.h"
|
||||
#include "app/test_context.h"
|
||||
#include "app/transaction.h"
|
||||
#include "base/unique_ptr.h"
|
||||
@ -30,7 +30,7 @@ std::ostream& operator<<(std::ostream& os, const doc::Layer* layer) {
|
||||
return os;
|
||||
}
|
||||
|
||||
std::ostream& operator<<(std::ostream& os, const app::DocumentRange& range) {
|
||||
std::ostream& operator<<(std::ostream& os, const app::DocRange& range) {
|
||||
os << "{ layers: [";
|
||||
|
||||
bool first = true;
|
||||
@ -244,48 +244,48 @@ protected:
|
||||
return (cel == NULL);
|
||||
}
|
||||
|
||||
DocumentRange range(Layer* fromLayer, frame_t fromFrNum, Layer* toLayer, frame_t toFrNum, DocumentRange::Type type) {
|
||||
DocumentRange r;
|
||||
DocRange range(Layer* fromLayer, frame_t fromFrNum, Layer* toLayer, frame_t toFrNum, DocRange::Type type) {
|
||||
DocRange r;
|
||||
r.startRange(fromLayer, fromFrNum, type);
|
||||
r.endRange(toLayer, toFrNum);
|
||||
return r;
|
||||
}
|
||||
|
||||
DocumentRange range(layer_t fromLayer, frame_t fromFrNum,
|
||||
layer_t toLayer, frame_t toFrNum, DocumentRange::Type type) {
|
||||
DocRange range(layer_t fromLayer, frame_t fromFrNum,
|
||||
layer_t toLayer, frame_t toFrNum, DocRange::Type type) {
|
||||
LayerList layers = sprite->allLayers();
|
||||
return range(layers[fromLayer], fromFrNum, layers[toLayer], toFrNum, type);
|
||||
}
|
||||
|
||||
DocumentRange layers_range(Layer* fromLayer, Layer* toLayer) {
|
||||
return range(fromLayer, -1, toLayer, -1, DocumentRange::kLayers);
|
||||
DocRange layers_range(Layer* fromLayer, Layer* toLayer) {
|
||||
return range(fromLayer, -1, toLayer, -1, DocRange::kLayers);
|
||||
}
|
||||
|
||||
DocumentRange layers_range(layer_t fromLayer, layer_t toLayer) {
|
||||
DocRange layers_range(layer_t fromLayer, layer_t toLayer) {
|
||||
LayerList layers = sprite->allLayers();
|
||||
return layers_range(layers[fromLayer], layers[toLayer]);
|
||||
}
|
||||
|
||||
DocumentRange layers_range(Layer* layer) {
|
||||
return range(layer, -1, layer, -1, DocumentRange::kLayers);
|
||||
DocRange layers_range(Layer* layer) {
|
||||
return range(layer, -1, layer, -1, DocRange::kLayers);
|
||||
}
|
||||
|
||||
DocumentRange layers_range(layer_t layer) {
|
||||
DocRange layers_range(layer_t layer) {
|
||||
LayerList layers = sprite->allLayers();
|
||||
return layers_range(layers[layer]);
|
||||
}
|
||||
|
||||
DocumentRange frames_range(frame_t fromFrame, frame_t toFrame) {
|
||||
return range(nullptr, fromFrame, nullptr, toFrame, DocumentRange::kFrames);
|
||||
DocRange frames_range(frame_t fromFrame, frame_t toFrame) {
|
||||
return range(nullptr, fromFrame, nullptr, toFrame, DocRange::kFrames);
|
||||
}
|
||||
|
||||
DocumentRange frames_range(frame_t frame) {
|
||||
return range(nullptr, frame, nullptr, frame, DocumentRange::kFrames);
|
||||
DocRange frames_range(frame_t frame) {
|
||||
return range(nullptr, frame, nullptr, frame, DocRange::kFrames);
|
||||
}
|
||||
|
||||
DocumentRange cels_range(layer_t fromLayer, frame_t fromFrNum,
|
||||
DocRange cels_range(layer_t fromLayer, frame_t fromFrNum,
|
||||
layer_t toLayer, frame_t toFrNum) {
|
||||
return range(fromLayer, fromFrNum, toLayer, toFrNum, DocumentRange::kCels);
|
||||
return range(fromLayer, fromFrNum, toLayer, toFrNum, DocRange::kCels);
|
||||
}
|
||||
|
||||
TestContextT<app::Context> ctx;
|
||||
@ -304,35 +304,35 @@ TEST_F(DocRangeOps, MoveLayersNoOp) {
|
||||
EXPECT_EQ(layers_range(layer1),
|
||||
move_range(doc,
|
||||
layers_range(layer1),
|
||||
layers_range(layer1), kDocumentRangeAfter));
|
||||
layers_range(layer1), kDocRangeAfter));
|
||||
EXPECT_LAYER_ORDER(layer1, layer2, layer3, layer4);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
EXPECT_EQ(layers_range(layer1),
|
||||
move_range(doc,
|
||||
layers_range(layer1),
|
||||
layers_range(layer2), kDocumentRangeBefore));
|
||||
layers_range(layer2), kDocRangeBefore));
|
||||
EXPECT_LAYER_ORDER(layer1, layer2, layer3, layer4);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
EXPECT_EQ(layers_range(layer4),
|
||||
move_range(doc,
|
||||
layers_range(layer4),
|
||||
layers_range(layer4), kDocumentRangeAfter));
|
||||
layers_range(layer4), kDocRangeAfter));
|
||||
EXPECT_LAYER_ORDER(layer1, layer2, layer3, layer4);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
EXPECT_EQ(layers_range(layer4),
|
||||
move_range(doc,
|
||||
layers_range(layer4),
|
||||
layers_range(layer4), kDocumentRangeBefore));
|
||||
layers_range(layer4), kDocRangeBefore));
|
||||
EXPECT_LAYER_ORDER(layer1, layer2, layer3, layer4);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
EXPECT_EQ(layers_range(layer4),
|
||||
move_range(doc,
|
||||
layers_range(layer4),
|
||||
layers_range(layer3), kDocumentRangeAfter));
|
||||
layers_range(layer3), kDocRangeAfter));
|
||||
EXPECT_LAYER_ORDER(layer1, layer2, layer3, layer4);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
@ -341,76 +341,76 @@ TEST_F(DocRangeOps, MoveLayersNoOp) {
|
||||
EXPECT_EQ(layers_range(layer1, layer2),
|
||||
move_range(doc,
|
||||
layers_range(layer1, layer2),
|
||||
layers_range(layer1), kDocumentRangeBefore));
|
||||
layers_range(layer1), kDocRangeBefore));
|
||||
EXPECT_LAYER_ORDER(layer1, layer2, layer3, layer4);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
EXPECT_EQ(layers_range(layer1, layer2),
|
||||
move_range(doc,
|
||||
layers_range(layer1, layer2),
|
||||
layers_range(layer1), kDocumentRangeAfter));
|
||||
layers_range(layer1), kDocRangeAfter));
|
||||
EXPECT_LAYER_ORDER(layer1, layer2, layer3, layer4);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
EXPECT_EQ(layers_range(layer1, layer2),
|
||||
move_range(doc,
|
||||
layers_range(layer1, layer2),
|
||||
layers_range(layer2), kDocumentRangeBefore));
|
||||
layers_range(layer2), kDocRangeBefore));
|
||||
EXPECT_LAYER_ORDER(layer1, layer2, layer3, layer4);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
EXPECT_EQ(layers_range(layer1, layer2),
|
||||
move_range(doc,
|
||||
layers_range(layer1, layer2),
|
||||
layers_range(layer2), kDocumentRangeAfter));
|
||||
layers_range(layer2), kDocRangeAfter));
|
||||
EXPECT_LAYER_ORDER(layer1, layer2, layer3, layer4);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
EXPECT_EQ(layers_range(layer1, layer2),
|
||||
move_range(doc,
|
||||
layers_range(layer1, layer2),
|
||||
layers_range(layer3), kDocumentRangeBefore));
|
||||
layers_range(layer3), kDocRangeBefore));
|
||||
EXPECT_LAYER_ORDER(layer1, layer2, layer3, layer4);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
EXPECT_EQ(layers_range(layer3, layer4),
|
||||
move_range(doc,
|
||||
layers_range(layer3, layer4),
|
||||
layers_range(layer2), kDocumentRangeAfter));
|
||||
layers_range(layer2), kDocRangeAfter));
|
||||
EXPECT_LAYER_ORDER(layer1, layer2, layer3, layer4);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
EXPECT_EQ(layers_range(layer3, layer4),
|
||||
move_range(doc,
|
||||
layers_range(layer3, layer4),
|
||||
layers_range(layer3), kDocumentRangeBefore));
|
||||
layers_range(layer3), kDocRangeBefore));
|
||||
EXPECT_LAYER_ORDER(layer1, layer2, layer3, layer4);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
EXPECT_EQ(layers_range(layer3, layer4),
|
||||
move_range(doc,
|
||||
layers_range(layer3, layer4),
|
||||
layers_range(layer3), kDocumentRangeAfter));
|
||||
layers_range(layer3), kDocRangeAfter));
|
||||
EXPECT_LAYER_ORDER(layer1, layer2, layer3, layer4);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
EXPECT_EQ(layers_range(layer3, layer4),
|
||||
move_range(doc,
|
||||
layers_range(layer3, layer4),
|
||||
layers_range(layer4), kDocumentRangeBefore));
|
||||
layers_range(layer4), kDocRangeBefore));
|
||||
EXPECT_LAYER_ORDER(layer1, layer2, layer3, layer4);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
EXPECT_EQ(layers_range(layer3, layer4),
|
||||
move_range(doc,
|
||||
layers_range(layer3, layer4),
|
||||
layers_range(layer4), kDocumentRangeAfter));
|
||||
layers_range(layer4), kDocRangeAfter));
|
||||
EXPECT_LAYER_ORDER(layer1, layer2, layer3, layer4);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
// Move four layers
|
||||
|
||||
DocumentRangePlace places[] = { kDocumentRangeBefore, kDocumentRangeAfter };
|
||||
DocRangePlace places[] = { kDocRangeBefore, kDocRangeAfter };
|
||||
for (int i=0; i<2; ++i) {
|
||||
for (int layer=0; layer<4; ++layer) {
|
||||
EXPECT_EQ(layers_range(layer1, layer4),
|
||||
@ -454,35 +454,35 @@ TEST_F(DocRangeOps, MoveFramesNoOp) {
|
||||
EXPECT_EQ(frames_range(0),
|
||||
move_range(doc,
|
||||
frames_range(0),
|
||||
frames_range(0), kDocumentRangeAfter));
|
||||
frames_range(0), kDocRangeAfter));
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
EXPECT_EQ(frames_range(0),
|
||||
move_range(doc,
|
||||
frames_range(0),
|
||||
frames_range(1), kDocumentRangeBefore));
|
||||
frames_range(1), kDocRangeBefore));
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
EXPECT_EQ(frames_range(3),
|
||||
move_range(doc,
|
||||
frames_range(3),
|
||||
frames_range(3), kDocumentRangeAfter));
|
||||
frames_range(3), kDocRangeAfter));
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
EXPECT_EQ(frames_range(3),
|
||||
move_range(doc,
|
||||
frames_range(3),
|
||||
frames_range(3), kDocumentRangeBefore));
|
||||
frames_range(3), kDocRangeBefore));
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
EXPECT_EQ(frames_range(3),
|
||||
move_range(doc,
|
||||
frames_range(3),
|
||||
frames_range(2), kDocumentRangeAfter));
|
||||
frames_range(2), kDocRangeAfter));
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
@ -491,76 +491,76 @@ TEST_F(DocRangeOps, MoveFramesNoOp) {
|
||||
EXPECT_EQ(frames_range(0, 1),
|
||||
move_range(doc,
|
||||
frames_range(0, 1),
|
||||
frames_range(0), kDocumentRangeBefore));
|
||||
frames_range(0), kDocRangeBefore));
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
EXPECT_EQ(frames_range(0, 1),
|
||||
move_range(doc,
|
||||
frames_range(0, 1),
|
||||
frames_range(0), kDocumentRangeAfter));
|
||||
frames_range(0), kDocRangeAfter));
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
EXPECT_EQ(frames_range(0, 1),
|
||||
move_range(doc,
|
||||
frames_range(0, 1),
|
||||
frames_range(1), kDocumentRangeBefore));
|
||||
frames_range(1), kDocRangeBefore));
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
EXPECT_EQ(frames_range(0, 1),
|
||||
move_range(doc,
|
||||
frames_range(0, 1),
|
||||
frames_range(1), kDocumentRangeAfter));
|
||||
frames_range(1), kDocRangeAfter));
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
EXPECT_EQ(frames_range(0, 1),
|
||||
move_range(doc,
|
||||
frames_range(0, 1),
|
||||
frames_range(2), kDocumentRangeBefore));
|
||||
frames_range(2), kDocRangeBefore));
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
EXPECT_EQ(frames_range(2, 3),
|
||||
move_range(doc,
|
||||
frames_range(2, 3),
|
||||
frames_range(1), kDocumentRangeAfter));
|
||||
frames_range(1), kDocRangeAfter));
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
EXPECT_EQ(frames_range(2, 3),
|
||||
move_range(doc,
|
||||
frames_range(2, 3),
|
||||
frames_range(2), kDocumentRangeBefore));
|
||||
frames_range(2), kDocRangeBefore));
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
EXPECT_EQ(frames_range(2, 3),
|
||||
move_range(doc,
|
||||
frames_range(2, 3),
|
||||
frames_range(2), kDocumentRangeAfter));
|
||||
frames_range(2), kDocRangeAfter));
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
EXPECT_EQ(frames_range(2, 3),
|
||||
move_range(doc,
|
||||
frames_range(2, 3),
|
||||
frames_range(3), kDocumentRangeBefore));
|
||||
frames_range(3), kDocRangeBefore));
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
EXPECT_EQ(frames_range(2, 3),
|
||||
move_range(doc,
|
||||
frames_range(2, 3),
|
||||
frames_range(3), kDocumentRangeAfter));
|
||||
frames_range(3), kDocRangeAfter));
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
EXPECT_FALSE(doc->undoHistory()->canUndo());
|
||||
|
||||
// Move four frames
|
||||
|
||||
DocumentRangePlace places[] = { kDocumentRangeBefore, kDocumentRangeAfter };
|
||||
DocRangePlace places[] = { kDocRangeBefore, kDocRangeAfter };
|
||||
for (int i=0; i<2; ++i) {
|
||||
for (int frame=0; frame<4; ++frame) {
|
||||
EXPECT_EQ(frames_range(0, 3),
|
||||
@ -602,7 +602,7 @@ TEST_F(DocRangeOps, MoveCelsNoOp) {
|
||||
EXPECT_EQ(cels_range(0, 0, 1, 1),
|
||||
move_range(doc,
|
||||
cels_range(0, 0, 1, 1),
|
||||
cels_range(0, 0, 1, 1), kDocumentRangeAfter));
|
||||
cels_range(0, 0, 1, 1), kDocRangeAfter));
|
||||
EXPECT_CEL(0, 0, 0, 0);
|
||||
EXPECT_CEL(0, 1, 0, 1);
|
||||
EXPECT_CEL(1, 0, 1, 0);
|
||||
@ -619,7 +619,7 @@ TEST_F(DocRangeOps, MoveLayers) {
|
||||
EXPECT_EQ(layers_range(layer1),
|
||||
move_range(doc,
|
||||
layers_range(layer1),
|
||||
layers_range(layer2), kDocumentRangeAfter));
|
||||
layers_range(layer2), kDocRangeAfter));
|
||||
EXPECT_LAYER_ORDER(layer2, layer1, layer3, layer4);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_LAYER_ORDER(layer1, layer2, layer3, layer4);
|
||||
@ -628,7 +628,7 @@ TEST_F(DocRangeOps, MoveLayers) {
|
||||
EXPECT_EQ(layers_range(layer2),
|
||||
move_range(doc,
|
||||
layers_range(layer2),
|
||||
layers_range(layer1), kDocumentRangeBefore));
|
||||
layers_range(layer1), kDocRangeBefore));
|
||||
EXPECT_LAYER_ORDER(layer2, layer1, layer3, layer4);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_LAYER_ORDER(layer1, layer2, layer3, layer4);
|
||||
@ -638,7 +638,7 @@ TEST_F(DocRangeOps, MoveLayers) {
|
||||
EXPECT_THROW({
|
||||
move_range(doc,
|
||||
layers_range(layer1),
|
||||
layers_range(layer2), kDocumentRangeAfter);
|
||||
layers_range(layer2), kDocRangeAfter);
|
||||
}, std::exception);
|
||||
EXPECT_LAYER_ORDER(layer1, layer2, layer3, layer4);
|
||||
layer1->setBackground(false);
|
||||
@ -647,7 +647,7 @@ TEST_F(DocRangeOps, MoveLayers) {
|
||||
EXPECT_EQ(layers_range(layer2),
|
||||
move_range(doc,
|
||||
layers_range(layer2),
|
||||
layers_range(layer4), kDocumentRangeAfter));
|
||||
layers_range(layer4), kDocRangeAfter));
|
||||
EXPECT_LAYER_ORDER(layer1, layer3, layer4, layer2);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_LAYER_ORDER(layer1, layer2, layer3, layer4);
|
||||
@ -656,7 +656,7 @@ TEST_F(DocRangeOps, MoveLayers) {
|
||||
EXPECT_EQ(layers_range(layer2),
|
||||
move_range(doc,
|
||||
layers_range(layer2),
|
||||
layers_range(layer4), kDocumentRangeBefore));
|
||||
layers_range(layer4), kDocRangeBefore));
|
||||
EXPECT_LAYER_ORDER(layer1, layer3, layer2, layer4);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_LAYER_ORDER(layer1, layer2, layer3, layer4);
|
||||
@ -664,7 +664,7 @@ TEST_F(DocRangeOps, MoveLayers) {
|
||||
EXPECT_EQ(layers_range(layer1),
|
||||
move_range(doc,
|
||||
layers_range(layer1),
|
||||
layers_range(layer3, layer4), kDocumentRangeBefore));
|
||||
layers_range(layer3, layer4), kDocRangeBefore));
|
||||
EXPECT_LAYER_ORDER(layer2, layer1, layer3, layer4);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_LAYER_ORDER(layer1, layer2, layer3, layer4);
|
||||
@ -673,13 +673,13 @@ TEST_F(DocRangeOps, MoveLayers) {
|
||||
EXPECT_EQ(layers_range(layer2, layer3),
|
||||
move_range(doc,
|
||||
layers_range(layer2, layer3),
|
||||
layers_range(layer4), kDocumentRangeAfter));
|
||||
layers_range(layer4), kDocRangeAfter));
|
||||
EXPECT_LAYER_ORDER(layer1, layer4, layer2, layer3);
|
||||
|
||||
EXPECT_EQ(layers_range(layer2, layer3),
|
||||
move_range(doc,
|
||||
layers_range(layer2, layer3),
|
||||
layers_range(layer1), kDocumentRangeAfter));
|
||||
layers_range(layer1), kDocRangeAfter));
|
||||
EXPECT_LAYER_ORDER(layer1, layer2, layer3, layer4);
|
||||
|
||||
// Move three layers at the bottom (but we cannot because the bottom is a background layer)
|
||||
@ -687,7 +687,7 @@ TEST_F(DocRangeOps, MoveLayers) {
|
||||
EXPECT_THROW({
|
||||
move_range(doc,
|
||||
layers_range(layer2, layer4),
|
||||
layers_range(layer1), kDocumentRangeBefore);
|
||||
layers_range(layer1), kDocRangeBefore);
|
||||
}, std::exception);
|
||||
EXPECT_LAYER_ORDER(layer1, layer2, layer3, layer4);
|
||||
layer1->setBackground(false);
|
||||
@ -696,7 +696,7 @@ TEST_F(DocRangeOps, MoveLayers) {
|
||||
EXPECT_EQ(layers_range(layer1, layer3),
|
||||
move_range(doc,
|
||||
layers_range(layer1, layer3),
|
||||
layers_range(layer4), kDocumentRangeAfter));
|
||||
layers_range(layer4), kDocRangeAfter));
|
||||
EXPECT_LAYER_ORDER(layer4, layer1, layer2, layer3);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_LAYER_ORDER(layer1, layer2, layer3, layer4);
|
||||
@ -705,7 +705,7 @@ TEST_F(DocRangeOps, MoveLayers) {
|
||||
EXPECT_EQ(layers_range(layer2, layer4),
|
||||
move_range(doc,
|
||||
layers_range(layer2, layer4),
|
||||
layers_range(layer1), kDocumentRangeBefore));
|
||||
layers_range(layer1), kDocRangeBefore));
|
||||
EXPECT_LAYER_ORDER(layer2, layer3, layer4, layer1);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_LAYER_ORDER(layer1, layer2, layer3, layer4);
|
||||
@ -716,7 +716,7 @@ TEST_F(DocRangeOps, MoveFrames) {
|
||||
EXPECT_EQ(frames_range(1),
|
||||
move_range(doc,
|
||||
frames_range(0),
|
||||
frames_range(1), kDocumentRangeAfter));
|
||||
frames_range(1), kDocRangeAfter));
|
||||
EXPECT_FRAME_ORDER(1, 0, 2, 3);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
@ -726,7 +726,7 @@ TEST_F(DocRangeOps, MoveFrames) {
|
||||
EXPECT_EQ(frames_range(5),
|
||||
move_range(doc,
|
||||
frames_range(1),
|
||||
frames_range(5), kDocumentRangeAfter));
|
||||
frames_range(5), kDocRangeAfter));
|
||||
EXPECT_FRAME_ORDER6(0, 2, 3, 4, 5, 1);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER6(0, 1, 2, 3, 4, 5);
|
||||
@ -736,7 +736,7 @@ TEST_F(DocRangeOps, MoveFrames) {
|
||||
move_range(
|
||||
doc,
|
||||
frames_range(1, 2),
|
||||
frames_range(5), kDocumentRangeAfter));
|
||||
frames_range(5), kDocRangeAfter));
|
||||
EXPECT_FRAME_ORDER6(0, 3, 4, 5, 1, 2);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER6(0, 1, 2, 3, 4, 5);
|
||||
@ -745,7 +745,7 @@ TEST_F(DocRangeOps, MoveFrames) {
|
||||
EXPECT_EQ(frames_range(1, 2),
|
||||
move_range(doc,
|
||||
frames_range(2, 3),
|
||||
frames_range(0), kDocumentRangeAfter));
|
||||
frames_range(0), kDocRangeAfter));
|
||||
EXPECT_FRAME_ORDER(0, 2, 3, 1);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
@ -754,7 +754,7 @@ TEST_F(DocRangeOps, MoveFrames) {
|
||||
EXPECT_EQ(frames_range(0, 2),
|
||||
move_range(doc,
|
||||
frames_range(1, 3),
|
||||
frames_range(0), kDocumentRangeBefore));
|
||||
frames_range(0), kDocRangeBefore));
|
||||
EXPECT_FRAME_ORDER(1, 2, 3, 0);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
@ -763,7 +763,7 @@ TEST_F(DocRangeOps, MoveFrames) {
|
||||
EXPECT_EQ(frames_range(1, 3),
|
||||
move_range(doc,
|
||||
frames_range(0, 2),
|
||||
frames_range(3), kDocumentRangeAfter));
|
||||
frames_range(3), kDocRangeAfter));
|
||||
EXPECT_FRAME_ORDER(3, 0, 1, 2);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
@ -772,14 +772,14 @@ TEST_F(DocRangeOps, MoveFrames) {
|
||||
TEST_F(DocRangeOps, MoveFramesNonAdjacent) {
|
||||
// Move frames 0,2...
|
||||
|
||||
DocumentRange from;
|
||||
from.startRange(nullptr, 0, DocumentRange::kFrames); from.endRange(nullptr, 0);
|
||||
from.startRange(nullptr, 2, DocumentRange::kFrames); from.endRange(nullptr, 2);
|
||||
DocRange from;
|
||||
from.startRange(nullptr, 0, DocRange::kFrames); from.endRange(nullptr, 0);
|
||||
from.startRange(nullptr, 2, DocRange::kFrames); from.endRange(nullptr, 2);
|
||||
|
||||
// Move frames 0,2 after 3...
|
||||
|
||||
EXPECT_EQ(frames_range(2, 3),
|
||||
move_range(doc, from, frames_range(3), kDocumentRangeAfter));
|
||||
move_range(doc, from, frames_range(3), kDocRangeAfter));
|
||||
EXPECT_FRAME_ORDER(1, 3, 0, 2);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
@ -787,7 +787,7 @@ TEST_F(DocRangeOps, MoveFramesNonAdjacent) {
|
||||
// Move frames 0,2 before 3...
|
||||
|
||||
EXPECT_EQ(frames_range(1, 2),
|
||||
move_range(doc, from, frames_range(3), kDocumentRangeBefore));
|
||||
move_range(doc, from, frames_range(3), kDocRangeBefore));
|
||||
EXPECT_FRAME_ORDER(1, 0, 2, 3);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
@ -795,7 +795,7 @@ TEST_F(DocRangeOps, MoveFramesNonAdjacent) {
|
||||
// Move frames 0,2 before 0...
|
||||
|
||||
EXPECT_EQ(frames_range(0, 1),
|
||||
move_range(doc, from, frames_range(0), kDocumentRangeBefore));
|
||||
move_range(doc, from, frames_range(0), kDocRangeBefore));
|
||||
EXPECT_FRAME_ORDER(0, 2, 1, 3);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
@ -803,7 +803,7 @@ TEST_F(DocRangeOps, MoveFramesNonAdjacent) {
|
||||
// Move frames 0,2 after 0...
|
||||
|
||||
EXPECT_EQ(frames_range(0, 1),
|
||||
move_range(doc, from, frames_range(0), kDocumentRangeAfter));
|
||||
move_range(doc, from, frames_range(0), kDocRangeAfter));
|
||||
EXPECT_FRAME_ORDER(0, 2, 1, 3);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
@ -811,7 +811,7 @@ TEST_F(DocRangeOps, MoveFramesNonAdjacent) {
|
||||
// Move frames 0,2 before 1...
|
||||
|
||||
EXPECT_EQ(frames_range(0, 1),
|
||||
move_range(doc, from, frames_range(1), kDocumentRangeBefore));
|
||||
move_range(doc, from, frames_range(1), kDocRangeBefore));
|
||||
EXPECT_FRAME_ORDER(0, 2, 1, 3);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
@ -819,7 +819,7 @@ TEST_F(DocRangeOps, MoveFramesNonAdjacent) {
|
||||
// Move frames 0,2 after 1...
|
||||
|
||||
EXPECT_EQ(frames_range(1, 2),
|
||||
move_range(doc, from, frames_range(1), kDocumentRangeAfter));
|
||||
move_range(doc, from, frames_range(1), kDocRangeAfter));
|
||||
EXPECT_FRAME_ORDER(1, 0, 2, 3);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
@ -827,16 +827,16 @@ TEST_F(DocRangeOps, MoveFramesNonAdjacent) {
|
||||
// Move 1,2,5...
|
||||
|
||||
from.clearRange();
|
||||
from.startRange(nullptr, 1, DocumentRange::kFrames);
|
||||
from.startRange(nullptr, 1, DocRange::kFrames);
|
||||
from.endRange(nullptr, 2);
|
||||
from.startRange(nullptr, 5, DocumentRange::kFrames);
|
||||
from.startRange(nullptr, 5, DocRange::kFrames);
|
||||
from.endRange(nullptr, 5);
|
||||
|
||||
// Move 1,2,5 before 4...
|
||||
|
||||
EXPECT_FRAME_ORDER6(0, 1, 2, 3, 4, 5);
|
||||
EXPECT_EQ(frames_range(2, 4),
|
||||
move_range(doc, from, frames_range(4), kDocumentRangeBefore));
|
||||
move_range(doc, from, frames_range(4), kDocRangeBefore));
|
||||
EXPECT_FRAME_ORDER6(0, 3, 1, 2, 5, 4);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER6(0, 1, 2, 3, 4, 5);
|
||||
@ -844,7 +844,7 @@ TEST_F(DocRangeOps, MoveFramesNonAdjacent) {
|
||||
// Move 1,2,5 after 4...
|
||||
|
||||
EXPECT_EQ(frames_range(3, 5),
|
||||
move_range(doc, from, frames_range(4), kDocumentRangeAfter));
|
||||
move_range(doc, from, frames_range(4), kDocRangeAfter));
|
||||
EXPECT_FRAME_ORDER6(0, 3, 4, 1, 2, 5);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER6(0, 1, 2, 3, 4, 5);
|
||||
@ -852,7 +852,7 @@ TEST_F(DocRangeOps, MoveFramesNonAdjacent) {
|
||||
// Move 1,2,5 before 2...
|
||||
|
||||
EXPECT_EQ(frames_range(1, 3),
|
||||
move_range(doc, from, frames_range(2), kDocumentRangeBefore));
|
||||
move_range(doc, from, frames_range(2), kDocRangeBefore));
|
||||
EXPECT_FRAME_ORDER6(0, 1, 2, 5, 3, 4);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER6(0, 1, 2, 3, 4, 5);
|
||||
@ -860,7 +860,7 @@ TEST_F(DocRangeOps, MoveFramesNonAdjacent) {
|
||||
// Move 1,2,5 after 2...
|
||||
|
||||
EXPECT_EQ(frames_range(1, 3),
|
||||
move_range(doc, from, frames_range(2), kDocumentRangeAfter));
|
||||
move_range(doc, from, frames_range(2), kDocRangeAfter));
|
||||
EXPECT_FRAME_ORDER6(0, 1, 2, 5, 3, 4);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER6(0, 1, 2, 3, 4, 5);
|
||||
@ -868,7 +868,7 @@ TEST_F(DocRangeOps, MoveFramesNonAdjacent) {
|
||||
// Move 1,2,5 before 1...
|
||||
|
||||
EXPECT_EQ(frames_range(1, 3),
|
||||
move_range(doc, from, frames_range(1), kDocumentRangeBefore));
|
||||
move_range(doc, from, frames_range(1), kDocRangeBefore));
|
||||
EXPECT_FRAME_ORDER6(0, 1, 2, 5, 3, 4);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER6(0, 1, 2, 3, 4, 5);
|
||||
@ -876,17 +876,17 @@ TEST_F(DocRangeOps, MoveFramesNonAdjacent) {
|
||||
// Move 1,3,5...
|
||||
|
||||
from.clearRange();
|
||||
from.startRange(nullptr, 1, DocumentRange::kFrames);
|
||||
from.startRange(nullptr, 1, DocRange::kFrames);
|
||||
from.endRange(nullptr, 1);
|
||||
from.startRange(nullptr, 3, DocumentRange::kFrames);
|
||||
from.startRange(nullptr, 3, DocRange::kFrames);
|
||||
from.endRange(nullptr, 3);
|
||||
from.startRange(nullptr, 5, DocumentRange::kFrames);
|
||||
from.startRange(nullptr, 5, DocRange::kFrames);
|
||||
from.endRange(nullptr, 5);
|
||||
|
||||
// Move 1,3,5 before 4...
|
||||
|
||||
EXPECT_EQ(frames_range(2, 4),
|
||||
move_range(doc, from, frames_range(4), kDocumentRangeBefore));
|
||||
move_range(doc, from, frames_range(4), kDocRangeBefore));
|
||||
EXPECT_FRAME_ORDER6(0, 2, 1, 3, 5, 4);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER6(0, 1, 2, 3, 4, 5);
|
||||
@ -894,7 +894,7 @@ TEST_F(DocRangeOps, MoveFramesNonAdjacent) {
|
||||
// Move 1,3,5 after 4...
|
||||
|
||||
EXPECT_EQ(frames_range(3, 5),
|
||||
move_range(doc, from, frames_range(4), kDocumentRangeAfter));
|
||||
move_range(doc, from, frames_range(4), kDocRangeAfter));
|
||||
EXPECT_FRAME_ORDER6(0, 2, 4, 1, 3, 5);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER6(0, 1, 2, 3, 4, 5);
|
||||
@ -902,7 +902,7 @@ TEST_F(DocRangeOps, MoveFramesNonAdjacent) {
|
||||
// Move 1,3,5 before 5...
|
||||
|
||||
EXPECT_EQ(frames_range(3, 5),
|
||||
move_range(doc, from, frames_range(5), kDocumentRangeBefore));
|
||||
move_range(doc, from, frames_range(5), kDocRangeBefore));
|
||||
EXPECT_FRAME_ORDER6(0, 2, 4, 1, 3, 5);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER6(0, 1, 2, 3, 4, 5);
|
||||
@ -910,14 +910,14 @@ TEST_F(DocRangeOps, MoveFramesNonAdjacent) {
|
||||
// Move 1,3,5 after 5...
|
||||
|
||||
EXPECT_EQ(frames_range(3, 5),
|
||||
move_range(doc, from, frames_range(5), kDocumentRangeAfter));
|
||||
move_range(doc, from, frames_range(5), kDocRangeAfter));
|
||||
EXPECT_FRAME_ORDER6(0, 2, 4, 1, 3, 5);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER6(0, 1, 2, 3, 4, 5);
|
||||
}
|
||||
|
||||
TEST_F(DocRangeOps, MoveCels) {
|
||||
DocumentRangePlace ignore = kDocumentRangeBefore;
|
||||
DocRangePlace ignore = kDocRangeBefore;
|
||||
|
||||
move_range(doc,
|
||||
cels_range(0, 0, 0, 0),
|
||||
@ -982,7 +982,7 @@ TEST_F(DocRangeOps, CopyFrames) {
|
||||
EXPECT_EQ(frames_range(2),
|
||||
copy_range(doc,
|
||||
frames_range(0),
|
||||
frames_range(2, 3), kDocumentRangeBefore));
|
||||
frames_range(2, 3), kDocRangeBefore));
|
||||
EXPECT_FRAME_COPY1(0, 1, 0, 2, 3);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
@ -990,7 +990,7 @@ TEST_F(DocRangeOps, CopyFrames) {
|
||||
EXPECT_EQ(frames_range(4),
|
||||
copy_range(doc,
|
||||
frames_range(0),
|
||||
frames_range(2, 3), kDocumentRangeAfter));
|
||||
frames_range(2, 3), kDocRangeAfter));
|
||||
EXPECT_FRAME_COPY1(0, 1, 2, 3, 0);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
@ -998,7 +998,7 @@ TEST_F(DocRangeOps, CopyFrames) {
|
||||
EXPECT_EQ(frames_range(0),
|
||||
copy_range(doc,
|
||||
frames_range(3),
|
||||
frames_range(0, 1), kDocumentRangeBefore));
|
||||
frames_range(0, 1), kDocRangeBefore));
|
||||
EXPECT_FRAME_COPY1(3, 0, 1, 2, 3);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
@ -1006,7 +1006,7 @@ TEST_F(DocRangeOps, CopyFrames) {
|
||||
EXPECT_EQ(frames_range(2),
|
||||
copy_range(doc,
|
||||
frames_range(3),
|
||||
frames_range(0, 1), kDocumentRangeAfter));
|
||||
frames_range(0, 1), kDocRangeAfter));
|
||||
EXPECT_FRAME_COPY1(0, 1, 3, 2, 3);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
@ -1016,7 +1016,7 @@ TEST_F(DocRangeOps, CopyFrames) {
|
||||
EXPECT_EQ(frames_range(3, 5),
|
||||
copy_range(doc,
|
||||
frames_range(0, 2),
|
||||
frames_range(3), kDocumentRangeBefore));
|
||||
frames_range(3), kDocRangeBefore));
|
||||
EXPECT_FRAME_COPY3(0, 1, 2, 0, 1, 2, 3);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
@ -1024,7 +1024,7 @@ TEST_F(DocRangeOps, CopyFrames) {
|
||||
EXPECT_EQ(frames_range(4, 6),
|
||||
copy_range(doc,
|
||||
frames_range(0, 2),
|
||||
frames_range(3), kDocumentRangeAfter));
|
||||
frames_range(3), kDocRangeAfter));
|
||||
EXPECT_FRAME_COPY3(0, 1, 2, 3, 0, 1, 2);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
@ -1032,7 +1032,7 @@ TEST_F(DocRangeOps, CopyFrames) {
|
||||
EXPECT_EQ(frames_range(0, 2),
|
||||
copy_range(doc,
|
||||
frames_range(1, 3),
|
||||
frames_range(0), kDocumentRangeBefore));
|
||||
frames_range(0), kDocRangeBefore));
|
||||
EXPECT_FRAME_COPY3(1, 2, 3, 0, 1, 2, 3);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
@ -1040,7 +1040,7 @@ TEST_F(DocRangeOps, CopyFrames) {
|
||||
EXPECT_EQ(frames_range(1, 3),
|
||||
copy_range(doc,
|
||||
frames_range(1, 3),
|
||||
frames_range(0), kDocumentRangeAfter));
|
||||
frames_range(0), kDocRangeAfter));
|
||||
EXPECT_FRAME_COPY3(0, 1, 2, 3, 1, 2, 3);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
@ -1048,7 +1048,7 @@ TEST_F(DocRangeOps, CopyFrames) {
|
||||
EXPECT_EQ(frames_range(0, 2),
|
||||
copy_range(doc,
|
||||
frames_range(0, 2),
|
||||
frames_range(0, 2), kDocumentRangeBefore));
|
||||
frames_range(0, 2), kDocRangeBefore));
|
||||
EXPECT_FRAME_COPY3(0, 1, 2, 0, 1, 2, 3);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
@ -1056,7 +1056,7 @@ TEST_F(DocRangeOps, CopyFrames) {
|
||||
EXPECT_EQ(frames_range(3, 5),
|
||||
copy_range(doc,
|
||||
frames_range(0, 2),
|
||||
frames_range(0, 2), kDocumentRangeAfter));
|
||||
frames_range(0, 2), kDocRangeAfter));
|
||||
EXPECT_FRAME_COPY3(0, 1, 2, 0, 1, 2, 3);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
@ -1065,30 +1065,30 @@ TEST_F(DocRangeOps, CopyFrames) {
|
||||
TEST_F(DocRangeOps, CopyFramesNonAdjacent) {
|
||||
// Copy frames 0 and 2...
|
||||
|
||||
DocumentRange from;
|
||||
from.startRange(nullptr, 0, DocumentRange::kFrames); from.endRange(nullptr, 0);
|
||||
from.startRange(nullptr, 2, DocumentRange::kFrames); from.endRange(nullptr, 2);
|
||||
DocRange from;
|
||||
from.startRange(nullptr, 0, DocRange::kFrames); from.endRange(nullptr, 0);
|
||||
from.startRange(nullptr, 2, DocRange::kFrames); from.endRange(nullptr, 2);
|
||||
|
||||
EXPECT_EQ(frames_range(3, 4),
|
||||
copy_range(doc, from, frames_range(3), kDocumentRangeBefore));
|
||||
copy_range(doc, from, frames_range(3), kDocRangeBefore));
|
||||
EXPECT_FRAME_COPY2(0, 1, 2, 0, 2, 3);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
|
||||
EXPECT_EQ(frames_range(4, 5),
|
||||
copy_range(doc, from, frames_range(3), kDocumentRangeAfter));
|
||||
copy_range(doc, from, frames_range(3), kDocRangeAfter));
|
||||
EXPECT_FRAME_COPY2(0, 1, 2, 3, 0, 2);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
|
||||
EXPECT_EQ(frames_range(2, 3),
|
||||
copy_range(doc, from, frames_range(1), kDocumentRangeAfter));
|
||||
copy_range(doc, from, frames_range(1), kDocRangeAfter));
|
||||
EXPECT_FRAME_COPY2(0, 1, 0, 2, 2, 3);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
|
||||
EXPECT_EQ(frames_range(1, 2),
|
||||
copy_range(doc, from, frames_range(1), kDocumentRangeBefore));
|
||||
copy_range(doc, from, frames_range(1), kDocRangeBefore));
|
||||
EXPECT_FRAME_COPY2(0, 0, 2, 1, 2, 3);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
@ -1096,17 +1096,17 @@ TEST_F(DocRangeOps, CopyFramesNonAdjacent) {
|
||||
// Copy frames 1 and 3...
|
||||
|
||||
from.clearRange();
|
||||
from.startRange(nullptr, 1, DocumentRange::kFrames); from.endRange(nullptr, 1);
|
||||
from.startRange(nullptr, 3, DocumentRange::kFrames); from.endRange(nullptr, 3);
|
||||
from.startRange(nullptr, 1, DocRange::kFrames); from.endRange(nullptr, 1);
|
||||
from.startRange(nullptr, 3, DocRange::kFrames); from.endRange(nullptr, 3);
|
||||
|
||||
EXPECT_EQ(frames_range(0, 1),
|
||||
copy_range(doc, from, frames_range(0), kDocumentRangeBefore));
|
||||
copy_range(doc, from, frames_range(0), kDocRangeBefore));
|
||||
EXPECT_FRAME_COPY2(1, 3, 0, 1, 2, 3);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
|
||||
EXPECT_EQ(frames_range(1, 2),
|
||||
copy_range(doc, from, frames_range(0), kDocumentRangeAfter));
|
||||
copy_range(doc, from, frames_range(0), kDocRangeAfter));
|
||||
EXPECT_FRAME_COPY2(0, 1, 3, 1, 2, 3);
|
||||
doc->undoHistory()->undo();
|
||||
EXPECT_FRAME_ORDER(0, 1, 2, 3);
|
||||
@ -1169,10 +1169,10 @@ TEST(DocRangeOps2, DropInsideBugs) {
|
||||
// layer3 --> layer1
|
||||
// layer2 layer3
|
||||
// layer1 layer2
|
||||
DocumentRange from, to;
|
||||
DocRange from, to;
|
||||
from.selectLayer(layer1);
|
||||
to.selectLayer(layer4);
|
||||
move_range(doc, from, to, kDocumentRangeFirstChild);
|
||||
move_range(doc, from, to, kDocRangeFirstChild);
|
||||
EXPECT_EQ(layer2, sprite->root()->layers()[0]);
|
||||
EXPECT_EQ(layer3, sprite->root()->layers()[1]);
|
||||
EXPECT_EQ(layer4, sprite->root()->layers()[2]);
|
||||
@ -1184,7 +1184,7 @@ TEST(DocRangeOps2, DropInsideBugs) {
|
||||
// layer2 layer2
|
||||
from.clearRange(); from.selectLayer(layer3);
|
||||
to.clearRange(); to.selectLayer(layer1);
|
||||
move_range(doc, from, to, kDocumentRangeBefore);
|
||||
move_range(doc, from, to, kDocRangeBefore);
|
||||
EXPECT_EQ(layer2, sprite->root()->layers()[0]);
|
||||
EXPECT_EQ(layer4, sprite->root()->layers()[1]);
|
||||
EXPECT_EQ(layer3, layer4->layers()[0]);
|
||||
@ -1196,7 +1196,7 @@ TEST(DocRangeOps2, DropInsideBugs) {
|
||||
// layer2 layer2
|
||||
from.clearRange(); from.selectLayer(layer1);
|
||||
to.clearRange(); to.selectLayer(layer3);
|
||||
move_range(doc, from, to, kDocumentRangeFirstChild);
|
||||
move_range(doc, from, to, kDocRangeFirstChild);
|
||||
EXPECT_EQ(layer2, sprite->root()->layers()[0]);
|
||||
EXPECT_EQ(layer4, sprite->root()->layers()[1]);
|
||||
EXPECT_EQ(layer3, layer4->layers()[0]);
|
||||
@ -1205,7 +1205,7 @@ TEST(DocRangeOps2, DropInsideBugs) {
|
||||
// move layer4 as first child of layer4 (invalid operation)
|
||||
from.clearRange(); from.selectLayer(layer4);
|
||||
to.clearRange(); to.selectLayer(layer4);
|
||||
move_range(doc, from, to, kDocumentRangeFirstChild);
|
||||
move_range(doc, from, to, kDocRangeFirstChild);
|
||||
// Everything is exactly the same (no new undo operation)
|
||||
EXPECT_EQ(layer2, sprite->root()->layers()[0]);
|
||||
EXPECT_EQ(layer4, sprite->root()->layers()[1]);
|
||||
@ -1215,7 +1215,7 @@ TEST(DocRangeOps2, DropInsideBugs) {
|
||||
// move layer4 as first child of layer3 (invalid operation)
|
||||
from.clearRange(); from.selectLayer(layer4);
|
||||
to.clearRange(); to.selectLayer(layer3);
|
||||
move_range(doc, from, to, kDocumentRangeFirstChild);
|
||||
move_range(doc, from, to, kDocRangeFirstChild);
|
||||
// Everything is exactly the same (no new undo operation)
|
||||
EXPECT_EQ(layer2, sprite->root()->layers()[0]);
|
||||
EXPECT_EQ(layer4, sprite->root()->layers()[1]);
|
||||
@ -1225,7 +1225,7 @@ TEST(DocRangeOps2, DropInsideBugs) {
|
||||
// move layer4 after layer1 (invalid operation)
|
||||
from.clearRange(); from.selectLayer(layer4);
|
||||
to.clearRange(); to.selectLayer(layer1);
|
||||
move_range(doc, from, to, kDocumentRangeAfter);
|
||||
move_range(doc, from, to, kDocRangeAfter);
|
||||
// Everything is exactly the same (no new undo operation)
|
||||
EXPECT_EQ(layer2, sprite->root()->layers()[0]);
|
||||
EXPECT_EQ(layer4, sprite->root()->layers()[1]);
|
||||
@ -1235,7 +1235,7 @@ TEST(DocRangeOps2, DropInsideBugs) {
|
||||
// move layer4 after layer1 (invalid operation)
|
||||
from.clearRange(); from.selectLayer(layer4);
|
||||
to.clearRange(); to.selectLayer(layer1);
|
||||
move_range(doc, from, to, kDocumentRangeBefore);
|
||||
move_range(doc, from, to, kDocRangeBefore);
|
||||
// Everything is exactly the same (no new undo operation)
|
||||
EXPECT_EQ(layer2, sprite->root()->layers()[0]);
|
||||
EXPECT_EQ(layer4, sprite->root()->layers()[1]);
|
||||
@ -1245,7 +1245,7 @@ TEST(DocRangeOps2, DropInsideBugs) {
|
||||
// move layer2 inside layer2 (invalid operation)
|
||||
from.clearRange(); from.selectLayer(layer2);
|
||||
to.clearRange(); to.selectLayer(layer2);
|
||||
move_range(doc, from, to, kDocumentRangeFirstChild);
|
||||
move_range(doc, from, to, kDocRangeFirstChild);
|
||||
// Everything is exactly the same (no new undo operation)
|
||||
EXPECT_EQ(layer2, sprite->root()->layers()[0]);
|
||||
EXPECT_EQ(layer4, sprite->root()->layers()[1]);
|
||||
@ -1301,7 +1301,7 @@ TEST_F(DocRangeOps, MoveRangeWithTags) {
|
||||
move_range(doc,
|
||||
frames_range(1, 2),
|
||||
frames_range(0),
|
||||
kDocumentRangeBefore,
|
||||
kDocRangeBefore,
|
||||
kFitOutsideTags));
|
||||
EXPECT_FRAME_ORDER6(1, 2, 0, 3, 4, 5);
|
||||
EXPECT_EQ(2, a->fromFrame());
|
||||
@ -1321,7 +1321,7 @@ TEST_F(DocRangeOps, MoveRangeWithTags) {
|
||||
move_range(doc,
|
||||
frames_range(1, 2),
|
||||
frames_range(0),
|
||||
kDocumentRangeBefore,
|
||||
kDocRangeBefore,
|
||||
kFitInsideTags));
|
||||
EXPECT_FRAME_ORDER6(1, 2, 0, 3, 4, 5);
|
||||
EXPECT_EQ(0, a->fromFrame());
|
||||
@ -1336,7 +1336,7 @@ TEST_F(DocRangeOps, MoveRangeWithTags) {
|
||||
move_range(doc,
|
||||
frames_range(0, 1),
|
||||
frames_range(2),
|
||||
kDocumentRangeAfter,
|
||||
kDocRangeAfter,
|
||||
kFitInsideTags));
|
||||
EXPECT_FRAME_ORDER6(2, 0, 1, 3, 4, 5);
|
||||
EXPECT_EQ(0, a->fromFrame());
|
||||
@ -1351,7 +1351,7 @@ TEST_F(DocRangeOps, MoveRangeWithTags) {
|
||||
move_range(doc,
|
||||
frames_range(0, 1),
|
||||
frames_range(2),
|
||||
kDocumentRangeAfter,
|
||||
kDocRangeAfter,
|
||||
kFitOutsideTags));
|
||||
EXPECT_FRAME_ORDER6(2, 0, 1, 3, 4, 5);
|
||||
EXPECT_EQ(0, a->fromFrame());
|
||||
@ -1365,7 +1365,7 @@ TEST_F(DocRangeOps, MoveRangeWithTags) {
|
||||
move_range(doc,
|
||||
frames_range(0, 1),
|
||||
frames_range(3),
|
||||
kDocumentRangeBefore,
|
||||
kDocRangeBefore,
|
||||
kFitOutsideTags));
|
||||
EXPECT_FRAME_ORDER6(2, 0, 1, 3, 4, 5);
|
||||
EXPECT_EQ(0, a->fromFrame());
|
||||
@ -1379,7 +1379,7 @@ TEST_F(DocRangeOps, MoveRangeWithTags) {
|
||||
move_range(doc,
|
||||
frames_range(2, 3),
|
||||
frames_range(2),
|
||||
kDocumentRangeAfter,
|
||||
kDocRangeAfter,
|
||||
kFitOutsideTags));
|
||||
EXPECT_FRAME_ORDER6(0, 1, 2, 3, 4, 5);
|
||||
EXPECT_EQ(0, a->fromFrame());
|
||||
@ -1393,7 +1393,7 @@ TEST_F(DocRangeOps, MoveRangeWithTags) {
|
||||
move_range(doc,
|
||||
frames_range(2, 3),
|
||||
frames_range(3),
|
||||
kDocumentRangeBefore,
|
||||
kDocRangeBefore,
|
||||
kFitOutsideTags));
|
||||
EXPECT_FRAME_ORDER6(0, 1, 2, 3, 4, 5);
|
||||
EXPECT_EQ(0, a->fromFrame());
|
||||
@ -1408,7 +1408,7 @@ TEST_F(DocRangeOps, MoveRangeWithTags) {
|
||||
move_range(doc,
|
||||
frames_range(0, 1),
|
||||
frames_range(5),
|
||||
kDocumentRangeAfter,
|
||||
kDocRangeAfter,
|
||||
kFitInsideTags));
|
||||
EXPECT_FRAME_ORDER6(2, 3, 4, 5, 0, 1);
|
||||
EXPECT_EQ(0, a->fromFrame());
|
||||
@ -1423,7 +1423,7 @@ TEST_F(DocRangeOps, MoveRangeWithTags) {
|
||||
move_range(doc,
|
||||
frames_range(0, 1),
|
||||
frames_range(5),
|
||||
kDocumentRangeAfter,
|
||||
kDocRangeAfter,
|
||||
kFitOutsideTags));
|
||||
EXPECT_FRAME_ORDER6(2, 3, 4, 5, 0, 1);
|
||||
EXPECT_EQ(0, a->fromFrame());
|
||||
@ -1434,14 +1434,14 @@ TEST_F(DocRangeOps, MoveRangeWithTags) {
|
||||
doc->undoHistory()->undo();
|
||||
|
||||
// Put frame 1 and 4 in the middle of both tags (outside)
|
||||
DocumentRange from;
|
||||
from.startRange(nullptr, 1, DocumentRange::kFrames); from.endRange(nullptr, 1);
|
||||
from.startRange(nullptr, 4, DocumentRange::kFrames); from.endRange(nullptr, 4);
|
||||
DocRange from;
|
||||
from.startRange(nullptr, 1, DocRange::kFrames); from.endRange(nullptr, 1);
|
||||
from.startRange(nullptr, 4, DocRange::kFrames); from.endRange(nullptr, 4);
|
||||
EXPECT_EQ(frames_range(2, 3),
|
||||
move_range(doc,
|
||||
from,
|
||||
frames_range(2),
|
||||
kDocumentRangeAfter,
|
||||
kDocRangeAfter,
|
||||
kFitOutsideTags));
|
||||
EXPECT_FRAME_ORDER6(0, 2, 1, 4, 3, 5);
|
||||
EXPECT_EQ(0, a->fromFrame());
|
||||
@ -1456,7 +1456,7 @@ TEST_F(DocRangeOps, MoveRangeWithTags) {
|
||||
move_range(doc,
|
||||
from,
|
||||
frames_range(3),
|
||||
kDocumentRangeBefore,
|
||||
kDocRangeBefore,
|
||||
kFitInsideTags));
|
||||
EXPECT_FRAME_ORDER6(0, 2, 1, 4, 3, 5);
|
||||
EXPECT_EQ(0, a->fromFrame());
|
||||
@ -1483,7 +1483,7 @@ TEST_F(DocRangeOps, CopyRangeWithTags) {
|
||||
copy_range(doc,
|
||||
frames_range(1),
|
||||
frames_range(0),
|
||||
kDocumentRangeBefore,
|
||||
kDocRangeBefore,
|
||||
kFitOutsideTags));
|
||||
EXPECT_FRAME_COPY3(1, 0, 1, 2, 3, 4, 5);
|
||||
EXPECT_EQ(1, a->fromFrame());
|
||||
@ -1498,7 +1498,7 @@ TEST_F(DocRangeOps, CopyRangeWithTags) {
|
||||
copy_range(doc,
|
||||
frames_range(1),
|
||||
frames_range(0),
|
||||
kDocumentRangeBefore,
|
||||
kDocRangeBefore,
|
||||
kFitInsideTags));
|
||||
EXPECT_FRAME_COPY3(1, 0, 1, 2, 3, 4, 5);
|
||||
EXPECT_EQ(0, a->fromFrame());
|
||||
@ -1513,7 +1513,7 @@ TEST_F(DocRangeOps, CopyRangeWithTags) {
|
||||
copy_range(doc,
|
||||
frames_range(1),
|
||||
frames_range(2),
|
||||
kDocumentRangeAfter,
|
||||
kDocRangeAfter,
|
||||
kFitOutsideTags));
|
||||
EXPECT_FRAME_COPY3(0, 1, 2, 1, 3, 4, 5);
|
||||
EXPECT_EQ(0, a->fromFrame());
|
@ -187,7 +187,7 @@ SpritePosition DocUndo::nextRedoSpritePosition() const
|
||||
return SpritePosition();
|
||||
}
|
||||
|
||||
std::istream* DocUndo::nextUndoDocumentRange() const
|
||||
std::istream* DocUndo::nextUndoDocRange() const
|
||||
{
|
||||
const undo::UndoState* state = nextUndo();
|
||||
if (state)
|
||||
@ -196,7 +196,7 @@ std::istream* DocUndo::nextUndoDocumentRange() const
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
std::istream* DocUndo::nextRedoDocumentRange() const
|
||||
std::istream* DocUndo::nextRedoDocRange() const
|
||||
{
|
||||
const undo::UndoState* state = nextRedo();
|
||||
if (state)
|
||||
|
@ -8,7 +8,7 @@
|
||||
#define APP_DOCUMENT_UNDO_H_INCLUDED
|
||||
#pragma once
|
||||
|
||||
#include "app/document_range.h"
|
||||
#include "app/doc_range.h"
|
||||
#include "app/sprite_position.h"
|
||||
#include "base/disable_copying.h"
|
||||
#include "base/unique_ptr.h"
|
||||
@ -53,8 +53,8 @@ namespace app {
|
||||
|
||||
SpritePosition nextUndoSpritePosition() const;
|
||||
SpritePosition nextRedoSpritePosition() const;
|
||||
std::istream* nextUndoDocumentRange() const;
|
||||
std::istream* nextRedoDocumentRange() const;
|
||||
std::istream* nextUndoDocRange() const;
|
||||
std::istream* nextRedoDocRange() const;
|
||||
|
||||
Cmd* lastExecutedCmd() const;
|
||||
|
||||
|
@ -1,43 +0,0 @@
|
||||
// Aseprite
|
||||
// Copyright (C) 2001-2018 David Capello
|
||||
//
|
||||
// This program is distributed under the terms of
|
||||
// the End-User License Agreement for Aseprite.
|
||||
|
||||
#ifndef APP_DOCUMENT_RANGE_OPS_H_INCLUDED
|
||||
#define APP_DOCUMENT_RANGE_OPS_H_INCLUDED
|
||||
#pragma once
|
||||
|
||||
#include "app/tags_handling.h"
|
||||
|
||||
#include <vector>
|
||||
|
||||
namespace app {
|
||||
class Document;
|
||||
class DocumentRange;
|
||||
|
||||
enum DocumentRangePlace {
|
||||
kDocumentRangeBefore,
|
||||
kDocumentRangeAfter,
|
||||
kDocumentRangeFirstChild,
|
||||
};
|
||||
|
||||
// These functions returns the new location of the "from" range or
|
||||
// throws an std::runtime_error() in case that the operation cannot
|
||||
// be done. (E.g. the background layer cannot be moved.)
|
||||
DocumentRange move_range(Document* doc,
|
||||
const DocumentRange& from,
|
||||
const DocumentRange& to,
|
||||
const DocumentRangePlace place,
|
||||
const TagsHandling tagsHandling = kDefaultTagsAdjustment);
|
||||
DocumentRange copy_range(Document* doc,
|
||||
const DocumentRange& from,
|
||||
const DocumentRange& to,
|
||||
const DocumentRangePlace place,
|
||||
const TagsHandling tagsHandling = kDefaultTagsAdjustment);
|
||||
|
||||
void reverse_frames(Document* doc, const DocumentRange& range);
|
||||
|
||||
} // namespace app
|
||||
|
||||
#endif
|
@ -60,10 +60,10 @@ Transaction::~Transaction()
|
||||
// Used to set the document range after all the transaction is
|
||||
// executed and before the commit. This range is stored in
|
||||
// CmdTransaction to recover it on Edit > Redo.
|
||||
void Transaction::setNewDocumentRange(const DocumentRange& range)
|
||||
void Transaction::setNewDocRange(const DocRange& range)
|
||||
{
|
||||
ASSERT(m_cmds);
|
||||
m_cmds->setNewDocumentRange(range);
|
||||
m_cmds->setNewDocRange(range);
|
||||
}
|
||||
|
||||
void Transaction::commit()
|
||||
|
@ -15,7 +15,7 @@ namespace app {
|
||||
class Cmd;
|
||||
class CmdTransaction;
|
||||
class Context;
|
||||
class DocumentRange;
|
||||
class DocRange;
|
||||
class DocUndo;
|
||||
|
||||
enum Modification {
|
||||
@ -49,7 +49,7 @@ namespace app {
|
||||
// Can be used to change the new document range resulting from
|
||||
// executing this transaction. This range can be used then in
|
||||
// undo/redo operations to restore the Timeline selection/range.
|
||||
void setNewDocumentRange(const DocumentRange& range);
|
||||
void setNewDocRange(const DocRange& range);
|
||||
|
||||
// This must be called to commit all the changes, so the undo will
|
||||
// be finally added in the sprite.
|
||||
|
@ -1,5 +1,5 @@
|
||||
// Aseprite
|
||||
// Copyright (C) 2001-2017 David Capello
|
||||
// Copyright (C) 2001-2018 David Capello
|
||||
//
|
||||
// This program is distributed under the terms of
|
||||
// the End-User License Agreement for Aseprite.
|
||||
@ -14,7 +14,7 @@
|
||||
#include "app/cmd/set_cel_bounds.h"
|
||||
#include "app/context_access.h"
|
||||
#include "app/doc_api.h"
|
||||
#include "app/document_range.h"
|
||||
#include "app/doc_range.h"
|
||||
#include "app/transaction.h"
|
||||
#include "app/ui/editor/editor.h"
|
||||
#include "app/ui/editor/editor_customization_delegate.h"
|
||||
@ -43,13 +43,13 @@ MovingCelCollect::MovingCelCollect(Editor* editor, Layer* layer)
|
||||
if (layer && layer->isImage())
|
||||
m_mainCel = layer->cel(editor->frame());
|
||||
|
||||
DocumentRange range = App::instance()->timeline()->range();
|
||||
DocRange range = App::instance()->timeline()->range();
|
||||
if (!range.enabled()) {
|
||||
range.startRange(editor->layer(), editor->frame(), DocumentRange::kCels);
|
||||
range.startRange(editor->layer(), editor->frame(), DocRange::kCels);
|
||||
range.endRange(editor->layer(), editor->frame());
|
||||
}
|
||||
|
||||
DocumentRange range2 = range;
|
||||
DocRange range2 = range;
|
||||
for (Layer* layer : range.selectedLayers()) {
|
||||
if (layer && layer->isGroup()) {
|
||||
LayerList childrenList;
|
||||
|
@ -16,7 +16,7 @@
|
||||
#include "app/commands/cmd_eyedropper.h"
|
||||
#include "app/commands/commands.h"
|
||||
#include "app/commands/params.h"
|
||||
#include "app/document_range.h"
|
||||
#include "app/doc_range.h"
|
||||
#include "app/ini_file.h"
|
||||
#include "app/pref/preferences.h"
|
||||
#include "app/tools/active_tool.h"
|
||||
|
@ -14,7 +14,7 @@
|
||||
#include "app/context_access.h"
|
||||
#include "app/doc_event.h"
|
||||
#include "app/document_access.h"
|
||||
#include "app/document_range.h"
|
||||
#include "app/doc_range.h"
|
||||
#include "app/modules/editors.h"
|
||||
#include "app/modules/gfx.h"
|
||||
#include "app/modules/gui.h"
|
||||
|
@ -18,11 +18,11 @@
|
||||
#include "app/commands/params.h"
|
||||
#include "app/console.h"
|
||||
#include "app/context_access.h"
|
||||
#include "app/doc_api.h"
|
||||
#include "app/doc_event.h"
|
||||
#include "app/doc_range_ops.h"
|
||||
#include "app/doc_undo.h"
|
||||
#include "app/document.h"
|
||||
#include "app/doc_api.h"
|
||||
#include "app/document_range_ops.h"
|
||||
#include "app/loop_tag.h"
|
||||
#include "app/modules/editors.h"
|
||||
#include "app/modules/gfx.h"
|
||||
@ -593,7 +593,7 @@ bool Timeline::onProcessMessage(Message* msg)
|
||||
case kTimerMessage:
|
||||
if (static_cast<TimerMessage*>(msg)->timer() == &m_clipboard_timer) {
|
||||
Document* clipboard_document;
|
||||
DocumentRange clipboard_range;
|
||||
DocRange clipboard_range;
|
||||
clipboard::get_document_range_info(
|
||||
&clipboard_document,
|
||||
&clipboard_range);
|
||||
@ -1880,7 +1880,7 @@ void Timeline::drawPart(ui::Graphics* g, const gfx::Rect& bounds,
|
||||
void Timeline::drawClipboardRange(ui::Graphics* g)
|
||||
{
|
||||
Document* clipboard_document;
|
||||
DocumentRange clipboard_range;
|
||||
DocRange clipboard_range;
|
||||
clipboard::get_document_range_info(
|
||||
&clipboard_document,
|
||||
&clipboard_range);
|
||||
@ -2386,7 +2386,7 @@ void Timeline::drawFrameTags(ui::Graphics* g)
|
||||
int dx = 0, dw = 0;
|
||||
if (m_dropTarget.outside &&
|
||||
m_dropTarget.hhit != DropTarget::HNone &&
|
||||
m_dropRange.type() == DocumentRange::kFrames) {
|
||||
m_dropRange.type() == DocRange::kFrames) {
|
||||
switch (m_dropTarget.hhit) {
|
||||
case DropTarget::Before:
|
||||
if (m_dropRange.firstFrame() == frameTag->fromFrame()) {
|
||||
@ -3613,7 +3613,7 @@ void Timeline::dropRange(DropOp op)
|
||||
{
|
||||
bool copy = (op == Timeline::kCopy);
|
||||
Range newFromRange;
|
||||
DocumentRangePlace place = kDocumentRangeAfter;
|
||||
DocRangePlace place = kDocRangeAfter;
|
||||
Range dropRange = m_dropRange;
|
||||
bool outside = m_dropTarget.outside;
|
||||
|
||||
@ -3621,19 +3621,19 @@ void Timeline::dropRange(DropOp op)
|
||||
|
||||
case Range::kFrames:
|
||||
if (m_dropTarget.hhit == DropTarget::Before)
|
||||
place = kDocumentRangeBefore;
|
||||
place = kDocRangeBefore;
|
||||
break;
|
||||
|
||||
case Range::kLayers:
|
||||
switch (m_dropTarget.vhit) {
|
||||
case DropTarget::Bottom:
|
||||
place = kDocumentRangeBefore;
|
||||
place = kDocRangeBefore;
|
||||
break;
|
||||
case DropTarget::FirstChild:
|
||||
place = kDocumentRangeFirstChild;
|
||||
place = kDocRangeFirstChild;
|
||||
break;
|
||||
case DropTarget::VeryBottom:
|
||||
place = kDocumentRangeBefore;
|
||||
place = kDocRangeBefore;
|
||||
{
|
||||
Layer* layer = m_sprite->root()->firstLayer();
|
||||
dropRange.clearRange();
|
||||
@ -3792,7 +3792,7 @@ void Timeline::updateDropRange(const gfx::Point& pt)
|
||||
void Timeline::clearClipboardRange()
|
||||
{
|
||||
Document* clipboard_document;
|
||||
DocumentRange clipboard_range;
|
||||
DocRange clipboard_range;
|
||||
clipboard::get_document_range_info(
|
||||
&clipboard_document,
|
||||
&clipboard_range);
|
||||
@ -3940,7 +3940,7 @@ bool Timeline::onCanCopy(Context* ctx)
|
||||
bool Timeline::onCanPaste(Context* ctx)
|
||||
{
|
||||
return
|
||||
(clipboard::get_current_format() == clipboard::ClipboardDocumentRange &&
|
||||
(clipboard::get_current_format() == clipboard::ClipboardDocRange &&
|
||||
ctx->checkFlags(ContextFlags::ActiveDocumentIsWritable));
|
||||
}
|
||||
|
||||
@ -3968,7 +3968,7 @@ bool Timeline::onCopy(Context* ctx)
|
||||
|
||||
bool Timeline::onPaste(Context* ctx)
|
||||
{
|
||||
if (clipboard::get_current_format() == clipboard::ClipboardDocumentRange) {
|
||||
if (clipboard::get_current_format() == clipboard::ClipboardDocRange) {
|
||||
clipboard::paste();
|
||||
return true;
|
||||
}
|
||||
@ -3984,13 +3984,13 @@ bool Timeline::onClear(Context* ctx)
|
||||
Command* cmd = nullptr;
|
||||
|
||||
switch (m_range.type()) {
|
||||
case DocumentRange::kCels:
|
||||
case DocRange::kCels:
|
||||
cmd = Commands::instance()->byId(CommandId::ClearCel());
|
||||
break;
|
||||
case DocumentRange::kFrames:
|
||||
case DocRange::kFrames:
|
||||
cmd = Commands::instance()->byId(CommandId::RemoveFrame());
|
||||
break;
|
||||
case DocumentRange::kLayers:
|
||||
case DocRange::kLayers:
|
||||
cmd = Commands::instance()->byId(CommandId::RemoveLayer());
|
||||
break;
|
||||
}
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
#include "app/doc_observer.h"
|
||||
#include "app/docs_observer.h"
|
||||
#include "app/document_range.h"
|
||||
#include "app/doc_range.h"
|
||||
#include "app/loop_tag.h"
|
||||
#include "app/pref/preferences.h"
|
||||
#include "app/ui/editor/editor_observer.h"
|
||||
@ -62,7 +62,7 @@ namespace app {
|
||||
public InputChainElement,
|
||||
public FrameTagProvider {
|
||||
public:
|
||||
typedef DocumentRange Range;
|
||||
typedef DocRange Range;
|
||||
|
||||
enum State {
|
||||
STATE_STANDBY,
|
||||
|
@ -225,9 +225,9 @@ void UIContext::onGetActiveSite(Site* site) const
|
||||
if (timeline &&
|
||||
timeline->range().enabled()) {
|
||||
switch (timeline->range().type()) {
|
||||
case DocumentRange::kCels: site->focus(Site::InCels); break;
|
||||
case DocumentRange::kFrames: site->focus(Site::InFrames); break;
|
||||
case DocumentRange::kLayers: site->focus(Site::InLayers); break;
|
||||
case DocRange::kCels: site->focus(Site::InCels); break;
|
||||
case DocRange::kFrames: site->focus(Site::InFrames); break;
|
||||
case DocRange::kLayers: site->focus(Site::InLayers); break;
|
||||
}
|
||||
site->selectedLayers(timeline->selectedLayers());
|
||||
site->selectedFrames(timeline->selectedFrames());
|
||||
|
@ -14,10 +14,10 @@
|
||||
#include "app/cmd/trim_cel.h"
|
||||
#include "app/console.h"
|
||||
#include "app/context_access.h"
|
||||
#include "app/document.h"
|
||||
#include "app/doc_api.h"
|
||||
#include "app/document_range.h"
|
||||
#include "app/document_range_ops.h"
|
||||
#include "app/doc_range.h"
|
||||
#include "app/doc_range_ops.h"
|
||||
#include "app/document.h"
|
||||
#include "app/modules/editors.h"
|
||||
#include "app/modules/gfx.h"
|
||||
#include "app/modules/gui.h"
|
||||
@ -68,13 +68,13 @@ namespace {
|
||||
m_doc = nullptr;
|
||||
}
|
||||
|
||||
void setRange(Document* doc, const DocumentRange& range) {
|
||||
void setRange(Document* doc, const DocRange& range) {
|
||||
m_doc = doc;
|
||||
m_range = range;
|
||||
}
|
||||
|
||||
Document* document() const { return m_doc; }
|
||||
DocumentRange range() const { return m_range; }
|
||||
DocRange range() const { return m_range; }
|
||||
|
||||
// DocsObserver impl
|
||||
void onRemoveDocument(Document* doc) override {
|
||||
@ -84,7 +84,7 @@ namespace {
|
||||
|
||||
private:
|
||||
Document* m_doc;
|
||||
DocumentRange m_range;
|
||||
DocRange m_range;
|
||||
};
|
||||
|
||||
}
|
||||
@ -216,14 +216,14 @@ ClipboardFormat get_current_format()
|
||||
else if (clipboard_image)
|
||||
return ClipboardImage;
|
||||
else if (clipboard_range.valid())
|
||||
return ClipboardDocumentRange;
|
||||
return ClipboardDocRange;
|
||||
else if (clipboard_palette && clipboard_picks.picks())
|
||||
return ClipboardPaletteEntries;
|
||||
else
|
||||
return ClipboardNone;
|
||||
}
|
||||
|
||||
void get_document_range_info(Document** document, DocumentRange* range)
|
||||
void get_document_range_info(Document** document, DocRange* range)
|
||||
{
|
||||
if (clipboard_range.valid()) {
|
||||
*document = clipboard_range.document();
|
||||
@ -285,7 +285,7 @@ void copy_merged(const ContextReader& reader)
|
||||
copy_from_document(*reader.site(), true);
|
||||
}
|
||||
|
||||
void copy_range(const ContextReader& reader, const DocumentRange& range)
|
||||
void copy_range(const ContextReader& reader, const DocRange& range)
|
||||
{
|
||||
ASSERT(reader.document() != NULL);
|
||||
|
||||
@ -376,19 +376,19 @@ void paste()
|
||||
break;
|
||||
}
|
||||
|
||||
case clipboard::ClipboardDocumentRange: {
|
||||
DocumentRange srcRange = clipboard_range.range();
|
||||
case clipboard::ClipboardDocRange: {
|
||||
DocRange srcRange = clipboard_range.range();
|
||||
Document* srcDoc = clipboard_range.document();
|
||||
Sprite* srcSpr = srcDoc->sprite();
|
||||
|
||||
switch (srcRange.type()) {
|
||||
|
||||
case DocumentRange::kCels: {
|
||||
case DocRange::kCels: {
|
||||
Layer* dstLayer = editor->layer();
|
||||
frame_t dstFrameFirst = editor->frame();
|
||||
|
||||
DocumentRange dstRange;
|
||||
dstRange.startRange(dstLayer, dstFrameFirst, DocumentRange::kCels);
|
||||
DocRange dstRange;
|
||||
dstRange.startRange(dstLayer, dstFrameFirst, DocRange::kCels);
|
||||
for (layer_t i=1; i<srcRange.layers(); ++i) {
|
||||
dstLayer = dstLayer->getPreviousBrowsable();
|
||||
if (dstLayer == nullptr)
|
||||
@ -401,7 +401,7 @@ void paste()
|
||||
if (srcDoc == dstDoc) {
|
||||
// This is the app::copy_range (not clipboard::copy_range()).
|
||||
if (srcRange.layers() == dstRange.layers())
|
||||
app::copy_range(srcDoc, srcRange, dstRange, kDocumentRangeBefore);
|
||||
app::copy_range(srcDoc, srcRange, dstRange, kDocRangeBefore);
|
||||
editor->invalidate();
|
||||
return;
|
||||
}
|
||||
@ -485,16 +485,16 @@ void paste()
|
||||
break;
|
||||
}
|
||||
|
||||
case DocumentRange::kFrames: {
|
||||
case DocRange::kFrames: {
|
||||
frame_t dstFrame = editor->frame();
|
||||
|
||||
// We use a DocumentRange operation to copy frames inside
|
||||
// We use a DocRange operation to copy frames inside
|
||||
// the same sprite.
|
||||
if (srcSpr == dstSpr) {
|
||||
DocumentRange dstRange;
|
||||
dstRange.startRange(nullptr, dstFrame, DocumentRange::kFrames);
|
||||
DocRange dstRange;
|
||||
dstRange.startRange(nullptr, dstFrame, DocRange::kFrames);
|
||||
dstRange.endRange(nullptr, dstFrame);
|
||||
app::copy_range(srcDoc, srcRange, dstRange, kDocumentRangeBefore);
|
||||
app::copy_range(srcDoc, srcRange, dstRange, kDocRangeBefore);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -537,7 +537,7 @@ void paste()
|
||||
break;
|
||||
}
|
||||
|
||||
case DocumentRange::kLayers: {
|
||||
case DocRange::kLayers: {
|
||||
if (srcDoc->colorMode() != dstDoc->colorMode())
|
||||
throw std::runtime_error("You cannot copy layers of document with different color modes");
|
||||
|
||||
|
@ -24,7 +24,7 @@ namespace app {
|
||||
class Document;
|
||||
class ContextReader;
|
||||
class ContextWriter;
|
||||
class DocumentRange;
|
||||
class DocRange;
|
||||
|
||||
namespace clipboard {
|
||||
using namespace doc;
|
||||
@ -32,7 +32,7 @@ namespace app {
|
||||
enum ClipboardFormat {
|
||||
ClipboardNone,
|
||||
ClipboardImage,
|
||||
ClipboardDocumentRange,
|
||||
ClipboardDocRange,
|
||||
ClipboardPaletteEntries,
|
||||
};
|
||||
|
||||
@ -52,13 +52,13 @@ namespace app {
|
||||
};
|
||||
|
||||
ClipboardFormat get_current_format();
|
||||
void get_document_range_info(Document** document, DocumentRange* range);
|
||||
void get_document_range_info(Document** document, DocRange* range);
|
||||
|
||||
void clear_content();
|
||||
void cut(ContextWriter& context);
|
||||
void copy(const ContextReader& context);
|
||||
void copy_merged(const ContextReader& context);
|
||||
void copy_range(const ContextReader& context, const DocumentRange& range);
|
||||
void copy_range(const ContextReader& context, const DocRange& range);
|
||||
void copy_image(const Image* image, const Mask* mask, const Palette* palette);
|
||||
void copy_palette(const Palette* palette, const PalettePicks& picks);
|
||||
void paste();
|
||||
|
@ -1,5 +1,5 @@
|
||||
// Aseprite
|
||||
// Copyright (C) 2001-2017 David Capello
|
||||
// Copyright (C) 2001-2018 David Capello
|
||||
//
|
||||
// This program is distributed under the terms of
|
||||
// the End-User License Agreement for Aseprite.
|
||||
@ -12,7 +12,7 @@
|
||||
|
||||
#include "app/context_access.h"
|
||||
#include "app/document.h"
|
||||
#include "app/document_range.h"
|
||||
#include "app/doc_range.h"
|
||||
#include "doc/cel.h"
|
||||
#include "doc/layer.h"
|
||||
#include "doc/sprite.h"
|
||||
@ -23,10 +23,10 @@ namespace app {
|
||||
|
||||
using namespace doc;
|
||||
|
||||
// TODO the DocumentRange should be "iteratable" to replace this function
|
||||
CelList get_unlocked_unique_cels(Sprite* sprite, const DocumentRange& inrange)
|
||||
// TODO the DocRange should be "iteratable" to replace this function
|
||||
CelList get_unlocked_unique_cels(Sprite* sprite, const DocRange& inrange)
|
||||
{
|
||||
DocumentRange range = inrange;
|
||||
DocRange range = inrange;
|
||||
CelList cels;
|
||||
if (!range.convertToCels(sprite))
|
||||
return cels;
|
||||
|
@ -1,5 +1,5 @@
|
||||
// Aseprite
|
||||
// Copyright (C) 2001-2017 David Capello
|
||||
// Copyright (C) 2001-2018 David Capello
|
||||
//
|
||||
// This program is distributed under the terms of
|
||||
// the End-User License Agreement for Aseprite.
|
||||
@ -19,9 +19,9 @@ namespace doc {
|
||||
namespace app {
|
||||
using namespace doc;
|
||||
|
||||
class DocumentRange;
|
||||
class DocRange;
|
||||
|
||||
doc::CelList get_unlocked_unique_cels(doc::Sprite* sprite, const DocumentRange& range);
|
||||
doc::CelList get_unlocked_unique_cels(doc::Sprite* sprite, const DocRange& range);
|
||||
|
||||
} // namespace app
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user