diff --git a/core_lib/src/managers/layermanager.cpp b/core_lib/src/managers/layermanager.cpp index 4f2364072e..b8b98e5e2c 100644 --- a/core_lib/src/managers/layermanager.cpp +++ b/core_lib/src/managers/layermanager.cpp @@ -103,19 +103,11 @@ int LayerManager::currentLayerIndex() void LayerManager::setCurrentLayer(int layerIndex) { Q_ASSERT(layerIndex >= 0); - - Object* o = object(); - if (layerIndex >= o->getLayerCount()) - { - Q_ASSERT(false); - return; - } + Q_ASSERT(layerIndex < object()->getLayerCount()); // Deselect frames of previous layer. - Layer* previousLayer = object()->getLayer(editor()->currentLayerIndex()); - if (previousLayer != nullptr) { - previousLayer->deselectAll(); - } + Layer* previousLayer = currentLayer(); + previousLayer->deselectAll(); emit currentLayerWillChange(layerIndex); @@ -124,12 +116,9 @@ void LayerManager::setCurrentLayer(int layerIndex) editor()->setCurrentLayerIndex(layerIndex); emit currentLayerChanged(layerIndex); - if (object()) + if (object()->getLayer(layerIndex)->type() == Layer::CAMERA) { - if (object()->getLayer(layerIndex)->type() == Layer::CAMERA) - { - mLastCameraLayerIdx = layerIndex; - } + mLastCameraLayerIdx = layerIndex; } } @@ -323,15 +312,15 @@ Status LayerManager::deleteLayer(int index) if (camLayers.size() == 1) return Status::ERROR_NEED_AT_LEAST_ONE_CAMERA_LAYER; } - - object()->deleteLayer(layer); + Q_ASSERT(object()->getLayerCount() >= 2); // current layer is the last layer && we are deleting it - if (index == object()->getLayerCount() && + if (index == object()->getLayerCount() - 1 && index == currentLayerIndex()) { setCurrentLayer(currentLayerIndex() - 1); } + object()->deleteLayer(layer); if (index >= currentLayerIndex()) { // current layer has changed, so trigger updates