Gwave is an analog waveform viewer which is used to view the output files produced by ngspice or gnucap. Here are some feature suggestions. You might choose a large handful of features to implement as your GSoC project.
gEDA integration
This project involves improving the integration of gwave into the
interprocess-communication to and from the other tools, especialy gschem
and gnucap. While gwave has an X11-based remote mechanism, Dbus is now the
standard, and should probably be used instead.
Developing unit tests for GTK+-2.0
Gwave has been ported to Gtk2. As part of this effort, developing a battery of unit tests for gwave would be useful. The idea is to create a variety of different input files which exercise gwave's ability to import and display waveforms. An important feature for testing will be to compare the displayed waveform against a “golden” waveform to verify rendering correctness.
User Interface
Replace the existing variable-list with a tree-style variable-selector. allow multiple ways of organizing the tree: file/sweep/variable vs. file/variable/sweep, extract circuit heirarchy from variable names, etc. Perhaps a two-pane tree browser, with the internal nodes of the tree in one pane, and the leaf nodes (variables that can be displayed) in another.
Add icons to the toolbar elements
Enhance use of Gtk2.0 file chooser: wildcards for selecting particular types of files,
Accept drag-and-drop from a file manager to add files, run scripts
Allow drag-and-drop from one wavepanel to another to move wave
Remember/restore the position of the windows, both most-recent-session, and also save it in the scripts.
Add keybinding mechanism
An undo stack for operations that change the view
Add a guile console window, where expressions can be typed to query/manipulate/debug gwave objects and variable data.
Data visualization and analysis
Draw a real graticule in wave panels, including a grid of faint/dotted lines and numeric scales
Add ability to customize measurements
Add additional drawing styles: dotted/dashed lines, symbols showing actual datapoints,
Add user-configurable colors
waveform calculations (Requires some of the infrastructure work below)
display-functions of a single wavevar and scalars
display-functions of wavevars sharing the same independent var
more general stuff that computes a new wavevar
Additional types of wavepanels for different types of viewing/analsis. (best done after refactoring the wavepanel UI elements into a class heirarchy of proper Gtk widgets)
Datafile/Variable Infrastructure
Other infrastructure