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 #include "KisNodeActivationActionCreatorVisitor.h"
0007 
0008 #include <kis_node_manager.h>
0009 #include <klocalizedstring.h>
0010 #include <kactioncollection.h>
0011 #include <QObject>
0012 #include <QRect>
0013 #include <kis_projection_leaf.h>
0014 
0015 KisNodeActivationActionCreatorVisitor::KisNodeActivationActionCreatorVisitor(KisKActionCollection *actionCollection, KisNodeManager *nodeManager)
0016     : m_nodeManager(nodeManager)
0017     , m_actionCollection(actionCollection)
0018 {
0019 }
0020 
0021 
0022 bool KisNodeActivationActionCreatorVisitor::createAction(KisNode *node)
0023 {
0024     if (!node->projectionLeaf()->isRoot()) {
0025         QAction *action = new QAction(i18nc("A temporary action that actives a layer or mask",
0026                                             "Activate %1", node->name()),
0027                                       m_actionCollection);
0028         action->setObjectName(QString("select_%1").arg(node->name()));
0029         action->setProperty("node", node->name());
0030         action->setIcon(node->icon());
0031         QObject::connect(action, SIGNAL(triggered()), m_nodeManager, SLOT(slotUiActivateNode()));
0032         m_actionCollection->addAction(action->objectName(), action);
0033     }
0034 
0035     visitAll(node);
0036 
0037     return true;
0038 }