Source Code (Use browser search to find items of interest.)

Class Index

kiconedit'KGridView (./kdegraphics/kiconedit/kicongrid.h:60)

class KGridView : public QFrame
{
    Q_OBJECT
public:
  KGridView( QImage *image, QWidget * parent = 0, const char *name = 0);

  KRuler *hruler() { return _hruler;}
  KRuler *vruler() { return _vruler;}
  QFrame *corner() { return _corner;}
  KIconEditGrid *grid() { return _grid; }
  void setShowRulers(bool mode);
  bool rulers() { return pprops->showrulers; }
  void setAcceptDrop(bool a);
  const QRect viewRect();

public slots:
  void sizeChange(int, int);
  void moving(int, int);
  void scalingChange(int, bool);
  void paintGrid();

protected:
  virtual void paintEvent(QPaintEvent*);
  virtual void resizeEvent(QResizeEvent*);
  void paintDropSite();
  void setSizes();

  QFrame *_corner;
  KIconEditGrid *_grid;
  KRuler *_hruler, *_vruler;
  Properties *pprops;
  QScrollView *viewport;
  bool acceptdrop;
};

/**
* KIconEditGrid
* @short KIconEditGrid
* @author Thomas Tanghus <tanghus@kde.org>
* @version 0.3
*/

kiconedit'KGridView::KGridView() (./kdegraphics/kiconedit/kicongrid.cpp:35)

KGridView::KGridView(QImage *image, QWidget *parent, const char *name) : QFrame(parent, name)
{
  pprops = 0L;
  _corner = 0L;
  _hruler = _vruler = 0L;
  _grid = 0L;

  acceptdrop = false;
  
  pprops = props(this);

  viewport = new QScrollView(this);
  CHECK_PTR(viewport);

  _grid = new KIconEditGrid(image, viewport->viewport());
  CHECK_PTR(_grid);
  viewport->addChild(_grid);

  if(pprops->backgroundmode == FixedPixmap)
  {
    QPixmap pix(pprops->backgroundpixmap.data());
    if(pix.isNull())
    {
      QPixmap pmlogo((const char**)logo);
      pix = pmlogo;
    }
    viewport->viewport()->setBackgroundPixmap(pix);
    _grid->setBackgroundPixmap(pix);
  }
  else
  {
    viewport->viewport()->setBackgroundColor(pprops->backgroundcolor);
  }

  _corner = new QFrame(this);
  _corner->setFrameStyle(QFrame::WinPanel | QFrame::Raised);

  _hruler = new KRuler(KRuler::horizontal, this);
  _hruler->setEndLabel(i18n("width"));
  _hruler->setOffset( 0 );
  _hruler->setRange(0, 1000);

  _vruler = new KRuler(KRuler::vertical, this);
  _vruler->setEndLabel(i18n("height"));
  _vruler->setOffset( 0 );
  _vruler->setRange(0, 1000);

  connect(_grid, SIGNAL(scalingchanged(int, bool)), SLOT(scalingChange(int, bool)));
  connect(_grid, SIGNAL(sizechanged(int, int)), SLOT(sizeChange(int, int)));
  connect(_grid, SIGNAL(needPainting()), SLOT(paintGrid()));
  connect( _grid, SIGNAL(xposchanged(int)), _hruler, SLOT(slotNewValue(int)) );
  connect( _grid, SIGNAL(yposchanged(int)), _vruler, SLOT(slotNewValue(int)) );
  connect(viewport, SIGNAL(contentsMoving(int, int)), SLOT(moving(int, int)));

  setSizes();
  QResizeEvent e(size(), size());
  resizeEvent(&e);
}


kiconedit'KGridView::paintGrid() (./kdegraphics/kiconedit/kicongrid.cpp:94)

void KGridView::paintGrid()
{
  _grid->repaint(viewRect(), false);
}


kiconedit'KGridView::setSizes() (./kdegraphics/kiconedit/kicongrid.cpp:99)

void KGridView::setSizes()
{
  if(pprops->showrulers)
  {
    _hruler->setLittleMarkDistance(_grid->scaling());
    _vruler->setLittleMarkDistance(_grid->scaling());

    _hruler->setMediumMarkDistance(5);
    _vruler->setMediumMarkDistance(5);

    _hruler->setBigMarkDistance(10);
    _vruler->setBigMarkDistance(10);

    _hruler->showTinyMarks(true);
    _hruler->showLittleMarks(false);
    _hruler->showMediumMarks(true);
    _hruler->showBigMarks(true);
    _hruler->showEndMarks(true);

    _vruler->showTinyMarks(true);
    _vruler->showLittleMarks(false);
    _vruler->showMediumMarks(true);
    _vruler->showBigMarks(true);
    _vruler->showEndMarks(true);

    _hruler->setValuePerLittleMark(_grid->scaling());
    _vruler->setValuePerLittleMark(_grid->scaling());
    _hruler->setValuePerMediumMark(_grid->scaling()*5);
    _vruler->setValuePerMediumMark(_grid->scaling()*5);

    _hruler->setPixelPerMark(_grid->scaling());
    _vruler->setPixelPerMark(_grid->scaling());

    _hruler->setMaxValue(_grid->width());
    _vruler->setMaxValue(_grid->height());

    _hruler->show();
    _vruler->show();

    _corner->show();
    //resize(_grid->width()+_vruler->width(), _grid->height()+_hruler->height());
  }
  else
  {
    _hruler->hide();
    _vruler->hide();
    _corner->hide();
    //resize(_grid->size());
  }
}


kiconedit'KGridView::sizeChange() (./kdegraphics/kiconedit/kicongrid.cpp:150)

void KGridView::sizeChange(int, int)
{
  setSizes();
}


kiconedit'KGridView::moving() (./kdegraphics/kiconedit/kicongrid.cpp:155)

void KGridView::moving(int x, int y)
{
  //debug("Moving: %i x %i", x, y);
  _hruler->setOffset(abs(x));
  _vruler->setOffset(abs(y));
}


kiconedit'KGridView::scalingChange() (./kdegraphics/kiconedit/kicongrid.cpp:162)

void KGridView::scalingChange(int, bool)
{
  setSizes();
}


kiconedit'KGridView::setShowRulers() (./kdegraphics/kiconedit/kicongrid.cpp:167)

void KGridView::setShowRulers(bool mode)
{
  pprops->showrulers = mode;
  setSizes();
  QResizeEvent e(size(), size());
  resizeEvent(&e);
}


kiconedit'KGridView::setAcceptDrop() (./kdegraphics/kiconedit/kicongrid.cpp:175)

void KGridView::setAcceptDrop(bool a)
{
  if(a == acceptdrop)
    return;
  acceptdrop = a;
  paintDropSite();
}


kiconedit'KGridView::viewRect() (./kdegraphics/kiconedit/kicongrid.cpp:183)

const QRect KGridView::viewRect()
{
  int x, y, cx, cy;
  if(viewport->horizontalScrollBar()->isVisible())
  {
    x = viewport->contentsX();
    cx = viewport->viewport()->width();
  }
  else
  {
    x = 0;
    cx = viewport->contentsWidth();
  }

  if(viewport->verticalScrollBar()->isVisible())
  {
    y = viewport->contentsY();
    cy = viewport->viewport()->height();
  }
  else
  {
    y = 0;
    cy = viewport->contentsHeight();
  }

  return QRect(x, y, cx, cy);
}


kiconedit'KGridView::paintDropSite() (./kdegraphics/kiconedit/kicongrid.cpp:211)

void KGridView::paintDropSite()
{
  QPainter p;
  p.begin( _grid );
  p.setRasterOp (NotROP);
  p.drawRect(viewRect());
  p.end();
}


kiconedit'KGridView::paintEvent() (./kdegraphics/kiconedit/kicongrid.cpp:220)

void KGridView::paintEvent(QPaintEvent *)
{
  //if(acceptdrop)
    //paintDropSite();
}



kiconedit'KGridView::resizeEvent() (./kdegraphics/kiconedit/kicongrid.cpp:227)

void KGridView::resizeEvent(QResizeEvent*)
{
  debug("KGridView::resizeEvent");
  setSizes();
  if(pprops->showrulers)
  {
    _hruler->setGeometry(_vruler->width(), 0, width(), _hruler->height());
    _vruler->setGeometry(0, _hruler->height(), _vruler->width(), height());

    _corner->setGeometry(0, 0, _vruler->width(), _hruler->height());
    viewport->setGeometry(_corner->width(), _corner->height(),
                   width()-_corner->width(), height()-_corner->height());
  }
  else
    viewport->setGeometry(0, 0, width(), height());
}