For non-Windows platforms, the default paths for awk, diff, gzip are
fixed at compile time since these are standard utilities for these
platforms. However, for Windows, we ship these utilities along with
Ostinato, so we need to set default path as the application directory
which is known only at run time. This is done as part of
Preferences::initDefaults() and therefore should be called before
setting OstProtoLib external program paths
Cut: focus widget has a selection, a 'cut' slot and 'canCut'
Copy: focus widget has a selection and a 'copy' slot
Paste: focus widget has a 'paste' slot and can accept the clipboard item
The model is the correct place to determine what data gets copied. This
also paves way to support other models where the data to be copied is
not plain text
This reverts commit 46dd028a33.
The above commit caused a regression - issue #281
As seen in valgrind, crash was caused by portModel reset writing into
a freed block - presumably pertaining to persistent indexes. The block
was freed by the persistent index itself earlier when it was set to
invalid - so the model should not have been accessing that.
The application code seems correct - maybe the Qt code has a bug?
Unlikely but not impossible. For now go back to using QModelIndex
instead of QPersistentModelIndex
Fixes#281
Enable logs if '-d' command-line option is given.
Additional command-line options -
-v : print version
-h : print usage
Drone only:
-p <port-number> : use given port number for the RPC service
Since build is now the last step during "apply", use that to mark sync
complete. Since build will always be called irrespective of whether any
changes were made to devices/streams, we can now send the stream RPCs
only if required.
Additionally log RPC calls only if they are actually made.
Results will be displayed in a message box - if we have a new version or
if we are running the latest version.
Update check at startup will show message box only once in 5 days, other
times it will be shown in the status bar. If we are already on latest
version, nothing is shown.
The most time spent during apply is during packet rebuilding.
Unfortunately, there is no feedback from the drone to know the actual
progress, so this is just a busy indicator for now.
I tried to put a jump url to the FAQ on why it takes time, but 'coz the
app cursor is a "wait cursor", user cannot click on any widgets/elements
inside the dialog box - so this won't work.
Iterate on this dialog and what it displays based on user feedback.
* All 3 icons are combined into a single row instead of 3 separate rows
* Tooltip to clarify meaning of icons
* Qt Model-View displays icon left-aligned, so use a custom delegate to
center-align it
* Add a icon for "Transmit On"
* Edit icons for "Start/Stop Capture"
* Timestamp at millisec resolution
* Log level selection - Info by default
* Auto scroll control - enable(default)/disable
* Support copy (selected) logs to clipboard
* Support clear logs
* Annotate dock window title, if not on top (aka visible)
* 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 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