Isis 3 Programmer Reference
MatrixSceneWidget.h
1 #ifndef MatrixSceneWidget_H
2 #define MatrixSceneWidget_H
3 
4 #include <QWidget>
5 
6 #include "XmlStackedHandler.h"
7 
8 template <typename A> class QList;
9 class QGraphicsPolygonItem;
10 class QGraphicsRectItem;
11 class QGraphicsScene;
12 class QGraphicsSceneContextMenuEvent;
13 class QMenu;
14 class QProgressBar;
15 class QRubberBand;
16 class QStatusBar;
17 class QToolBar;
18 class QToolButton;
19 
20 namespace Isis {
21  class CorrelationMatrix;
22  class Directory;
23  class DisplayProperties;
24  class FileName;
25  class MatrixDisplayTool;
26  class MatrixGraphicsView;
27  class MatrixOptions;
28  class ProgressBar;
29  class Project;
30  class PvlGroup;
31  class PvlObject;
32  class ToolPad;
33 
51  class MatrixSceneWidget : public QWidget {
52  Q_OBJECT
53 
54  public:
55  MatrixSceneWidget(QStatusBar *status,
56  bool showTools,
57  bool internalizeToolBarsAndProgress,
59  QWidget *parent = 0);
60  virtual ~MatrixSceneWidget();
61 
62  MatrixGraphicsView *getView() const;
63  QGraphicsScene *getScene() const;
64 
65  bool contextMenuEvent(QGraphicsSceneContextMenuEvent *event);
66 
67  void drawGrid(CorrelationMatrix corrMatrix);
68  void drawElements(CorrelationMatrix corrMatrix);
69 
71  PvlObject toPvl() const;
72  void fromPvl(const PvlObject &);
73 // void load(XmlStackedHandlerReader *xmlReader);
74 
75  QRectF elementsBoundingRect() const;
76  Directory *directory() const;
79  void redrawItems();
80 // void refit();
81 
82 // void repaintItems(bool colorScheme);
83  void setUpOptions(CorrelationMatrix corrMat);
84 
92  template <typename DataType>
94  return QList<QAction *>();
95  }
96 
97  signals:
98 // add roll over?
99  // Not all these signals are used, descriptions show possible intended use
100  void mouseEnter();
101  void mouseMove(QPointF);
102  void mouseLeave();
103  void mouseDoubleClick(QPointF);
104  void mouseButtonPress(QPointF, Qt::MouseButton s);
105  void mouseButtonRelease(QPointF, Qt::MouseButton s);
106  void mouseWheel(QPointF, int delta);
107  void rubberBandComplete(QRectF r, Qt::MouseButton s);
109  void visibleRectChanged(QRectF);
110  void elementsChanged();
111  void queueSelectionChanged();
112 
113  void elementClicked(QString);
114 
115  public slots:
116  void redrawElements();
117 
118  protected:
119  virtual bool eventFilter(QObject *obj, QEvent *ev);
120 
121  private slots:
122 
123 // void fitInView();
124 
125  void sendVisibleRectChanged();
126 
127  private:
128  // methods
129  QList<double> getSelectedElements() const;
130 
131  // member variables
133 
136 
138 
140 
142 
144  };
145 }
146 
147 #endif
148 
void redrawItems()
Redraws all the items in the view.
MatrixGraphicsView * m_graphicsView
The graphics view that displays the scene.
void drawElements(CorrelationMatrix corrMatrix)
Refit scene and items when the widget size changes.
void mouseLeave()
Emitted when mouse leaves widget focus.
QRectF elementsBoundingRect() const
Returns the bounding rectangle for the images.
This is a container for the correlation matrix that comes from a bundle adjust.
QGraphicsRectItem * m_outlineRect
Rectangle outlining the area where the images go.
This class holds the matrix color and focus information.
Definition: MatrixOptions.h:28
MatrixSceneWidget(QStatusBar *status, bool showTools, bool internalizeToolBarsAndProgress, Directory *directory, QWidget *parent=0)
Constructor, creates a matrix scene widget.
void mouseMove(QPointF)
Emitted when mouse moves in widget.
ProgressBar * m_progress
Progress bar.
virtual ~MatrixSceneWidget()
Default Destructor.
This widget encompasses the entire matrixDisplay scene.
QList< QAction * > supportedActions(DataType)
Return an empty list of actions for unknown data types.
virtual bool eventFilter(QObject *obj, QEvent *ev)
Pick the relevant actions given the type of event that occured in the scene.
void queueSelectionChanged()
Emitted when selection is changed.
void visibleRectChanged(QRectF)
Emitted when the visible rectangle is changed.
void drawGrid(CorrelationMatrix corrMatrix)
Draw the lines that will show the columns and blocks for each image.
void mouseButtonRelease(QPointF, Qt::MouseButton s)
Emitted when mouse button released.
QList< QAction * > getViewActions()
Accessor for the view actions.
void redrawElements()
Redraw matrix when the focus is changed.
bool contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
This is called by MatrixGraphicsScene::contextMenuEvent.
A graphics view that resizes in a more friendly way.
MatrixGraphicsView * getView() const
Accessor for the QGraphicsView.
void elementClicked(QString)
Emitted when an element of the widget is clicked.
QAction * m_quickMapAction
??? (always NULL)
void elementsChanged()
Emitted when an element of the widget is changed.
MatrixOptions * m_matrixOptions
Options for the correlation matrix.
void setUpOptions(CorrelationMatrix corrMat)
Change item colors when options are changed.
void mouseButtonPress(QPointF, Qt::MouseButton s)
Emitted when mouse is pressed.
void mouseWheel(QPointF, int delta)
Emitted when mouse wheel is activated Emitted when rubber band selection is complete.
void mouseEnter()
Emitted when mouse enters widget focus.
void sendVisibleRectChanged()
This method refits the items in the graphics view.
QGraphicsScene * m_graphicsScene
The graphics scene holds the scene items.
Directory * directory() const
Accessor for the directory.
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
Directory * m_directory
The directory of the project.
void mouseDoubleClick(QPointF)
Emitted when handling a mouse double-click.
QGraphicsScene * getScene() const
Accessor for the QGraphicsScene.
Contains Pvl Groups and Pvl Objects.
Definition: PvlObject.h:74
QList< QAction * > supportedActions(CorrelationMatrix *matrix)
Get a list of applicable actions for the elements in this scene.
QProgressBar * getProgress()
Accessor for the widget&#39;s progress bar.