Commit Graph

296 Commits

Author SHA1 Message Date
João Valverde 9ab1f35641 Move print_hex_data_buffer() to wsutil
Move this generic function to wsutil so it can be used
by other libraries.
2022-10-08 12:39:04 +01:00
Chuck Craft 3f83a3b364 Qt: Display filter edit - update status line only when on mainWindow.
There are many screens with a display filter edit box but they should
not wallop the status line on the main window. Display syntax errors
on the local window in "hints" area.
Only update Status Line message when editing a display filter in the
Filter toolbar or Find Packet toolbar.
2022-10-07 06:41:29 +00:00
João Valverde 09b27e5636 Qt: Disable -Werror for a deprecated declaration
Allow building with -Werror enable globally.
2022-10-04 17:35:55 +00:00
João Valverde ec54b1c611 Qt: Fix deprecation of QByteArray::count()
Use size() instead, which is exactly the same as count(), and
is not deprecated. Seems to exist in all out supported Qt
versions, as far as I can tell.

warning: ‘qsizetype QByteArray::count() const’ is deprecated: Use size() or length() instead. [-Wdeprecated-declarations]
  257 |     while ((int) (row_y + line_height_) < widget_height && offset < (int) data_.count()) {
      |                                                                           ~~~~~~~~~~~^~
2022-10-04 17:08:31 +00:00
João Valverde f0a633622d Qt: Remove workaround for Qt bug fixed in Qt 5.5.1 2022-10-04 17:06:54 +00:00
João Valverde afa2579124 Qt: Fix compilation with Qt 6.4
error: conversion function from 'gchar *' (aka 'char *') to 'QVariant' invokes a deleted function
            return entry->hostname;
                   ^~~~~~~~~~~~~~~
/usr/include/qt6/QtCore/qvariant.h:199:5: note: 'QVariant<char *, false>' has been explicitly marked deleted here
    QVariant(T) = delete;
    ^
2022-10-01 21:53:11 +01:00
Chuck Craft 246e753d69 Qt6: add toInt() to QVariant == Qt::Checked
A change in Qt6 "==" comparison for QVariant for not defined types.

Closes #18336
2022-09-14 20:49:54 +00:00
Gerald Combs 55de00662d Qt: Clean a couple of context menus.
Set the Qt::WA_DeleteOnClose property on our packet list header and
about dialog context menus.
2022-09-12 20:16:23 +00:00
Uli Heilmeier b81948f534 Qt: Fix implicit conversion
Fix

ui/qt/widgets/syntax_line_edit.cpp:160:51: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32]
            .arg(QString('~').repeated(loc_length - 1));
                              ~~~~~~~~ ~~~~~~~~~~~^~~
ui/qt/widgets/syntax_line_edit.cpp:159:40: warning: implicit conversion loses integer precision: 'qsizetype' (aka 'long long') to 'int' [-Wshorten-64-to-32]
            .arg(QString(' ').repeated(loc_start))
                              ~~~~~~~~ ^~~~~~~~~

when building with Qt 5.
2022-09-07 15:17:00 +00:00
Guy Harris 8195bdd340 Rename a bunch of things with "conversation".
A conversation in Wireshark might have two endpoints or might have no
endpoints; few if any have one endpoint.  Distinguish between
conversations and endpoints.
2022-08-25 20:02:20 -07:00
João Valverde 6b35aa0773 Qt: Add dfilter error location to tooltip
If display filter compilation fails and the expression has a syntax
error and associated location, it will be displayed in the filter
tooltip, using a textual underline.

As far as I can tell using a graphical squiggly underline seems extremely
difficult for an object inheriting from QLineEdit, so the tooltip
textual method was used instead.
2022-08-22 07:31:08 +00:00
John Thacker c7a136a5c0 epan: Rearrange column includes
Move all the declarations of routines that are internal and
not for use by dissectors from column-utils.h column-info.h
Move the column max length defines into column-utils.h because
dissectors might need that

Since packet.h already includes column-utils.h, dissectors don't
need to include column-utils.h anymore.
Remove or downgrade a few other column header includes that are
unnecessary.
2022-08-13 19:37:28 +00:00
Roland Knall 26b8674320 Qt: Fix unitialized TrafficTree members 2022-07-09 11:08:15 -05:00
Roland Knall 4742e0cade Qt: Filter column information for traffic dialogs
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-08 16:21:32 -05:00
Gerald Combs 78ebafd708 Qt: Explicitly set our SyntaxLineEdit background color.
It looks like 1eafee6566 wasn't sufficient to fix the Qt 6 background
paint issue, at least for Qt 6.2.3. Explicitly set our background brush
before filling our rect.
Fixes #18175.
2022-07-06 14:45:26 +00:00
Tomasz Moń d1f7aa5acb
Qt: Do not spin new event loop on menu show
There is no need for nesting event loops when showing menus. Show menus
asynchronously to limit possibilities of hard to debug problems related
to re-entering event loop.
2022-07-03 13:41:30 +02:00
Roland Knall fe3d70e792 Qt: fix uninitialized member
_sortModel is not initialized properly
2022-07-02 17:58:09 +02:00
Roland Knall 2cebafc613 Qt: Filter TrafficListTypes
Add a textbox to allow for filtering the traffic types
in the conversation and endpoint dialog. The current implementation
allows for an easier growth of the list entries. To ensure that
the user can find the entry he/she/they is looking for fast, add
a textbox for filtering
2022-07-01 11:30:57 +02:00
Roland Knall 54aed0aa10 Qt: Cleanup TrafficTypesList
Consolidate two methods which practically do the same thing, as well
as remove some residues from earlier implementations
2022-07-01 08:02:47 +00:00
Roland Knall ac4b9e174d Qt: Cleanup PacketListHeader
Remove unnecessary for-loop and subroutine
2022-06-29 15:46:19 +02:00
Roland Knall 413b383224 Qt: Reduce PacketListHeader complexity
Propagating the capture_file was required for a single
function as was the cast for the model. Both are not
needed, as the functionality can be either moved to
PacketListModel or was already included in PacketList
2022-06-29 14:47:05 +02:00
Roland Knall 1d6b547029 Qt: Fix FileClose not available and segfault
Fixes #18160
2022-06-28 20:24:27 +00:00
John Thacker 4ed4678859 Qt: Make the Resolve Names buttons checkable again
The checkable property got lost at some point, rendering it impossible
to make columns resolved.
2022-06-27 20:26:08 -04:00
Roland Knall 1424e28c7d Qt: Fix stream id display in context menu
It was displayed for every protocol, but should only be displayed
for TCP and UDP alone
2022-06-22 15:48:51 +02:00
Gerald Combs 24cab126fd Qt: Fix our filter edit line lengths.
Make sure our bookmark border lines extend to the full height of the
text entry box.
2022-06-21 10:55:16 -07:00
Gerald Combs 3d52693eaa Qt+docs: Capitalize JSON.
JSON is an abbreviation and should be displayed in all caps.
https://www.json.org/json-en.html
2022-06-21 17:24:27 +00:00
Gerald Combs 1eafee6566 Qt: Work around a background fill issue with Qt 6.
It looks like QLineEdit no longer paints its background when it's a
QComboBox editor under Qt 6. Add a workaround for this to SyntaxLineEdit.
2022-06-21 09:39:46 -07:00
Roland Knall 847795d381 Qt: Add stream number to conversations
Adding the stream id to UDP/TCP conversations and allowing
filtering on those values as well.

Fixes: #14184
2022-06-21 10:01:18 +02:00
Roland Knall e046877ad1 Qt: Fix column hiding for traffic model
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-20 10:21:37 +02:00
Roland Knall 2b4878d452 Qt: Hide columns for traffic tree
Allow columns to be hidden for the traffic tree dialogs
Conversations and Endpoints and store the information profile
specific
2022-06-19 16:39:35 +02:00
Roland Knall b3fd206822 Qt: Sort tap list initially
By sorting the list of taps, the initial sorting is kept also
for the tab order
2022-06-17 13:06:21 +00:00
Roland Knall 83e420913d Qt: Implement sort model for traffic type list 2022-06-17 13:22:22 +02:00
Roland Knall 300befc12a epan: Numeric address type
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-17 08:56:05 +00:00
Roland Knall bd6808c4a0 Qt: Fix missing includes
On some compiler variations an error can occur due to missing
glib.h include
2022-06-16 08:12:29 +02:00
Roland Knall 4f283e9ef8 Qt: Fix Qt6 compile warnings for traffic tabs
Some conversions are warning, that qsizetype is implicitly
converted, this fixes that
2022-06-14 22:10:31 +02:00
Roland Knall a4f25e5115 Qt: Redesign TrafficTree Dialogs UI
The new UI should better group functionality and as well as better
showing which taps are available and can be used.
2022-06-14 09:36:30 +00:00
Roland Knall 1dc37de740 Qt: Fix sorting for ports
Ports where sorted as string and not numerical
2022-06-13 17:33:38 +02:00
Roland Knall 0cfe7a0d56 Qt: Better sorting for traffic dialogs
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-13 13:50:50 +02:00
Roland Knall a807047b95 Qt: Adapt sorting for traffic tables
Improve sorting for the traffic tables
2022-06-12 14:53:23 +02:00
Roland Knall 51d5cb42b2 Qt: Implement total columns for traffic tables
Implement a column type, which will show total values
for traffic columns.

Implements #15071
2022-06-10 12:38:56 +02:00
Roland Knall 2cf938cfa8 tap: Adding flags for tap_packet
This allows flags to be passed by the registering listener
to the collection of information
2022-06-10 05:46:15 +00:00
Roland Knall 3029a4a4d9 Qt: Remove unnecessary cli option
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-08 17:42:58 +02:00
Roland Knall b06c1c451c Qt: Make TrafficTable detachable
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-04 21:28:05 +02:00
Roland Knall 9edf06383a Qt: Move most Contextmenu stuff to TrafficTree
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-04 15:57:02 +02:00
Roland Knall 05759d3ec5 Qt: Better handle retapping for traffic tables
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-03 10:25:15 +02:00
Roland Knall fc505eed29 Qt: Fix coverity warnings for TrafficView 2022-06-02 16:50:31 +00:00
Roland Knall f725bbef5e Qt: Minor changes to TrafficTrees
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-02 12:30:41 +02:00
Roland Knall 7306d7681a Qt: Save Trafficdata as raw
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-01 11:51:39 +02:00
Roland Knall cb56345175 Qt: Move Traffic Tables to Model/View
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
2022-06-01 11:26:22 +02:00
Roland Knall 9ba4847a13 Qt: Fix some pathSelection warnings 2022-05-16 19:53:27 +02:00