141 void showEvent(QShowEvent *event)
override;
163 Ui::TCPStreamDialog *ui;
175 QMultiMap<double, struct segment *> time_stamp_map_;
181 bool ts_origin_conn_;
184 QMap<double, struct segment *> sequence_num_map_;
187 uint32_t seq_offset_;
190 bool seq_origin_zero_;
196 int x_axis_width_ = -1;
199 bool legend_visible_;
205 follow_stream_count_func get_stream_count_;
208 QCPTextElement *title_;
211 QString stream_desc_;
214 QCPGraph *base_graph_;
217 QCPGraph *tput_graph_;
220 QCPGraph *goodput_graph_;
223 QCPGraph *seg_graph_;
226 QCPErrorBars *seg_eb_;
229 QCPGraph *ack_graph_;
232 QCPGraph *sack_graph_;
235 QCPErrorBars *sack_eb_;
238 QCPGraph *sack2_graph_;
241 QCPErrorBars *sack2_eb_;
244 QCPGraph *rwin_graph_;
247 QCPGraph *dup_ack_graph_;
250 QCPGraph *zero_win_graph_;
253 QCPItemTracer *tracer_;
259 uint32_t packet_num_;
262 QTransform y_axis_xfrm_;
268 QRubberBand *rubber_band_;
287 graph_update_timer_(NULL),
288 reset_axes_(false) {}
295 void triggerUpdate(
int timeout,
bool reset_axes =
false);
300 void clearPendingUpdate();
306 void doUpdate(follow_stream_count_func get_count);
312 bool hasPendingUpdate() {
return graph_update_timer_ != NULL; }
315 QTimer *graph_update_timer_;
319 friend class GraphUpdater;
322 GraphUpdater graph_updater_;
331 int num_sack_ranges_;
334 double ma_window_size_;
344 void fillGraph(
bool reset_axes =
true,
bool set_focus =
true);
347 void showWidgetsForGraphType();
353 void zoomAxes(
bool in);
359 void zoomXAxis(
bool in);
365 void zoomYAxis(
bool in);
379 void fitXAxisTicks();
386 void panAxes(
int x_pixels,
int y_pixels);
407 void fillThroughput();
410 void fillRoundTripTime();
413 void fillWindowScale();
416 void applySeriesColors();
419 void applyYAxis2Color();
425 QString streamDescription();
432 bool compareHeaders(
struct segment *seg);
438 void toggleTracerStyle(
bool force_default =
false);
445 QRectF getZoomRanges(QRect zoom_rect);
452 void showContextMenu(
const QPoint &pos);
458 void graphClicked(QMouseEvent *event);
466 void axisClicked(QCPAxis *axis, QCPAxis::SelectablePart part, QMouseEvent *event);
472 void mouseMoved(QMouseEvent *event);
478 void mouseReleased(QMouseEvent *event);
490 void transformYRange(
const QCPRange &y_range1);
496 void on_buttonBox_accepted();
499 void on_graphTypeComboBox_currentIndexChanged(
int index);
502 void on_resetButton_clicked();
505 void on_streamNumberSpinBox_valueChanged(
int new_stream);
508 void on_streamNumberSpinBox_editingFinished();
511 void on_maWindowSizeSpinBox_valueChanged(
double new_ma_size);
514 void on_maWindowSizeSpinBox_editingFinished();
517 void on_selectSACKsCheckBox_stateChanged(
int state);
520 void on_otherDirectionButton_clicked();
523 void on_dragRadioButton_toggled(
bool checked);
526 void on_zoomRadioButton_toggled(
bool checked);
529 void on_bySeqNumberCheckBox_stateChanged(
int state);
532 void on_samplingMethodComboBox_currentIndexChanged(
int index);
535 void on_showSegLengthCheckBox_stateChanged(
int state);
538 void on_showThroughputCheckBox_stateChanged(
int state);
541 void on_showGoodputCheckBox_stateChanged(
int state);
544 void on_showRcvWinCheckBox_stateChanged(
int state);
547 void on_showBytesOutCheckBox_stateChanged(
int state);
550 void on_actionZoomIn_triggered();
553 void on_actionZoomInX_triggered();
556 void on_actionZoomInY_triggered();
559 void on_actionZoomOut_triggered();
562 void on_actionZoomOutX_triggered();
565 void on_actionZoomOutY_triggered();
568 void on_actionReset_triggered();
571 void on_actionMoveRight10_triggered();
574 void on_actionMoveLeft10_triggered();
577 void on_actionMoveUp10_triggered();
580 void on_actionMoveDown10_triggered();
583 void on_actionMoveRight1_triggered();
586 void on_actionMoveLeft1_triggered();
589 void on_actionMoveUp1_triggered();
592 void on_actionMoveDown1_triggered();
595 void on_actionNextStream_triggered();
598 void on_actionPreviousStream_triggered();
601 void on_actionSwitchDirection_triggered();
604 void on_actionGoToPacket_triggered();
607 void on_actionDragZoom_triggered();
610 void on_actionToggleSequenceNumbers_triggered();
613 void on_actionToggleTimeOrigin_triggered();
616 void on_actionRoundTripTime_triggered();
619 void on_actionThroughput_triggered();
622 void on_actionStevens_triggered();
625 void on_actionTcptrace_triggered();
628 void on_actionWindowScaling_triggered();
631 void on_buttonBox_helpRequested();