10 #ifndef IO_GRAPH_DIALOG_H
11 #define IO_GRAPH_DIALOG_H
30 #include <QTextStream>
42 class QCPAxisTickerDateTime;
53 const int max_io_items_ = 1 << 25;
60 enum PlotStyles { psLine, psDotLine, psStepLine, psDotStepLine, psImpulse, psBar, psStackedBar, psDot, psSquare, psDiamond, psCross, psPlus, psCircle };
62 explicit IOGraph(QCustomPlot *parent);
64 QString configError()
const {
return config_err_; }
65 QString name()
const {
return name_; }
66 void setName(
const QString &name);
67 QString filter()
const {
return filter_; }
68 bool setFilter(
const QString &filter);
69 void applyCurrentColor();
70 bool visible()
const {
return visible_; }
71 void setVisible(
bool visible);
72 bool needRetap()
const {
return need_retap_; }
73 void setNeedRetap(
bool retap);
75 void setColor(
const QRgb color);
76 void setPlotStyle(
int style);
77 QString valueUnitLabel()
const;
79 void setValueUnits(
int val_units);
80 QString valueUnitField()
const {
return vu_field_; }
81 void setValueUnitField(
const QString &vu_field);
82 unsigned int movingAveragePeriod()
const {
return moving_avg_period_; }
83 void setInterval(
int interval);
85 bool removeFromLegend();
86 QCPGraph *graph()
const {
return graph_; }
87 QCPBars *bars()
const {
return bars_; }
88 double startOffset()
const;
90 int packetFromTime(
double ts)
const;
91 bool hasItemToShow(
int idx,
double value)
const;
92 double getItemValue(
int idx,
const capture_file *cap_file)
const;
93 int maxInterval ()
const {
return cur_idx_; }
97 unsigned int moving_avg_period_;
98 unsigned int y_axis_factor_;
103 void reloadValueUnitField();
106 void requestReplot();
107 void requestRecalc();
112 static void tapReset(
void *iog_ptr);
114 static void tapDraw(
void *iog_ptr);
116 void removeTapListener();
118 bool showsZero()
const;
120 template<
class DataMap>
double maxValueFromGraphData(
const DataMap &map);
121 template<
class DataMap>
void scaleGraphData(DataMap &map,
int scalar);
123 QCustomPlot *parent_;
126 bool tap_registered_;
132 QString full_filter_;
134 io_graph_item_unit_t val_units_;
142 std::vector<io_graph_item_t> items_;
158 enum UatColumns { colEnabled = 0, colName, colDFilter, colColor, colStyle, colYAxis, colYField, colSMAPeriod, colYAxisFactor, colMaxNum};
160 void addGraph(
bool checked, QString name, QString dfilter, QRgb color_idx, IOGraph::PlotStyles style,
161 io_graph_item_unit_t value_units, QString yfield,
int moving_average,
int yaxisfactor);
162 void addGraph(
bool copy_from_current =
false);
163 void addDefaultGraph(
bool enabled,
int idx = 0);
164 void syncGraphSettings(
int row);
167 void scheduleReplot(
bool now =
false);
168 void scheduleRecalc(
bool now =
false);
169 void scheduleRetap(
bool now =
false);
170 void modelRowsReset();
174 void keyPressEvent(QKeyEvent *event);
178 void goToPacket(
int packet_num);
180 void intervalChanged(
int interval);
181 void reloadValueUnitFields();
184 Ui::IOGraphDialog *ui;
192 QVector<IOGraph*> ioGraphs_;
195 QCPGraph *base_graph_;
196 QCPItemTracer *tracer_;
197 uint32_t packet_num_;
200 QRubberBand *rubber_band_;
210 QSharedPointer<QCPAxisTicker> number_ticker_;
211 QSharedPointer<QCPAxisTickerDateTime> datetime_ticker_;
215 void zoomAxes(
bool in);
216 void zoomXAxis(
bool in);
217 void zoomYAxis(
bool in);
218 void panAxes(
int x_pixels,
int y_pixels);
219 void toggleTracerStyle(
bool force_default =
false);
222 QRectF getZoomRanges(QRect zoom_rect);
223 void createIOGraph(
int currentRow);
224 void loadProfileGraphs();
225 void makeCsv(QTextStream &
stream)
const;
226 bool saveCsv(
const QString &file_name)
const;
227 IOGraph *currentActiveGraph()
const;
228 bool graphIsEnabled(
int row)
const;
231 void copyFromProfile(QString filename);
232 void updateWidgets();
233 void graphClicked(QMouseEvent *event);
234 void mouseMoved(QMouseEvent *event);
235 void mouseReleased(QMouseEvent *event);
238 void updateStatistics(
void);
239 void copyAsCsvClicked();
241 void on_intervalComboBox_currentIndexChanged(
int index);
242 void on_todCheckBox_toggled(
bool checked);
243 void modelDataChanged(
const QModelIndex &index);
244 void on_graphUat_currentItemChanged(
const QModelIndex ¤t,
const QModelIndex &previous);
246 void on_resetButton_clicked();
247 void on_logCheckBox_toggled(
bool checked);
248 void on_automaticUpdateCheckBox_toggled(
bool checked);
249 void on_enableLegendCheckBox_toggled(
bool checked);
250 void on_newToolButton_clicked();
251 void on_deleteToolButton_clicked();
252 void on_copyToolButton_clicked();
253 void on_clearToolButton_clicked();
254 void on_moveUpwardsToolButton_clicked();
255 void on_moveDownwardsToolButton_clicked();
256 void on_dragRadioButton_toggled(
bool checked);
257 void on_zoomRadioButton_toggled(
bool checked);
258 void on_actionReset_triggered();
259 void on_actionZoomIn_triggered();
260 void on_actionZoomInX_triggered();
261 void on_actionZoomInY_triggered();
262 void on_actionZoomOut_triggered();
263 void on_actionZoomOutX_triggered();
264 void on_actionZoomOutY_triggered();
265 void on_actionMoveUp10_triggered();
266 void on_actionMoveLeft10_triggered();
267 void on_actionMoveRight10_triggered();
268 void on_actionMoveDown10_triggered();
269 void on_actionMoveUp1_triggered();
270 void on_actionMoveLeft1_triggered();
271 void on_actionMoveRight1_triggered();
272 void on_actionMoveDown1_triggered();
273 void on_actionGoToPacket_triggered();
274 void on_actionDragZoom_triggered();
275 void on_actionToggleTimeOrigin_triggered();
276 void on_actionCrosshairs_triggered();
277 void on_buttonBox_helpRequested();
278 void on_buttonBox_accepted();
Definition: capture_event.h:21
Definition: capture_file.h:21
Definition: io_graph_dialog.h:151
Definition: io_graph_dialog.h:56
Definition: uat_delegate.h:24
Definition: uat_model.h:25
Definition: wireshark_dialog.h:35
format_size_units_e
Definition: str_util.h:231
Definition: packet_info.h:44
Definition: epan_dissect.h:28
tap_packet_status
Definition: tap.h:25