[Gambas-user] Developing KoGe Designer: here goes a bunch of bug & feature reports

Alberto Torres kungfoobar at ...626...
Thu Nov 24 04:10:43 CET 2005


Hello,

KoGe designer is part of my project, it is a videogame designing tool
for artists. Yesterday I released version 0.1.1 which is usable enough
for trying out the implemented features. More info at
http://koge.sf.net

I wasn't sure where to mail this: to user or devel list. Gambas is a
great developing tool, specially for GUIs, and I want to help to make
gambas even better.
While I was developing this, I found out (and sometimes suffered of)
several bugs and design flaws which I'm going to list:

* Shortcuts & keyboard events: I set several shorcuts for several menu
items, some of them are single keys (i.e. no ctrl/alt/shift). Those
single-key settings sometimes dissapears or doesn't work when
reopening the project.
I also wanted to allow the user to select several things while
pressing ctrl key. I have no way of knowing the status of ctrl when
user is clicking the drawingArea: keyboard events can't be read
outside keydown/up events, and keydown/up events of several widgets
including this drawingarea are *never* triggered.
A workaround I built for both problems is putting a textbox behind
something and always give it the focus. It catchs key events and sets
a ctrl flag accordly. But now menu shortcuts don't work. What I did:
textbox also manages menu shotcuts.

* I don't know why the hell scrollbars in animator aren't set properly
until you resize the window or move an object (see VSplit1_Resize()).
Even when those scollbars are (manually) set up correctly, I don't
know why sometimes editVBar is shorter than it should.

* XmlReader is not very developer-friendly, specially when you use it
with nested objects that manages the input themselves. I have made a
class called kgXmlReader, wrapping an interface that, in my opinion,
xmlReader should have. Take a look at kgXmlReader class, xmlRead() of
any class and frmActionEd.Load() to see how I nest the reading
proccess.

Also, neither XmlReader nor XmlDocument can't be used to parse XMPP
streams (I tried to make a jabber client in gambas, and I ended
parsing manually several things before feeding data to gb.xml).

* Translate project dialog has a button labeled 'close'. It means that
closing the window should have the same effect as clicking that
button, but it doesn't. Closing the window discards changes without
any warning!

* When you save and there is no space left in hard disk, files are
truncated without any warning. I have lost some data several times
because of that.

* I can't invoke ListView items renaming, so the only way to rename
something is the user clicking something when it's already selected.

* I can't know where I'm dropping a drag into a ListView: .find always
returns the selected item. Because of that I finally didn't
implemented the copy-animation-by-dragging feature.

* I'd like to save the size of frmActionEd.HSplit1, or at least keep
it always in the same position by default. I did a quick hack at
HSplit1_Resize() that worked, but I don't know how to control the
proportion between both panels.

* I still miss the selection clipboard in gambas editor (select=copy,
middle-click=paste). I got used again to the so-known ctrl+x/c/v
because of this. Klipper helps as bridge between normal clipboard and
selection clipboard. As alternative, remapping those key bindings
would be ok, specially when I tried to switch to dvorak.

* I'd like to add things to the changelog while I'm working with a
release instead of putting it all at the package wizard.

* Sometimes it's difficult to maintain and free circular references
cleanly. I'll post about it tomorrow with some suggestions explaining
how it could be easier.

* Interpreter crashes when no $LANG is set. Oh, ok, that's fixed.
There should be an easy way to test a project with another $LANG set.

I forget some things, but it's very late. I'm going to sleep.

Cheers, and good night
--
DiThi
e-mail: kungfoobar at ...626...
Jabber ID: dithi at ...646...




More information about the User mailing list