[kde-edu]: GSoC Proposal: KidDraw
cheetah at simply-life.net
Fri Mar 21 23:22:41 CET 2008
Since I'm new here, I'll first introduce myself: I'm Wouter Haffmans, a 23
year old student Computer Science at the University of Technology Eindhoven
(in the Netherlands). I want to submit a proposal for GSoC next week, with a
new suggestion for KDE Edu, which will hopefully get me involved in the KDE
community. So far I've only been following development, and I think it's time
for me to start actively participating. GSoC seems to be the perfect
opportunity. So, here's the idea:
In the past I've made a small and simple drawing application as a high school
assignment. The target group were young children who are not able to use a
computer mouse all too well yet. That assignment was made in Delphi. As I
myself have a son now, I decided to remake that application to Qt 4. Part of
it is done, but it still needs lots of work and improvement.
I want to submit KidDraw (which is its very original name) as GSoC project
to help KDE Edu to something new and unique. I think it fits KDE Edu best
since it helps kids learn how to use the mouse and explore their creativity
in a fun way, though I suppose it could also fit in KDE Graphics... I'm not
entirely sure about that.
This has been done for KidDraw so far (see
http://svn.simply-life.net/KidDraw/trunk/ for the current code):
The UI is simple, kid-friendly. It already shows the canvas, which is
QGraphics based. The "live" rendering is done on an extra cached QImage
though (like the Qt scribbly example), as that seemed to perform much better
in my tests. Drawing is done by clicking any mouse button (not just the left
one). On the left and right the color palette is shown: simply hovering the
mouse over a color will select it. The same goes for the line widths, which
can be picked at the bottom. The buttons are big and thus easy to hit.
The canvas also already supports the loading of a background image, which can
be used for coloring sheets as well as connect-the-dots like stuff.
Tasks that would be for GSoC:
- KDEify KidDraw, it's just a Qt app now. It already uses CMake, but other
than that it's all just Qt 4.
- When changing a palette, the lines that were already drawn will need to
change colors as well.
- Allow saving and reloading of pictures. All line items will need to remain
intact (because of the palette changes).
- Create "Image Pickers" at the top of the canvas, which show thumbnails of
saved images. Clicking one loads the image into the canvas, and also saves
the canvas image to that slot. This way a child doesn't need to know about
files or filenames.
- Make a big "Clear" button to clear the canvas.
- Custom color palettes, possibly with HotNewStuff integration.
- Export images, saving them to a PNG/JPG/SVG file on disk. This is something
parents probably will need to help with, so its UI can be more "complicated"
(i.e. a menu).
- Printing support to print the canvas image.
- UI to load background images.
- UI for editing (and creating new) color palettes.
- Settings panel, especially with settings on when clicking/dragging is
necessary (for younger kids clicking to toggle the pen up/down may be better
than having to drag with the mouse pressed, etc).
- Option to set a picture as desktop background. I'm not exactly sure how
feasable it is to make this cross platform, considering obvious differences
between Plasma, Windows and OS X.
- A "Color Sheet" mode, which makes a click on the canvas fill the area with
the selected color rather than drawing lines.
- If there's more time: a "Connect the dots" mode, which requires the user to
draw lines from dot to dot (again using polygons as the points of the dots).
Once all dots have been connected, KidDraw could switch to Color Sheet mode
to allow filling of the drawn lines. To add a "surprise" effect, the dots that
do not need to be connected yet (e.g. dots 3 and higher at the start) could
remain hidden until they need to be visible.
Altogether I think there is more than enough to be done during the three
months of GSoC, but more suggestions, ideas, criticism, advice etc. is more
than welcome before I submit my GSoC application.
More information about the kde-edu