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
20class QMimeData;
21class QMouseEvent;
22
23namespace 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);
62 QList< QList <QPointF> > sourceVertices() const;
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);
70 void setSource(QList<CubeViewport *> cvps,
71 QList< QList<QPoint> > screenPoints, QList<int> band);
72
73 signals:
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
103
109
111 QList<QList <QPointF> > m_pointList;
112
115 };
116};
117
119Q_DECLARE_METATYPE(Isis::CubePlotCurve *);
120
121#endif
This is a plot curve with information relating it to a particular cube or region of a cube.
void needsRepaint()
This is emitted when the curve is modified in such a way that it would paint a viewport differently.
CubePlotCurve(Units xUnits, Units yUnits)
This constructs a CubePlotCurve... a subclass of PlotCurve.
QList< QList< QPointF > > sourceVertices() const
This method returns a list of points which are the vertices of the selected area (by the rubberband) ...
void copySource(const CubePlotCurve &other)
This copies the source data from another CubePlotCurve.
void enableAutoRenaming(bool)
This enables/disables the plot curve from changing it's title when the source data changes.
void paint(CubeViewport *vp, QPainter *painter)
Use information inside of the plot curve to paint onto a cube viewport.
QString m_originalName
This is the curve's name before any automatic renaming happened.
void mousePressEvent(QMouseEvent *e)
Handle various events on the legend item.
QStringList sourceCube() const
This method returns the cube view port associated with the curve.
bool m_renameAutomatically
This indicates if we are allowed to modify the title of this curve when the source (origin) data chan...
void removing()
This is emitted just before the cube plot curve is deleted.
QStringList m_sourceCube
The cube that the data is coming from.
QByteArray toByteArray() const
Serialize this plot curve into a binary byte array.
QMimeData * createMimeData() const
This converts the plot curve into a binary, clipboard-compatible storage format (QMimeData).
virtual QWidget * legendItem() const
This method is necessary for getting the correct (event filter altered) legend item.
QPointer< QWidget > m_legendItem
This is the widget legend item associated with this curve.
void setSource(CubeViewport *cvp, QList< QPoint > screenPoints, int band=-1)
Tell this plot curve from where its data originated.
void updateLegendItemWidget(QWidget *legendItem)
This creates a legend item and overrides events from it.
bool eventFilter(QObject *o, QEvent *e)
This will start the drag & drop operation for these curves.
QList< QList< QPointF > > m_pointList
List of vertices in sample,line coordinates from the rubber band.
Widget to display Isis cubes for qt apps.
Units yUnits() const
Get the units of the y-axis double data.
Definition PlotCurve.cpp:85
Units xUnits() const
Get the units of the x-axis double data.
Definition PlotCurve.cpp:75
Units
These are all the possible units for the x or y data in a plot curve.
Definition PlotCurve.h:54
This is free and unencumbered software released into the public domain.
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16