10#ifndef MAIN_APPLICATION_H
11#define MAIN_APPLICATION_H
19#include <QApplication>
283 template <
typename Func>
287 whenInitializedDispatch(context, std::function<
void()>(std::forward<Func>(fn)));
372 void pushStatus(
StatusInfo sinfo,
const QString &message,
const QString &messagetip = QString());
398 void whenInitializedDispatch(
const QObject *context, std::function<
void()> fn);
404 bool is_reloading_lua_;
407 QTimer packet_data_timer_;
410 QTimer tap_update_timer_;
413 QList<QString> pending_open_files_;
416 QSocketNotifier *if_notifier_;
419 static QString window_title_separator_;
422 QList<AppSignal> app_signals_;
425 int active_captures_;
430 void storeCustomColorsInRecent();
435 void clearDynamicMenuGroupItems();
544 void ifChangeEventsAvailable();
549 void refreshPacketData();
Represents an event occurring during a capture or file operation.
Definition capture_event.h:24
Core application class handling global state, signals, and configurations.
Definition main_application.h:42
void openStatCommandDialog(const QString &menu_path, const char *arg, void *userdata)
Signal emitted to open a specific stat command dialog.
void queueAppSignal(AppSignal signal)
Queues an application signal to be emitted later.
Definition main_application.h:138
void clearAddedMenuGroupItems()
Clears the list of tracked added menu group items.
Definition main_application.cpp:625
QTranslator translatorQt
Definition main_application.h:352
void localInterfaceEvent(const char *ifname, int added, int up)
Signal emitted for local interface events (add/remove/up/down).
void packetDissectionChanged()
Signal emitted when packet dissection settings are changed.
AppSignal
Enumeration of application-wide signals.
Definition main_application.h:60
@ PacketDissectionChanged
Packet dissection preferences changed.
Definition main_application.h:74
@ ColumnsChanged
Packet list columns changed.
Definition main_application.h:64
@ FreezePacketList
Freeze the packet list updates.
Definition main_application.h:80
@ FilterExpressionsChanged
Filter expressions changed.
Definition main_application.h:70
@ RecentPreferencesRead
Recent preferences have been read.
Definition main_application.h:78
@ AggregationChanged
Aggregation logic or values changed.
Definition main_application.h:82
@ PreferencesChanged
General preferences changed.
Definition main_application.h:76
@ CaptureFilterListChanged
Capture filter list changed.
Definition main_application.h:62
@ FieldsChanged
Protocol fields changed.
Definition main_application.h:68
@ NameResolutionChanged
Name resolution configuration changed.
Definition main_application.h:72
@ DisplayFilterListChanged
Display filter list changed.
Definition main_application.h:66
const QIcon & normalIcon()
Retrieves the normal application icon.
Definition main_application.cpp:323
void appendDynamicMenuGroupItem(int group, QAction *sg_action)
Appends an action item to a dynamic menu group.
Definition main_application.cpp:567
void helpTopicAction(topic_action_e action)
Executes a help topic action.
Definition main_application.cpp:184
void captureActive(int)
Signals activation and stop of a capture. The value provides the number of active captures.
void reloadLuaPluginsDelayed()
Triggers a delayed reload of Lua plugins.
Definition main_application.cpp:313
virtual void initializeIcons()=0
Pure virtual method for initializing application icons.
void preferencesChanged()
Signal emitted when preferences are changed.
void popStatus(StatusInfo sinfo)
Pops the most recent status message of a given type.
Definition main_application.cpp:965
struct _e_prefs * readConfigurationFiles(bool reset)
Reads application configuration files.
Definition main_application.cpp:791
void removeDynamicMenuGroupItem(int group, QAction *sg_action)
Removes an action item from a dynamic menu group.
Definition main_application.cpp:576
void allSystemsGo()
Indicates that initial setup is complete and all systems are operational.
Definition main_application.cpp:766
void doTriggerMenuItem(MainMenuItem menuItem)
Triggers a specific main menu item.
Definition main_application.cpp:868
QTranslator translator
Definition main_application.h:349
void profileNameChanged(const char *profile_name)
Signal emitted when the configuration profile name has changed.
QIcon normal_icon_
Definition main_application.h:451
~MainApplication()
Destroys the MainApplication.
Definition main_application.cpp:480
void emitLocalInterfaceEvent(const char *ifname, int added, int up)
Emits a signal regarding local interface status changes.
Definition main_application.cpp:721
bool event(QEvent *event) override
Core Qt event handler override.
Definition main_application.cpp:386
bool isReloadingLua()
Checks if Lua plugins are currently reloading.
Definition main_application.h:303
void gotoFrame(int frameNum)
Triggers navigation to a specific frame number.
Definition main_application.cpp:1000
void displayFilterListChanged()
Signal emitted when display filters are changed.
void freezePacketList(bool changing_profile)
Signal emitted to freeze or unfreeze packet list updates.
void openTapParameterDialog(const QString cfg_str, const QString arg, void *userdata)
Signal emitted to open a tap parameter dialog.
void recentPreferencesRead()
Signal emitted when recent preferences are read.
MainApplication(int &argc, char **argv)
Constructs the MainApplication.
Definition main_application.cpp:416
void reloadDisplayFilterMacros()
Reloads display filter macros.
Definition main_application.cpp:1010
MainWindow * mainWindow()
Retrieves the main window instance.
Definition main_application.cpp:363
void emitAppSignal(AppSignal signal)
Emits a specific application signal.
Definition main_application.cpp:486
void openCaptureOptions()
Signal emitted to open the capture options dialog.
void setConfigurationProfile(const char *profile_name, bool write_recent_file=true)
Sets the active configuration profile.
Definition main_application.cpp:193
void whenInitialized(const QObject *context, Func &&fn)
Runs fn once the application has finished initialization.
Definition main_application.h:284
void setReloadingLua(bool is_reloading)
Sets the flag indicating if Lua is currently reloading.
Definition main_application.h:297
void columnDataChanged()
Signal emitted when column data definitions change.
void checkDisplayFilter()
Signal emitted to check display filter validity.
const QString windowTitleString(QString title_part)
Generates a window title with a single part.
Definition main_application.h:335
QList< QAction * > addedMenuGroupItems(int group)
Retrieves items recently added to a dynamic menu group.
Definition main_application.cpp:603
bool isInitialized()
Checks if the application is initialized.
Definition main_application.h:263
const QIcon & captureIcon()
Retrieves the capture application icon.
Definition main_application.cpp:331
void emitStatCommandSignal(const QString &menu_path, const char *arg, void *userdata)
Emits a signal to execute a statistics command.
Definition main_application.cpp:548
void clearRemovedMenuGroupItems()
Clears the list of tracked removed menu group items.
Definition main_application.cpp:632
QList< QAction * > dynamicMenuGroupItems(int group)
Retrieves all action items for a dynamic menu group.
Definition main_application.cpp:592
void loadLanguage(const QString language)
Loads a specific UI language.
Definition main_application.cpp:832
QDir openDialogInitialDir()
Retrieves the initial directory for open dialogs.
Definition main_application.cpp:172
const QString windowTitleString(QStringList title_parts)
Generates a window title from parts.
Definition main_application.cpp:339
void setLastOpenDirFromFilename(QString file_name)
Sets the last opened directory from a given filename.
Definition main_application.cpp:176
void reloadLuaPlugins()
Signal emitted to initiate a Lua plugin reload.
StatusInfo
Enumeration for status bar information types.
Definition main_application.h:98
@ FieldStatus
Protocol field status.
Definition main_application.h:102
@ BusyStatus
Application busy status.
Definition main_application.h:106
@ FilterSyntax
Filter syntax status.
Definition main_application.h:100
@ TemporaryStatus
General temporary status message.
Definition main_application.h:110
@ FileStatus
File operations status.
Definition main_application.h:104
@ ByteStatus
Byte loading/processing status.
Definition main_application.h:108
void filterExpressionsChanged()
Signal emitted when filter expressions are changed.
QIcon capture_icon_
Definition main_application.h:454
void captureEventHandler(CaptureEvent ev)
Slot for handling capture events.
Definition main_application.cpp:881
void aggregationChanged()
Signal emitted when aggregation values change.
MainMenuItem
Enumeration for standard main menu items.
Definition main_application.h:88
@ FileOpenDialog
The file open dialog action.
Definition main_application.h:90
@ CaptureOptionsDialog
The capture options dialog action.
Definition main_application.h:92
void emitTapParameterSignal(const QString cfg_abbr, const QString arg, void *userdata)
Emits a signal indicating tap parameters changed.
Definition main_application.cpp:553
void addressResolutionChanged()
Signal emitted when address resolution settings change.
const QString & windowTitleSeparator() const
Retrieves the window title separator string.
Definition main_application.h:321
void appInitialized()
Signal emitted when application is fully initialized.
void addDynamicMenuGroupItem(int group, QAction *sg_action)
Adds an action item to a dynamic menu group.
Definition main_application.cpp:559
void applyCustomColorsFromRecent()
Applies custom colors stored in recent files.
Definition main_application.cpp:350
int maxMenuDepth(void)
Defines the maximum nested depth allowed for menus.
Definition main_application.h:390
void captureFilterListChanged()
Signal emitted when capture filters are changed.
void columnsChanged()
Signal emitted when columns are changed (recreates packet list). XXX This recreates the packet list....
void fieldsChanged()
Signal emitted when protocol fields change.
void pushStatus(StatusInfo sinfo, const QString &message, const QString &messagetip=QString())
Pushes a message to the specified status bar section.
Definition main_application.cpp:930
void profileChanging()
Signal emitted while the configuration profile is changing.
void openCaptureFile(QString cf_path, QString display_filter, unsigned int type)
Signal emitted to open a specific capture file.
QList< QAction * > removedMenuGroupItems(int group)
Retrieves items recently removed from a dynamic menu group.
Definition main_application.cpp:614
void flushAppSignals()
Flushes queued app signals.
Definition main_application.cpp:541
The main window of the application.
Definition main_window.h:51
GList ** feature_list
Semi-opaque handle to a list of features or dependencies.
Definition feature_list.h:33
topic_action_e
Identifies a help topic or navigable destination reachable from the UI help system.
Definition help_url.h:28
void gather_wireshark_runtime_info(feature_list l)
Gather runtime information for Wireshark.
Definition main.cpp:260
void gather_wireshark_qt_compiled_info(feature_list l)
Gather compiled information for Wireshark Qt components.
Definition main.cpp:219
Global Wireshark preferences structure holding all persistent configuration settings.
Definition prefs.h:213