Commit Graph

28 Commits

Author SHA1 Message Date
Gerald Combs 1a4033b63b Initial and woefully incomplete flow graph support.
Copy common code from ui/gtk/flow_graph.c and ui/gtk/graph_analysis.[ch]
to ui/tap-sequence-analysis.[ch]. Start using the name "sequence" in
places.

svn path=/trunk/; revision=52824
2013-10-24 22:52:30 +00:00
Gerald Combs 945901af70 address_equal → addresses_equal. Switch from address macros to functions
in the Qt code.

svn path=/trunk/; revision=52108
2013-09-16 21:33:26 +00:00
Gerald Combs f36c727fb0 Add stream information to the hint label. Update our hint more often.
Add a "to do" list.

svn path=/trunk/; revision=52102
2013-09-16 17:28:42 +00:00
Gerald Combs 29b63a71e6 Make sure we don't tap our packets twice. Give the graph has focus after
we redraw it.

svn path=/trunk/; revision=52095
2013-09-16 02:04:52 +00:00
Gerald Combs 0f6baaa805 Fix graph type selection.
svn path=/trunk/; revision=52094
2013-09-16 01:19:14 +00:00
Gerald Combs 6b251c7219 Another attempt at axis scaling. Tweak the appearance a little.
svn path=/trunk/; revision=52093
2013-09-16 00:50:23 +00:00
Gerald Combs 98479b0b17 When caclulating throughput, only subtract what we've added. Try to fix
axis scaling.

svn path=/trunk/; revision=52092
2013-09-15 23:55:51 +00:00
Gerald Combs dd88e1ab26 Make sure the RTT behavior matches the GTK+ port. Make sure we properly
select a graph type.

svn path=/trunk/; revision=52083
2013-09-15 20:44:57 +00:00
Gerald Combs 7b03b59598 Mis-use error bars to draw segments.
svn path=/trunk/; revision=52029
2013-09-13 23:34:34 +00:00
Gerald Combs 7f92257af8 More TCP stream graph updates.
Scan our segment list (and the capture file) once per stream. Switch the
stream selection control to a QSpinBox. Add graph type selection
actions. The context menu + shortcuts should now be complete. Add the
intitial tcptrace graph. Only ACKs and RWINs so far. A bunch of other
updates and fixes.

svn path=/trunk/; revision=52027
2013-09-13 22:29:05 +00:00
Gerald Combs 1ad683594d Add a context menu to the TCP stream graph which includes all of our
keyboard shortcuts.

svn path=/trunk/; revision=51996
2013-09-12 23:46:56 +00:00
Jörg Mayer 2e9cd19c9c == has higher precedence than &
http://en.wikipedia.org/wiki/Operators_in_C_and_C++

svn path=/trunk/; revision=51990
2013-09-12 21:53:53 +00:00
Gerald Combs 07c3d057b8 Add previous/next stream navigation to the TCP stream graph dialog.
Add get_tcp_stream_count() to the TCP dissector and modify
graph_segment_list_get() to allow matching based solely on a stream.

Use text instead of icons for the mouse click behavior buttons. Remove
their PNG resources since we aren't using them any more. Fix setting the
cursor in the graph widget.

svn path=/trunk/; revision=51989
2013-09-12 21:37:47 +00:00
Gerald Combs 829c1ed25e Add the TCP window scaling graph. Add zoom selections.
Rename some methods. Add the ability to toggle time and sequence number
origins. Add more keyboard shortcuts. Comment out abs_secs abs_usecs in
the segment struct since it looks like we aren't using them. Make sure
we stay in the same TCP stream.

svn path=/trunk/; revision=51856
2013-09-09 01:40:06 +00:00
Evan Huus 720935ca04 Fix "seq_base could be used unitialized" warning. We should probably enable
-Werror for the qt code...

svn path=/trunk/; revision=51839
2013-09-08 15:05:08 +00:00
Gerald Combs abdac5bfac Add the TCP RTT graph.
Show the time values in ms instead of s. Add a button and keyboard
shortcut to switch the connection direction. Move more code to
tap-tcp-stream.c. Update our axis labels.

svn path=/trunk/; revision=51832
2013-09-08 01:25:27 +00:00
Gerald Combs 2dca89e7a3 Only add data points to the throughput graph if our time window has
advanced. Add a reset button.

svn path=/trunk/; revision=51811
2013-09-07 03:51:27 +00:00
Gerald Combs f9a9753d01 Fix PacketList::goToPacket work correctly. Minor screen graph
improvements.

svn path=/trunk/; revision=51808
2013-09-07 00:33:41 +00:00
Gerald Combs 297d1994f8 Switch from a 20 segment moving average to a 1 second MA. Add a #define
to allow switching back to the old behavior.

Note that goToPacket can jump to the wrong packet if we have a display
filter applied.

svn path=/trunk/; revision=51801
2013-09-06 19:07:57 +00:00
Gerald Combs df6f3412dd Adjust titles and labels.
svn path=/trunk/; revision=51797
2013-09-06 02:00:14 +00:00
Gerald Combs 29e03fe9d6 Make graph movement pixel-based to match the GTK+ version.
svn path=/trunk/; revision=51796
2013-09-06 00:48:21 +00:00
Gerald Combs 6003d3b2f6 Throughput graph usability updates.
Make the stream graph dialog modeless and let the user open multiple
instances. The dangling dialog behaves similar to the GTK+ version. Add
a setDissectedCaptureFile signal to MainWindow (currently unused).
Properly transform yAxis2 and simplify resetAxes while we're at it.
Other bug fixes.

svn path=/trunk/; revision=51795
2013-09-06 00:41:07 +00:00
Gerald Combs 03fd39d7f0 Throughput graph updates.
GTK+: Fix what appears to be an off-by-one error in the MA period (21
segments instead of 20). Throw away our initial segment length instead
of subtracting it from the moving sum, which skews the sum.

Qt: Add the througput graph. Use bits/s for the throughput y axis. Let
the user switch between graph types. The dialog hangs when doing this. I
haven't been able to track down the cause. Remove some unused code.

Both: Tell the user that we're using a 20 segment moving average. Move
more routines to tap-tcp-stream.[ch].

svn path=/trunk/; revision=51759
2013-09-04 23:15:59 +00:00
Gerald Combs 01f7a0425b Implement "Save As..." in the TCP stream graph dialog. We currently
support PDF, PNG, BMP, and JPEG.

svn path=/trunk/; revision=51607
2013-08-30 23:01:03 +00:00
Gerald Combs 1d27c70838 Add an item tracer to the TCP stream graph. Enable packet selection.
QCustomPlot data sets are made up of keys (x axis by default) and values
(y axis). It looks like we can have multiple values for a given key
(i.e. we can show multiple sequence numbers for a given timestamp) but
QCPItemTracers can only be positioned by a key and not a key+value pair.
This makes our graph selection behavior a bit different compared to the
GTK+ version. We can only select one segment for a give timestamp but
our selection targets are much larger (the height of the graph).

Add a map for segment data so we don't have to iterate to find them. Use
UTF8_RIGHTWARDS_ARROW where appropriate. Set a window title. Tell the
user what will happen if he or she clicks. Disable graph selection.

svn path=/trunk/; revision=51604
2013-08-30 21:15:24 +00:00
Gerald Combs 25392c73f4 Let the QCustomPlot widget have focus.
svn path=/trunk/; revision=51555
2013-08-28 00:23:01 +00:00
Gerald Combs 66b8223688 Add initial mouse and keyboard controls. QCustomPlot uses different
mouse interactions than the GTK+ version, but they seem to match modern
UI conventions better. The keyboard shortcuts have been changed to match
modern UI conventions as well, but I'll try to support the old shortcuts
as much as possible.

svn path=/trunk/; revision=51554
2013-08-27 23:28:35 +00:00
Gerald Combs 6d731a3e79 Add TCP sequence number (Stevens-style) graphs.
Add the QCustomPlot widget. Thanks to Emanuel Eichhammer for granting a
license change. Move some common code from ui/gtk/tcp_graph.c to
ui/tap-tcp-stream.[ch]. Get rid of tcp_graph_selected_packet_enabled().
It was only used in the menu code and didn't match what we were doing
elsewhere.

Still quite a bit of work to do but it's a promising start.

svn path=/trunk/; revision=51538
2013-08-27 18:13:20 +00:00