* Redesign the toolbar buttons to be similar to port stats
* Show protocols with variable fields in bold
* Variable field list will always have a 'current', if not empty
* Adding a new variable field makes it 'current' for immediate edit
* Each protocol remembers its 'current' variable field
Also renamed UserRole to a more widget specific enum
This makes it more readable. Unfortunately, the alternate row colors
don't apply to the row headers. QHeaderView is supposed to support
QBackgroundRole but there's a long pending bug on the Qt side for the
same - https://bugreports.qt.io/browse/QTBUG-31804
bps stats are derived from the Bps stats and represent line rate taking
into account the per packet overhead on the line with the following
assumptions -
* Link type is Ethernet
* Bps (and total Bytes) stats don't include the 4-byte FCS
Fixes#241
* Enable button only when one or more port is selected
* Reorder the button to make it first in the stats group
* Show some helpful text instead of a blank window when no stream stats
are available
* Rename track_stream_stats to is_tracking_stream_stats for consistency
with other bool params
* Change signature magic value to CODA
* Resolve notify memory leak
Changed the default num_packets from 1 to 10, because otherwise the
default stream values will trigger this warning, which is not a good
experience for the user
* Changed drone exit code from -1 to 1 'coz typically exit codes are
between 0 and 255
* Detect and report drone TCP port bind failure
* In all the following drone errors are reported (including previous
commits) -
* Drone already running (TCP port bind failure)
* Drone executable not found
* Packet.dll not found (Win32 only)
* The following conditions should NOT be reported
* Start/Stop Ostinato
* Stop before 5sec
* Stop after 5sec
This is the first of many commits that lays the foundation for -
* Editing multiple streams without exiting the dialog
* Triggering the dialog when a new stream is added instead of add+edit
Although the applyHint is also changed in this case, the applyHint is
visible only when the port is selected. Having the port name in a
different color is a visual hint to the user that Apply is pending