14.17: the Layers panel grays only for what lasts

This commit is contained in:
ZacharyZhang-NY committed 2026-10-11 08:30:40 -04:00
1 parent ffee8ff178
commit 98f18f1221
12 files changed
+156 -12

No files matched your search

+1 -1
View File
@@ -21,7 +21,7 @@ LayerMaskMenu::LayerMaskMenu(EditorSession &session, QWidget *parent) : QToolBut
void LayerMaskMenu::synchronize()
{
const std::optional<ImageLayer> active = m_session.activeLayer();
setEnabled(m_session.canEditMask() && !(active && active->mask));
setEnabled(m_session.layersLookEditable() && m_session.selectedLayerIDs().size() == 1 && active && !active->mask);
setToolTip(m_session.selection() ? QStringLiteral("Add layer mask revealing the selection (Alt-click to hide it)")
: QStringLiteral("Add layer mask (Alt-click for a black mask)"));
setIcon(footerIcon(LayerIcon::addMask, *this));
+8 -5
View File
@@ -160,10 +160,13 @@ void LayersPanel::synchronize()
m_count->setText(QString::number(count));
m_body->setCurrentIndex(count > 0 ? 0 : 1);
m_emptyHint->setText(document ? QStringLiteral("Import an image or add a blank layer.") : QStringLiteral("Create a canvas or import an image."));
m_addBlankLayer->setEnabled(m_session.canEditLayers());
m_group->setEnabled(m_session.canEditLayers());
m_effects->setEnabled(m_session.canEditEffects());
m_adjustments->setEnabled(m_session.canEditLayers());
// Swift 1.4.8: no flash for a stroke; the session refuses.
const bool editable = m_session.layersLookEditable();
const std::optional<ImageLayer> active = m_session.activeLayer();
m_addBlankLayer->setEnabled(editable);
m_group->setEnabled(editable);
m_effects->setEnabled(editable && active && active->asset);
m_adjustments->setEnabled(editable);
const bool mask = m_session.isMaskSelected(), several = m_session.selectedLayerIDs().size() > 1;
const QString what = m_session.selectedEffect() ? QStringLiteral("Delete selected effect")
: mask ? QStringLiteral("Delete layer mask")
@@ -171,7 +174,7 @@ void LayersPanel::synchronize()
: QStringLiteral("Delete selected layer");
m_delete->setToolTip(what);
m_delete->setAccessibleName(what);
m_delete->setEnabled(m_session.canEditLayers() && m_session.activeLayer().has_value());
m_delete->setEnabled(editable && active);
// Swift's .task(id:): a new request begins its editor.
if (m_session.adjustmentEditingID() != m_adjustmentTask) {
m_adjustmentTask = m_session.adjustmentEditingID();
+2 -1
View File
@@ -44,7 +44,8 @@ void NativeLayerList::update()
next.push_back(layers[index]);
m_details.insert_or_assign(entry.layer.id, entry);
}
m_editingEnabled = m_session.canEditLayers();
// Swift 1.4.8: gray for what lasts; actions ask the gates.
m_editingEnabled = m_session.layersLookEditable();
// The rows are made anew when the ids change.
bool same = next.size() == m_rows.size();
for (size_t row = 0; same && row < next.size(); ++row)