Source Code (Use browser search to find items of interest.)
Class Index
kiconedit'KCustomColors (./kdegraphics/kiconedit/kiconcolors.h:49)
class KCustomColors : public KDrawColors
{
Q_OBJECT
public:
KCustomColors(QWidget *parent);
~KCustomColors();
void addColor(uint);
void clear();
protected:
virtual void mouseDoubleClickEvent(QMouseEvent*);
int getFreeCell();
void freeAllCells();
protected:
bool *freecells;
QPopupMenu *popup;
};
kiconedit'KCustomColors::KCustomColors() (./kdegraphics/kiconedit/kiconcolors.cpp:80)
KCustomColors::KCustomColors(QWidget *parent) : KDrawColors(parent)
{
debug("KCustomColors - constructor");
setNumRows(3);
setNumCols(6);
fill(TRANSPARENT|OPAQUE_MASK);
setFixedSize(numCols()*cellSize(), numRows()*cellSize());
freecells = new bool[numRows()*numCols()];
for(int i = 0; i < numRows()*numCols(); i++)
freecells[i] = true;
debug("KCustomColors - constructor - done");
}
kiconedit'KCustomColors::~KCustomColors() (./kdegraphics/kiconedit/kiconcolors.cpp:93)
KCustomColors::~KCustomColors()
{
delete [] freecells;
}
kiconedit'KCustomColors::mouseDoubleClickEvent() (./kdegraphics/kiconedit/kiconcolors.cpp:98)
void KCustomColors::mouseDoubleClickEvent(QMouseEvent *e)
{
int row = findRow( e->pos().y() );
int col = findCol( e->pos().x() );
int cell = row * numCols() + col;
QColor color;
KColorDialog *cdlg = new KColorDialog;
cdlg->setColor(colorAt(cell));
if(cdlg->getColor(color))
{
setColor(cell, color.rgb());
emit newcolor(color.rgb()|OPAQUE_MASK);
freecells[cell] = false;
}
delete cdlg;
}
kiconedit'KCustomColors::addColor() (./kdegraphics/kiconedit/kiconcolors.cpp:116)
void KCustomColors::addColor(uint c)
{
if(!contains(c))
{
int f = getFreeCell();
if(f != -1)
{
QColor color(c);
if(!color.isValid())
{
debug("KCustomColors::addColor: Not a valid color: %u", c);
return;
}
//debug("KCustomColors::addColor: Adding color: %u - %d %d %d", c, qRed(c), qGreen(c), qBlue(c));
setColor(f, c);
freecells[f] = false;
}
}
}
kiconedit'KCustomColors::getFreeCell() (./kdegraphics/kiconedit/kiconcolors.cpp:136)
int KCustomColors::getFreeCell()
{
for (int i = 0; i < numRows()*numCols(); i++)
{
if(freecells[i])
{
if(i+1 < numRows()*numCols())
freecells[i+1] = true;
else
freecells[0] = true;
return i;
break;
}
}
freeAllCells(); // start over again - not very elegant
return 0;
}
kiconedit'KCustomColors::freeAllCells() (./kdegraphics/kiconedit/kiconcolors.cpp:154)
void KCustomColors::freeAllCells()
{
for (int i = 0; i < numRows()*numCols(); i++)
freecells[i] = true;
}
kiconedit'KCustomColors::clear() (./kdegraphics/kiconedit/kiconcolors.cpp:160)
void KCustomColors::clear()
{
fill(TRANSPARENT);
freeAllCells();
update();
}