File indexing completed on 2024-05-19 04:26:58

0001 /*
0002  *  SPDX-FileCopyrightText: 2017 Wolthera van Hövell tot Westerflier <griffinvalley@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: LGPL-2.0-or-later
0005  */
0006 #include "TransparencyMask.h"
0007 #include <kis_transparency_mask.h>
0008 #include <kis_image.h>
0009 #include "Selection.h"
0010 #include <kis_selection.h>
0011 #include <kis_group_layer.h>
0012 #include "kis_layer.h"
0013 
0014 TransparencyMask::TransparencyMask(KisImageSP image, QString name, QObject *parent) :
0015     Node(image, new KisTransparencyMask(image, name), parent)
0016 {
0017     KisTransparencyMask *mask = qobject_cast<KisTransparencyMask*>(this->node().data());
0018     KIS_SAFE_ASSERT_RECOVER_RETURN(mask);
0019 
0020     KisSelectionSP selection = new KisSelection();
0021     KisLayerSP layer = qobject_cast<KisLayer*>(image->rootLayer().data());
0022 
0023     mask->initSelection(selection, layer);
0024 }
0025 
0026 TransparencyMask::TransparencyMask(KisImageSP image, KisTransparencyMaskSP mask, QObject *parent):
0027     Node(image, mask, parent)
0028 {
0029 
0030 }
0031 
0032 TransparencyMask::~TransparencyMask()
0033 {
0034 
0035 }
0036 
0037 Selection *TransparencyMask::selection() const
0038 {
0039     const KisTransparencyMask *mask = qobject_cast<const KisTransparencyMask*>(this->node());
0040     return new Selection(mask->selection());
0041 }
0042 
0043 void TransparencyMask::setSelection(Selection *selection)
0044 {
0045     KisTransparencyMask *mask = qobject_cast<KisTransparencyMask*>(this->node().data());
0046     mask->setSelection(selection->selection());
0047 }
0048 
0049 QString TransparencyMask::type() const
0050 {
0051     return "transparencymask";
0052 }