File indexing completed on 2024-05-19 04:29:16

0001 /*
0002  *  SPDX-FileCopyrightText: 2021 Halla Rempt <halla@valdyas.org>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 #ifndef KISNODEACTIVATIONACTIONCREATORVISITOR_H
0007 #define KISNODEACTIVATIONACTIONCREATORVISITOR_H
0008 
0009 #include <kis_node_visitor.h>
0010 
0011 #include "kis_node.h"
0012 #include "kis_paint_layer.h"
0013 #include "kis_group_layer.h"
0014 #include "kis_adjustment_layer.h"
0015 #include "kis_external_layer_iface.h"
0016 #include "kis_clone_layer.h"
0017 #include "kis_filter_mask.h"
0018 #include "kis_transform_mask.h"
0019 #include "kis_transparency_mask.h"
0020 #include "kis_selection_mask.h"
0021 #include "lazybrush/kis_colorize_mask.h"
0022 #include "generator/kis_generator_layer.h"
0023 
0024 #include <QList>
0025 #include <QAction>
0026 
0027 class KisKActionCollection;
0028 class KisNodeManager;
0029 
0030 class KisNodeActivationActionCreatorVisitor : public KisNodeVisitor
0031 {
0032 public:
0033 
0034     using KisNodeVisitor::visit;
0035 
0036     KisNodeActivationActionCreatorVisitor(KisKActionCollection *actionCollection, KisNodeManager *nodeManager);
0037     ~KisNodeActivationActionCreatorVisitor() {}
0038 
0039     bool visit(KisNode* node) override {
0040         return createAction(node);
0041     }
0042 
0043     bool visit(KisPaintLayer *layer) override {
0044         return createAction(layer);
0045     }
0046 
0047     bool visit(KisGroupLayer *layer) override {
0048         return createAction(layer);
0049     }
0050 
0051     bool visit(KisAdjustmentLayer *layer) override {
0052         return createAction(layer);
0053     }
0054 
0055     bool visit(KisExternalLayer *layer) override {
0056         return createAction(layer);
0057     }
0058 
0059     bool visit(KisCloneLayer *layer) override {
0060         return createAction(layer);
0061     }
0062 
0063     bool visit(KisFilterMask *mask) override {
0064         return createAction(mask);
0065     }
0066 
0067     bool visit(KisTransformMask *mask) override {
0068         return createAction(mask);
0069     }
0070 
0071     bool visit(KisTransparencyMask *mask) override {
0072         return createAction(mask);
0073     }
0074 
0075     bool visit(KisGeneratorLayer * layer) override {
0076         return createAction(layer);
0077     }
0078 
0079     bool visit(KisSelectionMask* mask) override {
0080         return createAction(mask);
0081     }
0082 
0083     bool visit(KisColorizeMask* mask) override {
0084         return createAction(mask);
0085     }
0086 
0087 private:
0088 
0089     bool createAction(KisNode *node);
0090 
0091     KisNodeManager *m_nodeManager {0};
0092     KisKActionCollection *m_actionCollection {0};
0093 
0094 };
0095 
0096 #endif // KISNODEACTIVATIONACTIONCREATORVISITOR_H