TODO file of LabPlot:
*********************
#############################################################
JOBS	:
	* Tutorial :		  Paolo Bettotti
	* QSA reference : Madhusudan Singh
	* Translations :
		en/de	: Stefan Gerlach				English/Deutsch
		fr		: Pascal Pirotte					Fran&ccedil;ais
		sv		: Peter Landgren				Svenska
		it		: Gabriele Modena, Davide Setti	Italiano
		pl		: Monika Olasek				Polski
		ru		: <unmaintained>
		br		: Narcizo Marques				Portugu&ecirc;s-Brasileiro
#############################################################
Systems:		gcc		QT		KDE
	S 9.1	3.3.3	3.3.1	3.2.1
	S 9.2	3.3.4	3.3.3	3.3.0
	S 9.3	3.3.5		3.3.4	3.4.0
	RH9		3.2.2	3.1.1	3.1
	FC3		3.3.4	3.3.3	3.3.0
	FC4		4.0.0	3.3.4	3.4.0
	MDK10.0	3.3.2	3.2.3	3.2.0
	MDK10.1	3.4.1	3.3.3	3.2.3
	Slack10	3.3.4	3.3.2	3.2.3
#############################################################
BUGS:	(O-open, V-verified, N-not reproducable, F-feedback,A-analysed, C-closed, U-unsolved)
	---------------------------------------------------------------------------------------------------------------
	C SuSE 9.0 : text rotation crashes LabPlot (y-Axis) (see QT example "xform")
		=> use updated qt packages (single letters are still not rotated)
	C Slackware 10 + YOPER : CRASH : starting 1.4.X
		=> rename /usr/lib/qt/plugins
	C compile 1.4.0 on Gentoo : "/usr/lib/gcc-lib/i386-pc-linux-gnu/3.3.3/libstdc++.la: No such file or directory"
		=> make a link to /usr/lib/gcc-lib/i686-pc-linux-gnu
	C use "make -f Makefile.cvs" for correct icon installation
	C 3D plot : -> use QWT3D plot
		V mouse shifting of axis label is totally broken
		V range for box style not enough for boxes
		V tic label of axes are overlapping
		V looks bad from spreadsheet (3d.dat)  -> set line type to NoCurve
		V looks bad with masked points
		O use default style from 3d.dat too (symbol)
	U RH 9: ./.libs/libLabPlot.so: undefined reference to `__ctype_b' (kdelibs not compiled with system glibc 2.3.2)
		older RH 9 RPM crashes on glibc 2.3.2 systems
	C BUG : S 9.1 : switching full screen -> normal	-> press twice
	---------------------------------------------------------------------------------------------------------------
	V RH9 : CRASH on startup : -> /usr/lib/qt-3.1/plugins
	U opening from commandline : maximize doesn't work correct	=> resize after opening
	U print preview : "qDrawShadePanel() Invalid parameters."	=> ignore it
	U draw brush in legend of surface plot ( legend uses drawLine for every color : brush not possible ! )
	U KImageIO:: export to eps 	-> no settings (color,format, size) ?? (Worksheet::Export())
	U "Warning: Linking the executable LabPlot against the loadable module libLabPlot.so is not portable!"
	U Spreadsheet:table : TAB -> next row, move with arrows doesnt work
	U setting colum label of column > 0 in QTable doesnt work (SuSE 9.1/QT 3.3.1) (ImportDialog)
	U file info of binary data is taken by ImageMagick (FileInfoDialog.cc:77)
	U unable to create eps files with correct text (useful for psfrag)
	U SVG export : 
		* date+drawCurves+legend are one element
		* does not crop anything. (export sin(x) 0..10 in range 5..10 to svg)
	U Simple/Surface Style tab in Configure dialog wont resize correct
	U save polish label not correct
	U more regressions : log, exp, sqrt, -> see xmgrace : a*x^b, a*exp(b*x), a+b*ln(x), 1/(a+b*x)
	U curves are angular when exported to eps, pdf
		by the way, the stuff with the eps/pdf export, I have a feeling that it is related to the 
		qt libraries. I found it the same also in kst, and qti, etc.. it seems like qt is not using 
		antialiasing..or maybe I am totally wrong!
	U QWT3D : data in log scale not scaled
	U QWT3D : export to ps/eps/pdf -> printer problem dialog "Skip"
	U masking in spreadsheet : values not shown if column is to small -> Clipping reused !!!
	U FC 4/S9.3 (KDE 3.4.0 ) : fullScreen item duplicated
	---------------------------------------------------------------------------------------------------------------
	F import file foo.dat problems (mixed ' ' & , separation)
	N Printing issues	: Labplot tends to choose US Legal and A5 paper sizes erratically 
		even after saving US Letter as the format of choice.
	N FC 4	: Extension(const LabPlotBrowserExtension&)
		LabPlotPart.h:34: error:                
		LabPlotBrowserExtension::LabPlotBrowserExtension()
		make[2]: *** [LabPlotPart.lo] Error 1
		make[2]: Leaving directory `/tmp/fedora/BUILD/LabPlot-1.5.0.rc2/src'
		error: Bad exit status from /var/tmp/rpm-tmp.25291 (%build)
	N QComboBox problem on FC 3 (KDE 3.4)
		import of 2d.dat :	(KComboBox in importWidget problem ?)
		> > QComboBox::text: (unnamed) Index 0 out of range
	---------------------------------------------------------------------------------------------------------------
##################################################################
LabPlot 1.5.1
*************
	X FilterListDialog		: test	, other graph types
	X CorrelationListDialog	: test + add cross correlation (2 graphs), other graph types
	X NoiseListDialog		: test, other graph types

	* I'd like to be able to show graphs from different tables in a single plot. 
		So when I double click the graph, I simply choose which columns from which table I add.
		-> Button "ADD Graphs"	-> Dialog with all available graphs listed (multiple selection possible)
	* It would be really helpful if I could select to only import the y columns of each file plus 
		if the data could be stored in new columns of a(n existing) table.
		-> select spreadsheet and columns to import in import dialog ?
	* I too would love to have a Microcal Origin style plot definition method. You 
		select which column is set to x, which to y1, which to y2, and its done.
	* I wish to create a panel plot from a bunch of plots I created in separate 
		worksheets. How do I go about this ? I opened a new worksheet, expecting that 
		I can somehow copy and paste the other worksheet contents into it, but was 
		unable to find anything enabled that seemed relevant. How does one do this ?
	* A simple way to create x-y1-y2 plots where axes y1 and y2 are very different from 
		each other, with independent scaling on each axis.
		-> implement as QSA macro ?
	* fast creating plot with multiple y axes
		* remember selected destination in spreadsheet
		* generic plot dialog : type/x-column/y-columns ?
		* wizard for plot ?
		* add graphs from all spreadsheets to graph list of a plot ?

> 1. use the selected destination in one spreadsheet as default for all
> spreadsheets. This helps in the case you want to plot from different
> spreadsheets in one plot. 
> 2. add a generic plot dialog to a spreadsheet to
> select the type of plot and the x/y columns from any spreadsheet.
> 3. add a plot wizard to the main window that ask for the plot type and data
> columns (from any spreadsheet) to use and creates a plot.
> 4. extend the graph list dialog of a plot to optional add graphs from other
> plots or spreadsheets.
I think choice 4 might be the best way to go, though choice 3 is also quite 
good (provided the wizard can detect the activated worksheet - imagine a 
multiple worksheet situation). We also need to think about what happens if 
future functionality in LabPlot permits copying and pasting plots from one 
worksheet to the other. In that case, choice 4 would suggest itself. Its also 
the most contextually logical choice since the choice of data source and o/p 
columns (x, y1,y2) affect the plot appearance, and nothing but the plot 
appearance.

	* I'd like LabPlot to offer an input for constant increment for the ticks, 
		so I simply enter 20 as an increment, independent of the range.
	* export to LaTeX and xfig format
	O reading multiple files from data dialog
	* At the moment you have to specify each time that you want to apply the action on worksheet 	
		window, beacause the default is spreadsheet (I hope to have explain 
		clearly the problem: essentially apply the function to the active window).
	* 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).	
	* arrange plots side on side ( arrange plots axes to axes |1|2|3|4|, etc.)
	* import multiple files only y column / x column from first file into one spreadsheet
	* "1.234D-002" not known	-> read FORTRAN values
	* improve QWT3D
		* more analysis functions
		V QWT3D : rescaled if mouse disabled
		V QWT3D : zoom doesn't work
		V QWT3D : change graph -> style tab not good
		V QWT3D : moving legend+title doesn't work	
	* Scripting :
		* dump dialog
		* import multiple datafiles ?	(importData("1.dat 2.dat"))	-> split argument ?
	* use context menu in worksheet ?
		* what for? (analysis, appearance, drawing, etc.)
	* show available memory (see kst)
	* Probably you have added what I meant in Labplot 1.5.0., but it is something 
	like to have an option in the Plot menu: New graph. When you choose it some 
	questions should be answered: type of graph? (XY, XYZ, ...); worksheet where 
	the graph will be added?(existing ones or new); plot where the graph will be 
	added?(existing ones ore new); spreadsheet to contain XY data? (if XY graph); 
	column for X data?; column for Y data?
	Of course it is interesting to have some other fast way to create a graph, but 
	I find this way really versatile and it would include all the possibilies 
	commented above.
		-> Data Wizard ?
	* fill between range
		* Range::type : x-range, y-range
		* only fill range under curve
	* improve Explorer
		* delete items
		* clone graphs/plots
		* copy/move graphs between plots / plots between worksheets
	* improve bar charts (stacked, horizontal, ... )	-> see notes
		* each box another color	-> Style::autocolor (good also for Symbols)
		* grouped data	: a1b1c1d1,a2b2c2d2,...	+legend
		* stacked data : a1b1c1,a2b2c2 + legend
	* sqrt/x scales
		* data mode Plot.cc
		* maglens/mask/pan zoom (Worksheet.cc)
		* X/YCoordinate
		* partRanges
	* change font in legend
	I was wondering if you could include some switched in the text which would allow change 
	of fonts in between texts (something like {\font Font1} 1 {\font Font2} m {\font Font1} m).
		-> check usage of rich text for legend
	* configure LabPlot (ConfigureDialog)
			* default axis settings : main/tics/grid+border
			* default graph settings : parameter/annotate value
			* default worksheet settings
			* default plot settings
			* number of recent files
			(* save data in project as link (yes/no))
			(* open new Plot in active Worksheet or in new Worksheet)
	* import OriginLab Origin projects (*.opj)
		* column format (X,Y,Z,...)
			* column types from spread 2,3,...
			* 7.0 : Layer + cols A,B,C, ... type of spread 1,2,3,...
			* CRASH : handle field length of label type correct (50 bytes not 10 bytes per entry)
		* use spreadsheet header ?
		* graphs (link to data !)
	* Plot2DXY1Y2 ?
	* scilab interoperation ?
	* wenn man LabPlot eigenstndig verwenden will, wre eine 
	Aktualisierungsroutine (zeitgesteuert oder bei nderung der externen Daten) 
	sinnvoll.
	* bei dem 3D Plot wrde mir z.B. die Mglichkeit der Farb- oder 
	Radiusnderungen der einzelnen Kugelobjekte sehr helfen (wiederum aktualisierbar).

misc:
	SAVE/OPEN :	version 22
		* masking in spreadsheet ?
		* save data file externally ? (separate from project file)
	* www
		* KexiDB link ?
	* documentation: 
		* Scripting / Tutorial
	* improve LabPlot API
		* add more "WhatsThis" infos
		* doxygen documentation
		* better KPart/Koffice Part/Kexi
		* example programs ?	(link to libLabPlot.so, etc.)
#############################################################

GUI/Application:
****************
	* UNDO/REDO function	-> Scripting ?
	* browse on the fly (Daniel)
	* 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, ...)
	* use more QSA :
		* MainWin : print, ... -> KPrintDialog
		* Project info dialog, ...
		* check all settings
			* settings dialogs (title,legend,axes dialog)
			* worksheet dialog, plot dialog
		(* define analysis plugins)
		(* define fit functions)
		( undo/redo function)
		* ...
	* 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
	* seperate data file from project file
		* saving a data file name in a project file instead of the data itself (hotlink data)
	* IMPORT/EXPORT
		* 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
			* matlab, maple, mathematica ?
		* real time data import
	* import project files ?
		* grace, kst, kpl, qtiplot
		* sigmaplot, kaleidagraph, flexpro,axum,igor, ...

drawing/ data manipulation :
****************************
	* 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
	* mask matrix data :
			* Matrix::masked ??? : double -> Value(double v, bool masked)
			* plot from spreadsheet
			* 2d surface plot
			* mask data with mouse (maskPlot)
			* mask in graphlist
	* move marker with mouse
	* image profiling (vertical/horizontal profiles)
	* audio file data editing like normal audio programs	-> Analysis
		* fade in / fade out
		* ...
	* Plots :
		* set drawing object relative to graph (fixed to axes)
		* axis position (left,center,right)
		* 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
		* 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.
		* Surface plot :
			* filled contour plot
			* contour label
			* new NCAR Plot ? (see c_cbex01.c example)
				-> produce gmeta, "ctrans -d sgi gmeta >gmeta.sgi", read sgi file
				* third type : vector field plot, windbarbs
					* data format ?
			* test more than 1 graph
			* reading x-y-z data	(gyrodata.dat)
			* scaled values (z-Axis)
				* logarithmic z-axis ? (legend)
				(contour lines 1e0,1e1,1e2,1e3 )
			* 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 label
			* segment legend
			* brush
			* scale pie % with plot
			* legend (1 - 12 %, 2 - 27 %,...)
			* round % (using precision ?)
			* tic label gap/rotation
		* 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 :
				* tics only @ even numbers (range 0.5..4.5 : 1,2,3,4) ?
				* 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 find, local max/min, etc.)
		* 2D histogram
			* graph3d	 -> read 2d transform
		* convolution 
			*use fftw / fftw3
			* 2D convolution (using 2d fft)
		* mask : average, smooth, compress, period, season, prune, hist, peak, diff, fft, interpol, convol, wavlet, hankel
		* from spreadsheet : peak, regression, fit, fft, convolution, wavelet
		* GraphM : period, seasonal, prune, peak, diff, int, interpol
		* tests (statistics) [use a library ?]
		* KST plugins :
			* periodigram (720 lines)
			* cross spectrum (150+3500 lines)
		* FFT
			* inverse ( gsl_fft_complex_inverse/ fftw REDFT00,RODFT00, etc.)
			* data window
			// halflen (all values)
			// amp_correction
		* nonlinear fitting
			* guess initial parameters
		* differences		(dy(x))
			* use gsl numeric differences
		* integrate
			* gsl numerical integration
			* weighted ?
			* use the correct function if available	(checkbox) -> undefinite integral (?)
		* histogram :
			* 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