Wireshark 5.1.0
The Wireshark network protocol analyzer
Loading...
Searching...
No Matches
wireshark_main_window.h
Go to the documentation of this file.
1
9
10#ifndef WIRESHARK_MAIN_WINDOW_H
11#define WIRESHARK_MAIN_WINDOW_H
12
32
38
39#include <stdio.h>
40
41#include <config.h>
42
43#include "ui/ws_ui_util.h"
44#include "ui/iface_toolbar.h"
45
46#ifdef HAVE_LIBPCAP
47#include "ui/capture_opts.h"
48#endif
50
51#include <epan/timestamp.h>
52
54
55#include <QMainWindow>
56#include <QPointer>
57
58#ifdef _WIN32
59# include <QTimer>
60#else
61# include <QSocketNotifier>
62#endif
63
64#include "capture_file_dialog.h"
68#include "main_window.h"
69#include "rtp_stream_dialog.h"
70#include "rtp_analysis_dialog.h"
72
73class AccordionFrame;
74class DataSourceTab;
75class CaptureOptionsDialog;
76class DisStreamDialog;
77class InPacketSearch;
78class PrintDialog;
79class FileSetDialog;
80class FilterDialog;
82class WelcomePage;
84class PacketDiagram;
85class PacketList;
87class ProtoTree;
88#if defined(HAVE_LIBNL) && defined(HAVE_NL80211)
89class WirelessFrame;
90#endif
93
94class QAction;
95class QActionGroup;
96
97namespace Ui {
98 class WiresharkMainWindow;
99}
100
101Q_DECLARE_METATYPE(ts_type)
102Q_DECLARE_METATYPE(ts_precision)
103
104
110{
111 Q_OBJECT
112
113public:
119 explicit WiresharkMainWindow(QWidget *parent = nullptr);
120
125
126#ifdef HAVE_LIBPCAP
131 capture_session *captureSession() { return &cap_session_; }
132
137 info_data_t *captureInfoData() { return &info_data_; }
138#endif
139
144 QMenu *createPopupMenu() override;
145
149 void setFunnelMenus(void);
150
155 void removeAdditionalToolbar(QString toolbarName);
156
161 void addInterfaceToolbar(const iface_toolbar *toolbar_entry);
162
167 void removeInterfaceToolbar(const char *menu_title);
168
173 QString getMwFileName();
174
179 void setMwFileName(QString fileName);
180
181protected:
188 bool eventFilter(QObject *obj, QEvent *event) override;
189
195 bool event(QEvent *event) override;
196
201 void keyPressEvent(QKeyEvent *event) override;
202
207 void closeEvent(QCloseEvent *event) override;
208
213 void dragEnterEvent(QDragEnterEvent *event) override;
214
219 void dropEvent(QDropEvent *event) override;
220
225 void changeEvent(QEvent *event) override;
226
231 void openRecentCaptureFile(const QString &filename) override;
232
240 bool tryClosingCaptureFile(QString before_what, FileCloseContext context = Default) override;
241
242private:
247 enum MatchSelected {
248 MatchSelectedReplace,
249 MatchSelectedAnd,
250 MatchSelectedOr,
251 MatchSelectedNot,
252 MatchSelectedAndNot,
253 MatchSelectedOrNot
254 };
255
256 Ui::WiresharkMainWindow *main_ui_;
257 QFont mono_font_;
258#if defined(HAVE_LIBNL) && defined(HAVE_NL80211)
259 WirelessFrame *wireless_frame_;
260#endif
261 QWidget *previous_focus_;
262 FileSetDialog *file_set_dialog_;
263 QActionGroup *show_hide_actions_;
264 QAction *appearance_mode_spacer_ = nullptr;
265 QActionGroup *time_display_actions_;
266 QActionGroup *time_precision_actions_;
267 FunnelStatistics *funnel_statistics_;
268 QAction *action_telephony_dis_streams_;
269 QAction *action_telephony_imsi_list_;
270 QList<QPair<QAction *, bool>> freeze_actions_;
271 QPointer<QWidget> freeze_focus_;
272 QMap<QAction *, ts_type> td_actions;
273 QMap<QAction *, ts_precision> tp_actions;
274 bool was_maximized_;
275
276 /* the following values are maintained so that the capture file name and status
277 is available when there is no cf structure available */
278
279 QString mwFileName_;
280
281 bool capture_stopping_;
282 bool capture_filter_valid_;
283#ifdef HAVE_LIBPCAP
284 capture_session cap_session_;
285 CaptureOptionsDialog *capture_options_dialog_;
286 info_data_t info_data_;
287#endif
288 InPacketSearch *in_packet_search_;
289 QPoint dragStartPosition;
290
291 QPointer<TLSKeylogDialog> tlskeylog_dialog_;
292 QPointer<PreferencesDialog> preferences_dialog_;
293
297 void freeze();
298
302 void thaw();
303
308 void mergeCaptureFile();
309
314 void importCaptureFile();
315
322 bool saveCaptureFile(capture_file *cf, bool dont_reopen);
323
332 bool saveAsCaptureFile(capture_file *cf, bool must_support_comments = false, bool dont_reopen = false);
333
338 void exportSelectedPackets();
339
344 void exportDissections(export_type_e export_type);
345
350 void enableAggregationView(bool enable) const;
351
352#ifdef Q_OS_WIN
360 void fileAddExtension(QString &file_name, int file_type, ws_compression_type compression_type);
361#endif
362
367 void captureStop(bool discard = false);
368
370 void initMainToolbarIcons();
371
373 void updateMainToolbarIconSize();
374
379 void cycleAppearanceMode();
380
382 void updateAppearanceModeAction();
383
385 void updateAppearanceModeButton();
386
388 void initShowHideMainWidgets();
389
391 void initTimeDisplayFormatMenu();
392
394 void initTimePrecisionFormatMenu();
395
397 void initFreezeActions();
398
403 void setMenusForCaptureFile(bool force_disable = false) override;
404
409 void setMenusForCaptureInProgress(bool capture_in_progress = false);
410
412 void setMenusForCaptureStopping();
413
418 void setForCapturedPackets(bool have_captured_packets);
419
424 void setMenusForFileSet(bool enable_list_files);
425
429 void updateStyleSheet();
430
437 void externalMenuHelper(ext_menu_t *menu, QMenu *subMenu, int depth);
438
446 void setForCaptureInProgress(bool capture_in_progress = false, bool handle_toolbars = false, GArray *ifaces = NULL);
447
455 QMenu *findOrAddMenu(QMenu *parent_menu, const QStringList &menu_parts);
456
463 QMenu *findOrAddMenubar(const QString menu_text);
464
469 void captureFileReadStarted(const QString &action);
470
476 void addMenusandSubmenus(QAction *action, QMenu *cur_menu);
477
483 void removeMenusandSubmenus(QAction *action, QMenu *cur_menu);
484
490 void addMenuActions(QList<QAction *> &actions, int menu_group);
491
497 void removeMenuActions(QList<QAction *> &actions, int menu_group);
498
504 void goToConversationFrame(bool go_next, bool start_current = true);
505
511 void colorizeWithFilter(QByteArray filter, int color_number = -1);
512
513signals:
519
522
525
530 void packetInfoChanged(struct _packet_info *pinfo);
531
536 void fieldFilterChanged(const QByteArray field_filter);
537
543
549
550#ifdef HAVE_LIBPCAP
556 void showExtcapOptions(QString &device_name, bool startCaptureOnClose);
557#endif
558
559public slots:
560 // Qt lets you connect signals and slots using functors (new, manual style)
561 // and strings (old style). Functors are preferred since they're connected at
562 // compile time and less error prone.
563 //
564 // If you're manually connecting a signal to a slot, don't prefix its name
565 // with "on_". Otherwise Qt will try to automatically connect it and you'll
566 // get runtime warnings.
567
568 // in main_window_slots.cpp
569
578 bool openCaptureFile(QString cf_path, QString display_filter, unsigned int type, bool is_tempfile = false);
579
586 bool openCaptureFile(QString cf_path = QString(), QString display_filter = QString()) { return openCaptureFile(cf_path, display_filter, WTAP_TYPE_AUTO); }
587
588
590 void layoutToolbars();
591
594
596 void updateRecentActions();
597
601 void updateAggregationView() const;
602
605
608
609#ifdef HAVE_LIBPCAP
614 void captureCapturePrepared(capture_session *session);
615
620 void captureCaptureUpdateStarted(capture_session *session);
621
626 void captureCaptureUpdateFinished(capture_session *session);
627
632 void captureCaptureFixedFinished(capture_session *cap_session);
633
637 void captureCaptureFailed(capture_session *);
638#endif
639
641 void captureFileOpened();
642
649
651 void captureFileClosing();
652
654 void captureFileClosed();
655
666 void launchRLCGraph(bool channelKnown, uint8_t RAT, uint16_t ueid, uint8_t rlcMode,
667 uint16_t channelType, uint16_t channelId, uint8_t direction);
668
669#ifdef HAVE_LUA
671 void openLuaDebuggerDialog();
672#endif
673
678 void rtpPlayerDialogReplaceRtpStreams(QVector<rtpstream_id_t *> stream_ids);
679
684 void rtpPlayerDialogAddRtpStreams(QVector<rtpstream_id_t *> stream_ids);
685
690 void rtpPlayerDialogRemoveRtpStreams(QVector<rtpstream_id_t *> stream_ids);
691
696 void rtpAnalysisDialogReplaceRtpStreams(QVector<rtpstream_id_t *> stream_ids);
697
702 void rtpAnalysisDialogAddRtpStreams(QVector<rtpstream_id_t *> stream_ids);
703
708 void rtpAnalysisDialogRemoveRtpStreams(QVector<rtpstream_id_t *> stream_ids);
709
714 void rtpStreamsDialogSelectRtpStreams(QVector<rtpstream_id_t *> stream_ids);
715
720 void rtpStreamsDialogDeselectRtpStreams(QVector<rtpstream_id_t *> stream_ids);
721
722protected slots:
728 void applyFilter(QString new_filter = QString(), bool force = false) override;
729
730private slots:
738 void onAppInitialized();
739
744 void captureEventHandler(CaptureEvent ev);
745
747 void initViewColorizeMenu();
748
750 void initConversationMenus();
751
759 static bool addExportObjectsMenuItem(const void *key, void *value, void *userdata);
760
762 void initExportObjectsMenus();
763
771 static bool addFollowStreamMenuItem(const void *key, void *value, void *userdata);
772
774 void initFollowStreamMenus();
775
780 void startCapture(QStringList interfaces);
781
783 void startCapture();
784
786 void pushLiveCaptureInProgress();
787
789 void popLiveCaptureInProgress();
790
792 void stopCapture();
793
798 void aggregationViewChanged(bool enable) const;
799
801 void loadWindowGeometry();
802
804 void saveWindowGeometry();
805
809 void mainStackChanged(int);
810
812 void updateRecentCaptures();
813
815 void addPacketComment();
816
818 void editPacketComment();
819
821 void deletePacketComment();
822
824 void deleteCommentsFromPackets();
825
832 QString commentToMenuText(QString text, int max_len = 40);
833
835 void setEditCommentsMenu();
836
838 void setMenusForSelectedPacket();
839
844 void setMenusForSelectedTreeRow(FieldInformation *fi = NULL);
845
847 void interfaceSelectionChanged();
848
853 void captureFilterSyntaxChanged(bool valid);
854
856 void redissectPackets();
857
859 void checkDisplayFilter();
860
862 void fieldsChanged();
863
865 void reloadLuaPlugins();
866
872 void showAccordionFrame(AccordionFrame *show_frame, bool toggle = false);
873
878 void showColumnEditor(int column);
879
881 void showPreferenceEditor();
882
884 void addStatsPluginsToMenu();
885
887 void addDynamicMenus();
888
890 void reloadDynamicMenus();
891
893 void addPluginIFStructures();
894
900 QMenu *searchSubMenu(QString objectName);
901
905 void activatePluginIFToolbar(bool);
906
912 void startInterfaceCapture(bool valid, const QString capture_filter);
913
916 void applyGlobalCommandLineOptions();
917
922 void setFeaturesEnabled(bool enabled = true);
923
925 void on_actionNewDisplayFilterExpression_triggered();
926
932 void onFilterSelected(QString filterText, bool prepare);
933
935 void onFilterPreferences();
936
941 void onFilterEdit(int uatIndex);
942
949 void queuedFilterAction(QString filter, FilterAction::Action action, FilterAction::ActionType type);
950
957 void openStatCommandDialog(const QString &menu_path, const char *arg, void *userdata);
958
965 void openTapParameterDialog(const QString cfg_str, const QString arg, void *userdata);
966
968 void openTapParameterDialog();
969
971 void connectFileMenuActions();
972
974 void exportPacketBytes();
975
977 void exportPDU();
978
980 void stripPacketHeaders();
981
983 void exportTLSSessionKeys();
984
986 void printFile();
987
989 void connectEditMenuActions();
990
995 void copySelectedItems(WiresharkMainWindow::CopySelected selection_type);
996
998 void findPacket();
999
1001 void editTimeShift();
1002
1004 void editConfigurationProfiles();
1005
1010 void editTimeShiftFinished(int result);
1011
1017 void addPacketCommentFinished(PacketCommentDialog *pc_dialog, int result);
1018
1025 void editPacketCommentFinished(PacketCommentDialog *pc_dialog, int result, unsigned nComment);
1026
1028 void deleteAllPacketComments();
1029
1034 void deleteAllPacketCommentsFinished(int result);
1035
1041 void injectSecrets(const char *proto_name, const char *wiki_link);
1042
1044 void discardAllSecrets();
1045
1050 void discardAllSecretsFinished(int result);
1051
1056 void showPreferencesDialog(QString module_name) override;
1057
1059 void connectViewMenuActions();
1060
1065 void showHideMainWidgets(QAction *action);
1066
1071 void setTimestampFormat(QAction *action);
1072
1077 void setTimestampPrecision(QAction *action);
1078
1083 void setTimeDisplaySecondsWithHoursAndMinutes(bool checked);
1084
1086 void editResolvedName();
1087
1089 void setNameResolution();
1090
1092 void showColoringRulesDialog();
1093
1095 void showTaggingRulesDialog();
1096
1102 void colorizeConversation(bool create_rule = false);
1103
1105 void colorizeActionTriggered();
1106
1111 void openPacketDialog(bool from_reference = false);
1112
1114 void reloadCaptureFileAsFormatOrCapture();
1115
1117 void reloadCaptureFile();
1118
1120 void connectGoMenuActions();
1121
1123 void setPreviousFocus();
1124
1126 void resetPreviousFocus();
1127
1129 void connectCaptureMenuActions();
1130
1132 void startCaptureTriggered();
1133
1135 void connectAnalyzeMenuActions();
1136
1143 void matchFieldFilter(FilterAction::Action action, FilterAction::ActionType filter_type);
1144
1146 void applyFieldAsColumn();
1147
1149 void filterMenuAboutToShow();
1150
1152 void applyConversationFilter();
1153
1155 void applyExportObject();
1156
1164 void openFollowStreamDialog(int proto_id, unsigned stream_num, unsigned sub_stream_num, bool use_stream_index = true);
1165
1170 void openFollowStreamDialog(int proto_id);
1171
1178 void openIOGraph(bool filtered, QVector<uint> conv_ids, QVector<QVariant> conv_agg);
1179
1183 void statCommandExpertInfo(const char *, void *);
1184
1186 void connectHelpMenuActions();
1187
1189 void goToCancelClicked();
1190
1192 void goToGoClicked();
1193
1195 void goToLineEditReturnPressed();
1196
1198 void connectStatisticsMenuActions();
1199
1201 void showResolvedAddressesDialog();
1202
1204 void showConversationsDialog();
1205
1207 void showEndpointsDialog();
1208
1213 void openTcpStreamDialog(int graph_type);
1214 void openTcpDedupDialog();
1215
1217 void openSCTPAllAssocsDialog();
1218
1220 void on_actionSCTPShowAllAssociations_triggered();
1221
1223 void on_actionSCTPAnalyseThisAssociation_triggered();
1224
1226 void on_actionSCTPFilterThisAssociation_triggered();
1227
1231 void statCommandMulticastStatistics(const char *, void *);
1232
1236 void statCommandWlanStatistics(const char *, void *);
1237
1242 void openStatisticsTreeDialog(const char *abbr);
1243
1247 void statCommandIOGraph(const char *, void *);
1248
1254 void showIOGraphDialog(io_graph_item_unit_t value_units, QString yfield) override;
1255
1261 void showPlotDialog(const QString &y_field = QString(), bool filtered = false) override;
1262
1269 void showIOGraphDialogForFilters(const QString &displayFilter,
1270 const QVector<QString> &filters,
1271 const QVector<QString> &names = QVector<QString>()) override;
1272
1274 void connectTelephonyMenuActions();
1275
1280 DisStreamDialog *openTelephonyDisStreamsDialog();
1281
1286 RtpStreamDialog *openTelephonyRtpStreamsDialog();
1287
1292 RtpPlayerDialog *openTelephonyRtpPlayerDialog();
1293
1298 RtpAnalysisDialog *openTelephonyRtpAnalysisDialog();
1299
1304 void statCommandLteMacStatistics(const char *arg, void *);
1305
1310 void statCommandLteRlcStatistics(const char *arg, void *);
1311
1313 void openRtpStreamAnalysisDialog();
1314
1316 void openRtpPlayerDialog();
1317
1319 void connectWirelessMenuActions();
1320
1322 void connectToolsMenuActions();
1323
1325 void externalMenuItemTriggered();
1326
1328 void on_actionContextWikiProtocolPage_triggered();
1329
1331 void on_actionContextFilterFieldReference_triggered();
1332
1337 void extcap_options_finished(int result);
1338
1344 void showExtcapOptionsDialog(QString device_name, bool startCaptureOnClose);
1345
1353 QString findRtpStreams(QVector<rtpstream_id_t *> *stream_ids, bool reverse);
1354
1356 void openTLSKeylogDialog();
1357
1359 friend class MainApplication;
1360};
1361
1362#endif // WIRESHARK_MAIN_WINDOW_H
struct _info_data info_data_t
Aggregates packet count statistics and UI state for a live capture info display.
struct _capture_session capture_session
Opaque handle representing an active or pending capture session.
struct _capture_file capture_file
Represents a capture file and its associated metadata.
A QFrame that shows and hides itself with a slide animation.
Definition accordion_frame.h:21
Represents an event occurring during a capture or file operation.
Definition capture_event.h:24
Context
Defines the operational context of the event.
Definition capture_event.h:29
A tab widget that manages and displays different data sources for a packet (e.g., Hex,...
Definition data_source_tab.h:36
A dialog for viewing and managing DIS (Distributed Interactive Simulation) streams from a capture fil...
Definition dis_stream_dialog.h:34
Represents information about a dissected packet field.
Definition field_information.h:26
A dialog for managing and displaying capture file sets.
Definition file_set_dialog.h:32
Action
Defines an action to be taken with a filter.
Definition filter_action.h:30
ActionType
Defines how the new filter should be combined with the existing one.
Definition filter_action.h:43
A dialog for managing and editing capture filters, display filters, and display macros.
Definition filter_dialog.h:31
A toolbar that displays filter expressions and supports drag-and-drop operations.
Definition filter_expression_toolbar.h:21
Manages statistics and user interface interactions for Lua-based funnel plugins.
Definition funnel_statistics.h:35
Search-within-current-packet logic shared by Find Packet (main window) and InPacketFindBar (single-pa...
Definition in_packet_search.h:24
CopySelected
Enumeration for determining what to copy when items are selected.
Definition main_window.h:255
MainWindow(QWidget *parent=nullptr)
Constructs a new MainWindow.
Definition main_window.cpp:51
FileCloseContext
Context under which a capture file is being closed.
Definition main_window.h:279
@ Default
Default closing context.
Definition main_window.h:281
Dialog for viewing or editing a packet comment.
Definition packet_comment_dialog.h:23
A graphics view widget for displaying protocol packet diagrams.
Definition packet_diagram.h:29
The main packet list view for displaying captured packets.
Definition packet_list.h:52
Dialog for configuring Wireshark preferences.
Definition preferences_dialog.h:33
Dialog that provides packet print and print-preview functionality for a live or saved capture file.
Definition print_dialog.h:31
A tree view for displaying protocol dissection details.
Definition proto_tree.h:30
Singleton dialog for analyzing RTP streams.
Definition rtp_analysis_dialog.h:106
Singleton dialog for playing and analyzing RTP audio streams. Singleton pattern based on https://refa...
Definition rtp_player_dialog.h:108
Singleton dialog for viewing and managing RTP streams. Singleton pattern based on https://refactoring...
Definition rtp_stream_dialog.h:32
Widget displayed on application startup, providing interface selection, capture filter configuration,...
Definition welcome_page.h:31
Toolbar frame that exposes 802.11 wireless interface controls — channel, channel type,...
Definition wireless_frame.h:27
Top-level Qt application object for the Wireshark GUI.
Definition wireshark_application.h:19
bool event(QEvent *event) override
Handles window-level events such as activation changes.
Definition wireshark_main_window.cpp:983
bool openCaptureFile(QString cf_path, QString display_filter, unsigned int type, bool is_tempfile=false)
Opens a capture file.
Definition wireshark_main_window_slots.cpp:209
void rtpPlayerDialogAddRtpStreams(QVector< rtpstream_id_t * > stream_ids)
Adds streams to the RTP Player dialog.
Definition wireshark_main_window_slots.cpp:4412
void updateAggregationView() const
Refreshes the packet aggregation view to reflect the current capture state.
Definition wireshark_main_window_slots.cpp:447
void launchRLCGraph(bool channelKnown, uint8_t RAT, uint16_t ueid, uint8_t rlcMode, uint16_t channelType, uint16_t channelId, uint8_t direction)
Opens the LTE RLC graph dialog for a specific channel.
Definition wireshark_main_window_slots.cpp:4026
void openRecentCaptureFile(const QString &filename) override
Opens the given recent capture file, handling any necessary prompts.
Definition wireshark_main_window_slots.cpp:1065
void keyPressEvent(QKeyEvent *event) override
Handles key press events for global keyboard shortcuts.
Definition wireshark_main_window.cpp:997
void dropEvent(QDropEvent *event) override
Opens a capture file dropped onto the window.
Definition wireshark_main_window.cpp:1130
void rtpPlayerDialogReplaceRtpStreams(QVector< rtpstream_id_t * > stream_ids)
Replaces all streams in the RTP Player dialog with the given stream list.
Definition wireshark_main_window_slots.cpp:4405
friend class MainApplication
Friend class allowing access to private members.
Definition wireshark_main_window.h:1359
QMenu * createPopupMenu() override
Creates and returns the window's right-click popup menu.
Definition wireshark_main_window.cpp:839
void removeInterfaceToolbar(const char *menu_title)
Removes the interface toolbar with the given menu title.
Definition wireshark_main_window.cpp:913
void rtpAnalysisDialogReplaceRtpStreams(QVector< rtpstream_id_t * > stream_ids)
Replaces all streams in the RTP Analysis dialog with the given stream list.
Definition wireshark_main_window_slots.cpp:4426
void setFunnelMenus(void)
Rebuilds the Lua funnel statistics menus from registered funnel entries.
Definition wireshark_main_window.cpp:3127
void changeEvent(QEvent *event) override
Responds to locale or palette changes by retranslating the UI.
Definition wireshark_main_window.cpp:2714
bool eventFilter(QObject *obj, QEvent *event) override
Filters events on watched objects (e.g. focus changes on child widgets).
Definition wireshark_main_window.cpp:965
void updatePreferenceActions()
Refreshes menu items that reflect preference values.
Definition wireshark_main_window_slots.cpp:384
void rtpPlayerDialogRemoveRtpStreams(QVector< rtpstream_id_t * > stream_ids)
Removes streams from the RTP Player dialog.
Definition wireshark_main_window_slots.cpp:4419
void packetInfoChanged(struct _packet_info *pinfo)
Emitted when the selected packet changes, providing the new packet info.
void setTitlebarForCaptureFile()
Updates the window title bar to reflect the current capture file name and state.
Definition wireshark_main_window.cpp:2545
void dragEnterEvent(QDragEnterEvent *event) override
Accepts drag-enter events for capture files dragged onto the window.
Definition wireshark_main_window.cpp:1099
void rtpStreamsDialogSelectRtpStreams(QVector< rtpstream_id_t * > stream_ids)
Selects the given streams in the RTP Streams dialog.
Definition wireshark_main_window_slots.cpp:4441
void captureFileClosing()
Updates UI state while a capture file is being closed.
Definition wireshark_main_window_slots.cpp:830
void setDissectedCaptureFile(capture_file *cf)
Emitted when a dissected capture file becomes the active file.
void updateRecentActions()
Rebuilds the File → Open Recent submenu from the recent-files list.
Definition wireshark_main_window_slots.cpp:400
void applyFilter(QString new_filter=QString(), bool force=false) override
Applies a new display filter to the open capture file.
Definition wireshark_main_window_slots.cpp:317
void rtpAnalysisDialogAddRtpStreams(QVector< rtpstream_id_t * > stream_ids)
Adds streams to the RTP Analysis dialog.
Definition wireshark_main_window_slots.cpp:4431
void selectRtpStream(rtpstream_id_t *id)
Emitted to request that an RTP stream be selected in all interested dialogs.
void deselectRtpStream(rtpstream_id_t *id)
Emitted to request that an RTP stream be deselected in all interested dialogs.
WiresharkMainWindow(QWidget *parent=nullptr)
Constructs the Wireshark main window and initialises all menus, toolbars, and UI components.
Definition wireshark_main_window.cpp:347
void rtpAnalysisDialogRemoveRtpStreams(QVector< rtpstream_id_t * > stream_ids)
Removes streams from the RTP Analysis dialog.
Definition wireshark_main_window_slots.cpp:4436
void captureFileOpened()
Updates UI state when a capture file is first opened.
Definition wireshark_main_window_slots.cpp:780
bool openCaptureFile(QString cf_path=QString(), QString display_filter=QString())
Convenience overload that auto-detects file type.
Definition wireshark_main_window.h:586
void layoutToolbars()
Repositions and resizes toolbars according to current layout settings.
Definition wireshark_main_window_slots.cpp:330
~WiresharkMainWindow()
Destroys the main window and releases all associated resources.
Definition wireshark_main_window.cpp:812
void captureFileClosed()
Resets UI state after a capture file has been fully closed.
Definition wireshark_main_window_slots.cpp:845
void reloadFields()
Emitted to request that all views reload their field definitions.
void showCaptureOptionsDialog()
Opens the capture options dialog (interface selection, filters, etc.).
Definition wireshark_main_window_slots.cpp:3186
void closeEvent(QCloseEvent *event) override
Prompts the user to save unsaved changes before closing the window.
Definition wireshark_main_window.cpp:1037
void setMwFileName(QString fileName)
Sets the file path shown in the main window title bar.
Definition wireshark_main_window.cpp:3166
bool tryClosingCaptureFile(QString before_what, FileCloseContext context=Default) override
Attempts to close the current capture file, prompting the user to save if there are unsaved changes.
Definition wireshark_main_window.cpp:1882
void closePacketDialogs()
Emitted to request that all packet-detail dialogs close themselves.
QString getMwFileName()
Returns the file path currently shown in the main window title bar.
Definition wireshark_main_window.cpp:3161
void addInterfaceToolbar(const iface_toolbar *toolbar_entry)
Adds an interface toolbar for the given toolbar descriptor.
Definition wireshark_main_window.cpp:872
void rtpStreamsDialogDeselectRtpStreams(QVector< rtpstream_id_t * > stream_ids)
Deselects the given streams in the RTP Streams dialog.
Definition wireshark_main_window_slots.cpp:4446
void captureFileReadFinished(CaptureEvent::Context context)
Updates UI state after a capture file has been fully read.
Definition wireshark_main_window_slots.cpp:804
void removeAdditionalToolbar(QString toolbarName)
Removes an additional (plugin/interface) toolbar by name.
Definition wireshark_main_window.cpp:3132
void fieldFilterChanged(const QByteArray field_filter)
Emitted when the field-based display filter changes.
export_type_e
Output format for packet data export operations.
Definition file_dialog.h:32
struct _iface_toolbar iface_toolbar
Describes an interface toolbar and the set of controls it exposes.
io_graph_item_unit_t
Selects the Y-axis value unit or aggregate calculation mode for an I/O graph plot.
Definition io_graph_item.h:29
ext_menubar_t ext_menu_t
Definition plugin_if.h:65
struct _rtpstream_id rtpstream_id_t
Represents the metadata and indexing information for a single captured frame.
Definition packet_info.h:43
ts_precision
Sub-second precision used when formatting packet timestamps.
Definition timestamp.h:41
ts_type
Format used to display packet timestamps in the summary packet list.
Definition timestamp.h:22