aboutsummaryrefslogtreecommitdiffstats
path: root/ui/qt/widgets/traffic_tab.cpp
AgeCommit message (Collapse)AuthorFilesLines
2024-02-07Qt: Only save the filtered rows to the MapJohn Thacker1-23/+38
Be a little more careful in TrafficTab about whether we want the Proxy Model or the Source Model, since the tap filter doesn't exclude rows from the source model (since the non-displayed rows are used to as part of the percentages of the total.) When we want to respect the display filtering or the sorting, use the proxy model. In the tap data model, only claim we have GeoIPData (which makes the map available) if a row that isn't filtered out has data. Fix #18530
2023-02-22Qt: Fix conversation dialog timeline graph columnsJohn Thacker1-20/+7
Remove the separate copy of the conversation column type enum in ConversationDialog. It doesn't correspond to the enum in ATapDataModel, because it doesn't include the Conversation ID and Total columns. Delegates set to the Traffic Tree (a QTreeView) apply to the displayed column number, not the what is displayed in the column. That is, when columns are hidden (filtered), the delegates stay with the old column number and end up being displayed on new content. That's not what we want; we want to always have the timeline graph on the Start and Duration columns. Moving around the Delegate depending on which columns are filtered is complicated; just set the TimeLine delegate to the entire TrafficTree, and use the default paint if we're on any column other than Start or Duration. This does mean that we don't need to store a map of Delegates. Use a slightly different way to get TimelineDelegate to paint the rect with no text using the current style, so we can use the default paint with text for other columns. The timeline graph needs to get the value of the Start and Duration columns as filtered by the proxy column, so have the model pass in indices so that they can be mapped to the current displayed column. Have the timeline graph apply to just the Start or just the Duration column if only one is visible. Together these compute the proper pixel values to apply the timeline graph to the Start and Duration columns regardless of which columns are displayed and which are filtered, in any tab, regardless of what optional columns appear in that tab. Fix #18860
2023-02-19Qt: Plug leaks in Conversations/Endpoints windowsJohn Thacker1-1/+2
Set some models to have the Traffic Tab or Traffic Type List that creates them as parent, so that they will be deleted properly. Setting a model does not cause it to be deleted unless it is parented, because models can be shared among multiple views. Since these models are only used by the one view, parenting them is fine.
2022-07-08Qt: Filter column information for traffic dialogsRoland Knall1-154/+0
This enables the traffic dialogs to filter data based on the context menu entries. For instance, one can only show rows, where the number of packets is not greater than 10
2022-07-01Qt: Cleanup TrafficTypesListRoland Knall1-1/+1
Consolidate two methods which practically do the same thing, as well as remove some residues from earlier implementations
2022-06-28Qt: Fix FileClose not available and segfaultRoland Knall1-1/+0
Fixes #18160
2022-06-22Qt: Fix stream id display in context menuRoland Knall1-1/+1
It was displayed for every protocol, but should only be displayed for TCP and UDP alone
2022-06-21Qt: Add stream number to conversationsRoland Knall1-0/+5
Adding the stream id to UDP/TCP conversations and allowing filtering on those values as well. Fixes: #14184
2022-06-20Qt: Fix column hiding for traffic modelRoland Knall1-5/+23
Instead of letting the model do the filtering and having a bunch of exceptions in cases where columns are hidden in between other columns, the model will present all columns all the time, and it is the job of a top-level proxy to filter out columns not required for current display
2022-06-19Qt: Hide columns for traffic treeRoland Knall1-4/+35
Allow columns to be hidden for the traffic tree dialogs Conversations and Endpoints and store the information profile specific
2022-06-17epan: Numeric address typeRoland Knall1-0/+5
Add a numeric address type analog to StringZ for protocols who only use numeric values as addresses with no further handling. e.g. IAT protocols which only enumerate the devices
2022-06-14Qt: Fix Qt6 compile warnings for traffic tabsRoland Knall1-2/+2
Some conversions are warning, that qsizetype is implicitly converted, this fixes that
2022-06-14Qt: Redesign TrafficTree Dialogs UIRoland Knall1-139/+101
The new UI should better group functionality and as well as better showing which taps are available and can be used.
2022-06-13Qt: Fix sorting for portsRoland Knall1-46/+58
Ports where sorted as string and not numerical
2022-06-13Qt: Better sorting for traffic dialogsRoland Knall1-31/+61
Allow the traffic columns to automatically sort on secondary columns if applicable. e.g. the address and port column for TCP and UDP, or the secondary address for conversations
2022-06-12Qt: Adapt sorting for traffic tablesRoland Knall1-0/+49
Improve sorting for the traffic tables
2022-06-10Qt: Implement total columns for traffic tablesRoland Knall1-8/+26
Implement a column type, which will show total values for traffic columns. Implements #15071
2022-06-08Qt: Remove unnecessary cli optionRoland Knall1-13/+5
There was an option that was never used, in that you could set your protocol tap as a first tab in the Conversations and Endpoint dialogs.
2022-06-04Qt: Make TrafficTable detachableRoland Knall1-16/+78
Allow the endpoint and conversation dialogs to have detachable tabs. At the same time move the tree functionality to a subclass to better be able to handle the context menu when detached. Right now, still a lot of tree stuff is in the tabwidget, but could be moved to the tree for the future
2022-06-04Qt: Move most Contextmenu stuff to TrafficTreeRoland Knall1-226/+14
Create a new class, which handles the context menu stuff for the traffic data, as well as remove unnecessary signals used by the sub-dialogs.
2022-06-03Qt: Better handle retapping for traffic tablesRoland Knall1-14/+10
Retapping can have some side-effects and was done in an overflowing way. Reducing the number of times retapping is required and done, and also giving control for taps reload to TrafficTab
2022-06-02Qt: Fix coverity warnings for TrafficViewRoland Knall1-0/+1
2022-06-02Qt: Minor changes to TrafficTreesRoland Knall1-1/+13
Move the corner button to a QToolButton and put it in a widget to better handle size constraints. Also fix some fallthroughs and remove unneeded code
2022-06-01Qt: Save Trafficdata as rawRoland Knall1-3/+20
Allow the option to save the data from the traffic dialogs as raw data and enable it as the default option for 4.0. The option to display the data with pretty formatting is still available.
2022-06-01Qt: Move Traffic Tables to Model/ViewRoland Knall1-0/+787
The current model makes it very hard to extend the traffic tables with new functionality. For instance, having a total view column additionally to the normal columns when filtered. This change removes the QTreeWidget and moves to a more generic approach using QAbstractListModel elements. It is implemented in thtree parts: - ATapDataModel implements the basic collection and handling of the tap data information, as well as updating if new data is becoming available - EndpointDataModel / ConversationDataModel handles the display and representation of the data - Implementing TrafficTab as a TabWidget which will handle the adding/removing of new protocol tabs