More docs.
[dorian] / graphicsview.cpp
1 #include "graphicsview.h"
2
3 GraphicsView::GraphicsView():
4     QGraphicsView(new QGraphicsScene()),
5     viewport(0)
6 {
7     setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate);
8     setOptimizationFlags(QGraphicsView::DontSavePainterState);
9
10     setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
11     setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
12
13     setFrameShape(QFrame::NoFrame);
14     setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
15
16     viewport = new ViewportItem();
17     scene()->addItem(viewport);
18 }
19
20 GraphicsView::ViewportItem *viewportItem() const
21 {
22     return viewport;
23 }
24
25  protected:
26      void resizeEvent(QResizeEvent *e)
27      {
28          QGraphicsView::resizeEvent(e);
29          setUpdatesEnabled(false);
30
31          if (!viewport)
32              return;
33
34          QRectF rect(QPointF(0, 0), size());
35          scene()->setSceneRect(rect);
36
37          viewport->setGeometry(rect);
38          setUpdatesEnabled(true);
39          update();
40      }
41
42  private:
43      ViewportItem *viewport;
44  };