Warning, /education/kig/TODO is written in an unsupported language. File is not indexed.

0001 * bugs
0003 - There is a pretty strange bug in kig when you use the accel keys.
0004    Open Kig, type p to start constructing a point.  Click somewhere to
0005    construct one.  Now click p again, and press escape to cancel the
0006    construction.  It will not work, and you will have to construct as
0007    many points as times you pressed escape ( or perhaps the times you
0008    pressed esc square or sth like that ).  Anyway, this is due to how
0009    Kig works with some strange Qt event loop stuff to make its modes
0010    work, along with a strange way in kaccel of working.  I have a
0011    patch against kdecore/kaccel.cpp that should fix it, but the real
0012    fix is to get rid of the entire event loop stuff and think of a
0013    better way to manage all this. pino: seems pressing the stop button
0014    n times, where n are the times you pressed escape, cancel all the
0015    constructions, so the problem is the behaviour of escape.
0016    (note: it seems fixed with kdelibs4)
0018 - The polar coordinate system blocks Kig when zooming. Select the
0019   polar coordinate system, use the Select shown area tool ( or your
0020   favorite zooming tool ) and select a specific part of the document.
0021   Smaller parts of the document cause bigger problems. pino: this is
0022   due to the polar grid: try to make zoom if there is no grid.
0024 * I/O: filters, exporters, ...
0026 - add other command line options, like:<br />
0027   -e, --export-to FORMAT file.kig => Kig will export file.kig ( or any
0028   other supported format ) into file.ext ( even more than one file ).
0029   The output format depends on the FORMAT string. domi: this is more
0030   difficult, because the export plugins require extra parameters.
0031   E.g. the ImageExporter needs an image size etc.
0033 - filters: more input filters; improve the existent ones ( see
0034   filters/*-filter-status.txt ); add the possibility to ignore errors
0035   on loading
0037 - "export to *": add stuff like java applets, kmplot documents, etc...
0039 * objects
0041 - When intersection objects that generally have two intersection
0042   points (in particular: line-conic, circle-circle) let
0043   kig try to figure out if one of the intersections is already there
0044   (it must be an intersection "by construction" and not by chance),
0045   in which case build only the "other" intersection by using information
0046   from the already present point.  This would have two beneficial effects:
0047   1. decrease de amount of coincident points
0048   2. the constructed point will always be "the other" intersection
0049   also when moving objects around.  This is not the case now, which
0050   leads to unexpected behavious sometimes (from the user perspective)
0051   (done: 2006-01-19, post-kde-3.5)
0053 - Two new transformations: projection on a line, orthogonally and
0054   according to a given direction.  As a mathematician, I'm supposed to
0055   have a grudge against these, as they don't fit the definition for
0056   affine transformations ( the matrix has to be regular ) ;), but I
0057   suppose high-school students may find them useful.  However,they
0058   would give rather useless results for e.g. lines ( all curves are
0059   almost always projected on a line, segment or ray that you wouldn't
0060   see because it's equal to the line we project upon ).  It would be
0061   useful for points though.
0063 - make DoubleImp a "visible" object with uses like Dr. Geo numeric
0064   values. (done)
0066 - Provide some nice stuff for differential geometry: velocity vector
0067   of a curve, curvature vector, osculating parabole. Most of this is
0068   not too difficult to implement, but very cool :)  (mostly done)
0070 - create a formula label to display math formulas in the document, and
0071   allow for importing from/exporting to other formula formats such as
0072   KFormula, OOFormula and MathML.
0074 - other types of fillable shapes, like arc sector, arc segment...
0076 - defined integrals, as a particular case of filled shapes.
0078 - improve *a lot* the transformation support for cubics.
0080 * GUI
0082 - make stuff from RMB menu's accessible from other places as well.
0084 - Add the possibility to select, via new dialog, one or more types of
0085   object.
0087 - add a magnifying glass/zoom window to magnify "on-the-fly" a part of
0088   the document.
0090 - improve the KTextEditor interface in the script code wizard.
0092 - make the dialogs not pop up over the main window.
0094 - add QTooltip and QWhatsThis to the widgets in the various dialogs
0095   (export dialogs, types dialog, ...)
0097 * core
0099 - When selecting an argument of a certain type, maybe we should check
0100    whether the required arguments are really there, before telling the
0101    user to select them.  Then we could give an error telling the user
0102    to first construct the other objects.  An exception should be made
0103    for points of course.
0105 - add the possibility to transform more than one object at one time,
0106   using the popup menu. For example, I select two circles, I choose
0107   Transform->Translate form the RMB menu and then Kig should ask me for
0108   a vector to use to translate all the selected objects.
0110 - extend ObjectFactory::sensiblePointCalcer to also construct
0111    intersection points of stuff... (pino: done for lines)
0113 - when moving an object that wants to move its parents, try to check if
0114    it is itself not an indirect child of one of the parents it is
0115    trying to move, and forbid the move in that case, as it will lead
0116    to chaotic behaviour.  I am not sure if this is really well
0117    possible, but I have to look at it.
0119 - add intersection types: arc-arc; arc-conic; arc-cubic; conic-cubic;
0120   cubic-cubic; locus-other object.
0122 - rework the ObjectConstructor and GUIAction stuff into something more
0123    general, and more clean.  See the comment for
0124    ObjectConstructor::constructMode().
0126 - figure out a way to allow the user to enable and disable certain
0127   features.  E.g. I have been asked to allow the user to limit himself
0128   to compass-ruler constructions..
0130 - add another viewmode ( which would be completely orthogonal to the
0131   KigMode concept ), where you can more clearly see the dependencies
0132   in a figure.  Something with colours, numberings, and/or a tree-like
0133   text representation of the dependencies..
0135 * scripting
0137 - Python scripting: export cubics for real, improve existing API.
0139 - make the scripting system work more like the macro system. Make it
0140   a way to define new object types that can be reused more than once,
0141   instead of making it just a way to add *one* object.
0143 - support for more scripting languages than just Python.
0145 * other
0147 - document mathematical i18n strings, so that the translators have a
0148    clue about how to translate them !
0150 - add "Tools": easy tools designed for geometry, like Angle converter and
0151   so on...
0153 - save a "session", i.e.: record how a document is moved, and save it to
0154   e.g. a flash file or something like that.
0156 - koffice support ?
0158 * future ?
0160 - there should be a way to link a figure to a (html?) file containing
0161    exercises.  Teachers would be able to create exercises for Kig.
0162    I'm thinking of doing this with HTML (& KHTML) + scripting ( but
0163    this is _distant_ future.. )