LabPlot WISHLIST:
#################

GUI/Application:
****************
	* use QLabel::setBuddy() for accels
	* Q_CHECK_PTR() for all pointer ?
	* browse on the fly (Daniel)
	* remove included audiofile/ ?
	* configure :
		(* save data in project as link (yes/no))
		(* open new Plot in active Worksheet or in new Worksheet)
		* graphs (link to data !)
	* Spreadsheet
		* Selection like Kaleidagraph (Pascal)
		* format in spreadsheet	(show as ..., convert isodate->double, double->isodate, ....)
		U mark column if right clicked on header
			-> too complicated
	U speed/memory optimization :
		U LTable	: QString **data  or double **data ?
			* import data
			* (see Roberts mail (AirLineFit))
			old : >5min, 395M  new : 1:03 min, 102M
			* fill random/row number
			* check all functions !
	* get the index of the double clicked object (for object dialog list index)
	* nicer dialogs
		* exclusive buttongroups (enable/disable) when needed
		* completion of line edits (filename)	: use KDECompletion ? (filename, ...)
	* include kghostview menus and toolbars, etc. in print preview (see kgv_part.rc)
		-> how to delete gv part gui elements ?
	* use STL contructs for some critical objects (see C++-Unleashed & SGI docu)
	* animations
I/O:
****
	* GraphIMAGE : 
		(* hdf5-1.6.1 (h5utils-1.9), more image formats ? (see xv, tnimage, gimp) )
		(* use KImageIO::pattern	(filter for all image files when opening) )
		(* ImageDialog : add more methods (see ImageListDialog.cc) )
	* GRAPH2DL, GRAPH3DL
		-> x-y-label, x-y-z-label
		* use for pie plot segment label, 2d annotate label
	* set cbi->currentItem with re-read data dialog
	* reading multiple files from data dialog
		-> also "same x column"
	* seperate data file from project file
		* saving a data file name in a project file instead of the data itself (hotlink data)
	* IMPORT/EXPORT
		* "1.234D-002" not known	-> read FORTRAN data
		* import PostgreSQL connection
			* fix import problems :
			> When I try to import data from the DB, I open the import dialog
			> and select the "PostgreSQL, mySQL, etc" filter. I then select
			> the PostgreSQL driver, add the neccessary connection information
			> (hostname, username, password) and LabPlot indeed shows all
			> databases installed on this DB server. I then select the database
			> I'm interested in and LabPlot shows a dialog to select the
			> table - but the list of tables is empty so I can not select the
			> table containig my measurement values!
			> In the PostgreSQL logs I see the following messages related to this:
			>
			> [...]
			> ERROR:  relation "kexi__db" does not exist
			> ERROR:  relation "kexi__objects" does not exist
			> [...]
			a) Possibility to "connect" LabPlot to a free hand database
			~   query like
			
			~   SELECT ts AS x, pv AS y
			~     FROM t_mv
			~    WHERE zr=502 AND ts BETWEEN '2005-06-01 00:00:00'
			~                            AND '2005-06-02 00:00:00';
			
			b) Possibility to store the query (not the data) inside the
			~   LabPlot project ("by reference"). That way it would be
			~   possible to get any updated data very easily and the project
			~   file would be quite small even for large datasets. Of course
			~   it should also be possible to store the dataset "by value"
			
			c) Possibility to assign properties to the columns returned
			~   by the database query (like axis, domain, etc.). It would
			~   also be nice if LabPlot could automatically determine those
			~   properties in a more or less intelligent way from the database
			~   metadata.
			
			d) Support for advanced features like SQL arrays. If column
			~   pv of paragraph a) was an array, this would automatically
			~   lead to a 3-dimensional dataset (ts=x, row in the array=y,
			~   value of each element in the array=z)
			
			e) Possibility to connect some of the where clauses of the
			~   query to a list of elements, possibly connected to some
			~   other table in the database, and let the user iterate
			~   through the list. That would add just another dimension
			~   to the evaluations.
		* read date format "2000/12/24" ("Temperatur.dat")
		U import/export data to/from openoffice/kspread formats : filter ?
		* ignore columns
		* multiple column files (NXY)	-> XYYYYY... / YYYYYYYY, X-index
		* read/dump matrix data from/to netcdf/cdf (also images)
		* progress when exporting data
		* only export selected region
		* export to audio
			* option : 8/16 bit
			* option : sample format
		* binary data	:
			* Filter "LeCroy binary" -> too complicated
			* "HP binary"
		* other data file support -> examples/fileformats/
			* piolib, boomerang and blast (see kst)
			* zip, rar,... compressed data
	* import project files ?
		* grace, kst, kpl, qtiplot
		* sigmaplot, kaleidagraph, flexpro, axum, igor, ...

drawing/ data manipulation :
*******************************
	* use GMP for higher precision floating point numbers
	* better handle discontinuities [-2:2] (x*exp(x/(x*x-1)))
	* Symbols
		* more symbols : N types (...)
		* more fills : 16 types (center, corner,...)
		* character as symbols
		* opaque symbols
		* (x/y/x,y) values as symbol
	* move marker with mouse
	* image profiling (vertical/horizontal profiles)
	* audio file data editing like normal audio programs	-> Analysis
		* fade in / fade out
		* ...
	* Spreadsheet
		* a function that generate a sequence of number in a specific column 
		(if you know excel: you can write 1 2 3 in a column and then drag & drop to extend the sequence).
	* Plots :
		* set drawing object relative to graph (fixed to axes)
		* axis position (left,center,right)
		* sqrt/x scales
			* data mode Plot.cc
			* maglens/mask/pan zoom (Worksheet.cc)
			* X/YCoordinate
			* partRanges
		* period or comma as decimal point (configure LabPlot)
		* broken axes
		* gradient plot / graph background, fill
			-> use QBrush of Qt 4.0 ?
		* zoom-plot (extra plot as zoom of another plot)
		* legend  :
			* background
			* multiline label
		* annotated values :
			* use own format and rounding (see axes settings)
			* rotation
			* size, color, font
		* handle log axis errorbar problems (y=1,dy=2, etc. )
		* place legend automatical in a corner
		* Surface plot :
			* reading x-y-z data	(gyrodata.dat)
			* scaled values (z-Axis)
				* logarithmic z-axis ? (legend)
				(contour lines 1e0,1e1,1e2,1e3 )
			* relative colorscale used ?
			* select range to draw (dont draw other pixel)
			* filled contour plot
			* contour label
			* third type : vector field plot, windbarbs	-> data format ?
			* test more than 1 graph
			* read date/time matrix
			* improve  legend (0..1)
				* KGradientSelector
				* rbg vs hsv
		* QWT3D plot :
			F Surface/QWT plot :
				* dens_indizes : 24x24x40 ?
				* test dens_3d_in_one_row (after convert to matrix : howto ? )
				* test irregular X-Y-Z data : data points ? / mesh grid ?
			* legend box undefined (used for legend.inside() !)
			* use Qwt3D::USERSCALE for log2,ln,sqrt ?
			* use settings from style tab
			* custom plotstyle (boxes, etc.)
			* vector plot
			* speed mode
			U base line ?
			U show/hide (works with two graphs !)
			U title : boxed, rotation, (richtext : greek, sub, super (?))
			U legend: boxed, (minors, majors), tic font
			U axes :
				* fix log scale range
				*log2/e/sqrt scale / range, scaling, shift
				* label : boxed, rotation, gap (position) to axis
				* richtext label(?) : color, greek, sub/super
				* tics label format, precision, rotation, pre+suf, color, pos(in/out)
				* grid style, color for every axis, width
			U open dialogs with mouse double click
				-> see qtiplot	 graph3D.cpp eventFilter
					-> QWidget ?, mouse double click ?
			U use actions toolbar : mag, pan, data, mask
			U multiple graphs
				U add function/data in qwt3d graphlist
			U x-y-z data : not only points style : howto ?
			U analysis functions (result ?)
			U support errorbars (error plot ?)
			U zoom in 3d data
			U drawing objects (after freeze plot)
			U multiplot with qwt3d plot (Plot::savePixmap() ???)
				-> qwt 0.3.0 ?
		* 3D plot :-> better use QWT3D plot
			* x+sqrt scales
			* y axes tic scale + rounding bug
			* 3D error plots :
				* DataDialog : "x-y-z-dz" (GRAPH4D : 3D error)
				* plot in Plot3D.cc
			* baseline 3d
			* xy-region for 3d integration, fit, etc.
			* convert 3d type to matrix (NX=64 & NY=1 -> NX=NY=8)
			* connect type 3d data points in 3d plot
			* 3d data -> set nx, ny
			* 3d matrix display : use nx and ny
			* correct boxes style
				* change x,y actranges (not ranges !)
			* known 3D bugs
			* fill with colors (z-value,colorscale), contour (new style type ?)
			* transparent filling (no hidden3d)
		* Pie plot :
			* explode segments
			* segment legend
			* brush
			* scale pie % with plot
			* round % (using precision ?)
			* tic label format, rotation
			* axes dialog : from 0..1 (disable) ?
			* make a legend from all points (1 - 12 %, 2 - 27 %, ...)
		* Polar plot :
			* coordinates
			* plot minor tics, minor grid
			* tic label gap/rotation
			* tic width/grid/border properties
			(* axes scale )
		* Ternary Plot :
			* coordinates
			* tic label precision + format
			* 3 custom axes label
			* tic label gap
			* tic width/grid/border properties
			(* draw minor tics, grid)
			(* use axis scale)
		* More plot types :
			* support waterfall plot (see matlab)
			* Pie3D plot
			* Polar3D plot	(r,theta,phi)
			* xy chart (xmgrace)
			* smith plot
			* implicit plot (x+2*y=1)
			* space curve (sin(t),t=0..10) (cylindrical coordinates r,phi,z)
			* rose plot (polar histogram)	[-> wind directions]
			* polar contour
		* support x=f(y) plots (f(x)=sin(y))
	Axes :
		* axis tic label format :
			* the settings of the tics are quite complicated :
				* auoscale in axes dialog ?	-> change act range to active graph range ?
			* PI (0,PI,2PI)
			* hexadecimal, binary (000 001 010 011 100 101 110 111)
			* degree (210'33'')
		* (fast) flip x-y graph
		* scales :
			* x	: -10..10 ?
			* new 1/x,1/x scales
			* db axis scale (exp+log)
		* grid, ticks and numbers : in or out of plotarea
		* minor tic label for log scale (?)
	* extract feature (see grace)

ANALYSIS :
***********
		* curve discussion (root finding (GSL), local max/min, etc.)
		* 2D histogram
			* graph3d	 -> read 2d transform
		* mask : average, smooth, compress, period, season, prune, hist, peak, diff, fft, interpol, convol, wavlet, hankel
		* from spreadsheet : peak, regression, fft, convolution, wavelet
		* GraphM : period, seasonal, prune, peak, diff, int, interpol
		* Statistics
			* t-Test/f-Test
			* Box & Whisker plot
				* support box plots : F Can Labplot make boxed 2d plots? Like origin in win or kpl in linux?
				I did not found this options in axes. If it is so, could you add this options in next version?
				In scientific word such plots are always preferable.
			* use a statistics library ?
		* check out KST plugins :
			* periodigram (720 lines)
			* cross spectrum (150+3500 lines)
		* Convolution 
			* use fftw / fftw3
			* 2D convolution (using 2d fft)
		* Regression
			U log, exp, sqrt, -> see xmgrace : a*x^b, a*exp(b*x), a+b*ln(x), 1/(a+b*x)
		* FFT
			* inverse ( gsl_fft_complex_inverse/ fftw REDFT00,RODFT00, etc.)
			* data window
			// halflen (all values)
			// amp_correction
		* Noise :  matrix / 3d plot / image
		* nonlinear fitting
			* guess initial parameters
			* Origin bietet auch die Mglichkeit dass mehrere y-Spalten, die gefittet 
				werden gemeinsame Parameter ("shared") haben knnen. (z.B. mehrere 
				Messkurven, unter die man jeweils den gleichen untergrund fitten 
				mchte.) - damit lassen sich im Prinzip die statistischen Fehler 
				verringern. - Wie das allerdings im Algorithmus erreicht wird, weiss ich 
				nicht. - Siehe Screenshot. "Origin-Fitting1.jpg"
		* differences		(dy(x))
			* use gsl numeric differences
		* integrate
			* gsl numerical integration
			* weighted ?
			* use the correct function if available	(checkbox) -> undefinite integral (?)
		* histogram :
			* logarithmic bins (see GSL docu)
			* weighted	: gsl_histogram_accumulate (h,x,weight)
				-> weight what ?
		* (de)convolution of two data sets
			* use fftw too
			* use mixed radix fft 
		* smooth Savitzky-Golay (point-wise polynomial fit/ see Numerical Recipes)
		* image operations ?
		* all selected graphs/cols ?
	misc :
		* world/viewport coordinates
			* range from 2..4 in graph
		* select range by mouse
