void Timeline::AddRasterLayer(int index) { if (!mScene) { return; } if (index < 0 || index > mLayers.size()) { index = mLayers.size(); } int width = mScene->GetWidth(); int height = mScene->GetHeight(); QString name; name.sprintf("layer%d", mLayers.size()); RasterLayerModel* layerModel = mScene->AddRasterLayer(index, name, width, height); if (layerModel) { RasterLayer* layer = new RasterLayer(this, layerModel); layer->SetUndoStack(mUndoStack); std::vector<Layer*>::iterator it = mLayers.begin(); it += index; mLayers.insert(it, layer); UpdateLayersUi(); } }