Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_color_button.cpp File Reference
#include "kis_color_button.h"
#include <QPointer>
#include <QPainter>
#include <qdrawutil.h>
#include <QApplication>
#include <QColorDialog>
#include <QClipboard>
#include <QMimeData>
#include <QDrag>
#include <QStyle>
#include <QMouseEvent>
#include <QStyleOptionButton>
#include <KoColor.h>
#include <KisDlgInternalColorSelector.h>
#include <kconfiggroup.h>
#include <ksharedconfig.h>
#include "moc_kis_color_button.cpp"

Go to the source code of this file.

Classes

class  KisColorButton::KisColorButtonPrivate
 

Functions

bool _k_canDecode (const QMimeData *mimeData)
 
QDrag * _k_createDrag (const KoColor &color, QObject *dragsource)
 
QColor _k_fromMimeData (const QMimeData *mimeData)
 
void _k_populateMimeData (QMimeData *mimeData, const KoColor &color)
 

Function Documentation

◆ _k_canDecode()

bool _k_canDecode ( const QMimeData * mimeData)

Definition at line 61 of file kis_color_button.cpp.

62{
63 if (mimeData->hasColor()) {
64 return true;
65 }
66 if (mimeData->hasText()) {
67 const QString colorName = mimeData->text();
68 if ((colorName.length() >= 4) && (colorName[0] == QLatin1Char('#'))) {
69 return true;
70 }
71 }
72 return false;
73}

◆ _k_createDrag()

QDrag * _k_createDrag ( const KoColor & color,
QObject * dragsource )

Definition at line 86 of file kis_color_button.cpp.

87{
88 QDrag *drag = new QDrag(dragsource);
89 QMimeData *mime = new QMimeData;
90 _k_populateMimeData(mime, color);
91 drag->setMimeData(mime);
92 QPixmap colorpix(25, 20);
93 colorpix.fill(color.toQColor());
94 QPainter p(&colorpix);
95 p.setPen(Qt::black);
96 p.drawRect(0, 0, 24, 19);
97 p.end();
98 drag->setPixmap(colorpix);
99 drag->setHotSpot(QPoint(-5, -7));
100 return drag;
101}
const Params2D p
void toQColor(QColor *c) const
a convenience method for the above.
Definition KoColor.cpp:198
void _k_populateMimeData(QMimeData *mimeData, const KoColor &color)

References _k_populateMimeData(), p, and KoColor::toQColor().

◆ _k_fromMimeData()

QColor _k_fromMimeData ( const QMimeData * mimeData)

Definition at line 75 of file kis_color_button.cpp.

76{
77 if (mimeData->hasColor()) {
78 return mimeData->colorData().value<QColor>();
79 }
80 if (_k_canDecode(mimeData)) {
81 return QColor(mimeData->text());
82 }
83 return QColor();
84}
bool _k_canDecode(const QMimeData *mimeData)

References _k_canDecode().

◆ _k_populateMimeData()

void _k_populateMimeData ( QMimeData * mimeData,
const KoColor & color )

Definition at line 55 of file kis_color_button.cpp.

56{
57 mimeData->setColorData(color.toQColor());
58 mimeData->setText(color.toQColor().name());
59}

References KoColor::toQColor().