This file contains old feature requests and wishes for labplot1.x.
The following items will be adopted to the new code and implemented if they still make sense.
For items where it is clear that they need to be implemented in the near feature, consider creating a feature 
request ticket at the KDE bug tracker or Phabricator.

#####################
Planned Features:
	* multiple regions
		* shown/ not shown in print
		* with background color
	* mask matrix data
			* mask single points
			* check plotting from spreadsheet
			* 2d surface plot
			* mask data with mouse (maskPlot)
			* check mask in graphlist
	* data mode
		* jump in data point steps (configure steps)
			Worksheet::keyPressEvent()
		* select plot for data mode

GUI/Application:
****************
	* use/save predefined functions (in function dialog)
		* load from Origin projects
	* use QLabel::setBuddy() for accels
	* Spreadsheet
		* Selection like Kaleidagraph (Pascal)
		* format in spreadsheet	(show as ..., convert isodate->double, double->isodate, ....)
I/O:
****
	* reading multiple files from data dialog
		-> also "same x column"
	F support "indexed" matrix format
	* IMPORT/EXPORT
		* read date format "2000/12/24" ("Temperatur.dat")
		* ignore columns
		* multiple column files (NXY)	-> XYYYYY... / YYYYYYYY, X-index
		* progress when exporting data
		* only export selected data

drawing/ data manipulation:
***************************
	* Spreadsheet
		* Matrix operations on Spreadsheet: diagonalize, eigenvalues, invert, ...
	* any mathematical formula as baseline
	* move marker with mouse
	* image profiling (vertical/horizontal profiles)
	* Plots:
		* set drawing object relative to graph (fixed to axes)
		* sqrt/x^2 scales
			* data mode Plot.cc
			* maglens/mask/pan zoom (Worksheet.cc)
			* X/YCoordinate
			* partRanges
		* 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 %, ...)
		* 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))
		* ArrangePlotDialog:
			* size+pos for nr = 9,10,11,12,13,14,15,16
		* data over (structured-unstructured) meshes, like 
			the ones generated in finite element modeling, 2D and 3D.
		* support for 2D/3D indexed data		-> CRD/
			However, for aerodynamic visualisation I am looking for a program that can handle
			data in the 2D/3D index space. I am not so much interested in plotting
			math functions but data stemming from CFD grid generation and CFD
			solution. So my data is mostly looking like this:
			
			Two/three nested do loops would run over this index range
			I = 1 .. NI
			J= 1 .. NJ
			K=1 .. NK
			Reading such a list of variables
			X(I,J,K), Y(I,J,K), Z(I,J,K), CP(I,J,K), RHO(I,J,K), . and so on. 
	
			In such a way I can handle arbitrary surfaces and assigning each surface
			point a variable value for achieving contour plots e.g. However, I found
			out (please correct me if I am wrong) that data is handled in the
			physical space in LabPlot, only. The matrix data format makes it
			impossible to assign each special point additional scalar values.
	* 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.
		: overlay two plots (x-y1+x-y2) with same x-axis
		-> implement as QSA macro
	Axes 
		* axis tic label format:
			* the settings of the tics are quite complicated :
				* auoscale in axes dialog ?	-> change act range to active graph range ?
			* hexadecimal, binary (000 001 010 011 100 101 110 111)
			* degree (2:10'33'')
		* (fast) flip x-y graph
		* scales:
			* x^2	: -10..10 ?
			* new 1/x,1/x^2 scales
			* db axis scale (exp+log)
	* Ebenso fehlt die Zeichenbefehlen zum Gruppieren / Gruppe aufheben, eine 
		Zeichenebene nach oben / unten oder nach ganz oben oder unten verschieben
		Click + Ziehen um alle Elemente im aufgezogenen Bereich auszuwaehlen waere
		gut. (Dann Rechtsclickmenu zum Gruppieren anbieten.)
		V wenn man Textdaten, oder eine lange Zahl im Maus-Clipboard
			(x-Clipboard) hat, und sie in eine Zelle einfuegen will, dann klappt das 
			nicht direkt, sondern man muss die Zelle erst mit F2 oder Doppelclick in 
			den Text-Bearbeiten-Modus bringen. Intuitiv einfacher waere es, wenn die 
			Daten durch einen Mittelclick eingefuegt wuerden - und noch besser, wenn 
			diese Einfuegung auch Spaltenspruenge mittels "TAB" und Zeilenspruenge 
			mittels "CR" verstehen wuerde.
		V Wenn man einen Bereich kopiert, und dann in eine Zelle einfuegt,
				(wobei die Tabelle nicht bei bedarf nach rechts oder nach unten vergroessert wird.)
				* am besten waere es m.E. nach, wenn einfach stillschweigend die 
				Variante der automatisch vergroesserten auswahl passiert, wenn die 
				betroffenen zellen leer sind, und nur beim ueberschreiben anderer Daten 
				nachgefragt wird.
		O Die am rechten Rand ueberstehenden Daten werden trotzdem schon 
				versteckt eingefuegt (d.h. man kann sie normalerweise nicht loeschen) und 
				tauchen ploetzlich auf, wenn man von Hand neue Spalten einfuegt. - Es waere 
				besser, wenn diese Spalten gleich beim Einfuegen von Textdaten, die ueber 
				den rechten Rand hinausgehen automatisch erstellt wuerden.
		O Zum Kopieren und verschieben fehlt mir eine gute Tastaturnavigation 
			im Arbeitsblatt. (z.B. Crtl+Cursor - Analog zum springen zum Wortanfang, 
			oder zum naechsten Absatz: zum naechsten bzw. vorigen Wechsel zwischen 
			leeren und ausgefuellten Feldern springen. Crtl + PageDown: eine 
			Bildschirmbreite, oder auch ganz nach rechts im Worksheet. Crtl  + Pos1: 
			Nach ganz links oben springen. Crtl + Ende: nach ganz rechts unten (bzgl 
			der vorhandenen Daten, nicht der verfuegbaren Spalten) springen. Zum Ende 
			der Spalte Springen)
		* Neben dem Datei-Menue sollte ein echtes Edit-Menue stehen, mit dem man die 
		jeweiligen Objekte kopieren, ausschneiden, einfuegen oder loeschen kann, 
		ggf auch ein "Einfuegen als". (irgendwann auch falls sinnvoll: 
		"Wiederholen" eines Edits am aktuellen Objekt und "Rueckgaengig".)
		* In den Office-Tabellenkalkulationen kann man mit Tab separierten Text 
		direkt aus der Text-Zwischenablage mehrspaltig einfuegen und aussschneiden.
		Bei Doppeltabs werden dann auch mehrere spalten auf einmal uebersprungen. 
		(ich hoffe, es kommt in Form von Tabs an...)
		1    2    3    4
		1    2        4
		1    2    3    4
		1        3    4
		* Um bei LabPlot Text aus der Zwischenablage einzufuegen, muss man entweder 
		ueber das Menue gehen, oder die Zelle in den bearbeiten-Modus schalten 
		oder crtl+v druecken. Ein direktes Einfuegen mit der mittleren Maustaste 
		geht noch nicht. - Und einfaches Markieren zum Kopieren in das 
		Text-Clipboard geht auch noch nicht.
		Normarweise:
		crtl + "Einf"uegen  == Crtl + c == Kopieren ins Clipboard.
		shift + "Einf"uegen  == Crtl + v == Einfuegen aus Clipboard.
		shift + "Entf"ernen == Crtl + x  == Ausschneiden richtung Clipboard. 
		(zum Verschieben von Elementen, die danach mit Crtl+v wieder eingefuegt 
		werden).
		Die Kombinationen mit "Einf"uegen und "Entf"ernen versteht LabPlot nicht
		- koennten sie noch ergaenzt werden?
		* Es koennte noch etwas Keyboard-Navigation ergaenzt werden:
		Crtl + Cursor: Sprung zum naechsten Wechsel zwischen leeren und gefuellten 
		Zellen in Richtung des Cursors (um an das Ende des aktuellen Datenblocks 
		zu springen / bzw. zum beginn des naechsten Datenblocks.) - Wenn 
		gleichzeitig Shift gedrueckt wird, dann die aktuelle Markierung erweitern.

		Crtl + Bild-Ab : Eine Fensterbreite nach rechts
		Crtl + Bild-Auf: Eine Fensterbreite nach links.
		(bei gleichzeigigem Shift: Bereich zwische erster Position und letzter 
		erreichter Position markieren
	* extract feature (see grace)

ANALYSIS:
*********
	*  Analysis: approximation 
		In the analysis menu, there is "interpolation", but it
		is often desirable to have approximation instead.
		Smoothing is not an alternative to a solid
		approximation. A good approximation (for example, by an
		exponential spline) can also be the tool to create
		relatively noiseless derivatives - something currently
		lacking, as far as I see. 
	* 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
	* addon functions fresnel/tamu-anova/Whittaker+Rydberg ?
	* Statistics
		* 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.
		* TestsRListDialog :
			* more tests/ options
				* check stat12b.pdf
					* binom, chisq
				* check stat R package docu
			* AnovaRListDialog.cc
			* Survival Analysis
	* check out 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
	* Noise:  matrix / 3d plot / image
	* nonlinear fitting
		* guess initial parameters
		* Origin bietet auch die Moeglichkeit dass mehrere y-Spalten, die gefittet 
			werden gemeinsame Parameter ("shared") haben koennen. (z.B. mehrere 
			Messkurven, unter die man jeweils den gleichen untergrund fitten 
			moechte.) - 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 (?)
	* (de)convolution of two data sets:
		* use fftw/fftw3 too
		* use mixed radix fft 
		* 2D convolution (using 2d fft)
	U simplify fit equation:
		You insert 3 equations k1*x+y=2, y=k2*x^2+z, z=k3*x^.5+x^3
		So, in the end if you replace y and z in the first equation, youll have only
		one equation, and only one curve: k1*x+k2*x^2+k3*x^.5+x^3=2
		Origin has this feature to simplify the writing of very large equations.
	* smooth Savitzky-Golay (point-wise polynomial fit/ see Numerical Recipes)
	* image operations?
	* all selected graphs/cols?
