summaryrefslogtreecommitdiffstats
path: root/ui/qt/sequence_dialog.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 20:34:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 20:34:10 +0000
commite4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc (patch)
tree68cb5ef9081156392f1dd62a00c6ccc1451b93df /ui/qt/sequence_dialog.h
parentInitial commit. (diff)
downloadwireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.tar.xz
wireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.zip
Adding upstream version 4.2.2.upstream/4.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'ui/qt/sequence_dialog.h')
-rw-r--r--ui/qt/sequence_dialog.h137
1 files changed, 137 insertions, 0 deletions
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 <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#ifndef SEQUENCE_DIALOG_H
+#define SEQUENCE_DIALOG_H
+
+#include <config.h>
+
+#include <glib.h>
+
+#include "cfile.h"
+
+#include "epan/packet.h"
+#include "epan/sequence_analysis.h"
+
+#include <ui/qt/widgets/qcustomplot.h>
+#include "wireshark_dialog.h"
+#include "rtp_stream_dialog.h"
+
+#include <QMenu>
+
+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<rtpstream_id_t *> stream_infos);
+ void rtpStreamsDialogDeselectRtpStreams(QVector<rtpstream_id_t *> stream_infos);
+ void rtpPlayerDialogReplaceRtpStreams(QVector<rtpstream_id_t *> stream_ids);
+ void rtpPlayerDialogAddRtpStreams(QVector<rtpstream_id_t *> stream_ids);
+ void rtpPlayerDialogRemoveRtpStreams(QVector<rtpstream_id_t *> 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<RtpStreamDialog> 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);
+ QVector<rtpstream_id_t *>getSelectedRtpIds();
+};
+
+#endif // SEQUENCE_DIALOG_H