D20953: New Home Screen for KTouch

Sebastian Gottfried noreply at phabricator.kde.org
Thu May 2 10:27:45 BST 2019


gottfried created this revision.
gottfried added a reviewer: KDE Edu.
Herald added a project: KDE Edu.
Herald added a subscriber: kde-edu.
gottfried requested review of this revision.

REVISION SUMMARY
  This is the result of my work in the branch `homescreen-ng` <https://phabricator.kde.org/source/ktouch/history/homescreen-ng/>. The goal was to replace the home screen to solve KTouch's most egrigous problem: content discovery. Currently KTouch displays only the course for the the currently active keyboard layout. If KTouch has no course for this layout, the windows is basically empty showing only the option to create a new custom lesson. Being forced to set up first the correct keyboad layout for you computer has proven to be unintuitive. The new home screen shows all available training content at a glance:
  
  F6803475: ktouch_new_homescreen.png <https://phabricator.kde.org/F6803475>
  
  (Please ignore the duplicate entries in the sidebar, this is a data issue on my system. With the data KTouch bundles each keyboad layout is only visible once)
  
  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 <https://bugs.kde.org/show_bug.cgi?id=395264>, BUG 385425 <https://bugs.kde.org/show_bug.cgi?id=385425>)
  
  - 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 <https://bugs.kde.org/show_bug.cgi?id=401359>)
  
  - 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 ever. (BUG 316058 <https://bugs.kde.org/show_bug.cgi?id=316058>)
  
  - Support for HiDPI rendering has been added.
  
  - KTouch now uses Qt Quick Controls 2 instead of version 1.
  
  Sorry for the big diff. It might be easier to review the commit history <https://github.com/KDE/ktouch/compare/homescreen-ng>.
  
  I have thouroughly tested my changes and there a no issues I am currently aware of.
  
  If anythings crops up, there still plenty of time to fix bugs until the next KDE Apps release.

TEST PLAN
  Launch KTouch and try to select diffent courses for a few keyboard layouts:
  
  - Check wether KTouch offered you the course matching your keyboard layout first (if there is one)
  - Check KTouch shows a warning if the current course is for a different keyboard layout than your current one.
  - Check whether KTouch remembers the last trained lesson of a course. It should be preselected.
  - Delete or move your profile database (`~/.local/share/ktouch/profiles.db`) . Check whether KTouch greets you an the next launch with a dialog to create your first profile.
  - If you have an HiDPI display available, look for unscaled or fuzzy content elements.

REPOSITORY
  R336 KTouch

REVISION DETAIL
  https://phabricator.kde.org/D20953

AFFECTED FILES
  .gitignore
  AUTHORS
  CMakeLists.txt
  README.md
  extras/scripts/checkqmlimports.py
  src/CMakeLists.txt
  src/application.cpp
  src/bindings/utils.cpp
  src/bindings/utils.h
  src/core/course.cpp
  src/core/course.h
  src/core/key.cpp
  src/core/key.h
  src/core/keyboardlayout.cpp
  src/core/keyboardlayout.h
  src/core/profiledataaccess.cpp
  src/core/resourcedataaccess.cpp
  src/core/specialkey.h
  src/core/userdataaccess.cpp
  src/declarativeitems/kcolorschemeproxy.cpp
  src/declarativeitems/kcolorschemeproxy.h
  src/declarativeitems/lessonpainter.cpp
  src/declarativeitems/lessonpainter.h
  src/declarativeitems/lessontexthighlighteritem.cpp
  src/declarativeitems/lessontexthighlighteritem.h
  src/editor/charactersviewdelegate.h
  src/editor/keyboardlayouteditorview.h
  src/editor/lessontexthighlighter.cpp
  src/editor/lessontexthighlighter.h
  src/ktouchcontext.cpp
  src/ktouchcontext.h
  src/main.cpp
  src/models/categorizedresourcesortfilterproxymodel.cpp
  src/models/categorizedresourcesortfilterproxymodel.h
  src/models/charactersmodel.cpp
  src/models/charactersmodel.h
  src/models/errorsmodel.h
  src/models/learningprogressmodel.cpp
  src/models/learningprogressmodel.h
  src/models/lessonmodel.cpp
  src/models/lessonmodel.h
  src/models/resourcemodel.h
  src/qml/common/AutoTriggerButton.qml
  src/qml/common/Balloon.qml
  src/qml/common/Collapsable.qml
  src/qml/common/ComboBox.qml
  src/qml/common/DetailedRadioButton.qml
  src/qml/common/FocusBar.qml
  src/qml/common/GridView.qml
  src/qml/common/Icon.qml
  src/qml/common/IconButton.qml
  src/qml/common/IconLabel.qml
  src/qml/common/IconToolButton.qml
  src/qml/common/InfoItem.qml
  src/qml/common/InformationTable.qml
  src/qml/common/InlineToolbar.qml
  src/qml/common/Label.qml
  src/qml/common/LearningProgressChart.qml
  src/qml/common/ListItem.qml
  src/qml/common/ListView.qml
  src/qml/common/MessageBox.qml
  src/qml/common/MonochromeIcon.qml
  src/qml/common/PopupDialog.qml
  src/qml/common/RadioButton.qml
  src/qml/common/ScrollBar.qml
  src/qml/common/ScrollView.qml
  src/qml/common/SelectionGrip.qml
  src/qml/common/SelectionRectangle.qml
  src/qml/common/SheetDialog.qml
  src/qml/common/TextArea.qml
  src/qml/common/TextField.qml
  src/qml/common/ToolBar.qml
  src/qml/common/ToolSeparator.qml
  src/qml/common/ToolTip.qml
  src/qml/homescreen/CourseDescriptionItem.qml
  src/qml/homescreen/CoursePage.qml
  src/qml/homescreen/CourseSelector.qml
  src/qml/homescreen/CourseSelectorKeyboardLayoutItem.qml
  src/qml/homescreen/CourseSelectorKeyboardLayoutList.qml
  src/qml/homescreen/CustomLessonSelector.qml
  src/qml/homescreen/HomeScreen.qml
  src/qml/homescreen/InitialProfileDialog.qml
  src/qml/homescreen/InitialProfileForm.qml
  src/qml/homescreen/KeyboardLayoutMismatchMessage.qml
  src/qml/homescreen/LessonDeletedMessage.qml
  src/qml/homescreen/LessonEditorDialog.qml
  src/qml/homescreen/LessonLockedNotice.qml
  src/qml/homescreen/LessonPreview.qml
  src/qml/homescreen/LessonSelector.qml
  src/qml/homescreen/LessonSelectorBase.qml
  src/qml/homescreen/LessonSelectorItem.qml
  src/qml/homescreen/ProfileComboBox.qml
  src/qml/homescreen/ProfileDetailsItem.qml
  src/qml/homescreen/ProfileForm.qml
  src/qml/homescreen/ProfileSelector.qml
  src/qml/homescreen/StatPopupDialog.qml
  src/qml/keyboard/KeyItem.qml
  src/qml/keyboard/KeyLabel.qml
  src/qml/keyboard/Keyboard.qml
  src/qml/keyboard/KeyboardLayoutEditor.qml
  src/qml/main.qml
  src/qml/meters/AccuracyMeter.qml
  src/qml/meters/CharactersPerMinuteMeter.qml
  src/qml/meters/ElapsedTimeMeter.qml
  src/qml/meters/Meter.qml
  src/qml/meters/StatBox.qml
  src/qml/qml.qrc
  src/qml/scorescreen/ScoreScreen.qml
  src/qml/trainingscreen/KeyboardUnavailableNotice.qml
  src/qml/trainingscreen/TrainingScreen.qml
  src/qml/trainingscreen/TrainingScreenMenu.qml
  src/qml/trainingscreen/TrainingScreenMenuOverlay.qml
  src/qml/trainingscreen/TrainingScreenToolbar.qml
  src/qml/trainingscreen/TrainingWidget.qml
  src/undocommands/coursecommands.h
  src/undocommands/keyboardlayoutcommands.h

To: gottfried, #kde_edu
Cc: kde-edu, #kde_edu, narvaez, apol
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-edu/attachments/20190502/f3b69abb/attachment-0001.html>


More information about the kde-edu mailing list