Bug 316058

Summary: Keyboard navigation (Tab and arrows) does not work in the profile form
Product: [Applications] ktouch Reporter: Cristian Tibirna <tibirna>
Component: generalAssignee: Sebastian Gottfried <sebastian.gottfried>
Status: RESOLVED FIXED    
Severity: major CC: cpigat242
Priority: NOR    
Version: 2.0.0   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In: 19.08.0
Attachments: And here is a patch.

Description Cristian Tibirna 2013-03-03 03:57:11 UTC
KTouch 2.0 starts, at first use, by displaying the profile form. The name textedit does not have focus and keyboard navigation doesn't work. No Tab or arrow keys can be used to change to the 4 inputs the user has to access before quitting this form. Mouse is mandatory.

Same goes for adding a new profile (action which displays the same profile form, in another window layout).

Reproducible: Always

Steps to Reproduce:
1. Open KTouch
2. If not opened for the first time, click on the username button at the left top corner of the window that appeared
3. try to select the name textedit or the radio buttons without the mouse
Actual Results:  
Nothing happens

Expected Results:  
Focus should be changeable with the keyboard.
Comment 1 Cristian Tibirna 2013-03-03 04:06:56 UTC
Created attachment 77705 [details]
And here is a patch.

It is only tentative, my local sources are still compiling.
Comment 2 Sebastian Gottfried 2013-03-04 10:11:40 UTC
Thanks for the patch. I wasn't even aware that implementing tab navigation is that simple to implement in QML. Somehow I have managed to overlook the existence of the KeyNavigation element for all the time I'm developing with Qt Quick ;)
Comment 3 Sebastian Gottfried 2013-03-28 17:15:37 UTC
Focus handling in Qt Quick is a buggy mess right now. I have come so far to implement keyboard navigation for the complete application provided the component in question has already the focus. Due to the dysfunctional state of the FocusScope [0] element in Qt Quick 1.1 under Qt 4.8 managing focus in non-trivial application is pretty much impossible for now. It seems I have to port to Qt 5 first in order to resolve this issue, so this ticket is going to stay open for a while.

[0]: https://bugreports.qt-project.org/browse/QTBUG-28288
Comment 4 Sebastian Gottfried 2019-07-04 21:06:18 UTC
Git commit 106d3bbe772568f82d758da7c74d5089fdb55120 by Sebastian Gottfried.
Committed on 04/07/2019 at 21:02.
Pushed by gottfried into branch 'master'.

Merge Branch 'homescreen-ng'

This replaces the home screen to solve KTouch's most egrigous problem:
content discovery. Previously, KTouch displayed only the courses for the
the currently active keyboard layout. If KTouch has no course for this
layout, the windows was basically empty showing only the option to
create a new custom lesson. Being forced to set up first the correct
keyboad layout for your computer has proven to be unintuitive. The
new home screen shows all available training content at a glance.

Improvements in more detail:

 * There is a new sidebar allowing the user to select from all available
   keyboard layouts with their associated courses. Users still have to
   set up the correct layout matching the selected course, though, and
   they are told how to do so with an passive notification. (BUG 395264,
   BUG 385425, BUG 331368, BUG 398773, BUG 391968, BUG 364011)

 * Training statistics are now available from the home screen for each
   lesson. Previously they have been only shown on the score screen
   after completing a lesson. (BUG 401359, BUG 317174)

 * The lesson selector has been redesign to show previews of each lesson
   as selectable items in a grid view.

  * Tab focus works now as expected and allows training without using the
    mouse at all. (BUG 316058)

  * Support for HiDPI rendering has been added.

  * KTouch now uses Qt Quick Controls 2 instead of version 1.
Related: bug 385425, bug 401359, bug 331368, bug 398773, bug 391968, bug 364011, bug 395264, bug 317174
FIXED-IN: 19.08.0
Differential Revision: https://phabricator.kde.org/D20953

M  +3    -4    CMakeLists.txt
M  +7    -2    src/CMakeLists.txt
M  +2    -2    src/declarativeitems/lessonpainter.h
M  +13   -12   src/qml/homescreen/ProfileDetailsItem.qml
M  +4    -4    src/qml/keyboard/KeyItem.qml
M  +1    -1    src/qml/keyboard/Keyboard.qml
M  +2    -2    src/qml/keyboard/KeyboardLayoutEditor.qml
M  +94   -208  src/qml/scorescreen/ScoreScreen.qml
M  +3    -3    src/qml/trainingscreen/TrainingWidget.qml

https://commits.kde.org/ktouch/106d3bbe772568f82d758da7c74d5089fdb55120