31 #include "MainWindow.h" 38 class QwtPlotSpectrogram;
43 class QListWidgetItem;
48 template <
typename A,
typename B>
struct QPair;
51 class MdiCubeViewport;
55 class TableMainWindow;
224 void requestFillTable();
252 virtual void dropEvent(QDropEvent *event);
255 using QWidget::mousePressEvent;
269 static bool numericStringLessThan(QString left, QString right);
337 bool m_scheduledFillTable;
Cube display widget for certain Isis MDI applications.
This is all of the available menu options.
This option allows the user to create a best fit line for any of the scatter plot data or cube plot c...
bool m_plotYLogScale
Tracks if the plot Y axis is using a log (true) or linear (false) scale.
This option enables the ability for a user to change the background color of the plot from black to w...
PlotCurve::Units m_yAxisUnits
The units of the data on the y-left axis.
void clearPlot()
This method completely clears the plot of all plot items.
QLineEdit * m_yMaxEdit
Set Scale Dialog's edit for the max Y-axis value.
void showHideAllCurves()
This method shows or hides all of the curves in the plotWindow.
void switchBackground()
This method toggles the plot background color between black and white.
void savePlot()
This method allows the user to save the plot as a png, jpg, or tif image file.
QString plotTitle() const
Returns the plot title.
bool m_plotXLogScale
Tracks if the plot X axis is using a log (true) or linear (false) scale.
MenuOptions
There is a menu option for everything in the plot window's menu.
void createWidgets(MenuOptions optionsToProvide)
This method is called by the constructor to create the plot, legend.
void showHideAllMarkers()
Shows/Hides all the markers(symbols)
QwtPlotZoomer * m_zoomer
Plot Zoomer.
bool userCanAddCurve(const QMimeData *curve)
Ask if a user action can add this curve to this window.
void pasteCurve()
When the user pastes a curve try to put it into this plot window.
This option allows the user to change the curve name, color, style size, and symbol of the curve...
virtual void paint(MdiCubeViewport *vp, QPainter *painter)
Paint plot curve information onto the viewport.
QPointer< QAction > m_action
Plot window's action.
QPointer< QAction > m_showHideAllCurves
Hide all curves action.
This option enables mouse tracking on the plot area (displays next to the mouse which x/y point you a...
bool userCanAddCurves() const
Ask if a user action can add this curve to this window in general.
QLineEdit * m_xMaxEdit
Set Scale Dialog's edit for the max X-axis value.
This option provides the user with an alternative zoom out button.
void createBestFitLine()
This method prompts the user to select the best fit line criterea.
QwtPlotZoomer * zoomer()
Get this window's plot's zoomer.
QLineEdit * m_xAxisText
Set Labels Dialog's edit for the x-axis label.
QwtLegend * m_legend
The legend inserted in this plot.
PlotCurve::Units yAxisUnits() const
This is the data-type of the curves' y data in this plot window.
QCheckBox * m_xLogCheckBox
Set Scale Dialog's checkbox for using logarithmic scale for the x axis.
virtual void dropEvent(QDropEvent *event)
This is called when a user drops data into our window.
void configurePlotCurves()
This method creates a CubePlotCurveConfigureDialog object.
QAction * m_pasteAct
This is the paste action in the edit menu to paste a curve into the plot window.
void showHelp()
This method creates and shows the help dialog box for the plot window.
void setPlotBackground(QColor c)
Sets the plot background color to the given color.
void updateVisibility(PlotCurve *curve)
This method sets the visibility states in the curve (and it's symbols) to match with this window's cu...
void showHideGrid()
This method hides/shows the grid on the plotWindow and changes the text for the action.
void setMenus(QList< QMenu *> menus, QList< QAction *> actions)
Sets up the menus added from a parent object.
QLineEdit * m_yAxisText
Set Labels Dialog's edit for the y-axis label.
QPointer< QAction > m_showHideAllMarkers
Hide all markers action.
QwtPlot * m_plot
The plot in this window.
QPair< double, double > findDataRange(int axisId) const
This calculates the data range of the specified axis (works with xBottom and yLeft only)...
void trackerEnabled()
Enables the plot mouse tracker.
void setUserValues()
This method sets the scale for the axis according to the user specified numbers.
bool m_autoscaleAxes
True if we are autoscaling the x-bottom and y-left axes.
void fillTable()
Fills in the table with the data from the current curves in the plotWindow immediately.
TableMainWindow * m_tableWindow
Table window.
void closed()
Emitted when there is a close event on this window that will be accepted.
This option sends the plot to a printer.
virtual bool eventFilter(QObject *o, QEvent *e)
This method filters the events of the objects it is connected to.
QMenuBar * m_menubar
Plot window's menu bar.
QwtPlotGrid * m_grid
Plot grid lines.
void scheduleFillTable()
Fills in the table with the data from the current curves in the plotWindow once all current actions/a...
QLineEdit * m_yMinEdit
Set Scale Dialog's edit for the min Y-axis value.
bool canAdd(CubePlotCurve *curveToTest) const
This method tests whethere or not a CubePlotCurve can be successfully added to this window...
void plotChanged()
Emitted every time there is a change to the plot window.
This is a plot curve with information relating it to a particular cube or region of a cube...
void setDefaultRange()
Resets the x/y min/max to the defaults.
PlotWindow(QString title, PlotCurve::Units xAxisUnits, PlotCurve::Units yAxisUnits, QWidget *parent, MenuOptions optionsToProvide=AllMenuOptions)
This constructs a plot window.
QToolBar * m_toolBar
Tool bar on the plot window.
PlotCurve::Units xAxisUnits() const
This is the data-type of the curves' x data in this plot window.
This option allows the user to delete all of the data inside the plot.
QLineEdit * m_plotTitleText
Set Labels Dialog's edit for the plot title.
Q_DECLARE_OPAQUE_POINTER(QwtPlotSpectrogram *)
We have scatter plot types as QVariant data types, so here it's enabled.
void setAxisLabel(int axisId, QString title)
Sets the plots given axis title to the given string.
void printPlot()
Provides printing support of the plot image.
void setPlotTitle(QString pt)
Sets the plot title to the given string.
void resetScale()
Sets plot scale back to the defaults.
QWidget * m_parent
Parent widget.
This option is titled 'Hide All Curves' which makes all curves invisible.
a subclass of the qisis mainwindow, tablemainwindow handles all of the table tasks.
QCheckBox * m_yLogCheckBox
Set Scale Dialog's checkbox for using logarithmic scale for the y axis.
This option brings up the table.
Q_DECLARE_METATYPE(Isis::PlotWindow *)
We have plot windows as QVariant data types, so here it's enabled.
void showTable()
This method is called from the showTable action on the tool bar There are some checks done to make su...
virtual void update(MdiCubeViewport *activeViewport)
This is provided to allow children to react to tool updates.
void mousePressEvent(QObject *object, QMouseEvent *e)
This is a helper method for the eventFilter() method.
void disableAxisAutoScale()
This turns off scaling the x/y axes automatically.
void autoScaleCheckboxToggled()
This is a helper method for the set scale configuration dialog.
PlotCurve::Units m_xAxisUnits
The units of the data on the x-bottom axis.
static QString defaultWindowTitle()
This is the typical suffix for plot windows, it's here in case we want to update all plot windows to ...
virtual void dragEnterEvent(QDragEnterEvent *event)
When a user drags data into our plot window, we need to indicate whether or not this data is compatib...
This option is titled 'Hide All Symbols' which hides all markers.
QList< CubePlotCurve * > plotCurves()
Get a comprehensive list of the plot curves inside of this plot window, excluding plot curves that ar...
Namespace for ISIS/Bullet specific routines.
void setUserCanAddCurves(bool)
Allow or disallow users from manually putting curves into this plot window through either copy-and-pa...
QLineEdit * m_xMinEdit
Set Scale Dialog's edit for the min X-axis value.
void showWindow()
Shows the plot window, and raises it to the front of any overlapping sibling widgets.
This option allows the user to set the x/y axis display value ranges.
QList< QwtPlotSpectrogram * > plotSpectrograms()
Get a comprehensive list of the scatter plots (spectrograms) inside of this plot window.
Base class for the Qisis main windows.
void setLabels()
Makes the user specified changes to the plot labels.
This option enables the ability for a user to change the x/y axis labels and plot title...
This option enables the ability for a user to enable a grid over the plot area.
void replot()
Reset the scale of the plot, replot it and emit plot changed.
QCheckBox * m_autoScaleCheckBox
Set Scale Dialog's checkbox for enabling automatic scaling on x & y.
virtual void clearPlotCurves()
This method also clears the plot of all plot items, but does not call the table delete stuff This met...
virtual void add(CubePlotCurve *pc)
This method adds the curves to the plot.
QwtPlot * plot()
Get the plot encapsulated by this PlotWindow.
bool m_allowUserToAddCurves
Is the window showing the curve markers?
This option exports the plot into a standard image format.
Units
These are all the possible units for the x or y data in a plot curve.
QPointer< QAction > m_showHideGrid
Show plot grid lines action.
void changePlotLabels()
This method creates the dialog box which allows the user to relabel the plot window.
void setupDefaultMenu(MenuOptions optionsToProvide)
The user can add menu items from parent classes, but there are some menu items that are common betwee...
QColor plotBackgroundColor() const
Returns the plot's background color.
void onClipboardChanged()
This slot will be called when the system clipboard is changed.