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.. )