This document goes on the BUGs and WISHes that regarding KTurtle

18 june 2005
------------------
for KDE 3.5
- add the fractals examples from http://www.stber-koenig.de/markus/kturtle/ in the examples folder
-> problem when adding examples for translations

- implement TDENewStuff to share logo files via opendesktop.org per language with png associated on the website


    CHECKLIST FOR KTURTLE IN KDE 3.4:

annma> get some other sprites alternative to the turtle

 cies> or a better website

annma> I would say: hunt bugs

 cies> i think promotion will be an important part

annma> I would say make sure we test kturtle thoroughly
annma> remove config, remove installed files and try from scratch

 cies> more examples? would that pull?
annma> more examples are only in en_US at the moment

annma> is all the code in the doc working correctly?
 cies> dint check for a while
 cies> i changed some syntaxt
annma> that is to be checked

 cies> maybe a contest...
 cies> best logo script gets in the examples of the next kturtle
 cies> and get TRANSLATED to many lang.s
 cies> how does that sound?
annma> yes
 cies> good for a dot story
annma> sounds good









Chapeters in this documents:

BUGs
 - urgent bugs (small/regular and critical)
 - big ones (that need losts of work)
 - regular ones (the phat cocroach type)
 - small bugs (annoyances that can be considered urgent, ie poisonless musquito's)
 - unconfirmed
 
WISHes
 - important WISHes (that are needed for a 1.0 release and help to fulfill kturtles objectives)
 - less important but nice WISHes
 - WISHes that still have to be discussed

 
       here we go!
 

My [cies] TODO list (in this order!):
- the connection with the manual should be fixed (might need a change in tdelibs)  FIXED tnx Waldo!
- bug, wishes, errmsgs-fixes concering the interpreter  HAS TO RESULT IN HUGE REFACTORING
- spice up the errormessage window with my great ideas  ON HOLD


  
 
>>>>> BUGs::Urgent

cies> currently no urgent bugs that i know of. except for:
THERE IS NO HELP ON THE ERROR DIALOG! (nor on the ColorPicker Dialog and the Configure Dlg)
		this is needed for help button references




>>>>> BUGs::Big
  - I porbably have to refine the way error message get emitted, problems: Ugly-, short-, technical messages.
 
 I'll have to: 
 
- try to break up/refine the most common errors
- Reformulate all the error messages after simulating them
- have links in there to corresponing help pages --> see WISHes
- Maybe more LONGER, desciptive error messages should be triggered by the 'Help on Error", these messages should be stored in/out-side of the executer/parser, but maybe even better, the errormsg file. I18n should then be easy, and it should supply richtext ((k)html) + links to the manual. (this could be in the same dialog)
- errmsgs should maybe be filtered since there is quite some garbage in the errors that come back.
- possible no newlines in a command this could make the error messages more specific/descriptive. DONE




>>>>> BUGs::Regular
cies: get all the commands in the logokeywords.*.xml file working properly, and remove the commands that are not needed:
Need to work eventually:
- input (without window, grabKeyEvents... not easy :)
- sprite* (i'll maybe look into this when i have Qt3.3 which fixes the nasty crashbug that came across)
- 'speed' will come later [seperate 'move' methods have to be made inaddition to the line methods]

would be nice (not in yet):
- message, just a dialog with sone user defined text
- and a dialog that return a bool (YesNoDlg)
- more drawing functions, use directly from QCanvas; like: filled circle, filled square, filled triangle
- more expressers: isString, isNumber, isRound
- round()
- true and fasle as cunfiguarables  ---> in highlightstyle as Fat/grey

- <joke> and what about a 'goto' command ( you can never make them mistakes young enough, muahoahoaaaa >:-} ) </joke> well?


- use qt-richtext <qt></qt> in dialogs etc.




>>>>> BUGs::Small
have the slow-execution cursor stop at more places like: inputwindow, inline functions

if the inputwindow is canceled the returned value is empty. Yet we need to be a hybrid string ("") or number (0).

when aborting execution dont say "Done." in the statusbar

Maybe change the location of the Logo highlightstyles 




>>>>> BUGs::Unconfirmed
annma can you go though the next 2 bugs and supply some more info bout them to me? tnx
- The documentation of "not" seems wrong. Should it be a unary <-- annma
   operator?
- German examples are twice the same (ask Matthias) <--annma




>>>>> WISHes::important
cies> refactor the interpreter so it is easier to add new commands (using meta programming)




>>>>> WISHes::less important but nice
I saw the KD Executer talk on the aKademy... I (cies) want KD Executer tests for KTurtle to better manage the quality! [ maybe this is important, :) ]


the default font can be a bit bigger and sans serif, and default the <tab> on 2 spaces


have a context menu on right-click in the canvas to save the drawing (right-click -> Save Canvas). cies: then also put "print canvas" and "fullscreen" in there

have the coords of the pixel under the mouse on the canvas in the statusbar


CLI-file-selection (for mimetype eaz)


cies: a fontchooser would be fun
30/12/2003 annma: for the editor font? I can do it ---> default editor font should be bigger and sans serif
04/01/2003 we'll see after the editor part is done





>>>>> WISHes::still subject to discussion
commands do not follow usual commands like forward is FD, reference: http://asijonline.net/ep/logo/logo_com.htm
  -is there a logo standardisation? Compatibility is something that i (cies) would think is overdone. Logo is only used for a short moment, to learn programming; it will never produce real-world programs. So?


Preview in konqueror: (from IRC discussion about the preview thing a mimetype and a litle kpart-previewer would not be too dificult wouldn't it
<TSDgeos> you could put the widget you use in klogo in the kpart in read only mode
<polux> yeah good idea, instead of including it as a katepart, making a kturtlepart)
<cies> we could but what is the use of it? will it help to fulfill kturtles objectives?


Translating data in the tdenewstuff.xml file: how would the translators access the file which is on the server?
  - i dunno what's ment by this.. annma?



After a conversiation with lypanov I came to the conclusion that making the executer 'statefull' is a very by thing! So I take the cheap approach using kapp->processEvents();... Maybe someday, later, I'll do it neatly -- the lypanov pointed out. FIXED



annma - 29th December 2003
about the resizing
I think the canvas size should fill all the right side under the toolbar when KTurtle is started. When resizing the window with the mouse, the canvas grows bigger, everything resize smoothly (-> resizeEvent( QResizeEvent * )).
You can leave the resizing option of the canvas in the Settings but only for having the canvas bigger. That would mean setting minimums in the config dialog.

cies: Sorry i have to disagree, let me explain: a lot of logoscripts will be written on a certain canvas size, if the canvas is made bigger the script will give 'broken' output. I also dont have a way to update the 'wrapping' if a canvas is resized. IMHO the canvassize should be changed by a command, nl. canvassize x,y -- which works on my side of mother earth :-) IMHO all changes to the canvas MUST be done by commands and not by clicky-clicky... Putting the 'initial canvas size' in the settings window is only for the teatcher to setup all his computers.

Sorry for beeing so inflexible... *Really*  I am still open for discussion! :-) I just have developed a certain vision of KTurtle's future that is really hard to let go.
(annma 30/12/2003 ok then, but the config option should be made clearer that the new canvas size will be next start)



Annma: Idea from my daughter: have a Tux and a Konqui as alternate turtle for the cursor. I don't know if it's possible and if you like it ;)

cies: That is a good plan!  I have tux allready in my sprites dir (I'm a fan too!)... but there's one nice thing about the turtle: this animal is very regocnisable from above, and the head points in the direction of movement. Tux is more a front faced character, so nice would be to have an option to put the automatic turning off, and to have a different method to turn tux by command. [please note that i wont do any extra work on getting qt3.3 (needed for sprites), it comes when it comes]



  


>>>> RECENTLY FIXED BUGs

- settings->configure cauzes crash FIXED thanks to Martijn Klingens  ->  move "LanguageLabel = new QLabel(kcfg_LanguageComboBox..." down a few lines (after kcfg_LanguageComboBox is init'ed) BACKPORT

- default language translation somehow doesnt work, it seems NO Logo language is selected at all FIXED
- this also results in no examples FIXED


- About the language: when user is set to fr (not fr_FR but fr like me being in Canada), the parsing does not   work because Settings::LogoLanguage() is set to fr and NOT to fr_FR.
  Syntax highlighting does not work for fr        DONE annma
 
- Default does not work in Language ComboBox -> I am not sure your use of TDEConfig XT is optimum here, Cies
  and other bug: output: kturtle: desktopLanguage: fr:en_US
  kturtle: defaultLanguage: en_US
  Why is not default Language fr_FR?              DONE annma 02/04/2004

- open recent does not keep the files after quitting DONE annma 02/04/2004

- crash on quitting after Opening files           DONE annma 02/04/2004

- cies: Make the interpreter (stolen from wsbasic.sf.net) (executer, parser, lexer, number and treenode) more native Qt. Right now they are a mixture of standard-CLI-C++ and Qt thingies (i put the Qt thingies there). I tried do that but i found that i'm not comfortable with the concept of streams -- which are used a lot in the interpreter. Especially streaming TQString was an obstacle i couldnt take.     DONE
>>>>> after this is done we can also make the ()[],.""-configurable

With long lines and wrapping the canvas can get into a endless loop -> 100%CPU, i tried a lot to fix this allready, maybe my solution needs some tuning :).
Maybe i should just catch errors and break that endless loop :)        FIXED!!! FINALLY




cies: The KconfigXT issue: If an error like this
"""
  make[4]: Entering directory `/home/cies/kdenonbeta/kturtle/src'
  ./kturtle.kcfg ./settings.kcfgc; ret=$?; \
  if test "$ret" != 0; then rm -f settings.h ; exit $ret ; fi
  /bin/sh: line 1: ./kturtle.kcfg: Permission denied
  make[4]: *** [settings.h] Error 126
"""
happends when make'ing KTurtle form cvs one should change the first line of configure.in.in from:
  #MIN_CONFIG(3.0)
into:
  #MIN_CONFIG(3.2)
that will fix it :-)   FIXED with KDE 3.3 (I suspect)



- display the current command language in StatusBar? DONE apperently


print command is buggy, examples:        FIXED!
      print 2004 + " before " + 25
   from the manual should output
      "2004 before 25"
   according to the comment, but outputs
      "2029"
		
		
		
RESEARCH ON THE HELP PROBLEM

then the help-tdeioslave is tdelibs/kdoctools

little help needed: when i use konq to go
"help:/kate?anchor=kate-part-selection-persistent" (which is the proper way to go
there iirc) i get seemingly transferred to
"help:/kate/index.html#kate-part-selection-persistent" but not to the anchor on that
page -- it stays on the top of that page. When i enter the location bar again i get
to the anchor.  --->  shoud i file a bug, for with apps should i do that OR where is
the code that handles this. Anyone? :)

yet this works wel if i go straight to (in konq):
help:/kate/index.html#kate-part-selection-persistent

or if i use kdcop to set "help:/kate/index.html#kate-part-selection-persistent" in
KHelpCenterIface-OpenUrl, than all works fine...

yet this doesnt work
dcop khelpcenter KHelpCenterIface openUrl "help:/kate/index.html#kate-part-selection-persistent", ""


Im tryered of this... I can fix it; too much for me. Sorry


in tdelibs/tdecore/kapp... :
url = TQString("help:/%1?anchor=%2").arg(appname).arg(anchor);
and
DCOPRef( "khelpcenter", "KHelpCenterIface" ).send( "openUrl", url, startup_id );














*************
vi .cvsrc
      cvs -z4 -q
      diff -u3 -p
      update -dP
      checkout -P

touch /home/cies/.cvspass

export CVSROOT=:pserver:cies@cvs.kde.org:/home/kde
cvs login

mkdir kdecvs
cd kdecvs/

cvs co -l tdeedu
cvs co tdeedu/kturtle
cvs co -l tde-i18n
cvs co -l tde-i18n/nl
cvs co -l tde-i18n/nl/data
cvs co -l tde-i18n/nl/data/tdeedu
cvs co tde-i18n/nl/data/tdeedu/kturtle
cvs co -l tdeedu/doc
cvs co tdeedu/doc/kturtle

cd tdeedu/
cvs co admin
make -f Makefile.cvs && ./configure

cd ../tde-i18n
cvs co admin
make -f Makefile.cvs && ./configure

