591
592
layer->parent()->setDirty();
594
void KisLayerManager::mirrorLayerX()
596
KisLayerSP layer = activeLayer();
597
m_view->image()->undoAdapter()->beginMacro(i18n("Mirror Layer X"));
599
if (layer->inherits("KisShapeLayer")) {
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);
604
KisPaintDeviceSP dev = activeDevice();
607
KisTransaction transaction(i18n("Mirror Layer X"), dev);
609
QRect dirty = KisTransformWorker::mirrorX(dev, m_view->selection());
610
m_activeLayer->setDirty(dirty);
612
transaction.commit(m_view->image()->undoAdapter());
615
KoProperties properties;
616
foreach(KisNodeSP mask, layer->childNodes(QStringList("KisMask"), properties)) {
617
KisPaintDeviceSP dev = qobject_cast<KisMask*>(mask.data())->selection()->getOrCreatePixelSelection();
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);
625
m_view->image()->undoAdapter()->endMacro();
626
m_doc->setModified(true);
628
m_view->canvas()->update();
631
void KisLayerManager::mirrorLayerY()
633
KisLayerSP layer = activeLayer();
635
m_view->image()->undoAdapter()->beginMacro(i18n("Mirror Layer Y"));
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);
642
KisPaintDeviceSP dev = activeDevice();
645
KisTransaction transaction(i18n("Mirror Layer Y"), dev);
647
QRect dirty = KisTransformWorker::mirrorY(dev, m_view->selection());
648
m_activeLayer->setDirty(dirty);
650
transaction.commit(m_view->image()->undoAdapter());
653
KoProperties properties;
654
foreach(KisNodeSP mask, layer->childNodes(QStringList("KisMask"), properties)) {
655
KisPaintDeviceSP dev = qobject_cast<KisMask*>(mask.data())->selection()->getOrCreatePixelSelection();
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);
663
m_view->image()->undoAdapter()->endMacro();
665
m_doc->setModified(true);
667
m_view->canvas()->update();
670
595
void KisLayerManager::scaleLayer(double sx, double sy, KisFilterStrategy *filterStrategy)
672
597
if (!m_view->image()) return;