Use a lock symbol to indicate when an inset is being edited externally.

Good idea from Scott.
This commit is contained in:
Richard Kimberly Heck 2020-12-05 21:16:17 -05:00
parent ad887798c9
commit 877a46f7b0
3 changed files with 11 additions and 9 deletions

View File

@ -648,11 +648,11 @@ bool InsetCollapsible::getStatus(Cursor & cur, FuncRequest const & cmd,
return true;
case LFUN_INSET_EDIT:
flag.setEnabled(getLayout().editExternally() && tempfile_ == 0);
flag.setEnabled(getLayout().editExternally() && tempfile_ == nullptr);
return true;
case LFUN_INSET_END_EDIT:
flag.setEnabled(getLayout().editExternally() && tempfile_ != 0);
flag.setEnabled(getLayout().editExternally() && tempfile_ != nullptr);
return true;
default:
@ -681,11 +681,13 @@ docstring const InsetCollapsible::buttonLabel(BufferView const & bv) const
// ✎ U+270E LOWER RIGHT PENCIL
docstring const indicator = (isChanged() && geometry(bv) == ButtonOnly)
? docstring(1, 0x270E) : docstring();
// U+1F512 LOCK
docstring const locked = tempfile_ ? docstring(1, 0x1F512) : docstring();
InsetLayout const & il = getLayout();
docstring const label = getLabel();
if (!il.contentaslabel() || geometry(bv) != ButtonOnly)
return indicator + label;
return indicator + getNewLabel(label);
return locked + indicator + getNewLabel(label);
}

View File

@ -168,10 +168,10 @@ bool InsetERT::getStatus(Cursor & cur, FuncRequest const & cmd,
docstring const InsetERT::buttonLabel(BufferView const & bv) const
{
docstring const locked = tempfile_ ? docstring(1, 0x1F512) : docstring();
if (decoration() == InsetLayout::CLASSIC)
return isOpen(bv) ? _("ERT") : getNewLabel(_("ERT"));
else
return getNewLabel(_("ERT"));
return locked + (isOpen(bv) ? _("ERT") : getNewLabel(_("ERT")));
return locked + getNewLabel(_("ERT"));
}

View File

@ -606,10 +606,10 @@ bool InsetListings::getStatus(Cursor & cur, FuncRequest const & cmd,
docstring const InsetListings::buttonLabel(BufferView const & bv) const
{
// FIXME UNICODE
docstring const locked = tempfile_ ? docstring(1, 0x1F512) : docstring();
if (decoration() == InsetLayout::CLASSIC)
return isOpen(bv) ? _("Listing") : getNewLabel(_("Listing"));
else
return getNewLabel(_("Listing"));
return locked + (isOpen(bv) ? _("Listing") : getNewLabel(_("Listing")));
return locked + getNewLabel(_("Listing"));
}