34 Commits

Author SHA1 Message Date
John Thacker
b6c161e1f4 Qt: Remove workarounds for Qt < 5.15
Since Qt 5.15 is the minimum version now, remove a bunch of
QT_VERSION_CHECKs and the like. (Except in qcustomplot.)

Also update some documentation.
2024-10-25 06:34:08 -04:00
Stig Bjørlykke
366c659fdf Qt: Rearrange column header popup menu actions
Put the menu actions to edit columns first. Move Align and Display
settings below the first separator.
2024-10-01 20:51:57 +00:00
Stig Bjørlykke
fcdb03f01f proto: Allow formatted string from packet details in columns
Add a column setting to use the formatted string from packet details
in custom columns instead of the value or resolved names.

This is useful in some situations where the formatted string gives
better information.

Changed the existing "Resolve Names" setting to select between
- Display as Values
- Display as Strings
- Display as packet Details
2024-09-27 09:46:49 +02:00
Joakim Karlsson
9ae87a5790 Qt: fix error: ‘class QActionGroup’ has no member named ‘setExclusionPolicy’
setExclusionPolicy was introduced in Qt5.14

Ping !17364
2024-09-23 12:09:57 +00:00
Stig Bjørlykke
272fa09a16 Qt: Set align buttons to exclusive optional
Set the protocol list header align buttons to exclusive optional
to show radio button instead of check mark on some systems.
2024-09-22 12:08:10 +00:00
Stig Bjørlykke
1062e54fd5 prefs: Remove type of GUI preference
The type of GUI preference is unused.
Remove prefs.gui and rename prefs.gui_qt_* to prefs.gui_*.
2023-05-08 16:30:07 +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
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
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
Gerald Combs
d8008cb89e Qt: Split MainWindow into WiresharkMainWindow and LogwolfMainWindow.
Rename the main_window class and UIC files to wireshark_main_window and
the MainWindow class to WiresharkMainWindow. Copy wireshark_main_window
/ WiresharkMainWindow to logwolf_main_window / LogwolfMainWindow.

Remove the Wireless menu from Logwolf.
2022-04-04 09:39:27 -07:00
Gerald Combs
80de95ca71 Qt: Split MainApplication out from WiresharkApplication.
Move WiresharkApplication.{cpp,h} to MainApplication.{cpp,h}. Add back
WiresharkApplication as a thin superclass of MainApplication, similar to
LogsharkApplication. Change all of our wsApp references to mainApp. We
will likely have to change many or most of them back, but that's a
commit for another time.
2022-04-04 09:39:27 -07:00
Gerald Combs
ea11891f21 Qt: QMouseEvent::globalPos() is deprecated in Qt6.
Fix

ui/qt/tcp_stream_dialog.cpp:1669:31: error: 'globalPos' is deprecated: Use globalPosition() [-Werror,-Wdeprecated-declarations]
        ctx_menu_.exec(event->globalPos());
                              ^

and similar warnings.
2022-03-23 09:16:00 +00:00
Gerald Combs
d3f17ee08a Remove modelines in ui/qt.
Remove the editor modeline blocks from most of the source files in ui/qt
by running

    perl -i -p0e 's{ \n+ /[ *\n]+ editor \s+ modelines .* shiftwidth= .* \*/ \s+ } {\n}gsix' $( ag -g '\.(cpp|h)' )

then cleaning up the remaining files by hand.

This *shouldn't* affect anyone since

- All of the source files in ui/qt use 4 space indentation, which
  matches the default in our top-level .editorconfig

- The one notable editor that's likely to be used on these files and
  *doesn't* support EditorConfig (Qt Creator) defaults to 4 space
  indentation.
2021-03-08 18:11:32 +00:00
Gerald Combs
d2da4c7afb Qt: Use … instead of UTF8_HORIZONTAL_ELLIPSIS in translated strings.
Run

$ gsed -i -e 's/\(tr *(.*".*\)" *UTF8_HORIZONTAL_ELLIPSIS/\1…"/' $( ag -l 'tr *\(.*" *UTF8_HORIZONTAL_ELLIPSIS' )
$ gsed -i -e 's/\(tr *( *\)UTF8_HORIZONTAL_ELLIPSIS *"/\1"…/' $( ag -l 'tr *\( *UTF8_HORIZONTAL_ELLIPSIS *"' )

in ui/qt. As discussed in #16812, the UTF8_ macros were required at one
time because we only allowed ASCII in our source code. However, that
requirement has since been relaxed and Qt's translation framework
doesn't handle concatenating strings and macros very well.
2020-10-01 06:40:14 +00:00
Tomasz Moń
1d0b233f12 Qt: Stretch last packet list header section
Programatically show the master split widget before elements are added
to prevent pending resize events from resizing packet columns to insane
widths (in my case orders of magnitude higher than display resolution)

Such resize was occuring when loading capture file if configuration file
included hidden columns (e.g. 55 defined columns, 8 visible). The resize
was not directly visible to user. Resize event call chain included calls
to recent_set_column_width() that changed width stored in configuration.
Modified configuration column width value would become effective after
user added or removed columns.

Hide PacketList when freezing and show it when thawing. Do not call
setUpdatesEnabled(false) as it leads to widget/preferences columns
missynchronization.

Clear packet list before freeing frame data. This prevents accessing
freed memory in ProtoTree on file close if packet list was in focus and
the next widget to get focus is packet details.

Ping-Bug: 16063
Bug: 16491
Change-Id: I2c21d928348681af1793b3263815c81ee73d41b0
Reviewed-on: https://code.wireshark.org/review/37029
Petri-Dish: Tomasz Moń <desowin@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2020-05-06 03:50:18 +00:00
Tomasz Moń
1d20a875e4 Qt: Fix bug causing hidden columns to be displayed
Set capture file for model and header before columnsChanged() is called
to prevent skipping model reset in PacketListModel::resetColumns() due
to cap_file_ being NULL.

Do not strech last section in packet list header. This prevents
QHeaderViewPrivate::resizeSections() from messing up the column sizes
via resize events. For some reason (unknown to me) underlying
QHeaderView implementation has different idea about the number of
visible columns than our code.

Ping-Bug: 16063
Change-Id: I482c1080adb418b7922ee99d357d4962dc086026
Reviewed-on: https://code.wireshark.org/review/36120
Petri-Dish: Tomasz Moń <desowin@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Roland Knall <rknall@gmail.com>
2020-03-15 12:07:06 +00:00
Roland Knall
936a844cc3 Qt: Fix PacketListHeader column
Due to changes in #35206, if you have a lot of columns the display
of all columns may be hindered depending on your screen resolution.

With this change, displaying the column information can be disabled
via a Preferences->Layout checkbox element. Additionaly, the column
information will always be displayed as a tooltip element

Bug: 16317
Change-Id: Ib8c0fc0a84deaca96631270b320f3a530ba87d89
Reviewed-on: https://code.wireshark.org/review/35706
Petri-Dish: Roland Knall <rknall@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Roland Knall <rknall@gmail.com>
2020-01-09 12:32:34 +00:00
Orgad Shaneh
0442f7a2c3 UI: Fix compilation with Qt 5.14
Change-Id: I8adae4609ff2857cb12bc803839ebb2c6afbd264
Reviewed-on: https://code.wireshark.org/review/35517
Petri-Dish: Roland Knall <rknall@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2019-12-21 20:25:51 +00:00
Stig Bjørlykke
6433e12474 Qt: Show all column types in context menu
Show all column types in the column context menu to improve usability
even more when show/hide columns. This is a follow-up to the improvement
to show custom column field names.

Change-Id: I0838c7ae6eec59960a0a70b485c372855e242dc0
Reviewed-on: https://code.wireshark.org/review/35206
Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Roland Knall <rknall@gmail.com>
2019-11-25 12:17:10 +00:00
Roland Knall
8633ca6a88 Qt: Correct drag and drop with column header
Drag and Drop used the wrong filter name, fixing by using the correct one
and re-establish the feature

Change-Id: I7b3722c8087b4af7f2ea74f833ea130cbec0d19e
Reviewed-on: https://code.wireshark.org/review/35118
Petri-Dish: Roland Knall <rknall@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Roland Knall <rknall@gmail.com>
2019-11-17 22:44:48 +00:00
Stig Bjørlykke
a51c58fa1b Qt: Cleanup space inside parentheses
Remove randomly used space inside parentheses to make the coding
style uniform. Add space after if, for and while.

Change-Id: I519f5994b6f73d8a57a5004d51ca460276c618fe
Reviewed-on: https://code.wireshark.org/review/35112
Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Roland Knall <rknall@gmail.com>
2019-11-17 20:43:10 +00:00
Stig Bjørlykke
9dbf684c71 Qt: Show custom column fields in context menu
Show the custom column field name in the column context menu to
improve usability when show/hide columns. The column title alone
may not be sufficient to separate different columns.

Change-Id: I52f249433b8090249af87725fa97eba302692918
Reviewed-on: https://code.wireshark.org/review/35088
Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Roland Knall <rknall@gmail.com>
2019-11-14 09:53:25 +00:00
Stig Bjørlykke
7da6109f3b Qt: Fix column alignment check in context menu
Don't indicate "Align Left" when the column has default alignment,
because that may be wrong. Add back support for turning off custom
column alignment.

This is a regression from ge39f2bb5.

Change-Id: Ib9dc24067b02a44ffb2f3cd387f1c1c2a5c780ab
Reviewed-on: https://code.wireshark.org/review/35087
Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Roland Knall <rknall@gmail.com>
2019-11-14 09:50:22 +00:00
Roland Knall
013e87a8fd Qt: Remove DisplayFilterMimeData
Make the mimetype for the display filter more generic, so that external
programs can attach to Wireshark and users can drag and drop display
filters to the program

Change-Id: Id78b4dff7883e3dab879a31aad07f577d8cc4ee3
Reviewed-on: https://code.wireshark.org/review/34936
Reviewed-by: Roland Knall <rknall@gmail.com>
Petri-Dish: Roland Knall <rknall@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2019-11-04 11:39:48 +00:00
Tomasz Moń
437025e7c3 Qt: Initialize PacketListHeader member variables
Coverity CID 1446258

Change-Id: Iffadb8be97dd6dbd75a97869cea54398eec16554
Reviewed-on: https://code.wireshark.org/review/34324
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2019-08-19 19:59:13 +00:00
Tomasz Moń
0fc5bf30a2 Qt: Fix PacketListHeader dereferences before null check
Coverity CID 1446250, 14462554, 1446255, 1446256

Change-Id: I38ec9473dbee92a5bb3bc9635e2f6968db27b99e
Reviewed-on: https://code.wireshark.org/review/34325
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2019-08-19 19:58:58 +00:00
Roland Knall
372fc9ff6c Qt: Fix Preference dialog translation
The title names of each section are not presented correctly

Bug: 15977
Change-Id: I68ab0fb6fc7131f9d2af67fa38c509ed6808c7d3
Reviewed-on: https://code.wireshark.org/review/34218
Petri-Dish: Roland Knall <rknall@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Roland Knall <rknall@gmail.com>
2019-08-09 11:03:07 +00:00
Roland Knall
e4713e8745 Qt: Fix drag-and-drop from packet list
Only initiate drag-and-drop when the left mousebutton has been
clicked, and also add the filter as plain text, so to enable
dragging to external applications.

Change-Id: I2f6ac7f9c543d003070c2a6c0ce671ed5a215669
Reviewed-on: https://code.wireshark.org/review/33620
Petri-Dish: Roland Knall <rknall@gmail.com>
Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Roland Knall <rknall@gmail.com>
2019-06-16 21:07:21 +00:00
Stig Bjørlykke
fea4856667 Qt: Use UTF8_HORIZONTAL_ELLIPSIS
Fix "Resize Column to Width" and display filter drop menu
to use UTF8_HORIZONTAL_ELLIPSIS.

Change-Id: I0ce2507741e985fbf840296cc956358accc02b01
Reviewed-on: https://code.wireshark.org/review/33611
Reviewed-by: Roland Knall <rknall@gmail.com>
2019-06-15 20:53:28 +00:00
Dario Lombardo
dae527d682 Qt: fix constructor in packet_list_header.
Error:

../ui/qt/widgets/packet_list_header.cpp:198:31: error: no matching constructor for initialization of 'QAction'
        QAction *action = new QAction(get_column_title(cnt));
                              ^       ~~~~~~~~~~~~~~~~~~~~~

Change-Id: Ia4c3bec1859dc26edc19398d50ad1e46f0f6b0ed
Reviewed-on: https://code.wireshark.org/review/33609
Petri-Dish: Dario Lombardo <lomato@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Roland Knall <rknall@gmail.com>
2019-06-15 20:52:13 +00:00
Roland Knall
68c014c156 Qt: Allow columns to be set to a specific width
Allows the width of a column to be set using an entry on the context menu

Change-Id: Ibb7a9dd9a0dbe99f888cde8d4a274676acf920f1
Reviewed-on: https://code.wireshark.org/review/33580
Reviewed-by: Roland Knall <rknall@gmail.com>
Petri-Dish: Roland Knall <rknall@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2019-06-14 13:42:37 +00:00
Roland Knall
e39f2bb517 Qt: Move Packetlist Header Context Menu to subclass
This is a cleanup patch to remove unused or unnecessary code from
packet list and put it in its respective header class for better
code maintenance

Change-Id: Ib7d7f34ab9cdd802199b3f279499855c80f8f0c5
Reviewed-on: https://code.wireshark.org/review/33587
Petri-Dish: Roland Knall <rknall@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Roland Knall <rknall@gmail.com>
2019-06-13 19:11:35 +00:00
Roland Knall
5ae259c495 Qt: Allow dropping fields to add columns and indicate width
Allows for dropping fields on the columns to add them as well as indicate
width while dragging the columns

Change-Id: Ic98ae431886e5eb2ebd9ba50390742995bf22d5a
Reviewed-on: https://code.wireshark.org/review/33573
Petri-Dish: Roland Knall <rknall@gmail.com>
Tested-by: Roland Knall <rknall@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Roland Knall <rknall@gmail.com>
2019-06-13 15:11:10 +00:00