Qt: Add "Copy As…" to VoIP Calls.
[jlayton/wireshark.git] / ui / qt / voip_calls_dialog.h
1 /* voip_calls_dialog.h
2  *
3  * Wireshark - Network traffic analyzer
4  * By Gerald Combs <gerald@wireshark.org>
5  * Copyright 1998 Gerald Combs
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20  */
21
22 #ifndef VOIP_CALLS_DIALOG_H
23 #define VOIP_CALLS_DIALOG_H
24
25 #include <config.h>
26
27 #include <glib.h>
28
29 #include "ui/voip_calls.h"
30
31 #include "wireshark_dialog.h"
32
33 #include <QMenu>
34
35 struct _capture_file;
36
37 class QAbstractButton;
38 class QTreeWidgetItem;
39
40 class SequenceInfo;
41
42 namespace Ui {
43 class VoipCallsDialog;
44 }
45
46 class QTreeWidgetItem;
47 class VoipCallsDialog : public WiresharkDialog
48 {
49     Q_OBJECT
50
51 public:
52     explicit VoipCallsDialog(QWidget &parent, CaptureFile &cf, bool all_flows = false);
53     ~VoipCallsDialog();
54
55 public slots:
56     void endRetapPackets();
57
58 signals:
59     void updateFilter(QString filter, bool force = false);
60     void captureFileChanged(struct _capture_file *cf);
61     void goToPacket(int packet_num);
62
63 protected:
64     void contextMenuEvent(QContextMenuEvent *event);
65
66 protected slots:
67     void changeEvent(QEvent* event);
68
69 private:
70     Ui::VoipCallsDialog *ui;
71
72     QWidget &parent_;
73     voip_calls_tapinfo_t tapinfo_;
74     SequenceInfo *sequence_info_;
75     QPushButton *prepare_button_;
76     QPushButton *sequence_button_;
77     QPushButton *player_button_;
78     QPushButton *copy_button_;
79     QMenu ctx_menu_;
80
81     // Tap callbacks
82 //    static void tapReset(void *tapinfo_ptr);
83     static gboolean tapPacket(void *tapinfo_ptr, packet_info *pinfo, epan_dissect_t *, const void *data);
84     static void tapDraw(void *tapinfo_ptr);
85
86     void updateCalls();
87     void updateWidgets();
88     void prepareFilter();
89     void showSequence();
90     void showPlayer();
91
92     QList<QVariant> streamRowData(int row) const;
93
94 private slots:
95     void captureFileClosing();
96     void on_callTreeWidget_itemActivated(QTreeWidgetItem *item, int);
97     void on_callTreeWidget_itemSelectionChanged();
98     void on_actionSelect_All_triggered();
99     void on_actionCopyAsCsv_triggered();
100     void on_actionCopyAsYaml_triggered();
101     void on_buttonBox_clicked(QAbstractButton *button);
102     void on_buttonBox_helpRequested();
103 };
104
105 #endif // VOIP_CALLS_DIALOG_H
106
107 /*
108  * Editor modelines
109  *
110  * Local Variables:
111  * c-basic-offset: 4
112  * tab-width: 8
113  * indent-tabs-mode: nil
114  * End:
115  *
116  * ex: set shiftwidth=4 tabstop=8 expandtab:
117  * :indentSize=4:tabSize=8:noTabs=true:
118  */