KTouch

Anne-Marie Mahfouf annemarie.mahfouf at free.fr
Fri May 4 08:24:18 UTC 2012


On 05/03/2012 12:25 PM, Sebastian Gottfried wrote:
> Hello everyone,
>
> in the last couple of months I did some work on KTouch. Because the
> changes
> are quite big by now, I published my results on github for now:
>
>    http://github.com/sebasgo/ktouch
>
> 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
> now
> 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
>     choice
>
> 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
> tracked
>     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
> easier
>     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
> Edu
> project.
>
> 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.
>
> Cheers,
>
> Sebastian Gottfried
>
Hi Sebastian,

First, thanks for your interest in KTouch. KTouch is a very popular 
application and is present in KDE Edu since the beginning, it has been a 
well-known app since a long time and has a very large user-base. The 
code thus was getting old as you mentioned and it's a very good thing to 
have new fresh code.

KDE will soon release 4.9 and thus we have time to consider things for 
"after 4.9" as the KDE community does not know right now if there will 
be a 4.10 or if we move to the new kdelibs frameworks (as far as I know).

I personally think we should  move to your code after 4.9 (and work on 
it in between):
- the code is modern, especially the separation logic/UI
- you will maintain it
- we have time to sort out problems

Problem to solve:
- as Laszlo mentioned, relying on Plasma components is maybe not the 
best choice. The KDE community has no global solutions for QML 
components outside Plasma. I tried to raise this problem a few times 
inside the KDE project but went nowhere. I'll poll other KDE sub 
projects to see what they use and what is the best approach in the long 
time and in term of portability. Calligra does not use QML for desktop 
so far, not sure what KDE Games will do. In KDE Edu we use self-made 
components in KHangMan and Kanagram. The question so far as I see it is: 
will each app make it's own QML components or will we have a set of 
ready-made QML components already available (like the Plasma ones but 
not relying on Plasma). Could KDE Edu start such a set?

Best regards,

Anne-Marie








More information about the kde-edu mailing list