Engauge Digitizer  2
GraphicsView.h
Go to the documentation of this file.
1 /******************************************************************************************************
2  * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released *
3  * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file *
4  * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. *
5  ******************************************************************************************************/
6 
7 #ifndef GRAPHICSVIEW_H
8 #define GRAPHICSVIEW_H
9 
10 #include <QGraphicsView>
11 #include <QImage>
12 #include <QUrl>
13 
14 class MainWindow;
15 class QByteArray;
16 class QGraphicsPixmapItem;
17 class QGraphicsScene;
18 
20 class GraphicsView : public QGraphicsView
21 {
22  Q_OBJECT;
23 
24 public:
26  GraphicsView(QGraphicsScene *scene,
27  MainWindow &mainWindow);
28  virtual ~GraphicsView();
29 
31  virtual void contextMenuEvent (QContextMenuEvent *event);
32 
34  virtual void dragEnterEvent (QDragEnterEvent *event);
35 
37  virtual void dragMoveEvent (QDragMoveEvent *event);
38 
40  virtual void dropEvent (QDropEvent *event);
41 
43  virtual void keyPressEvent (QKeyEvent *event);
44 
46  virtual void mouseMoveEvent (QMouseEvent *event);
47 
49  virtual void mousePressEvent (QMouseEvent *event);
50 
52  virtual void mouseReleaseEvent (QMouseEvent *event);
53 
55  virtual void wheelEvent(QWheelEvent *event);
56 
57 signals:
59  void signalContextMenuEventAxis (QString pointIdentifier);
60 
62  void signalContextMenuEventGraph (QStringList pointIdentifiers);
63 
65  void signalDraggedDigFile (QString);
66 
68  void signalDraggedImage (QImage);
69 
71  void signalDraggedImageUrl (QUrl);
72 
74  void signalKeyPress (Qt::Key, bool atLeastOneSelectedItem);
75 
77  void signalMouseMove (QPointF);
78 
80  void signalMousePress (QPointF);
81 
83  void signalMouseRelease (QPointF);
84 
86  void signalViewZoomIn();
87 
89  void signalViewZoomOut();
90 
91 public slots:
93  void slotDropRegression (QString);
94 
95 private:
96  GraphicsView();
97 
98  bool handleDropEvent (const QString &possibleDigFileName,
99  bool hasUrls,
100  const QUrl &urlFirst,
101  bool hasImage,
102  const QImage &image);
103  QStringList pointIdentifiersFromSelection (const QList<QGraphicsItem*> &items) const;
104  bool inBounds (const QPointF &posScreen);
105 
106 };
107 
108 #endif // GRAPHICSVIEW_H
GraphicsView::mouseReleaseEvent
virtual void mouseReleaseEvent(QMouseEvent *event)
Intercept mouse release events to move one or more Points.
Definition: GraphicsView.cpp:262
GraphicsView::mouseMoveEvent
virtual void mouseMoveEvent(QMouseEvent *event)
Intercept mouse move events to populate the current cursor position in StatusBar.
Definition: GraphicsView.cpp:227
GraphicsView::mousePressEvent
virtual void mousePressEvent(QMouseEvent *event)
Intercept mouse press events to create one or more Points.
Definition: GraphicsView.cpp:245
GraphicsView::signalMousePress
void signalMousePress(QPointF)
Send mouse press to MainWindow for creating one or more Points.
GraphicsView::signalKeyPress
void signalKeyPress(Qt::Key, bool atLeastOneSelectedItem)
Send keypress to MainWindow for eventual processing by DigitizeStateAbstractBase subclasses.
GraphicsView::signalContextMenuEventGraph
void signalContextMenuEventGraph(QStringList pointIdentifiers)
Send right click on graph point(s) to MainWindow for editing.
GraphicsView::signalDraggedDigFile
void signalDraggedDigFile(QString)
Send dragged dig file to MainWindow for import. This comes from dragging an engauge dig file.
GraphicsView::slotDropRegression
void slotDropRegression(QString)
Receive drag and drop regression test url.
Definition: GraphicsView.cpp:309
GraphicsView::signalContextMenuEventAxis
void signalContextMenuEventAxis(QString pointIdentifier)
Send right click on axis point to MainWindow for editing.
GraphicsView::signalViewZoomIn
void signalViewZoomIn()
Send wheel event to MainWindow for zooming in.
GraphicsView::signalViewZoomOut
void signalViewZoomOut()
Send wheel event to MainWindow for zooming out.
GraphicsView::keyPressEvent
virtual void keyPressEvent(QKeyEvent *event)
Intercept key press events to handle left/right/up/down moving.
Definition: GraphicsView.cpp:203
GraphicsView::signalDraggedImageUrl
void signalDraggedImageUrl(QUrl)
Send dragged url to MainWindow for import. This typically comes from dragging an image from a browser...
GraphicsView
QGraphicsView class with event handling added. Typically the events are sent to the active digitizing...
Definition: GraphicsView.h:19
GraphicsView::signalMouseMove
void signalMouseMove(QPointF)
Send mouse move to MainWindow for eventual display of cursor coordinates in StatusBar.
MainWindow
Main window consisting of menu, graphics scene, status bar and optional toolbars as a Single Document...
Definition: MainWindow.h:90
GraphicsView::signalMouseRelease
void signalMouseRelease(QPointF)
Send mouse release to MainWindow for moving Points.
GraphicsView::wheelEvent
virtual void wheelEvent(QWheelEvent *event)
Convert wheel events into zoom in/out.
Definition: GraphicsView.cpp:328
GraphicsView::~GraphicsView
virtual ~GraphicsView()
Definition: GraphicsView.cpp:69
GraphicsView::signalDraggedImage
void signalDraggedImage(QImage)
Send dragged image to MainWindow for import. This typically comes from dragging a file.
GraphicsView::dragMoveEvent
virtual void dragMoveEvent(QDragMoveEvent *event)
Intercept mouse move event to support drag-and-drop.
Definition: GraphicsView.cpp:112
GraphicsView::dropEvent
virtual void dropEvent(QDropEvent *event)
Intercept mouse drop event to support drag-and-drop. This initiates asynchronous loading of the dragg...
Definition: GraphicsView.cpp:122
GraphicsView::contextMenuEvent
virtual void contextMenuEvent(QContextMenuEvent *event)
Intercept context event to support point editing.
Definition: GraphicsView.cpp:73
GraphicsView::dragEnterEvent
virtual void dragEnterEvent(QDragEnterEvent *event)
Intercept mouse drag event to support drag-and-drop.
Definition: GraphicsView.cpp:102