Sebastian Gottfried sebastiangottfried at web.de
Thu May 3 10:25:47 UTC 2012

Hello everyone,

in the last couple of months I did some work on KTouch. Because the 
are quite big by now, I published my results on github for now:


This repository is a fork of the official KTouch and my commits merge cleanly
with the current HEAD of it's master branch of it. In the long run I really
would like to see my changes to be incorporated into the official repository.

What has begun with an experiment with QML in the context of KTouch has 
culminated in a complete rewrite of KTouch. Because the old code didn't
separate logic and UI code cleanly, it was very difficult to partially extend
the application with new QML UI features.

I've canceled this experiment very quickly and instead I've started with
creating new entity classes for the objects KTouch is dealing with and then 
I've constructed a completely new GUI on top of these classes with QML.

At this point I've a more-or-less working application again. It shares no code
with the old application but reuses its data. My code brings a lot of changes
and new features to KTouch, here is a quick summary:

1. New GUI

 * screen shot: http://github.com/sebasgo/ktouch/wiki
 * completely done in QML
 * uses the new QML Plasma Components for common widgets to ensure a
   consistent look and feel
 * application is split into three screens:
    * home screen: profile management + course and lesson selection
    * training screen: that's the main attraction
    * summary screen: here the user can review his performance after finishing
      a lesson

2. Keyboard Layout Auto-detection

 * so no need to configure this manually
 * courses are matched to detected layout to present the user a sensible

3. Lesson Unlocking and Extended Training Statistics

 * two kind of profiles: one for beginners, one for advanced users
 * for beginner profiles new lessons are only unlocked after mastering the
   previous lessons by reaching specific accuracy and speed thresholds
 * users of advanced profiles may access all lessons immediately
 * training stats are now stored in SQLite database
 * unfortunately incompatible with the old stats, because they are now 
   per lesson, not per training session

4. New File Formats for Courses and Keyboard Layouts
 * course format is pretty much unchanged in comparison to the old training
   file format, but has some extensions
 * keyboard layout format changed much more, but the new format is much 
   to understand
 * for both there is a script under /extras to convert from the old format to
   the new one automating what can be automated

5. Missing Features / TODO

 * only very few keyboard layouts and courses are converted two the new
   format, therefore I recommend to try out the application with a German or
   UK keyboard layout
 * score screen is pretty much a TODO
 * no keyboard layout and course editor
 * RTL support
 * restricted portability, because keyboard layout detection depends on X

There is still a lot of work left to do before this version of KTouch is in a
releasable state. My main question if there is interest to integrate my
version of KTouch back into the KDE development infrastructure and the KDE 

As far as I know the KTouch project is currently practically unmaintained. I'm
obviously willing to complete and maintain my version of KTouch and I really
would like see it become part of the KDE Edu project.


Sebastian Gottfried

More information about the kde-edu mailing list