14.17: the Layers panel grays only for what lasts
This commit is contained in:
12 files changed
+156
-12
No files matched your search
@@ -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));
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in new issue
Block a user