void DocumentView::onAddLayer(DocumentEvent& ev) { if (current_editor == m_editor) { ASSERT(ev.layer() != NULL); m_editor->setLayer(ev.layer()); } }
void DocumentView::onRemoveLayer(DocumentEvent& ev) { Sprite* sprite = ev.sprite(); Layer* layer = ev.layer(); // If the layer that was removed is the selected one if (layer == m_editor->getLayer()) { LayerFolder* parent = layer->getParent(); Layer* layer_select = NULL; // Select previous layer, or next layer, or the parent (if it is // not the main layer of sprite set). if (layer->getPrevious()) layer_select = layer->getPrevious(); else if (layer->getNext()) layer_select = layer->getNext(); else if (parent != sprite->getFolder()) layer_select = parent; m_editor->setLayer(layer_select); } }