Esempio n. 1
0
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();
    }
}