Isis 3.0
Back | Home
MatrixSceneWidget.h
Go to the documentation of this file.
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
132  Directory *m_directory;
133 
134  QGraphicsScene *m_graphicsScene;
135  MatrixGraphicsView *m_graphicsView;
136 
137  QGraphicsRectItem *m_outlineRect;
138 
139  QAction *m_quickMapAction;
140 
141  ProgressBar *m_progress;
142 
143  MatrixOptions *m_matrixOptions;
144  };
145 }
146 
147 #endif
148 
Directory * directory() const
Accessor for the directory.
Definition: MatrixSceneWidget.cpp:277
void redrawItems()
Redraws all the items in the view.
Definition: MatrixSceneWidget.cpp:395
void drawElements(CorrelationMatrix corrMatrix)
Refit scene and items when the widget size changes.
Definition: MatrixSceneWidget.cpp:415
void mouseLeave()
Emitted when mouse leaves widget focus.
Definition: moc_MatrixSceneWidget.cpp:279
This is a container for the correlation matrix that comes from a bundle adjust.
Definition: CorrelationMatrix.h:72
QRectF elementsBoundingRect() const
Returns the bounding rectangle for the images.
Definition: MatrixSceneWidget.cpp:262
This class holds the matrix color and focus information.
Definition: MatrixOptions.h:28
QGraphicsScene * getScene() const
Accessor for the QGraphicsScene.
Definition: MatrixSceneWidget.cpp:174
MatrixSceneWidget(QStatusBar *status, bool showTools, bool internalizeToolBarsAndProgress, Directory *directory, QWidget *parent=0)
Constructor, creates a matrix scene widget.
Definition: MatrixSceneWidget.cpp:54
PvlObject toPvl() const
void mouseMove(QPointF)
Emitted when mouse moves in widget.
Definition: moc_MatrixSceneWidget.cpp:272
virtual ~MatrixSceneWidget()
Default Destructor.
Definition: MatrixSceneWidget.cpp:154
This widget encompasses the entire matrixDisplay scene.
Definition: MatrixSceneWidget.h:51
QList< QAction * > supportedActions(DataType)
Return an empty list of actions for unknown data types.
Definition: MatrixSceneWidget.h:93
virtual bool eventFilter(QObject *obj, QEvent *ev)
Pick the relevant actions given the type of event that occured in the scene.
Definition: MatrixSceneWidget.cpp:360
void queueSelectionChanged()
Emitted when selection is changed.
Definition: moc_MatrixSceneWidget.cpp:333
void visibleRectChanged(QRectF)
Emitted when the visible rectangle is changed.
Definition: moc_MatrixSceneWidget.cpp:320
void drawGrid(CorrelationMatrix corrMatrix)
Draw the lines that will show the columns and blocks for each image.
Definition: MatrixSceneWidget.cpp:550
void rubberBandComplete(QRectF r, Qt::MouseButton s)
Definition: moc_MatrixSceneWidget.cpp:313
void mouseButtonRelease(QPointF, Qt::MouseButton s)
Emitted when mouse button released.
Definition: moc_MatrixSceneWidget.cpp:299
QList< QAction * > getViewActions()
Accessor for the view actions.
Definition: MatrixSceneWidget.cpp:287
void redrawElements()
Redraw matrix when the focus is changed.
Definition: MatrixSceneWidget.cpp:618
bool contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
This is called by MatrixGraphicsScene::contextMenuEvent.
Definition: MatrixSceneWidget.cpp:186
A graphics view that resizes in a more friendly way.
Definition: MatrixGraphicsView.h:15
void elementClicked(QString)
Emitted when an element of the widget is clicked.
Definition: moc_MatrixSceneWidget.cpp:339
void elementsChanged()
Emitted when an element of the widget is changed.
Definition: moc_MatrixSceneWidget.cpp:327
void setUpOptions(CorrelationMatrix corrMat)
Change item colors when options are changed.
Definition: MatrixSceneWidget.cpp:651
void mouseButtonPress(QPointF, Qt::MouseButton s)
Emitted when mouse is pressed.
Definition: moc_MatrixSceneWidget.cpp:292
void mouseWheel(QPointF, int delta)
Emitted when mouse wheel is activated Emitted when rubber band selection is compl...
Definition: moc_MatrixSceneWidget.cpp:306
void mouseEnter()
Emitted when mouse enters widget focus.
Definition: moc_MatrixSceneWidget.cpp:266
Definition: BoxcarCachingAlgorithm.h:29
void mouseDoubleClick(QPointF)
Emitted when handling a mouse double-click.
Definition: moc_MatrixSceneWidget.cpp:285
void fromPvl(const PvlObject &)
QProgressBar with customizable text.
Definition: ProgressBar.h:15
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.
Definition: MatrixSceneWidget.cpp:305
QProgressBar * getProgress()
Accessor for the widget&#39;s progress bar.
Definition: MatrixSceneWidget.cpp:246
Definition: Directory.h:106
MatrixGraphicsView * getView() const
Accessor for the QGraphicsView.
Definition: MatrixSceneWidget.cpp:164

U.S. Department of the Interior | U.S. Geological Survey
ISIS | Privacy & Disclaimers | Astrogeology Research Program
To contact us, please post comments and questions on the ISIS Support Center
File Modified: 07/12/2023 23:22:52