10 #ifndef IO_GRAPH_DIALOG_H
11 #define IO_GRAPH_DIALOG_H
30 #include <QTextStream>
40 class QCPAxisTickerDateTime;
43 const int max_io_items_ = 250000;
50 enum PlotStyles { psLine, psDotLine, psStepLine, psDotStepLine, psImpulse, psBar, psStackedBar, psDot, psSquare, psDiamond, psCross, psPlus, psCircle };
52 explicit IOGraph(QCustomPlot *parent);
54 const QString configError() {
return config_err_; }
55 const QString name() {
return name_; }
56 void setName(
const QString &name);
57 const QString filter() {
return filter_; }
58 void setFilter(
const QString &filter);
59 void applyCurrentColor();
60 bool visible() {
return visible_; }
61 void setVisible(
bool visible);
63 void setColor(
const QRgb color);
64 void setPlotStyle(
int style);
65 const QString valueUnitLabel();
66 void setValueUnits(
int val_units);
67 const QString valueUnitField() {
return vu_field_; }
68 void setValueUnitField(
const QString &vu_field);
69 unsigned int movingAveragePeriod() {
return moving_avg_period_; }
70 void setInterval(
int interval);
72 bool removeFromLegend();
73 QCPGraph *graph() {
return graph_; }
74 QCPBars *bars() {
return bars_; }
76 int packetFromTime(
double ts);
77 bool hasItemToShow(
int idx,
double value)
const;
78 double getItemValue(
int idx,
const capture_file *cap_file)
const;
79 int maxInterval ()
const {
return cur_idx_; }
80 QString scaledValueUnit()
const {
return scaled_value_unit_; }
84 unsigned int moving_avg_period_;
85 unsigned int y_axis_factor_;
88 void recalcGraphData(
capture_file *cap_file,
bool enable_scaling);
90 void reloadValueUnitField();
99 static void tapReset(
void *iog_ptr);
101 static void tapDraw(
void *iog_ptr);
103 void calculateScaledValueUnit();
104 template<
class DataMap>
double maxValueFromGraphData(
const DataMap &map);
105 template<
class DataMap>
void scaleGraphData(DataMap &map,
int scalar);
107 QCustomPlot *parent_;
115 io_graph_item_unit_t val_units_;
120 QString scaled_value_unit_;
140 enum UatColumns { colEnabled = 0, colName, colDFilter, colColor, colStyle, colYAxis, colYField, colSMAPeriod, colYAxisFactor, colMaxNum};
142 void addGraph(
bool checked, QString name, QString dfilter, QRgb color_idx, IOGraph::PlotStyles style,
143 io_graph_item_unit_t value_units, QString yfield,
int moving_average,
int yaxisfactor);
144 void addGraph(
bool copy_from_current =
false);
145 void addDefaultGraph(
bool enabled,
int idx = 0);
146 void syncGraphSettings(
int row);
149 void scheduleReplot(
bool now =
false);
150 void scheduleRecalc(
bool now =
false);
151 void scheduleRetap(
bool now =
false);
152 void modelRowsReset();
156 void keyPressEvent(QKeyEvent *event);
160 void goToPacket(
int packet_num);
161 void recalcGraphData(
capture_file *cap_file,
bool enable_scaling);
162 void intervalChanged(
int interval);
163 void reloadValueUnitFields();
166 Ui::IOGraphDialog *ui;
174 QVector<IOGraph*> ioGraphs_;
177 QCPGraph *base_graph_;
178 QCPItemTracer *tracer_;
182 QRubberBand *rubber_band_;
191 QSharedPointer<QCPAxisTicker> number_ticker_;
192 QSharedPointer<QCPAxisTickerDateTime> datetime_ticker_;
196 void zoomAxes(
bool in);
197 void zoomXAxis(
bool in);
198 void zoomYAxis(
bool in);
199 void panAxes(
int x_pixels,
int y_pixels);
200 void toggleTracerStyle(
bool force_default =
false);
203 QRectF getZoomRanges(QRect zoom_rect);
204 void createIOGraph(
int currentRow);
205 void loadProfileGraphs();
206 void makeCsv(QTextStream &
stream)
const;
207 bool saveCsv(
const QString &file_name)
const;
208 IOGraph *currentActiveGraph()
const;
209 bool graphIsEnabled(
int row)
const;
212 void copyFromProfile(QString filename);
213 void updateWidgets();
214 void graphClicked(QMouseEvent *event);
215 void mouseMoved(QMouseEvent *event);
216 void mouseReleased(QMouseEvent *event);
219 void updateStatistics(
void);
220 void copyAsCsvClicked();
222 void on_intervalComboBox_currentIndexChanged(
int index);
223 void on_todCheckBox_toggled(
bool checked);
224 void modelDataChanged(
const QModelIndex &index);
225 void on_graphUat_currentItemChanged(
const QModelIndex ¤t,
const QModelIndex &previous);
227 void on_resetButton_clicked();
228 void on_logCheckBox_toggled(
bool checked);
229 void on_automaticUpdateCheckBox_toggled(
bool checked);
230 void on_enableLegendCheckBox_toggled(
bool checked);
231 void on_newToolButton_clicked();
232 void on_deleteToolButton_clicked();
233 void on_copyToolButton_clicked();
234 void on_clearToolButton_clicked();
235 void on_moveUpwardsToolButton_clicked();
236 void on_moveDownwardsToolButton_clicked();
237 void on_dragRadioButton_toggled(
bool checked);
238 void on_zoomRadioButton_toggled(
bool checked);
239 void on_actionReset_triggered();
240 void on_actionZoomIn_triggered();
241 void on_actionZoomInX_triggered();
242 void on_actionZoomInY_triggered();
243 void on_actionZoomOut_triggered();
244 void on_actionZoomOutX_triggered();
245 void on_actionZoomOutY_triggered();
246 void on_actionMoveUp10_triggered();
247 void on_actionMoveLeft10_triggered();
248 void on_actionMoveRight10_triggered();
249 void on_actionMoveDown10_triggered();
250 void on_actionMoveUp1_triggered();
251 void on_actionMoveLeft1_triggered();
252 void on_actionMoveRight1_triggered();
253 void on_actionMoveDown1_triggered();
254 void on_actionGoToPacket_triggered();
255 void on_actionDragZoom_triggered();
256 void on_actionToggleTimeOrigin_triggered();
257 void on_actionCrosshairs_triggered();
258 void on_buttonBox_helpRequested();
259 void on_buttonBox_accepted();
Definition: capture_event.h:20
Definition: capture_file.h:23
Definition: io_graph_dialog.h:133
Definition: io_graph_dialog.h:46
Definition: uat_delegate.h:25
Definition: uat_model.h:26
Definition: wireshark_dialog.h:35
Definition: io_graph_item.h:40
Definition: packet_info.h:44
Definition: epan_dissect.h:28
tap_packet_status
Definition: tap.h:25