Isis 3 Programmer Reference
CubePlotCurve.h
1 #ifndef CubePlotCurve_h
2 #define CubePlotCurve_h
3 
10 /* SPDX-License-Identifier: CC0-1.0 */
11 
12 #include <QObject>
13 #include <QPointer>
14 
15 // This is needed for the QVariant macro
16 #include <QMetaType>
17 
18 #include "PlotCurve.h"
19 
20 class QMimeData;
21 class QMouseEvent;
22 
23 namespace Isis {
24  class CubeViewport;
25 
53  class CubePlotCurve : public QObject, public PlotCurve {
54  Q_OBJECT
55 
56  public:
58  CubePlotCurve(const QByteArray &parentAndChildData);
59 
60  bool eventFilter(QObject *o, QEvent *e);
61  void paint(CubeViewport *vp, QPainter *painter);
63  virtual QWidget *legendItem() const;
64  QStringList sourceCube() const;
65 
66  void enableAutoRenaming(bool);
67  void copySource(const CubePlotCurve &other);
68  void setSource(CubeViewport *cvp, QList<QPoint> screenPoints,
69  int band = -1);
71  QList< QList<QPoint> > screenPoints, QList<int> band);
72 
73  signals:
78  void needsRepaint();
83  void removing();
84 
85  public slots:
87 
88  private:
89  QMimeData *createMimeData() const;
90  QByteArray toByteArray() const;
91  void mousePressEvent(QMouseEvent *e);
92 
93  void clearSource();
94  void addSource(CubeViewport *cvp, QList<QPoint> screenPoints,
95  int band = -1);
96 
97  private:
99  QPointer<QWidget> m_legendItem;
100 
102  QString m_originalName;
103 
109 
112 
115  };
116 };
117 
120 
121 #endif
QWidget
Isis::CubePlotCurve::m_pointList
QList< QList< QPointF > > m_pointList
List of vertices in sample,line coordinates from the rubber band.
Definition: CubePlotCurve.h:111
Isis::CubePlotCurve::m_legendItem
QPointer< QWidget > m_legendItem
This is the widget legend item associated with this curve.
Definition: CubePlotCurve.h:99
Isis::CubePlotCurve::updateLegendItemWidget
void updateLegendItemWidget(QWidget *legendItem)
This creates a legend item and overrides events from it.
Definition: CubePlotCurve.cpp:345
QList
This is free and unencumbered software released into the public domain.
Definition: BoxcarCachingAlgorithm.h:13
Isis::CubePlotCurve::copySource
void copySource(const CubePlotCurve &other)
This copies the source data from another CubePlotCurve.
Definition: CubePlotCurve.cpp:258
Isis::CubePlotCurve::removing
void removing()
This is emitted just before the cube plot curve is deleted.
Isis::CubePlotCurve
This is a plot curve with information relating it to a particular cube or region of a cube.
Definition: CubePlotCurve.h:53
Isis::PlotCurve::yUnits
Units yUnits() const
Get the units of the y-axis double data.
Definition: PlotCurve.cpp:86
Isis::CubePlotCurve::toByteArray
QByteArray toByteArray() const
Serialize this plot curve into a binary byte array.
Definition: CubePlotCurve.cpp:378
Isis::CubePlotCurve::legendItem
virtual QWidget * legendItem() const
This method is necessary for getting the correct (event filter altered) legend item.
Definition: CubePlotCurve.cpp:224
Isis::CubePlotCurve::paint
void paint(CubeViewport *vp, QPainter *painter)
Use information inside of the plot curve to paint onto a cube viewport.
Definition: CubePlotCurve.cpp:171
Isis::PlotCurve
Definition: PlotCurve.h:44
Isis::CubePlotCurve::m_renameAutomatically
bool m_renameAutomatically
This indicates if we are allowed to modify the title of this curve when the source (origin) data chan...
Definition: CubePlotCurve.h:108
Isis::CubePlotCurve::CubePlotCurve
CubePlotCurve(Units xUnits, Units yUnits)
This constructs a CubePlotCurve...
Definition: CubePlotCurve.cpp:50
Isis::CubePlotCurve::enableAutoRenaming
void enableAutoRenaming(bool)
This enables/disables the plot curve from changing it's title when the source data changes.
Definition: CubePlotCurve.cpp:247
Isis::PlotCurve::Units
Units
These are all the possible units for the x or y data in a plot curve.
Definition: PlotCurve.h:54
Isis::CubePlotCurve::setSource
void setSource(CubeViewport *cvp, QList< QPoint > screenPoints, int band=-1)
Tell this plot curve from where its data originated.
Definition: CubePlotCurve.cpp:323
QStringList
Isis::CubePlotCurve::needsRepaint
void needsRepaint()
This is emitted when the curve is modified in such a way that it would paint a viewport differently.
Isis::CubePlotCurve::mousePressEvent
void mousePressEvent(QMouseEvent *e)
Handle various events on the legend item.
Definition: CubePlotCurve.cpp:425
PlotCurve.h
Isis::CubePlotCurve::eventFilter
bool eventFilter(QObject *o, QEvent *e)
This will start the drag & drop operation for these curves.
Definition: CubePlotCurve.cpp:139
Isis::CubePlotCurve::sourceCube
QStringList sourceCube() const
This method returns the cube view port associated with the curve.
Definition: CubePlotCurve.cpp:235
Isis::CubePlotCurve::m_originalName
QString m_originalName
This is the curve's name before any automatic renaming happened.
Definition: CubePlotCurve.h:102
Isis::CubeViewport
Widget to display Isis cubes for qt apps.
Definition: CubeViewport.h:122
Isis::CubePlotCurve::sourceVertices
QList< QList< QPointF > > sourceVertices() const
This method returns a list of points which are the vertices of the selected area (by the rubberband) ...
Definition: CubePlotCurve.cpp:213
Isis::PlotCurve::xUnits
Units xUnits() const
Get the units of the x-axis double data.
Definition: PlotCurve.cpp:76
Isis::CubePlotCurve::m_sourceCube
QStringList m_sourceCube
The cube that the data is coming from.
Definition: CubePlotCurve.h:114
QObject
Isis::CubePlotCurve::createMimeData
QMimeData * createMimeData() const
This converts the plot curve into a binary, clipboard-compatible storage format (QMimeData).
Definition: CubePlotCurve.cpp:364
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
Q_DECLARE_METATYPE
Q_DECLARE_METATYPE(Isis::PlotWindow *)
We have plot windows as QVariant data types, so here it's enabled.