17
17
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18
18
* Boston, MA 02110-1301, USA.
21
20
#include "kis_painterlymixer.h"
22
#include <QButtonGroup>
23
#include <QGridLayout>
26
#include <KoColorSpace.h>
27
#include <KoCanvasBase.h>
28
#include <KoResourceManager.h>
23
30
#include "colorspot.h"
24
31
#include "kis_ksf32_colorspace.h"
25
32
#include "mixercanvas.h"
26
#include "mixertool.h"
28
#include <kis_paintop.h>
29
#include <kis_canvas_resource_provider.h>
30
#include <kis_view2.h>
31
#include <KoColorSpace.h>
32
#include <KoToolProxy.h>
33
#include <QButtonGroup>
35
KisPainterlyMixer::KisPainterlyMixer(QWidget *parent, KisView2 *view)
36
: QWidget(parent), m_view(view), m_resources(view->resourceProvider()), m_tool(0), m_colorspace(0)
34
KisPainterlyMixer::KisPainterlyMixer(QWidget *parent)
40
QString csid = KisKSF32ColorSpace<3>::ColorSpaceId().id();
41
KoColorSpaceRegistry *f = KoColorSpaceRegistry::instance();
43
// TODO Illuminant and colorspace has to be chosen at runtime
44
QList<const KoColorProfile*> profiles = f->profilesFor(csid);
45
if (profiles.count()) { // don't crash if the profile is not available.
46
const KoColorProfile* testp = profiles.at(0);
47
m_colorspace = f->colorSpace(csid, testp);
48
Q_ASSERT(m_colorspace);
41
// XXX: ask Enkithan for a palette-knife icon
42
bnMix->setIcon(KIcon("krita_tool_knife"));
43
bnPick->setIcon(KIcon("krita_tool_color_picker"));
44
bnPan->setIcon(KIcon("krita_tool_move"));
58
45
m_bErase->setIcon(KIcon("edit-delete"));
59
46
connect(m_bErase, SIGNAL(clicked()), m_canvas, SLOT(slotClear()));
48
//connect(sliderRadius, SIGNAL(valueChanged(int)), m_canvas->mixerTool(), SLOT(setRadius(qreal)));
62
51
KisPainterlyMixer::~KisPainterlyMixer()
68
void KisPainterlyMixer::initCanvas()
70
m_canvas->setLayer(m_colorspace);
71
m_canvas->setToolProxy(new KoToolProxy(m_canvas));
72
m_canvas->setResources(m_resources);
75
void KisPainterlyMixer::initTool()
78
m_tool = new MixerTool(m_canvas, m_resources);
79
m_canvas->toolProxy()->setActiveTool(m_tool);
95
69
for (row = 0; row < ROWS; row++) {
96
70
for (col = 0; col < COLS; col++) {
97
71
int index = row * COLS + col;
98
72
QToolButton *curr = new ColorSpot(m_spotsFrame, m_vColors[index]);
73
QPalette p (curr->palette());
74
p.setColor(QPalette::Button, m_vColors[index].toQColor());
76
curr->setAutoFillBackground(false);
99
78
l->addWidget(curr, row, col);
101
80
m_bgColors->addButton(curr, index);
110
89
void KisPainterlyMixer::loadColors()
112
// TODO We need to handle save/load of user-defined colors in the spots.
113
const KoColorSpace *cs = m_colorspace;
91
// TODO: We need to handle save/load of user-defined colors in the spots.
92
// This needs to be coordinated with the favourite resources!
93
const KoColorSpace *cs = m_canvas->colorSpace();
114
94
m_vColors.append(KoColor(QColor("#FF0000"), cs)); // Red
115
95
m_vColors.append(KoColor(QColor("#00FF00"), cs)); // Green
116
96
m_vColors.append(KoColor(QColor("#0000FF"), cs)); // Blue
124
104
void KisPainterlyMixer::slotChangeColor(int index)
126
m_resources->setFGColor(m_vColors[index]);
106
emit colorChanged(m_vColors[index]);
109
void KisPainterlyMixer::setColor(const KoColor& color)
111
m_canvas->resourceManager()->setForegroundColor(color);
129
114
#include "kis_painterlymixer.moc"