From e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 10 Apr 2024 22:34:10 +0200 Subject: Adding upstream version 4.2.2. Signed-off-by: Daniel Baumann --- ui/qt/sequence_dialog.h | 137 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 ui/qt/sequence_dialog.h (limited to 'ui/qt/sequence_dialog.h') diff --git a/ui/qt/sequence_dialog.h b/ui/qt/sequence_dialog.h new file mode 100644 index 00000000..8c321907 --- /dev/null +++ b/ui/qt/sequence_dialog.h @@ -0,0 +1,137 @@ +/** @file + * + * Wireshark - Network traffic analyzer + * By Gerald Combs + * Copyright 1998 Gerald Combs + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef SEQUENCE_DIALOG_H +#define SEQUENCE_DIALOG_H + +#include + +#include + +#include "cfile.h" + +#include "epan/packet.h" +#include "epan/sequence_analysis.h" + +#include +#include "wireshark_dialog.h" +#include "rtp_stream_dialog.h" + +#include + +namespace Ui { +class SequenceDialog; +} + +class SequenceDiagram; + +class SequenceInfo +{ +public: + SequenceInfo(seq_analysis_info_t *sainfo = NULL); + seq_analysis_info_t * sainfo() { return sainfo_;} + void ref() { count_++; } + void unref() { if (--count_ == 0) delete this; } +private: + ~SequenceInfo(); + seq_analysis_info_t *sainfo_; + unsigned int count_; +}; + +class SequenceDialog : public WiresharkDialog +{ + Q_OBJECT + +public: + explicit SequenceDialog(QWidget &parent, CaptureFile &cf, SequenceInfo *info = NULL); + ~SequenceDialog(); + void enableVoIPFeatures(); + +protected: + void showEvent(QShowEvent *event); + void resizeEvent(QResizeEvent *event); + void keyPressEvent(QKeyEvent *event); + +signals: + void rtpStreamsDialogSelectRtpStreams(QVector stream_infos); + void rtpStreamsDialogDeselectRtpStreams(QVector stream_infos); + void rtpPlayerDialogReplaceRtpStreams(QVector stream_ids); + void rtpPlayerDialogAddRtpStreams(QVector stream_ids); + void rtpPlayerDialogRemoveRtpStreams(QVector stream_ids); + +private slots: + void updateWidgets(); + void hScrollBarChanged(int value); + void vScrollBarChanged(int value); + void xAxisChanged(QCPRange range); + void yAxisChanged(QCPRange range); + void diagramClicked(QMouseEvent *event); + void mouseMoved(QMouseEvent *event); + void mouseWheeled(QWheelEvent *event); + + void fillDiagram(); + void resetView(); + void exportDiagram(); + + void on_buttonBox_clicked(QAbstractButton *button); + void on_actionGoToPacket_triggered(); + void on_actionGoToNextPacket_triggered() { goToAdjacentPacket(true); } + void on_actionGoToPreviousPacket_triggered() { goToAdjacentPacket(false); } + void on_displayFilterCheckBox_toggled(bool checked); + void on_flowComboBox_activated(int index); + void on_addressComboBox_activated(int index); + void on_actionMoveRight10_triggered(); + void on_actionMoveLeft10_triggered(); + void on_actionMoveUp10_triggered(); + void on_actionMoveDown10_triggered(); + void on_actionMoveRight1_triggered(); + void on_actionMoveLeft1_triggered(); + void on_actionMoveUp1_triggered(); + void on_actionMoveDown1_triggered(); + void on_actionZoomIn_triggered(); + void on_actionZoomOut_triggered(); + void on_actionSelectRtpStreams_triggered(); + void on_actionDeselectRtpStreams_triggered(); + void on_buttonBox_helpRequested(); + + void rtpPlayerReplace(); + void rtpPlayerAdd(); + void rtpPlayerRemove(); + +private: + Ui::SequenceDialog *ui; + SequenceDiagram *seq_diagram_; + SequenceInfo *info_; + int num_items_; + guint32 packet_num_; + double one_em_; + int sequence_w_; + QPushButton *reset_button_; + QToolButton *player_button_; + QPushButton *export_button_; + QMenu ctx_menu_; + QCPItemText *key_text_; + QCPItemText *comment_text_; + seq_analysis_item_t *current_rtp_sai_selected_; // Used for passing current sai to rtp processing + seq_analysis_item_t *current_rtp_sai_hovered_; // Used for passing current sai to rtp processing + QPointer rtp_stream_dialog_; // Singleton pattern used + bool voipFeaturesEnabled; + + void zoomXAxis(bool in); + void panAxes(int x_pixels, int y_pixels); + void resetAxes(bool keep_lower = false); + void goToAdjacentPacket(bool next); + + static bool addFlowSequenceItem(const void *key, void *value, void *userdata); + + void processRtpStream(bool select); + QVectorgetSelectedRtpIds(); +}; + +#endif // SEQUENCE_DIALOG_H -- cgit v1.2.3