Source Code (Use browser search to find items of interest.)
Class Index
kiconedit'KColorGrid (./kdegraphics/kiconedit/kcolorgrid.h:52)
class KColorGrid : public QWidget
{
private:
Q_OBJECT
public:
KColorGrid( QWidget * parent = 0, const char *name = 0, int spacing = 0);
virtual ~KColorGrid() {};
enum GridState { Plain, Shaded };
void setSpacing(int space) { s = space; update(); }
void setGridState(GridState state) { gridstate = state;}
GridState gridState() { return gridstate; }
void setGrid(bool state) { hasgrid = state; }
int spacing() { return s; }
bool hasGrid() { return hasgrid; }
uint numColors() { return numcolors.size(); }
uint colors( uint *c ) { c = numcolors.data(); return numcolors.size(); }
bool contains(uint c) { return numcolors.contains(c); }
uint colorAt(int idx) { return gridcolors.at(idx); }
uint *data() {return numcolors.data(); }
void fill(uint color);
int numCols() { return cols; }
int numRows() { return rows; }
virtual void setCellSize( int s );
virtual int cellSize() { return cellsize; }
virtual QSize sizeHint() const;
void setSize(const QSize s) { setNumRows(s.height()); setNumCols(s.width()); }
public slots:
//virtual void show();
signals:
void addingcolor(uint);
void colorschanged(uint, uint*);
protected:
void updateCell(int row, int col, bool f);
virtual void paintCell( QPainter *p, int row, int col) = 0;
virtual void paintEvent(QPaintEvent *);
//virtual void resizeEvent(QResizeEvent *);
void setColor(int colNum, uint, bool update = true );
void updateColors();
virtual void setNumRows(int);
virtual void setNumCols(int);
virtual int totalWidth() { return totalwidth; }
virtual int totalHeight() { return totalheight; }
int findRow(int y) { return getY(y); }
int getY(int y);
int findCol(int x) { return getX(x); }
int getX(int x);
const QRect viewRect();
//private:
int s, cellsize, totalwidth, totalheight;
int rows, cols, ypos, xpos;
GridState gridstate;
bool hasgrid;
KColorArray gridcolors, numcolors;
};
kiconedit'KColorGrid::KColorGrid() (./kdegraphics/kiconedit/kcolorgrid.cpp:69)
KColorGrid::KColorGrid(QWidget *parent, const char *name, int space)
: QWidget(parent, name)
{
//debug("KColorGrid - constructor");
s = space;
rows = cols = totalwidth = totalheight = 0;
setCellSize(10);
setGridState(Plain);
setGrid(true);
numcolors.resize(0);
gridcolors.resize(0);
//debug("KColorGrid - constructor - done");
}
/*
void KColorGrid::show()
{
//updateScrollBars();
QWidget::show();
}
*/
kiconedit'KColorGrid::paintEvent() (./kdegraphics/kiconedit/kcolorgrid.cpp:90)
void KColorGrid::paintEvent(QPaintEvent *e)
{
//debug("KColorGrid::paintEvent");
//updateScrollBars();
//QWidget::paintEvent(e);
const QRect urect = e->rect();
//debug("Update rect = ( %i, %i, %i, %i )",
//urect.left(),urect.top(), urect.width(), urect.height() );
int firstcol = getX(urect.x())-1;
int firstrow = getY(urect.y())-1;
int lastcol = getX(urect.right())+1;
int lastrow = getY(urect.bottom())+1;
QWMatrix matrix;
QPainter p;
p.begin( this );
firstrow = (firstrow < 0) ? 0 : firstrow;
firstcol = (firstcol < 0) ? 0 : firstcol;
lastrow = (lastrow >= rows) ? rows : lastrow;
lastcol = (lastcol >= cols) ? cols : lastcol;
//debug("%d x %d - row: %d x %d", urect.x(), urect.y(), urect.width(), urect.height());
//debug("col: %d -> %d - row: %d -> %d", firstcol, lastcol, firstrow, lastrow);
/*
if(this->isA("KDrawGrid"))
debug("KDrawGrid\n firstcol: %d\n lastcol: %d\n firstrow: %d\n lastrow: %d",
firstcol, lastcol, firstrow, lastrow);
*/
for(int i = firstrow; i < lastrow; i++)
{
//if(this->isA("KDrawGrid"))
// debug("Updating row %d", i);
for(int j = firstcol; j < lastcol; j++)
{
matrix.translate( (j*cellsize), (i*cellsize) );
p.setWorldMatrix( matrix );
//p.setClipRect(j*cellsize, i*cellsize, cellsize, cellsize);
paintCell(&p, i, j);
//p.setClipping(FALSE);
matrix.reset();
p.setWorldMatrix( matrix );
}
//kapp->processEvents();
}
p.end();
}
/*
void KColorGrid::resizeEvent(QResizeEvent *)
{
//debug("resize: width: %d - total: %d", width(), totalwidth);
//debug("resize: height: %d - total: %d", height(), totalheight);
}
*/
kiconedit'KColorGrid::sizeHint() (./kdegraphics/kiconedit/kcolorgrid.cpp:153)
QSize KColorGrid::sizeHint() const
{
return QSize(totalwidth, totalheight);
}
kiconedit'KColorGrid::getY() (./kdegraphics/kiconedit/kcolorgrid.cpp:158)
int KColorGrid::getY( int y )
{
if(y > (totalheight-1))
y = totalheight;
if(cellsize == 1)
return y;
return (y/cellsize);
}
kiconedit'KColorGrid::getX() (./kdegraphics/kiconedit/kcolorgrid.cpp:167)
int KColorGrid::getX( int x )
{
if( x > totalwidth-1)
x = totalwidth;
if(cellsize == 1)
return x;
return (x/cellsize);
}
kiconedit'KColorGrid::viewRect() (./kdegraphics/kiconedit/kcolorgrid.cpp:176)
const QRect KColorGrid::viewRect()
{
//debug("viewRect");
const QRect r(0, 0, width(), height());
//debug("viewRect - %d x %d - %d x %d", x, y, w, h);
return r;
}
kiconedit'KColorGrid::setNumRows() (./kdegraphics/kiconedit/kcolorgrid.cpp:184)
void KColorGrid::setNumRows(int n)
{
//debug("setNumRows");
if(n < 0 || n == rows)
return;
rows = n;
gridcolors.resize(n*numCols());
//QTableView::setNumRows(n);
totalheight = (n * cellsize) + 1;
resize(totalwidth, totalheight);
//debug("setNumRows() - gridcolors: %d size: %d", gridcolors.size(), numCols()*numRows());
}
kiconedit'KColorGrid::setNumCols() (./kdegraphics/kiconedit/kcolorgrid.cpp:199)
void KColorGrid::setNumCols(int n)
{
//debug("setNumCols");
if(n < 0)
return;
int on = numCols();
KColorArray gc(gridcolors);
gc.detach();
//debug("gc size: %d numrows: %d", gc.size(), numRows());
gridcolors.resize(n*numRows());
cols = n;
totalwidth = (n * cellsize) + 1;
resize(totalwidth, totalheight);
//debug("numRows: %d", numRows());
//debug("gridcolor: %d grid: %d", gridcolors.size(), numRows()*numCols());
if(numRows() == 0)
return;
for(int i = 0; i < numRows(); i++)
{
for(int j = 0; j < on; j++)
{
//debug("row %d , col %d", i, j);
if(on <= n)
{
//debug("%d %d", (i*numCols())+j, (i*on)+j);
gridcolors.at((i*numCols())+j) = gc.at((i*on)+j);
}
else
break;
}
}
//debug("setNumCols() - gridcolors: %d size: %d", gridcolors.size(), numCols()*numRows());
}
kiconedit'KColorGrid::fill() (./kdegraphics/kiconedit/kcolorgrid.cpp:236)
void KColorGrid::fill( uint color)
{
gridcolors.fill(color);
numcolors.resize(1);
numcolors.at(0) = color;
emit colorschanged(numcolors.size(), numcolors.data());
}
kiconedit'KColorGrid::setColor() (./kdegraphics/kiconedit/kcolorgrid.cpp:244)
void KColorGrid::setColor( int colNum, uint col, bool update )
{
//debug("KColorGrid::setColor");
uint oldcolor = gridcolors[colNum];
gridcolors[colNum] = col;
if(!update)
return;
//debug("KColorGrid::setColor - before adding");
if(!numcolors.contains(col))
{
//debug("KColorGrid::setColor() - adding %u - %d %d %d",
// col, qRed(col), qGreen(col), qBlue(col));
numcolors.append(col);
//debug("KColorGrid::setColor() - adding done %d", numcolors.size()-1);
//numcolors++;
emit addingcolor(col);
}
//debug("KColorGrid::setColor - before removing");
if(!gridcolors.contains(oldcolor))
{
int idx = numcolors.find(oldcolor);
if(idx != -1)
{
//debug("KColorGrid::setColor() - removing %u - %d %d %d",
// oldcolor, qRed(oldcolor), qGreen(oldcolor), qBlue(oldcolor));
numcolors.remove(idx);
//debug("KColorGrid::setColor() - removing done");
emit colorschanged(numcolors.size(), numcolors.data());
}
//numcolors--;
}
//debug("KColorGrid::setColor - before updateCell");
repaint((colNum%numCols())*cellsize,(colNum/numCols())*cellsize, cellsize, cellsize);
//updateCell( colNum/numCols(), colNum%numCols(), false );
//debug("KColorGrid::setColor - after updateCell");
}
kiconedit'KColorGrid::updateCell() (./kdegraphics/kiconedit/kcolorgrid.cpp:285)
void KColorGrid::updateCell( int row, int col, bool )
{
//debug("updateCell - before repaint");
QWMatrix matrix;
QPainter p;
p.begin( this );
matrix.translate( (col*cellsize), (row*cellsize) );
p.setWorldMatrix( matrix );
paintCell(&p, row, col);
p.end();
}
kiconedit'KColorGrid::updateColors() (./kdegraphics/kiconedit/kcolorgrid.cpp:299)
void KColorGrid::updateColors()
{
numcolors.resize(0);
for(int i = 0; i < (int)gridcolors.size(); i++)
{
uint col = gridcolors.at(i);
if(!numcolors.contains(col))
numcolors.append(col);
}
emit colorschanged(numcolors.size(), numcolors.data());
}
kiconedit'KColorGrid::setCellSize() (./kdegraphics/kiconedit/kcolorgrid.cpp:311)
void KColorGrid::setCellSize( int s )
{
cellsize = s;
totalwidth = (numCols() * s) + 1;
totalheight = (numRows() * s) + 1;
resize(totalwidth, totalheight);
if ( isVisible() )
repaint(viewRect(), false);
}