~smartboyhw/ubuntu/raring/calligra/2.6.0-0ubuntu1

« back to all changes in this revision

Viewing changes to krita/ui/kis_layer_manager.cc

  • Committer: Package Import Robot
  • Author(s): Jonathan Riddell
  • Date: 2012-07-16 10:51:29 UTC
  • mfrom: (1.1.8)
  • Revision ID: package-import@ubuntu.com-20120716105129-es1ebubwiwlsfvv0
Tags: 1:2.4.92-0ubuntu1
New upstream RC release

Show diffs side-by-side

added added

removed removed

Lines of Context:
88
88
 
89
89
 
90
90
KisLayerManager::KisLayerManager(KisView2 * view, KisDoc2 * doc)
91
 
        : m_view(view)
92
 
        , m_doc(doc)
93
 
        , m_imageFlatten(0)
94
 
        , m_imageMergeLayer(0)
95
 
        , m_layerSaveAs(0)
96
 
        , m_actLayerVis(false)
97
 
        , m_imageResizeToLayer(0)
98
 
        , m_flattenLayer(0)
99
 
        , m_rasterizeLayer(0)
100
 
        , m_duplicateLayer(0)
101
 
        , m_addPaintLayer(0)
102
 
        , m_activeLayer(0)
103
 
        , m_commandsAdapter(new KisNodeCommandsAdapter(m_view))
 
91
    : m_view(view)
 
92
    , m_doc(doc)
 
93
    , m_imageFlatten(0)
 
94
    , m_imageMergeLayer(0)
 
95
    , m_layerSaveAs(0)
 
96
    , m_actLayerVis(false)
 
97
    , m_imageResizeToLayer(0)
 
98
    , m_flattenLayer(0)
 
99
    , m_rasterizeLayer(0)
 
100
    , m_duplicateLayer(0)
 
101
    , m_addPaintLayer(0)
 
102
    , m_activeLayer(0)
 
103
    , m_commandsAdapter(new KisNodeCommandsAdapter(m_view))
104
104
{
105
105
}
106
106
 
233
233
        KisLayerSP prev = dynamic_cast<KisLayer*>(alayer->prevSibling().data());
234
234
        if (prev) dev = prev->projection();
235
235
 
236
 
        KisDlgAdjLayerProps dlg(dev, alayer->image(), alayer->filter(), alayer->name(), i18n("Filter Layer Properties"), m_view, "dlgadjlayerprops");
 
236
        KisDlgAdjLayerProps dlg(alayer, alayer.data(), dev, alayer->image(), alayer->filter(), alayer->name(), i18n("Filter Layer Properties"), m_view, "dlgadjlayerprops");
237
237
        dlg.resize(dlg.minimumSizeHint());
238
238
        KisFilterConfiguration* config = dlg.filterConfiguration();
239
239
        QString before;
 
240
 
240
241
        if (config) {
241
242
            before = config->toXML();
242
243
        }
 
244
 
243
245
        if (dlg.exec() == QDialog::Accepted) {
244
246
 
245
247
            QString after;
250
252
            }
251
253
            if (after != before) {
252
254
                KisChangeFilterCmd<KisAdjustmentLayerSP> * cmd
253
 
                = new KisChangeFilterCmd<KisAdjustmentLayerSP>(alayer,
254
 
                        dlg.filterConfiguration(),
255
 
                        before,
256
 
                        after);
 
255
                        = new KisChangeFilterCmd<KisAdjustmentLayerSP>(alayer,
 
256
                                                                       dlg.filterConfiguration(),
 
257
                                                                       before,
 
258
                                                                       after);
257
259
                cmd->redo();
258
260
                m_view->undoAdapter()->addCommand(cmd);
259
261
                m_doc->setModified(true);
260
262
            }
261
263
        }
262
 
    } else if (KisGeneratorLayerSP alayer = KisGeneratorLayerSP(dynamic_cast<KisGeneratorLayer*>(layer.data()))) {
 
264
        else {
 
265
            if (dlg.filterConfiguration() && config) {
 
266
                QString after = dlg.filterConfiguration()->toXML();
 
267
                if (after != before) {
 
268
                    alayer->setFilter(config);
 
269
                    alayer->setDirty();
 
270
                }
 
271
            }
 
272
        }
 
273
    }
 
274
    else if (KisGeneratorLayerSP alayer = KisGeneratorLayerSP(dynamic_cast<KisGeneratorLayer*>(layer.data()))) {
263
275
 
264
276
        KisDlgGeneratorLayer dlg(alayer->name(), m_view);
265
277
        dlg.setCaption(i18n("Generator Layer Properties"));
273
285
            QString after = dlg.configuration()->toXML();
274
286
            if (after != before) {
275
287
                KisChangeGeneratorCmd<KisGeneratorLayerSP> * cmd
276
 
                = new KisChangeGeneratorCmd<KisGeneratorLayerSP>(alayer,
277
 
                        dlg.configuration(),
278
 
                        before,
279
 
                        after
280
 
                                                                );
 
288
                        = new KisChangeGeneratorCmd<KisGeneratorLayerSP>(alayer,
 
289
                                                                         dlg.configuration(),
 
290
                                                                         before,
 
291
                                                                         after
 
292
                                                                         );
281
293
 
282
294
                cmd->redo();
283
295
                m_view->undoAdapter()->addCommand(cmd);
391
403
        // XXX: Make work with nodes!
392
404
        KisLayer * parentLayer = dynamic_cast<KisLayer*>(parent.data());
393
405
        KoShapeContainer * parentContainer =
394
 
            dynamic_cast<KoShapeContainer*>(m_doc->shapeForNode(parentLayer));
 
406
                dynamic_cast<KoShapeContainer*>(m_doc->shapeForNode(parentLayer));
395
407
        if (!parentContainer) return;
396
408
 
397
409
        KisLayerSP layer = new KisShapeLayer(parentContainer, m_doc->shapeController(), image.data(), image->nextLayerName(), OPACITY_OPAQUE_U8);
434
446
}
435
447
 
436
448
KisAdjustmentLayerSP KisLayerManager::addAdjustmentLayer(KisNodeSP parent, KisNodeSP above, const QString & name,
437
 
        KisFilterConfiguration * filter, KisSelectionSP selection)
 
449
                                                         KisFilterConfiguration * filter, KisSelectionSP selection)
438
450
{
439
451
    Q_ASSERT(parent);
440
452