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;
|
||||
Image* image = m_site.image(&x, &y);
|
||||
if (!image)
|
||||
if (!image
|
||||
|| (m_site.layer() &&
|
||||
m_site.layer()->isReference()))
|
||||
throw NoImageException();
|
||||
|
||||
init(m_site.cel());
|
||||
@ -242,11 +244,16 @@ void FilterManagerImpl::applyToTarget()
|
||||
|
||||
case CelsTarget::Selected: {
|
||||
auto range = App::instance()->timeline()->range();
|
||||
if (range.enabled())
|
||||
cels = get_unlocked_unique_cels(m_site.sprite(), range);
|
||||
if (range.enabled()) {
|
||||
for (Cel* cel : get_unlocked_unique_cels(m_site.sprite(), range)) {
|
||||
if (!cel->layer()->isReference())
|
||||
cels.push_back(cel);
|
||||
}
|
||||
}
|
||||
else if (m_site.cel() &&
|
||||
m_site.layer() &&
|
||||
m_site.layer()->isEditable()) {
|
||||
m_site.layer()->isEditable() &&
|
||||
!m_site.layer()->isReference()) {
|
||||
cels.push_back(m_site.cel());
|
||||
}
|
||||
break;
|
||||
@ -254,7 +261,8 @@ void FilterManagerImpl::applyToTarget()
|
||||
|
||||
case CelsTarget::All: {
|
||||
for (Cel* cel : m_site.sprite()->uniqueCels()) {
|
||||
if (cel->layer()->isEditable())
|
||||
if (cel->layer()->isEditable() &&
|
||||
!cel->layer()->isReference())
|
||||
cels.push_back(cel);
|
||||
}
|
||||
break;
|
||||
|
@ -467,7 +467,8 @@ bool DocumentView::onCanCut(Context* ctx)
|
||||
ContextFlags::ActiveLayerIsVisible |
|
||||
ContextFlags::ActiveLayerIsEditable |
|
||||
ContextFlags::HasVisibleMask |
|
||||
ContextFlags::HasActiveImage))
|
||||
ContextFlags::HasActiveImage)
|
||||
&& !ctx->checkFlags(ContextFlags::ActiveLayerIsReference))
|
||||
return true;
|
||||
else if (m_editor->isMovingPixels())
|
||||
return true;
|
||||
@ -480,7 +481,8 @@ bool DocumentView::onCanCopy(Context* ctx)
|
||||
if (ctx->checkFlags(ContextFlags::ActiveDocumentIsWritable |
|
||||
ContextFlags::ActiveLayerIsVisible |
|
||||
ContextFlags::HasVisibleMask |
|
||||
ContextFlags::HasActiveImage))
|
||||
ContextFlags::HasActiveImage)
|
||||
&& !ctx->checkFlags(ContextFlags::ActiveLayerIsReference))
|
||||
return true;
|
||||
else if (m_editor->isMovingPixels())
|
||||
return true;
|
||||
@ -491,11 +493,12 @@ bool DocumentView::onCanCopy(Context* ctx)
|
||||
bool DocumentView::onCanPaste(Context* ctx)
|
||||
{
|
||||
return
|
||||
(clipboard::get_current_format() == clipboard::ClipboardImage &&
|
||||
ctx->checkFlags(ContextFlags::ActiveDocumentIsWritable |
|
||||
(clipboard::get_current_format() == clipboard::ClipboardImage
|
||||
&& ctx->checkFlags(ContextFlags::ActiveDocumentIsWritable |
|
||||
ContextFlags::ActiveLayerIsVisible |
|
||||
ContextFlags::ActiveLayerIsEditable |
|
||||
ContextFlags::ActiveLayerIsImage));
|
||||
ContextFlags::ActiveLayerIsImage)
|
||||
&& !ctx->checkFlags(ContextFlags::ActiveLayerIsReference));
|
||||
}
|
||||
|
||||
bool DocumentView::onCanClear(Context* ctx)
|
||||
@ -503,7 +506,8 @@ bool DocumentView::onCanClear(Context* ctx)
|
||||
if (ctx->checkFlags(ContextFlags::ActiveDocumentIsWritable |
|
||||
ContextFlags::ActiveLayerIsVisible |
|
||||
ContextFlags::ActiveLayerIsEditable |
|
||||
ContextFlags::ActiveLayerIsImage)) {
|
||||
ContextFlags::ActiveLayerIsImage)
|
||||
&& !ctx->checkFlags(ContextFlags::ActiveLayerIsReference)) {
|
||||
return true;
|
||||
}
|
||||
else if (m_editor->isMovingPixels()) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user