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
00029
00030
00031 QGraphicsView::mouseMoveEvent (event);
00032 }
00033
00034 void ViewPreview::resizeEvent(QResizeEvent *event)
00035 {
00036 if (m_viewAspectRatio == VIEW_ASPECT_RATIO_ONE_TO_ONE) {
00037
00038 fitInView (scene()->sceneRect(),
00039 Qt::KeepAspectRatio);
00040
00041 } else {
00042
00043
00044
00045
00046 bool foundImage = false;
00047 for (int i = 0; i < scene()->items().count (); i++) {
00048 const QGraphicsItem *item = scene()->items().at (i);
00049 const QGraphicsPixmapItem *itemPixmap = dynamic_cast<const QGraphicsPixmapItem*> (item);
00050 if (itemPixmap != 0) {
00051 foundImage = true;
00052 fitInView (itemPixmap->boundingRect());
00053 }
00054 }
00055
00056 if (!foundImage) {
00057
00058 fitInView (scene()->itemsBoundingRect ());
00059 }
00060
00061 QGraphicsView::resizeEvent (event);
00062 }
00063 }
00064
00065 void ViewPreview::wheelEvent (QWheelEvent *event)
00066 {
00067 event->accept ();
00068 }