00001
00002
00003
00004
00005
00006
00007 #include <QGraphicsPixmapItem>
00008 #include <QGraphicsScene>
00009 #include <QMouseEvent>
00010 #include "ViewPreview.h"
00011
00012 ViewPreview::ViewPreview(QGraphicsScene *scene,
00013 ViewAspectRatio viewAspectRatio,
00014 QWidget *parent) :
00015 QGraphicsView (scene, parent),
00016 m_viewAspectRatio (viewAspectRatio)
00017 {
00018 setMouseTracking(true);
00019 }
00020
00021 void ViewPreview::mouseMoveEvent(QMouseEvent *event)
00022 {
00023 QPointF pos = mapToScene (event->pos ());
00024
00025 emit signalMouseMove (pos);
00026 }
00027
00028 void ViewPreview::resizeEvent(QResizeEvent *event)
00029 {
00030 if (m_viewAspectRatio == VIEW_ASPECT_RATIO_ONE_TO_ONE) {
00031
00032 fitInView (scene()->sceneRect(),
00033 Qt::KeepAspectRatio);
00034
00035 } else {
00036
00037
00038
00039
00040 bool foundImage = false;
00041 for (int i = 0; i < scene()->items().count (); i++) {
00042 const QGraphicsItem *item = scene()->items().at (i);
00043 const QGraphicsPixmapItem *itemPixmap = dynamic_cast<const QGraphicsPixmapItem*> (item);
00044 if (itemPixmap != 0) {
00045 foundImage = true;
00046 fitInView (itemPixmap->boundingRect());
00047 }
00048 }
00049
00050 if (!foundImage) {
00051
00052 fitInView (scene()->itemsBoundingRect ());
00053 }
00054
00055 QGraphicsView::resizeEvent (event);
00056 }
00057 }
00058
00059 void ViewPreview::wheelEvent (QWheelEvent *event)
00060 {
00061 event->accept ();
00062 }