~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-08-08 11:05:31 UTC
  • mfrom: (1.1.9)
  • Revision ID: package-import@ubuntu.com-20120808110531-43wco1j5sdm8n47s
Tags: 1:2.5.0-0ubuntu1
New upstream release

Show diffs side-by-side

added added

removed removed

Lines of Context:
85
85
#include "kis_progress_widget.h"
86
86
#include "kis_node_commands_adapter.h"
87
87
#include "kis_node_manager.h"
 
88
#include "kis_mirror_visitor.h"
88
89
 
89
90
 
90
91
KisLayerManager::KisLayerManager(KisView2 * view, KisDoc2 * doc)
591
592
    layer->parent()->setDirty();
592
593
}
593
594
 
594
 
void KisLayerManager::mirrorLayerX()
595
 
{
596
 
    KisLayerSP layer = activeLayer();
597
 
    m_view->image()->undoAdapter()->beginMacro(i18n("Mirror Layer X"));
598
 
 
599
 
    if (layer->inherits("KisShapeLayer")) {
600
 
 
601
 
        KisTransformVisitor visitor(m_view->image(), -1.0, 1.0, 0.0, 0.0, 0.0, m_view->image()->width(), 0, 0, 0);
602
 
        layer->accept(visitor);
603
 
    } else {
604
 
        KisPaintDeviceSP dev = activeDevice();
605
 
        if (!dev) return;
606
 
 
607
 
        KisTransaction transaction(i18n("Mirror Layer X"), dev);
608
 
 
609
 
        QRect dirty = KisTransformWorker::mirrorX(dev, m_view->selection());
610
 
        m_activeLayer->setDirty(dirty);
611
 
 
612
 
        transaction.commit(m_view->image()->undoAdapter());
613
 
    }
614
 
    // Now for the masks
615
 
    KoProperties properties;
616
 
    foreach(KisNodeSP mask, layer->childNodes(QStringList("KisMask"), properties)) {
617
 
        KisPaintDeviceSP dev = qobject_cast<KisMask*>(mask.data())->selection()->getOrCreatePixelSelection();
618
 
        if (!dev) continue;
619
 
        KisTransaction transaction(i18n("Mirror Mask X"), dev);
620
 
        QRect dirty = KisTransformWorker::mirrorX(dev, m_view->selection());
621
 
        transaction.commit(m_view->image()->undoAdapter());
622
 
        mask->setDirty(dirty);
623
 
    }
624
 
 
625
 
    m_view->image()->undoAdapter()->endMacro();
626
 
    m_doc->setModified(true);
627
 
    layersUpdated();
628
 
    m_view->canvas()->update();
629
 
}
630
 
 
631
 
void KisLayerManager::mirrorLayerY()
632
 
{
633
 
    KisLayerSP layer = activeLayer();
634
 
 
635
 
    m_view->image()->undoAdapter()->beginMacro(i18n("Mirror Layer Y"));
636
 
 
637
 
    if (layer->inherits("KisShapeLayer")) {
638
 
        KisTransformVisitor visitor(m_view->image(), 1.0, -1.0, 0.0, 0.0, 0.0, 0, m_view->image()->height(), 0, 0);
639
 
        layer->accept(visitor);
640
 
 
641
 
    } else {
642
 
        KisPaintDeviceSP dev = activeDevice();
643
 
        if (!dev) return;
644
 
 
645
 
        KisTransaction transaction(i18n("Mirror Layer Y"), dev);
646
 
 
647
 
        QRect dirty = KisTransformWorker::mirrorY(dev, m_view->selection());
648
 
        m_activeLayer->setDirty(dirty);
649
 
 
650
 
        transaction.commit(m_view->image()->undoAdapter());
651
 
    }
652
 
    // Now for the masks
653
 
    KoProperties properties;
654
 
    foreach(KisNodeSP mask, layer->childNodes(QStringList("KisMask"), properties)) {
655
 
        KisPaintDeviceSP dev = qobject_cast<KisMask*>(mask.data())->selection()->getOrCreatePixelSelection();
656
 
        if (!dev) continue;
657
 
        KisTransaction transaction(i18n("Mirror Mask Y"), dev);
658
 
        QRect dirty = KisTransformWorker::mirrorY(dev, m_view->selection());
659
 
        transaction.commit(m_view->image()->undoAdapter());
660
 
        mask->setDirty(dirty);
661
 
    }
662
 
 
663
 
    m_view->image()->undoAdapter()->endMacro();
664
 
 
665
 
    m_doc->setModified(true);
666
 
    layersUpdated();
667
 
    m_view->canvas()->update();
668
 
}
669
 
 
670
595
void KisLayerManager::scaleLayer(double sx, double sy, KisFilterStrategy *filterStrategy)
671
596
{
672
597
    if (!m_view->image()) return;