-
-
Notifications
You must be signed in to change notification settings - Fork 111
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(developer): Rework Touch Layout Editor to support flick and multitap 🙊 #6884
feat(developer): Rework Touch Layout Editor to support flick and multitap 🙊 #6884
Conversation
User Test ResultsTest specification and instructions ✅ SUITE_BASIC:11 tests in 1 groups PASSED
✅ SUITE_EDIT_KEY_DATA:5 tests in 1 groups PASSED
✅ SUITE_EDIT_GESTURE_DATA:6 tests in 1 groups PASSED
✅ SUITE_CHAR_MAP:4 tests in 1 groups PASSED
✅ SUITE_USAGE:1 tests in 1 groups PASSEDTest Artifacts
|
afa20aa
to
5e88939
Compare
SUITE_BASIC:
|
SUITE_CHAR_MAP:
|
I think the multitap icon is present, perhaps not visible enough?
Can you let me know what is not working as you expected? Is it just related to the multitap icon from the previous test? @keymanapp-test-bot retest SUITE_EDIT_GESTURE_DATA TEST_ADD_MULTITAP TEST_DEL_MULTITAP |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this PR include code to actively check against the new schema(s), even if only for linting purposes?
@mcdurdin After playing with SUITE_BASIC I've noticed one thing that I expect to see. When delete something from Touch Layout tab, i.e. a layer or a platform, I expect a warning pop-up message telling what's gonna happen. Otherwise, the current layer would just disappear as soon as the |
@mcdurdin I thought since Multitap feature is not working, so that I failed this test too. Anyhow, I will re-test and add my comment. Thanks. |
SUITE_USAGE:
Note: I did not see any error message while adding Flicks Key or Multitap key after compilation. |
Test ResultsSUITE_BASIC:
Screen.Recording.2022-07-06.at.2.53.26.PM.movWhen change the template on the existing layout, the template replace the layout nicely. See below. change.template.on.existing.layout.movOther observations:
|
@@ -191,7 +191,7 @@ procedure TAppSourceHttpResponder.RespondTouchEditorLib( | |||
begin | |||
doc := ARequestInfo.Document; | |||
Delete(doc, 1, Length('/app/source/toucheditor/lib/')); | |||
if (Pos('/', doc) > 0) or (Pos('\', doc) > 0) then | |||
if Pos('..', doc) > 0 then |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We do allow sub-paths, just not parent navigation -- this fixes loading of jquery-ui images.
@@ -36,7 +36,7 @@ class function TKeymanDeveloperPaths.NodePath: string; | |||
KeymanRoot: string; | |||
begin | |||
if TKeymanPaths.RunningFromSource(KeymanRoot) | |||
then Result := KeymanRoot + 'developer\src\inst\dist\node.exe' | |||
then Result := KeymanRoot + 'developer\src\inst\node\dist\node.exe' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixup for node loading when running Developer from within a debugger in the source path.
* Restrucure touch layout editor to make space for additional gesture types: * Move control bar to right hand side * Move key cap edits to control bar. * Adds flick and multitap gestures: * Adds buttons to add longpress keys, flicks or multitaps. * Adds Unicode value boxes which mirror the key cap text box. * Updates key width values in real time when resizing * Maintain selected key as far as possible across layer switch, platform switch and presentation view switch. * Starts to split 'special' key cap icons from normal key caps.
* Separates out the 'command' icon key cap controls * Fixes selection of last active element with undo
Also minor tweaks to allow jquery-ui images to load, fixup for broken file path for node.exe.
06ed0ad
to
b702b7d
Compare
Improves the .keyman-touch-layout clean schema and adds additional cleanup during load and save in the Touch Layout Editor. The compiler already does transforms for the relevant fields to the formats that KeymanWeb is expecting (in particular, width, pad to string). This is preparation for adding hint data to the format as well.
Also fixes a couple of minor issues with character map integration and Unicode text fields.
Moves the top toolbar to the left to make more room, and tidy it up, and moves various controls into sub-dialogs to make them clearer. Shortcut buttons to prepopulate the Hint property will come in a subsequent PR.
Most dialogs in touch layout editor can now have just a Close button with changes taking effect immediately. This helps users visualize how the options they've chosen will work.
After a demo of the Touch Layout Editor @jahorton suggested using a "default hint" model instead of the "display hint" from the design spec. I liked this and have reworked the design accordingly. With the default hint model, a source for the hint text can be specified, such as the default longpress key, or a specific flick key. This can then be overridden on a key level. The hint input element now shows a placeholder to indicate the default hint for the key, and if a hint has been customised for a given key, it is shown in green on the key cap. Changing the default hint does not impact any customised hints.
Test ResultsSUITE_BASIC:
|
…chema-high-quality feat(developer): cleanup touch layout files on load and save 🙊
…ompiler-flick-and-multitap feat(developer): add support for flick and multitap to compiler 🙊
…out-hints feat(developer): add hint support to Touch Layout Editor and schema 🙊
Sentry issue: KEYMAN-DEVELOPER-7 |
Blocked: this is blocked by #6918, will want to run the regression test before this lands, so once #6918 chain hits master, we should rebase/merge master.DONE.This is a significant rework of the Touch Layout Editor. I started by refactoring the code into multiple units with minimal code changes -- you can see these changes in the following commits:
I did make some more minor further refactoring changes in subsequent commits, but did not separate them out quite as much. However, first reviewing the above commits separately, and then reviewing the remaining commits in a block should make it easier to see what's going on.
This PR includes the following feature work and bug fixes:
And finally, also updated relevant Delphi code to allow the new fields to validate successfully.
There are a number of changes to the UX. First, it has been significantly rearranged to simplify editing different gesture types. These rearrangements should also improve the editing experience for any touch keyboard, even if new gesture types are not used.
Controls for editing
The controls for editing key metadata are all to the right of the keyboard view -- even the key cap is edited here now:
There are a few new fields here:
Keycap Value
This allows the user to choose keycap images visually rather than by using the previous
*<name>*
pattern which was a little obtuse (and was hard to work with in the keycap text field as the names didn't really fit):Note that when a 'special' key cap is selected, the Text and Unicode fields are hidden:
Unicode
The Unicode field lets the user see and/or enter Unicode values directly for the key Text.
Gesture Type
This field is read-only but correlates to the selected key area (the same information is available visually by the location of the key).
Gesture indicators
The slash on the top right of a key that indicated the presence of a longpress menu is gone. In its place we have the following indicators that indicate the presence of a gesture on the key, located in rough association with the direction of the gesture (where appropriate):
Longpress: an icon at the top of the key:
Flicks: one icon for each flick direction defined for the key:
Multitaps: an icon to the bottom right of the key:
Note: these icons are only visible in the designer -- not in the running keyboard. We are still planning to introduce 'hints' for key caps; when we implement this, it may impact these icons.
User Testing
In all your testing, it will be valuable to have the F12 Developer Tools window open to verify that there are no errors raised.
For every test, we want to make sure that (a) no errors occur, and (b) the result is what you would expect to have happen.
SUITE_BASIC
Here, we aim to test that touch layout designer functionality available in earlier versions still works in the new version.
SUITE_EDIT_KEY_DATA
Next, we'll want to test the key cap editing behaviour.
SUITE_EDIT_GESTURE_DATA:
SUITE_CHAR_MAP
SUITE_USAGE