QtiPlot 0.9.8.2
|
#include <RangeSelectorTool.h>
Public Slots | |
virtual void | pointSelected (const QPoint &point) |
void | setCurveRange () |
void | setEnabled (bool on=true) |
Signals | |
void | changed () |
Emitted whenever the selected curve and/or range have changed. | |
void | statusText (const QString &) |
Public Member Functions | |
void | clearSelection () |
void | copySelection () |
void | cutSelection () |
int | dataSize () const |
virtual bool | eventFilter (QObject *obj, QEvent *event) |
bool | isVisible () |
bool | keyEventFilter (QKeyEvent *ke) |
double | maxXValue () const |
double | maxYValue () const |
double | minXValue () const |
double | minYValue () const |
void | pasteSelection () |
RangeSelectorTool (Graph *graph, const QObject *status_target=NULL, const char *status_slot="") | |
virtual int | rtti () const |
QwtPlotCurve * | selectedCurve () const |
void | setSelectedCurve (QwtPlotCurve *curve) |
Caller is responsible for replot. | |
void | setVisible (bool on) |
virtual | ~RangeSelectorTool () |
Protected Member Functions | |
virtual void | append (const QPoint &point) |
void | emitStatusText () |
void | setActivePoint (int index) |
Caller is responsible for replot. | |
void | switchActiveMarker () |
Private Types | |
enum | RangeEditOperation { Copy, Cut, Delete } |
Private Slots | |
void | clearMultipleSelection () |
void | copyMultipleSelection () |
void | cutMultipleSelection () |
Private Member Functions | |
void | clearSelectedCurve () |
Clears data range from the selected curve. | |
void | copySelectedCurve () |
Copies data range from the selected curve to clipboard. | |
bool | mightNeedMultipleSelection () |
void | showSelectionDialog (RangeEditOperation op=Copy) |
Private Attributes | |
QwtPlotMarker | d_active_marker |
int | d_active_point |
bool | d_enabled |
QwtPlotMarker | d_inactive_marker |
int | d_inactive_point |
QwtPlotCurve * | d_selected_curve |
QPointer< QDialog > | d_selection_dialog |
QList< QCheckBox * > | d_selection_lst |
Keeps track of the multiple curves selection. | |
bool | d_visible |
Plot tool for selecting ranges on curves.
As detailed in the documentation of PlotToolInterface, this one is different from most other plot tools in that other tools depend on it. Thus, either RangeSelectorTool should cease to inherit from PlotToolInterface and be renamed to RangeSelector, drawing a clear destinction to the other tools, or the notion of multiple tools being active in parallel and possibly depending on each other should be generalized somehow.
In any case, gathering the code specific to range selection in a seperate class makes Graph/CanvasPicker more manageable; maybe something similar can be done for zooming.
enum RangeSelectorTool::RangeEditOperation [private] |
RangeSelectorTool::RangeSelectorTool | ( | Graph * | graph, |
const QObject * | status_target = NULL , |
||
const char * | status_slot = "" |
||
) |
RangeSelectorTool::~RangeSelectorTool | ( | ) | [virtual] |
References d_active_marker, PlotToolInterface::d_graph, d_inactive_marker, and d_selection_dialog.
virtual void RangeSelectorTool::append | ( | const QPoint & | point | ) | [inline, protected, virtual] |
References pointSelected().
void RangeSelectorTool::changed | ( | ) | [signal] |
Emitted whenever the selected curve and/or range have changed.
Referenced by clearMultipleSelection(), clearSelectedCurve(), pasteSelection(), pointSelected(), setActivePoint(), and setSelectedCurve().
void RangeSelectorTool::clearMultipleSelection | ( | ) | [private, slot] |
References changed(), Table::colIndex(), Graph::curve(), d_active_marker, d_active_point, PlotToolInterface::d_graph, d_inactive_marker, d_inactive_point, d_selected_curve, d_selection_dialog, d_selection_lst, emitStatusText(), Graph::Function, Table::isReadOnlyColumn(), Table::notifyChanges(), Table::setText(), Table::table(), and PlotCurve::type().
Referenced by cutMultipleSelection(), and showSelectionDialog().
void RangeSelectorTool::clearSelectedCurve | ( | ) | [private] |
Clears data range from the selected curve.
References changed(), Table::colIndex(), d_active_marker, d_active_point, PlotToolInterface::d_graph, d_inactive_marker, d_inactive_point, d_selected_curve, emitStatusText(), Graph::Function, Table::isReadOnlyColumn(), Table::notifyChanges(), Table::setText(), and Table::table().
Referenced by clearSelection(), and cutSelection().
void RangeSelectorTool::clearSelection | ( | ) |
References clearSelectedCurve(), d_selected_curve, Delete, mightNeedMultipleSelection(), and showSelectionDialog().
void RangeSelectorTool::copyMultipleSelection | ( | ) | [private, slot] |
References Graph::curve(), d_active_point, PlotToolInterface::d_graph, d_inactive_point, d_selected_curve, d_selection_dialog, d_selection_lst, Graph::ErrorBars, Graph::multiLayer(), and PlotCurve::type().
Referenced by cutMultipleSelection(), and showSelectionDialog().
void RangeSelectorTool::copySelectedCurve | ( | ) | [private] |
Copies data range from the selected curve to clipboard.
References MdiSubWindow::applicationWindow(), d_active_point, ApplicationWindow::d_decimal_digits, PlotToolInterface::d_graph, d_inactive_point, d_selected_curve, and Graph::multiLayer().
Referenced by copySelection(), and cutSelection().
void RangeSelectorTool::copySelection | ( | ) |
References copySelectedCurve(), d_selected_curve, mightNeedMultipleSelection(), and showSelectionDialog().
void RangeSelectorTool::cutMultipleSelection | ( | ) | [private, slot] |
References clearMultipleSelection(), and copyMultipleSelection().
Referenced by showSelectionDialog().
void RangeSelectorTool::cutSelection | ( | ) |
int RangeSelectorTool::dataSize | ( | ) | const [inline] |
References d_active_point, and d_inactive_point.
void RangeSelectorTool::emitStatusText | ( | ) | [protected] |
References MdiSubWindow::applicationWindow(), Table::colIndex(), Table::columnType(), d_active_marker, d_active_point, ApplicationWindow::d_decimal_digits, PlotToolInterface::d_graph, d_inactive_marker, d_inactive_point, d_selected_curve, Graph::ErrorBars, Graph::Function, Graph::Histogram, Graph::multiLayer(), Table::Numeric, statusText(), Table::table(), and Table::text().
Referenced by clearMultipleSelection(), clearSelectedCurve(), pasteSelection(), pointSelected(), setActivePoint(), setSelectedCurve(), and switchActiveMarker().
bool RangeSelectorTool::eventFilter | ( | QObject * | obj, |
QEvent * | event | ||
) | [virtual] |
References keyEventFilter().
bool RangeSelectorTool::isVisible | ( | ) | [inline] |
References d_visible.
bool RangeSelectorTool::keyEventFilter | ( | QKeyEvent * | ke | ) |
References Graph::curve(), Graph::curveCount(), Graph::curveIndex(), d_active_point, PlotToolInterface::d_graph, d_selected_curve, setActivePoint(), setSelectedCurve(), and switchActiveMarker().
Referenced by eventFilter().
double RangeSelectorTool::maxXValue | ( | ) | const [inline] |
References d_active_marker, and d_inactive_marker.
double RangeSelectorTool::maxYValue | ( | ) | const [inline] |
References d_active_marker, and d_inactive_marker.
bool RangeSelectorTool::mightNeedMultipleSelection | ( | ) | [private] |
References Graph::curve(), Graph::curveCount(), PlotToolInterface::d_graph, d_selected_curve, Graph::Function, and PlotCurve::type().
Referenced by clearSelection(), copySelection(), and cutSelection().
double RangeSelectorTool::minXValue | ( | ) | const [inline] |
References d_active_marker, and d_inactive_marker.
double RangeSelectorTool::minYValue | ( | ) | const [inline] |
References d_active_marker, and d_inactive_marker.
void RangeSelectorTool::pasteSelection | ( | ) |
References changed(), Table::colIndex(), Table::columnNumericFormat(), d_active_marker, d_active_point, PlotToolInterface::d_graph, d_inactive_marker, d_inactive_point, d_selected_curve, emitStatusText(), Graph::Function, Table::isReadOnlyColumn(), Graph::multiLayer(), Table::notifyChanges(), Table::setText(), and Table::table().
void RangeSelectorTool::pointSelected | ( | const QPoint & | point | ) | [virtual, slot] |
References changed(), Graph::closestCurve(), d_active_marker, d_active_point, PlotToolInterface::d_graph, d_inactive_marker, d_inactive_point, d_selected_curve, emitStatusText(), and setActivePoint().
Referenced by append().
virtual int RangeSelectorTool::rtti | ( | ) | const [inline, virtual] |
Reimplemented from PlotToolInterface.
References PlotToolInterface::Rtti_RangeSelector.
QwtPlotCurve* RangeSelectorTool::selectedCurve | ( | ) | const [inline] |
References d_selected_curve.
void RangeSelectorTool::setActivePoint | ( | int | index | ) | [protected] |
Caller is responsible for replot.
References changed(), d_active_marker, d_active_point, d_enabled, d_selected_curve, and emitStatusText().
Referenced by keyEventFilter(), and pointSelected().
void RangeSelectorTool::setCurveRange | ( | ) | [slot] |
void RangeSelectorTool::setEnabled | ( | bool | on = true | ) | [slot] |
References d_enabled, and PlotToolInterface::d_graph.
void RangeSelectorTool::setSelectedCurve | ( | QwtPlotCurve * | curve | ) |
Caller is responsible for replot.
References changed(), d_active_marker, d_active_point, d_enabled, d_inactive_marker, d_inactive_point, d_selected_curve, and emitStatusText().
Referenced by keyEventFilter().
void RangeSelectorTool::setVisible | ( | bool | on | ) |
References d_active_marker, d_enabled, PlotToolInterface::d_graph, d_inactive_marker, and d_visible.
void RangeSelectorTool::showSelectionDialog | ( | RangeEditOperation | op = Copy | ) | [private] |
References clearMultipleSelection(), Copy, copyMultipleSelection(), Graph::curve(), Graph::curveCount(), Cut, cutMultipleSelection(), PlotToolInterface::d_graph, d_selected_curve, d_selection_dialog, d_selection_lst, Delete, Graph::Function, and PlotCurve::type().
Referenced by clearSelection(), copySelection(), and cutSelection().
void RangeSelectorTool::statusText | ( | const QString & | ) | [signal] |
Emitted whenever a new message should be presented to the user.
You don't have to connect to this signal if you alreay specified a reciever during initialization.
Referenced by emitStatusText(), and RangeSelectorTool().
void RangeSelectorTool::switchActiveMarker | ( | ) | [protected] |
References d_active_marker, d_active_point, PlotToolInterface::d_graph, d_inactive_marker, d_inactive_point, and emitStatusText().
Referenced by keyEventFilter().
QwtPlotMarker RangeSelectorTool::d_active_marker [private] |
int RangeSelectorTool::d_active_point [private] |
bool RangeSelectorTool::d_enabled [private] |
Referenced by RangeSelectorTool(), setActivePoint(), setEnabled(), setSelectedCurve(), and setVisible().
QwtPlotMarker RangeSelectorTool::d_inactive_marker [private] |
int RangeSelectorTool::d_inactive_point [private] |
QwtPlotCurve* RangeSelectorTool::d_selected_curve [private] |
Referenced by clearMultipleSelection(), clearSelectedCurve(), clearSelection(), copyMultipleSelection(), copySelectedCurve(), copySelection(), cutSelection(), emitStatusText(), keyEventFilter(), mightNeedMultipleSelection(), pasteSelection(), pointSelected(), RangeSelectorTool(), selectedCurve(), setActivePoint(), setCurveRange(), setSelectedCurve(), and showSelectionDialog().
QPointer<QDialog> RangeSelectorTool::d_selection_dialog [private] |
Referenced by clearMultipleSelection(), copyMultipleSelection(), RangeSelectorTool(), showSelectionDialog(), and ~RangeSelectorTool().
QList<QCheckBox *> RangeSelectorTool::d_selection_lst [private] |
Keeps track of the multiple curves selection.
Referenced by clearMultipleSelection(), copyMultipleSelection(), and showSelectionDialog().
bool RangeSelectorTool::d_visible [private] |
Referenced by isVisible(), RangeSelectorTool(), and setVisible().