Bug 309197

Summary: Control + backspace does not delete-word-to-left-of-cursor in learning mode.
Product: ktouch Reporter: AndyT <instinctify>
Component: generalAssignee: Sebastian Gottfried <sebastian.gottfried>
Status: RESOLVED FIXED    
Severity: normal CC: sebastian.gottfried
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In: 2.0

Description AndyT 2012-10-29 13:57:43 UTC
Ability to quickly delete a mistyped word is a very important mainstream touch-typing skill. 
(For me at least it is also a great substitute for any number of clever algorithms designed to detect a student's problematic key sequences - just delete one or more whole words involved in any typo and try, try, try again. Hammers your reported speed and accuracy levels, but seems to do wonders for actual learning progression...)

Reproducible: Always

Steps to Reproduce:
1. select UK keyboard.
2. create new lesson from any pasted text.
3. start the lesson
4. type a few characters, then use Ctrl+Backspace
Actual Results:  
Only a single char is deleted per Ctrl+BS keypress

Expected Results:  
Expect entire word to left of cursor deleted per Ctrl+BS keypress, as per most Gnome, KDE (and windows) applications.

Awesome application, thanks a million.
Comment 1 Sebastian Gottfried 2012-11-11 11:28:16 UTC
Git commit 1a910f17d59eb85bf88a01f2e9d694fddde8e7fa by Sebastian Gottfried.
Committed on 11/11/2012 at 11:39.
Pushed by gottfried into branch 'master'.

training screen: fix key event handling wrt dead keys

Turns the event handling in QML is too limited to properly support dead
keys. At least on X11 dead key handling is part of some input method
and one has support for them in QML. Therefore the event handling part
of the training line has been moved to C++.

While I'm at it I also made sure that the training widget acts more line
standard input widget, so Ctrl+Backspace now deletes the last word.
FIXED-IN: 2.0

M  +1    -0    src/CMakeLists.txt
M  +3    -0    src/application.cpp
A  +330  -0    src/declarativeitems/traininglinecore.cpp     [License: GPL (v2+)]
A  +73   -0    src/declarativeitems/traininglinecore.h     [License: GPL (v2+)]
M  +34   -125  src/qml/TrainingLine.qml
M  +1    -0    src/qml/TrainingScreen.qml
M  +25   -6    src/qml/TrainingWidget.qml

http://commits.kde.org/ktouch/1a910f17d59eb85bf88a01f2e9d694fddde8e7fa