62 Q_UNUSED(actionCollection);
63 Q_UNUSED(actionManager);
84 return mask ? mask->paintDevice() : 0;
100 Q_ASSERT(activeNode);
102 if (!avoidActiveNode && activeNode->
allowAsChild(node)) {
107 parent = activeNode->
parent();
130 if (!t && activeNode->
parent()) {
148 const QString &nodeName,
149 bool suppressSelection,
150 bool avoidActiveNode,
159 KisLayerSP parentLayer = qobject_cast<KisLayer*>(parent.data());
160 Q_ASSERT(parentLayer);
162 bool shouldDeselectGlobalSelection =
false;
164 if (!suppressSelection) {
166 mask->initSelection(copyFrom, parentLayer);
175 KisImageLayerAddCommand::Flags flags =
182 if (shouldDeselectGlobalSelection) {
194 int number = masks.count() + 1;
195 return desiredName + QString(
" ") + QString::number(number);
204 createMaskCommon(mask, activeNode, copyFrom,
kundo2_i18n(
"Add Selection Mask"),
"KisSelectionMask", i18n(
"Selection"),
false, convertActiveNode,
false);
206 if (convertActiveNode) {
217 createMaskCommon(mask, activeNode, copyFrom,
kundo2_i18n(
"Add Transparency Mask"),
"KisTransparencyMask", i18n(
"Transparency Mask"),
false, convertActiveNode);
218 if (convertActiveNode) {
230 createMaskCommon(mask, activeNode, copyFrom,
kundo2_i18n(
"Add Filter Mask"),
"KisFilterMask", i18n(
"Filter Mask"),
false, convertActiveNode);
232 if (convertActiveNode) {
245 mask->name(), i18n(
"New Filter Mask"),
246 m_view, qApp->activeWindow());
252 mask->setFilter(filter->cloneWithResourcesSnapshot());
253 mask->setName(mask->name());
258 if (dialog.exec() == QDialog::Accepted) {
261 QString name = dialog.layerName();
262 mask->setFilter(filter->cloneWithResourcesSnapshot());
301 KisLayerSP activeLayer = qobject_cast<KisLayer*>(activeNode.
data());
302 Q_ASSERT(activeLayer);
306 if (!filter)
return nullptr;
311 mask->initSelection(activeLayer);
313 mask->setFilter(filter->cloneWithResourcesSnapshot());
315 KisImageLayerAddCommand::Flags flags =
340 if (
activeMask()->inherits(
"KisFilterMask")) {
354 i18n(
"Filter Mask Properties"),
m_view,
358 Q_ASSERT(configBefore);
359 QString xmlBefore = configBefore->toXML();
361 if (dlg.exec() == QDialog::Accepted) {
364 Q_ASSERT(configAfter);
365 QString xmlAfter = configAfter->toXML();
369 if(xmlBefore != xmlAfter) {
372 configBefore->cloneWithResourcesSnapshot(),
373 configAfter->cloneWithResourcesSnapshot()));
388 Q_ASSERT(configAfter);
389 QString xmlAfter = configAfter->toXML();
391 if(xmlBefore != xmlAfter) {
392 mask->
setFilter(configBefore->cloneWithResourcesSnapshot());
QList< QString > QStringList
const quint8 OPACITY_OPAQUE_U8
char nodeType(const KoPathPoint *point)
A KisActionManager class keeps track of KisActions. These actions are always associated with the GUI....
void initializeCompositeOp()
KUndo2Command * setColorSpace(const KoColorSpace *dstColorSpace, KoColorConversionTransformation::Intent renderingIntent=KoColorConversionTransformation::internalRenderingIntent(), KoColorConversionTransformation::ConversionFlags conversionFlags=KoColorConversionTransformation::internalConversionFlags(), KoUpdater *progressUpdater=nullptr)
The command for deselection the global selection of KisImage.
KisFilterConfigurationSP filterConfiguration() const
QString layerName() const
void setModified(bool _mod)
void setFilter(KisFilterConfigurationSP filterConfig, bool checkCompareConfig=true) override
static KisFilterRegistry * instance()
static KisResourcesInterfaceSP instance()
const KoColorSpace * colorSpace() const
QString nextLayerName(const QString &baseName="") const
A container for a set of QAction objects.
KisNodeCommandsAdapter * m_commandsAdapter
KisMaskManager(KisViewManager *view)
KisNodeSP createTransformMask(KisNodeSP activeNode)
void createMaskCommon(KisMaskSP mask, KisNodeSP activeNode, KisPaintDeviceSP copyFrom, const KUndo2MagicString ¯oName, const QString &nodeType, const QString &nodeName, bool suppressSelection, bool avoidActiveNode, bool updateImage=true)
void setup(KisKActionCollection *actionCollection, KisActionManager *actionManager)
void activateMask(KisMaskSP mask)
KisNodeSP createSelectionMask(KisNodeSP activeNode, KisPaintDeviceSP copyFrom, bool convertActiveNode)
KisPaintDeviceSP activeDevice()
KisNodeSP createColorizeMask(KisNodeSP activeNode)
void setView(QPointer< KisView >view)
KisNodeSP createFastColorOverlayMask(KisNodeSP activeNode)
KisNodeSP createTransparencyMask(KisNodeSP activeNode, KisPaintDeviceSP copyFrom, bool convertActiveNode)
QPointer< KisView > m_imageView
KisNodeSP createFilterMask(KisNodeSP activeNode, KisPaintDeviceSP copyFrom, bool quiet, bool convertActiveNode)
QString createMaskNameCommon(KisNodeSP targetNode, const QString &nodeType, const QString &desiredName)
void adjustMaskPosition(KisNodeSP node, KisNodeSP activeNode, bool avoidActiveNode, KisNodeSP &parent, KisNodeSP &above)
void addNode(KisNodeSP node, KisNodeSP parent, KisNodeSP aboveThis, KisImageLayerAddCommand::Flags flags=KisImageLayerAddCommand::DoRedoUpdates|KisImageLayerAddCommand::DoUndoUpdates)
void addExtraCommand(KUndo2Command *command)
void removeNode(KisNodeSP node)
void beginMacro(const KUndo2MagicString ¯oName)
virtual KisFilterConfigurationSP filter() const
bool canModifyLayer(KisNodeSP node, bool showWarning=true)
The command for setting the node's name.
virtual void addCommand(KUndo2Command *cmd)=0
KisDocument * document() const
KisUndoAdapter * undoAdapter()
The undo adapter is used to add commands to the undo stack.
KisSelectionSP selection()
KisNodeManager * nodeManager() const
The node manager handles everything about nodes.
QWidget * mainWindowAsQWidget() const
KisImageWSP image() const
Return the image this view is displaying.
const T value(const QString &id) const
QList< T > values() const
KUndo2MagicString kundo2_i18n(const char *text)
KUndo2Command * composeCommands(KUndo2Command *parent, KUndo2Command *cmd)
virtual const KoColorSpace * colorSpace() const =0
virtual KisFilterConfigurationSP defaultConfiguration(KisResourcesInterfaceSP resourcesInterface) const
KisPaintDeviceSP original() const override=0
KisNodeSP prevSibling() const
QList< KisNodeSP > childNodes(const QStringList &nodeTypes, const KoProperties &properties) const
quint32 childCount() const
KisNodeSP lastChild() const
KisNodeSP nextSibling() const
virtual bool allowAsChild(KisNodeSP) const =0
void setActive(bool active)