mirror of
https://github.com/aseprite/aseprite.git
synced 2025-03-10 01:13:49 +00:00
Disable more commands to edit reference layers
* Disable filters (e.g. replace color, adjust hue, etc.) * Disable cut/copy/paste/clear
This commit is contained in:
parent
ec8266ea48
commit
cc1e76490c
@ -66,7 +66,9 @@ FilterManagerImpl::FilterManagerImpl(Context* context, Filter* filter)
|
|||||||
{
|
{
|
||||||
int x, y;
|
int x, y;
|
||||||
Image* image = m_site.image(&x, &y);
|
Image* image = m_site.image(&x, &y);
|
||||||
if (!image)
|
if (!image
|
||||||
|
|| (m_site.layer() &&
|
||||||
|
m_site.layer()->isReference()))
|
||||||
throw NoImageException();
|
throw NoImageException();
|
||||||
|
|
||||||
init(m_site.cel());
|
init(m_site.cel());
|
||||||
@ -242,11 +244,16 @@ void FilterManagerImpl::applyToTarget()
|
|||||||
|
|
||||||
case CelsTarget::Selected: {
|
case CelsTarget::Selected: {
|
||||||
auto range = App::instance()->timeline()->range();
|
auto range = App::instance()->timeline()->range();
|
||||||
if (range.enabled())
|
if (range.enabled()) {
|
||||||
cels = get_unlocked_unique_cels(m_site.sprite(), range);
|
for (Cel* cel : get_unlocked_unique_cels(m_site.sprite(), range)) {
|
||||||
|
if (!cel->layer()->isReference())
|
||||||
|
cels.push_back(cel);
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (m_site.cel() &&
|
else if (m_site.cel() &&
|
||||||
m_site.layer() &&
|
m_site.layer() &&
|
||||||
m_site.layer()->isEditable()) {
|
m_site.layer()->isEditable() &&
|
||||||
|
!m_site.layer()->isReference()) {
|
||||||
cels.push_back(m_site.cel());
|
cels.push_back(m_site.cel());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -254,7 +261,8 @@ void FilterManagerImpl::applyToTarget()
|
|||||||
|
|
||||||
case CelsTarget::All: {
|
case CelsTarget::All: {
|
||||||
for (Cel* cel : m_site.sprite()->uniqueCels()) {
|
for (Cel* cel : m_site.sprite()->uniqueCels()) {
|
||||||
if (cel->layer()->isEditable())
|
if (cel->layer()->isEditable() &&
|
||||||
|
!cel->layer()->isReference())
|
||||||
cels.push_back(cel);
|
cels.push_back(cel);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -467,7 +467,8 @@ bool DocumentView::onCanCut(Context* ctx)
|
|||||||
ContextFlags::ActiveLayerIsVisible |
|
ContextFlags::ActiveLayerIsVisible |
|
||||||
ContextFlags::ActiveLayerIsEditable |
|
ContextFlags::ActiveLayerIsEditable |
|
||||||
ContextFlags::HasVisibleMask |
|
ContextFlags::HasVisibleMask |
|
||||||
ContextFlags::HasActiveImage))
|
ContextFlags::HasActiveImage)
|
||||||
|
&& !ctx->checkFlags(ContextFlags::ActiveLayerIsReference))
|
||||||
return true;
|
return true;
|
||||||
else if (m_editor->isMovingPixels())
|
else if (m_editor->isMovingPixels())
|
||||||
return true;
|
return true;
|
||||||
@ -480,7 +481,8 @@ bool DocumentView::onCanCopy(Context* ctx)
|
|||||||
if (ctx->checkFlags(ContextFlags::ActiveDocumentIsWritable |
|
if (ctx->checkFlags(ContextFlags::ActiveDocumentIsWritable |
|
||||||
ContextFlags::ActiveLayerIsVisible |
|
ContextFlags::ActiveLayerIsVisible |
|
||||||
ContextFlags::HasVisibleMask |
|
ContextFlags::HasVisibleMask |
|
||||||
ContextFlags::HasActiveImage))
|
ContextFlags::HasActiveImage)
|
||||||
|
&& !ctx->checkFlags(ContextFlags::ActiveLayerIsReference))
|
||||||
return true;
|
return true;
|
||||||
else if (m_editor->isMovingPixels())
|
else if (m_editor->isMovingPixels())
|
||||||
return true;
|
return true;
|
||||||
@ -491,11 +493,12 @@ bool DocumentView::onCanCopy(Context* ctx)
|
|||||||
bool DocumentView::onCanPaste(Context* ctx)
|
bool DocumentView::onCanPaste(Context* ctx)
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
(clipboard::get_current_format() == clipboard::ClipboardImage &&
|
(clipboard::get_current_format() == clipboard::ClipboardImage
|
||||||
ctx->checkFlags(ContextFlags::ActiveDocumentIsWritable |
|
&& ctx->checkFlags(ContextFlags::ActiveDocumentIsWritable |
|
||||||
ContextFlags::ActiveLayerIsVisible |
|
ContextFlags::ActiveLayerIsVisible |
|
||||||
ContextFlags::ActiveLayerIsEditable |
|
ContextFlags::ActiveLayerIsEditable |
|
||||||
ContextFlags::ActiveLayerIsImage));
|
ContextFlags::ActiveLayerIsImage)
|
||||||
|
&& !ctx->checkFlags(ContextFlags::ActiveLayerIsReference));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DocumentView::onCanClear(Context* ctx)
|
bool DocumentView::onCanClear(Context* ctx)
|
||||||
@ -503,7 +506,8 @@ bool DocumentView::onCanClear(Context* ctx)
|
|||||||
if (ctx->checkFlags(ContextFlags::ActiveDocumentIsWritable |
|
if (ctx->checkFlags(ContextFlags::ActiveDocumentIsWritable |
|
||||||
ContextFlags::ActiveLayerIsVisible |
|
ContextFlags::ActiveLayerIsVisible |
|
||||||
ContextFlags::ActiveLayerIsEditable |
|
ContextFlags::ActiveLayerIsEditable |
|
||||||
ContextFlags::ActiveLayerIsImage)) {
|
ContextFlags::ActiveLayerIsImage)
|
||||||
|
&& !ctx->checkFlags(ContextFlags::ActiveLayerIsReference)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if (m_editor->isMovingPixels()) {
|
else if (m_editor->isMovingPixels()) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user