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

0001 * bugs
0002 
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)
0017 
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.
0023 
0024 * I/O: filters, exporters, ...
0025 
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.
0032 
0033 - filters: more input filters; improve the existent ones ( see
0034   filters/*-filter-status.txt ); add the possibility to ignore errors
0035   on loading
0036 
0037 - "export to *": add stuff like java applets, kmplot documents, etc...
0038 
0039 * objects
0040 
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)
0052 
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.
0062 
0063 - make DoubleImp a "visible" object with uses like Dr. Geo numeric
0064   values. (done)
0065 
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)
0069 
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.
0073 
0074 - other types of fillable shapes, like arc sector, arc segment...
0075 
0076 - defined integrals, as a particular case of filled shapes.
0077 
0078 - improve *a lot* the transformation support for cubics.
0079 
0080 * GUI
0081 
0082 - make stuff from RMB menu's accessible from other places as well.
0083 
0084 - Add the possibility to select, via new dialog, one or more types of
0085   object.
0086 
0087 - add a magnifying glass/zoom window to magnify "on-the-fly" a part of
0088   the document.
0089 
0090 - improve the KTextEditor interface in the script code wizard.
0091 
0092 - make the dialogs not pop up over the main window.
0093 
0094 - add QTooltip and QWhatsThis to the widgets in the various dialogs
0095   (export dialogs, types dialog, ...)
0096 
0097 * core
0098 
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.
0104 
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.
0109 
0110 - extend ObjectFactory::sensiblePointCalcer to also construct
0111    intersection points of stuff... (pino: done for lines)
0112 
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.
0118 
0119 - add intersection types: arc-arc; arc-conic; arc-cubic; conic-cubic;
0120   cubic-cubic; locus-other object.
0121 
0122 - rework the ObjectConstructor and GUIAction stuff into something more
0123    general, and more clean.  See the comment for
0124    ObjectConstructor::constructMode().
0125 
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..
0129 
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..
0134 
0135 * scripting
0136 
0137 - Python scripting: export cubics for real, improve existing API.
0138 
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.
0142 
0143 - support for more scripting languages than just Python.
0144 
0145 * other
0146 
0147 - document mathematical i18n strings, so that the translators have a
0148    clue about how to translate them !
0149 
0150 - add "Tools": easy tools designed for geometry, like Angle converter and
0151   so on...
0152 
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.
0155 
0156 - koffice support ?
0157 
0158 * future ?
0159 
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.. )