File indexing completed on 2024-05-26 04:32:51
0001 /* 0002 * colorrange.h -- Part of Krita 0003 * 0004 * SPDX-FileCopyrightText: 2004 Boudewijn Rempt (boud@valdyas.org) 0005 * 0006 * SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #include "colorrange.h" 0010 0011 #include <klocalizedstring.h> 0012 #include <kis_debug.h> 0013 #include <kpluginfactory.h> 0014 0015 #include "kis_image.h" 0016 #include "kis_layer.h" 0017 #include "kis_paint_device.h" 0018 #include "kis_global.h" 0019 #include "kis_types.h" 0020 #include "KisViewManager.h" 0021 #include "kis_selection.h" 0022 #include "kis_selection_manager.h" 0023 #include "kis_selection_tool_helper.h" 0024 #include "kis_canvas2.h" 0025 #include "kis_iterator_ng.h" 0026 #include "kis_action.h" 0027 0028 #include "dlg_colorrange.h" 0029 #include <KoColorSpace.h> 0030 #include <KisSignalMapper.h> 0031 0032 K_PLUGIN_FACTORY_WITH_JSON(ColorRangeFactory, "kritacolorrange.json", registerPlugin<ColorRange>();) 0033 0034 0035 ColorRange::ColorRange(QObject *parent, const QVariantList &) 0036 : KisActionPlugin(parent) 0037 { 0038 KisAction* action = createAction("colorrange"); 0039 connect(action, SIGNAL(triggered()), this, SLOT(slotActivated())); 0040 0041 0042 KisSignalMapper *mapper = new KisSignalMapper(this); 0043 connect(mapper, SIGNAL(mapped(int)), SLOT(selectOpaque(int))); 0044 0045 action = createAction("selectopaque"); 0046 mapper->setMapping(action, int(SELECTION_REPLACE)); 0047 connect(action, SIGNAL(triggered(bool)), mapper, SLOT(map())); 0048 0049 action = createAction("selectopaque_add"); 0050 mapper->setMapping(action, int(SELECTION_ADD)); 0051 connect(action, SIGNAL(triggered(bool)), mapper, SLOT(map())); 0052 0053 action = createAction("selectopaque_subtract"); 0054 mapper->setMapping(action, int(SELECTION_SUBTRACT)); 0055 connect(action, SIGNAL(triggered(bool)), mapper, SLOT(map())); 0056 0057 action = createAction("selectopaque_intersect"); 0058 mapper->setMapping(action, int(SELECTION_INTERSECT)); 0059 connect(action, SIGNAL(triggered(bool)), mapper, SLOT(map())); 0060 } 0061 0062 ColorRange::~ColorRange() 0063 { 0064 } 0065 0066 void ColorRange::slotActivated() 0067 { 0068 DlgColorRange *dlgColorRange = new DlgColorRange(viewManager(), viewManager()->mainWindowAsQWidget()); 0069 Q_CHECK_PTR(dlgColorRange); 0070 0071 dlgColorRange->exec(); 0072 } 0073 0074 void ColorRange::selectOpaque(int id) 0075 { 0076 KisNodeSP node = viewManager()->activeNode(); 0077 if (!node) return; 0078 0079 viewManager()->selectionManager()-> 0080 selectOpaqueOnNode(node, SelectionAction(id)); 0081 } 0082 0083 #include "colorrange.moc" 0084