* bugs - There is a pretty strange bug in kig when you use the accel keys. Open Kig, type p to start constructing a point. Click somewhere to construct one. Now click p again, and press escape to cancel the construction. It will not work, and you will have to construct as many points as times you pressed escape ( or perhaps the times you pressed esc square or sth like that ). Anyway, this is due to how Kig works with some strange Qt event loop stuff to make its modes work, along with a strange way in tdeaccel of working. I have a patch against tdecore/tdeaccel.cpp that should fix it, but the real fix is to get rid of the entire event loop stuff and think of a better way to manage all this. pino: seems pressing the stop button n times, where n are the times you pressed escape, cancel all the constructions, so the problem is the behaviour of escape. - The polar coordinate system blocks Kig when zooming. Select the polar coordinate system, use the Select shown area tool ( or your favorite zooming tool ) and select a specific part of the document. Smaller parts of the document cause bigger problems. pino: this is due to the polar grid: try to make zoom if there is no grid. * I/O: filters, exporters, ... - add other command line options, like:<br /> -e, --export-to FORMAT file.kig => Kig will export file.kig ( or any other supported format ) into file.ext ( even more than one file ). The output format depends on the FORMAT string. domi: this is more difficult, because the export plugins require extra parameters. E.g. the ImageExporter needs an image size etc. - filters: more input filters; improve the existent ones ( see filters/*-filter-status.txt ); add the possibility to ignore errors on loading - "export to *": add stuff like java applets, kmplot documents, etc... * objects - Two new transformations: projection on a line, orthogonally and according to a given direction. As a mathematician, I'm supposed to have a grudge against these, as they don't fit the definition for affine transformations ( the matrix has to be regular ) ;), but I suppose high-school students may find them useful. However,they would give rather useless results for e.g. lines ( all curves are almost always projected on a line, segment or ray that you wouldn't see because it's equal to the line we project upon ). It would be useful for points though. - make DoubleImp a "visible" object with uses like Dr. Geo numeric values. - Provide some nice stuff for differential geometry: velocity vector of a curve, curvature vector, osculating parabole. Most of this is not too difficult to implement, but very cool :) - create a formula label to display math formulas in the document, and allow for importing from/exporting to other formula formats such as KFormula, OOFormula and MathML. - other types of fillable shapes, like arc sector, arc segment... - defined integrals, as a particular case of filled shapes. - improve *a lot* the transformation support for cubics. * GUI - make stuff from RMB menu's accessible from other places as well. - Add the possibility to select, via new dialog, one or more types of object. - add a magnifying glass/zoom window to magnify "on-the-fly" a part of the document. - improve the KTextEditor interface in the script code wizard. - make the dialogs not pop up over the main window. - add QTooltip and QWhatsThis to the widgets in the various dialogs (export dialogs, types dialog, ...) * core - When selecting an argument of a certain type, maybe we should check whether the required arguments are really there, before telling the user to select them. Then we could give an error telling the user to first construct the other objects. An exception should be made for points of course. - Add the possibility to attach text label also to angles. - add the possibility to transform more than one object at one time, using the popup menu. For example, I select two circles, I choose Transform->Translate form the RMB menu and then Kig should ask me for a vector to use to translate all the selected objects. - add support for work with other measure units (cm, inches, etc...) than just pixels... - extend ObjectFactory::sensiblePointCalcer to also construct intersection points of stuff... (pino: done for lines) - when moving an object that wants to move its parents, try to check if it is itself not an indirect child of one of the parents it is trying to move, and forbid the move in that case, as it will lead to chaotic behaviour. I am not sure if this is really well possible, but I have to look at it. - add intersection types: arc-arc; arc-conic; arc-cubic; conic-cubic; cubic-cubic; locus-other object. - rework the ObjectConstructor and GUIAction stuff into something more general, and more clean. See the comment for ObjectConstructor::constructMode(). - figure out a way to allow the user to enable and disable certain features. E.g. I have been asked to allow the user to limit himself to compass-ruler constructions.. - add another viewmode ( which would be completely orthogonal to the KigMode concept ), where you can more clearly see the dependencies in a figure. Something with colours, numberings, and/or a tree-like text representation of the dependencies.. * scripting - Python scripting: export cubics for real, improve existing API. - make the scripting system work more like the macro system. Make it a way to define new object types that can be reused more than once, instead of making it just a way to add *one* object. - support for more scripting languages than just Python. * other - document mathematical i18n strings, so that the translators have a clue about how to translate them ! - write cabri-filter-status.txt. - add "Tools": easy tools designed for geometry, like Angle converter and so on... - save a "session", i.e.: record how a document is moved, and save it to e.g. a flash file or something like that. - koffice support ? * future ? - there should be a way to link a figure to a (html?) file containing exercises. Teachers would be able to create exercises for Kig. I'm thinking of doing this with HTML (& TDEHTML) + scripting ( but this is _distant_ future.. )