Bug 385425

Summary: No built in lessons displayed on start menu
Product: [Applications] ktouch Reporter: n.kraus
Component: generalAssignee: Sebastian Gottfried <sebastian.gottfried>
Status: RESOLVED FIXED    
Severity: normal CC: aalhad, homer.s.jimson
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Debian stable   
OS: Linux   
Latest Commit: Version Fixed In: 19.08.0
Attachments: Main view shows no built in lessons

Description n.kraus 2017-10-06 02:14:52 UTC
Created attachment 108199 [details]
Main view shows no built in lessons

Qt: 4.8.7
KDE Development Platform: 4.14.26
Typewriting Trainer: 2.3.0
Linux $PC 4.9.0-3-amd64 #1 SMP Debian 4.9.30-2+deb9u5 (2017-09-19) x86_64 GNU/Linux


After starting ktouch and creating a profile for the first time, I can't select any Lessons.
The main screen is empty except for "Create New Custom Lesson" as seen in the attached screenshot.
I can also enter the options.
The Course and Keyboard Layout Editor shows me plenty of built in courses and layouts, so I assume they're installed and accessible to the program.

Terminal output after starting ktouch:
ktouch(30815)/kdecore (services) KServiceFactory::findServiceByDesktopPath: "kcm_keyboard.desktop" not found
file:///usr/share/kde4/apps/ktouch/qml/LessonSelectorBase.qml:44:9: QML Column: Cannot specify top, bottom, verticalCenter, fill or centerIn anchors for items inside Column
file:///usr/share/kde4/apps/ktouch/qml/LessonSelectorBase.qml:44:9: QML Column: Cannot specify top, bottom, verticalCenter, fill or centerIn anchors for items inside Column
file:///usr/lib/kde4/imports/org/kde/plasma/components/Button.qml:194:5: QML Row: Possible anchor loop detected on fill.
file:///usr/lib/kde4/imports/org/kde/plasma/components/Button.qml:194:5: QML Row: Possible anchor loop detected on fill.
file:///usr/share/kde4/apps/ktouch/qml/TrainingScreenMenuOverlay.qml:71:13: QML Button: Binding loop detected for property "minimumWidth"
file:///usr/share/kde4/apps/ktouch/qml/TrainingScreenMenuOverlay.qml:71:13: QML Button: Binding loop detected for property "minimumWidth"
file:///usr/lib/kde4/imports/org/kde/plasma/components/Button.qml:194:5: QML Row: Possible anchor loop detected on fill.
file:///usr/lib/kde4/imports/org/kde/plasma/components/Button.qml:194:5: QML Row: Possible anchor loop detected on fill.
file:///usr/share/kde4/apps/ktouch/qml/TrainingScreenMenuOverlay.qml:91:13: QML Button: Binding loop detected for property "minimumWidth"
file:///usr/share/kde4/apps/ktouch/qml/TrainingScreenMenuOverlay.qml:91:13: QML Button: Binding loop detected for property "minimumWidth"
file:///usr/share/kde4/apps/ktouch/qml/TrainingScreenMenuOverlay.qml:91:13: QML Button: Binding loop detected for property "minimumWidth"
file:///usr/share/kde4/apps/ktouch/qml/TrainingScreenMenuOverlay.qml:91:13: QML Button: Binding loop detected for property "minimumWidth"
file:///usr/lib/kde4/imports/org/kde/plasma/components/Button.qml:194:5: QML Row: Possible anchor loop detected on fill.
file:///usr/lib/kde4/imports/org/kde/plasma/components/Button.qml:194:5: QML Row: Possible anchor loop detected on fill.
file:///usr/share/kde4/apps/ktouch/qml/DetailedRadioButton.qml:42:9: QML Text: Binding loop detected for property "width"
file:///usr/share/kde4/apps/ktouch/qml/KeyItem.qml:233: TypeError: Result of expression 'referenceKey' [null] is not an object.
file:///usr/share/kde4/apps/ktouch/qml/KeyItem.qml:235: TypeError: Result of expression 'referenceKey' [null] is not an object.
file:///usr/share/kde4/apps/ktouch/qml/KeyItem.qml:202: TypeError: Result of expression 'referenceKey' [null] is not an object.
file:///usr/share/kde4/apps/ktouch/qml/KeyLabel.qml:72: TypeError: Result of expression 'referenceKey' [null] is not an object.
file:///usr/share/kde4/apps/ktouch/qml/KeyLabel.qml:72: TypeError: Result of expression 'referenceKey' [null] is not an object.
file:///usr/share/kde4/apps/ktouch/qml/KeyLabel.qml:72: TypeError: Result of expression 'referenceKey' [null] is not an object.
file:///usr/share/kde4/apps/ktouch/qml/KeyLabel.qml:72: TypeError: Result of expression 'referenceKey' [null] is not an object.



Terminal output after closing any given popup window, differing only in the Resource id:
X Error: BadWindow (invalid Window parameter) 3
  Major opcode: 20 (X_GetProperty)
  Resource id:  0x5400045
Comment 1 n.kraus 2017-10-06 02:26:09 UTC
I just noticed that switching from "German (Austria)" to "German (Neo 2)" instantly makes neo 2 lessons available.
Switching back during one of these tells me "No visualization available for your keyboard layout."
It seems like my customized German layout was at fault.
Among other things, I changed [ä] to } and [alt-gr]+[}] to ä.

Adding a hint at the start of the program would be appreciated.
Comment 2 Aalhad Saraf 2018-10-20 13:52:32 UTC
No lessons shown on start screen on the default ktouch installed on Ubuntu 18.04 
My keyboard layout is Japanese.

ktouch 18.04.2
Comment 3 homer.s.jimson 2019-01-06 13:30:01 UTC
(In reply to n.kraus from comment #1)
> I just noticed that switching from "German (Austria)" to "German (Neo 2)"
> instantly makes neo 2 lessons available.
> Switching back during one of these tells me "No visualization available for
> your keyboard layout."
> It seems like my customized German layout was at fault.
> Among other things, I changed [ä] to } and [alt-gr]+[}] to ä.
> 
> Adding a hint at the start of the program would be appreciated.

Same here without customized layout. German and swiss layouts work, austrian not.
Comment 4 Sebastian Gottfried 2019-07-04 21:06:15 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 401359, bug 331368, bug 398773, bug 391968, bug 364011, bug 316058, 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