Commit graph

4256 commits

Author SHA1 Message Date
Marc Durdin
549f627509
Merge pull request #7585 from keymanapp/fix/developer/298-avoid-reformatting-unchanged-system-stores
fix(developer): avoid reformatting unchanged system stores
2022-11-02 14:49:06 +11:00
Marc Durdin
7be90d3ac7
Merge pull request #7584 from keymanapp/fix/developer/2803-basic-project-icon
fix(developer): generate a default icon for basic keyboard projects
2022-11-02 14:35:57 +11:00
Marc Durdin
594d8c9104
Merge pull request #7586 from keymanapp/fix/developer/6363-remove-ancient-samples
fix(developer): remove ancient samples
2022-11-02 13:47:30 +11:00
Marc Durdin
8049399d1f
Merge pull request #7583 from keymanapp/fix/developer/3784-repeated-begin
fix(developer): prevent repeated `begin` statements
2022-11-02 13:47:23 +11:00
Marc Durdin
6ace0e36ef
Merge pull request #7580 from keymanapp/fix/developer/4719-kmlmp-path-awareness
fix(developer): ensure kmlmp handles paths
2022-11-02 13:47:16 +11:00
Marc Durdin
badf5e6d4b
Merge pull request #7531 from keymanapp/fix/developer/7529-enforce-us-layout-for-debugger
fix(developer): Use US base layout for debugger
2022-11-02 13:47:06 +11:00
Marc Durdin
c336a8052c fix(developer): publish @keymanapp/keyman-version to npm
Fixes #7582.

Because of https://github.com/npm/cli/issues/3466, we must publish our
internal dependency @keymanapp/keyman-version. This change adds a common
builder function builder_publish_to_npm in build-utils-ci.inc.sh to help
with that task, which should be adopted by other scripts that need to
publish to npm, in the future.

For now, responsibility for publishing keyman-version is delegated to
kmlmc. In the future, we will move this to a single top-level build
action that publishes all npm modules across the entire repo for the
given version.
2022-11-02 13:33:24 +11:00
Marc Durdin
9421ba29cb fix(developer): support gif preview images in Package Editor
Fixes #6974.

GIF images were not supported in the Details tab, Image file, because we
didn't link in GIF file support. After linking it in, we also needed to
change over the picture rendering to have an intermediate render step,
as the existing model only worked with .bmp images.

At the same time, added warnings for wrongly-sized images to the image
size information.
2022-11-02 12:05:50 +11:00
Marc Durdin
b7d305a8d3 fix(developer): Make Details and Build tabs scrollable
Fixes #5238.

The Details and Build tabs have fixed positional content in the Keyboard
Editor, Model Editor, and Package Editor. Sizing the window too small
can cause content to be outside the bounds of the tab. This patch moves
these tabs into scrollboxes (except for Details tabs on Keyboard and
Model editors, which were already in scrollboxes). The remaining tabs
have resizable content. The tabs will still become fairly unusable if
they become too small, but this should be less of a problem than before.
2022-11-02 11:37:07 +11:00
Marc Durdin
aff1d682cc fix(developer): remove ancient samples
The sample keyboards included with Keyman Developer were decidedly
unhelpful. Removing them and instead we should point users to the
Keyboards repo in the future.

Fixes #6363.
2022-11-01 17:04:38 +11:00
Marc Durdin
4be2dcc9e4 fix(developer): avoid reformatting unchanged system stores
Fixes #298.
2022-11-01 16:33:10 +11:00
Marc Durdin
3e220e33c4 fix(developer): generate a default icon for basic keyboard projects
Fixes #2803.

The new basic project template will now include a default icon,
generated either from the first BCP 47 tag, or else from the first 3
letters of the filename of the keyboard.

The icon will not be included if the keyboard does not target desktop
platforms, as web/touch do not currently support the icon.
2022-11-01 15:14:13 +11:00
Marc Durdin
7793be015b fix(developer): prevent repeated begin statements
Fixes #3784.

Only one type of each `begin` statement should be allowed in any given
keyboard source file.
2022-11-01 14:25:05 +11:00
Marc Durdin
8a18547662 fix(developer): ensure kmlmp handles paths
Fixes #4719.

kmlmp no longer assumes '../source/' for paths. It works with paths
relative to the source file. This makes it more compatible with any
valid source .kps file, as well as making current working directory
irrelevant.

Also adds corresponding tests for building .kmp and verifying file
layout.
2022-11-01 11:56:28 +11:00
Marc Durdin
20e230d3ba
Merge pull request #7553 from keymanapp/fix/developer/7551-exclude-nocaps-from-layer-id-modifiers
fix(developer): exclude `nocaps` from layer id modifier components
2022-10-28 11:56:45 +11:00
Marc Durdin
be2b529e65 fix(developer): exclude nocaps from layer id modifier components
Fixes #7551.
2022-10-27 08:37:04 +11:00
Marc Durdin
bff8e09db5 fix(developer): Use US base layout for debugger
Fixes #7529.

We must always use the US base layout for the debugger, as positional
keyboards are not affected by the active Windows system keyboard. This
fix ensures that the behaviour in the debugger matches what the user
experiences in Keyman for Windows.

Note that this does not address support for mnemonic layouts, tracked in
issue #1074.
2022-10-26 09:49:57 +11:00
Marc Durdin
24ba21abab fix(developer): handle LControl being set by Windows when AltGr pressed
Fixes #7506.

In the keyboard debugger, we need to mask out LControl when AltGr is
pressed by the user, because Windows will generate LControl + AltGr for
European layouts.

Note: have also hidden the System Keyboard debug setting in this commit,
given it is not currently implemented; see #1225.

A follow-up issue is #7529.
2022-10-26 09:37:36 +11:00
Joshua A. Horton
1d8595d48e fix(developer): developer build path partial reversion 2022-10-25 15:44:26 +07:00
Joshua A. Horton
23b516182f change(web): build/<product> -> build/app/<product> 2022-10-25 09:12:43 +07:00
Joshua A. Horton
d36b912c6f fix(developer): KMW copy path lacking a path piece 2022-10-25 08:42:42 +07:00
Joshua A. Horton
242cb1312c fix(developer): fixes developer-server's Web build call 2022-10-24 10:06:18 +07:00
Joshua A. Horton
0d643a88f7 fix(developer): KMW build product copying 2022-10-24 10:05:08 +07:00
Marc Durdin
3c14a8312f
Merge pull request #7431 from keymanapp/fix/developer/7419-handle-invalid-graphics-in-ico-editor
fix(developer): Handle invalid graphics in icon editor
2022-10-21 09:57:01 +11:00
Marc Durdin
c804295965
Merge pull request #7496 from keymanapp/chore/merge-master-into-feature-ldml
chore: merge master into feature-ldml
2022-10-21 09:56:37 +11:00
Marc Durdin
df34c064c7 chore: Merge branch 'feature-ldml' into chore/merge-master-into-feature-ldml 2022-10-20 06:33:57 +11:00
Marc Durdin
08c9cd6239
Merge pull request #7430 from keymanapp/fix/developer/7425-ctrl-key-press-release
fix(developer): Ctrl key to select key was conflicting with shortcuts
2022-10-19 06:19:48 +11:00
Marc Durdin
ec953cf689
Merge pull request #7372 from keymanapp/fix/developer/4324-handle-model-hints-and-warnings-cleanly
fix(developer): Handle hints and warnings cleanly
2022-10-19 06:19:34 +11:00
Steven R. Loomis
56dcbc9a88 fix(developer): support updated CLDR structure 🙀
- backspace is now a transform type. Keep the same test.
2022-10-18 12:53:06 -05:00
Steven R. Loomis
85da473a85 chore(developer): update DTD location 🙀
- dtd is in a subdirectory to match CLDR layout
2022-10-18 12:52:27 -05:00
Steven R. Loomis
66a5cdb1f9 chore(developer): ldml: update tools and data for keyboard-preview 🙀
- update tooling in common and kmc
- update spec
- update test files
2022-10-18 11:32:41 -05:00
Steven R. Loomis
85ed41e16c
Merge pull request #7410 from keymanapp/fix/developer/7404-elem0-epic-ldml 2022-10-17 08:53:23 -05:00
Joshua Horton
66f9c520f7
Merge pull request #7343 from keymanapp/change/web/drop-touch-aliases
change(web): now utilizes 'inputMode="none"' on supported touch devices 📴
2022-10-17 10:18:58 +07:00
Steven R. Loomis
7e5c9ec675 fix(developer): offset of 0th elem str must be 0000 🙀
- update test fixture
- update kmx_plus.cpp to require this

Fix: 7404
2022-10-14 15:00:49 -05:00
Sabine
55d2554797 chore(developer): change remaining old datatype-names to new names ( e.g. char -> KMX_CHAR ) 2022-10-14 13:59:11 +02:00
Marc Durdin
6b52b439bb fix(developer): address ico validity during assignment 2022-10-14 16:49:17 +11:00
Marc Durdin
25d91e8f4d fix(developer): manual attachment for kmw in server 2022-10-14 11:10:26 +11:00
Marc Durdin
2cf6bf3f60 chore(common): update build.sh dependencies for epic-ldml 2022-10-14 10:45:00 +11:00
Sabine
f74e69682d chore(developer): add some more keyboardtests 2022-10-13 17:13:43 +02:00
Marc Durdin
0945b92732 chore: Merge branch 'master' into chore/merge-master-into-feature-ldml 2022-10-13 13:38:31 +11:00
Sabine
aeb000fbd3 chore(developer): add Message CERR_InvalidCharacter to UTF16TempFromUTF8() ; change #include <> -> "" 2022-10-12 17:05:48 +02:00
Sabine
a6870f0816 chore(developer): re-include AddCompilerVersionStore in Compiler.cpp 2022-10-11 16:41:07 +02:00
Marc Durdin
f054b06014 chore(developer): minor tweaks for usability
move Clear All button in read-only view
don't show a dialog for invalid graphics
2022-10-11 07:29:46 +11:00
Marc Durdin
bf8f636a14 fix(developer): Handle invalid graphics in icon editor
Fixes #7419.

If the user attempts to add an invalid graphic (e.g. a .png file saved
with a .ico extension), Keyman Developer will no longer crash when
trying to load the file.

Note that while the keyboard will still compile with an invalid graphic,
Keyman for Windows will refuse to install it. I have not tested other
platform handling of such a situation.
2022-10-11 07:18:09 +11:00
Marc Durdin
51a3679a90 fix(developer): Ctrl key to select key was conflicting with shortcuts
Fixes #7425.

In the layout editor, the "Select Key" dialog was being shown sometimes
when using shortcuts such as Ctrl+V. The reason this happened was that
the shortcut handler in Delphi was capturing the keydown of the V key,
so the Ctrl event handler never saw it. Then, if you pressed Ctrl+V, and
released the Ctrl key before releasing the V key (which often happens
when you press a shortcut rapidly), the Ctrl event handler would receive
notification of the Ctrl key release and trigger the "Select Key"
dialog.

This fix shifts the Ctrl key event handler out of the keyboard editor
and into the top-level application events handler -- this is the best
place where we can preview key events before they are passed to the
shortcut handler and controls for processing.

This necessitated adding a general `ControlKeyPressedAndReleased` event
function to the TIKE editor base class. This is currently only used by
`UfrmKeymanWizard` and `UfrmOSKEditor`.

I noted that the OSK editor did not currently support the Ctrl key
event to select a new key. As a part of this fix, I added support for
this, to bring it into line with the Layout Editor and the Touch Layout
Editor.
2022-10-11 06:39:38 +11:00
Joshua A. Horton
f8438d2117 chore(web): Merge branch 'master' into change/web/drop-touch-aliases 2022-10-10 09:04:24 +07:00
Marc Durdin
47da67a742 chore(developer): fixup import 2022-10-10 11:51:55 +11:00
Marc Durdin
faa37f24a9 chore(developer): handle EOL diff in tests 2022-10-10 10:55:35 +11:00
Marc Durdin
b4641efe69 feat(developer): generate .js from ldml .xml
Compiles a LDML keyboard .xml down to a KeymanWeb .js file. Currently
only supports some metadata.

Next step is to generate touch layout data, then to embed the binary kmx
data.
2022-10-10 10:08:37 +11:00
Marc Durdin
8d7ea6dcbb chore(developer): enable sourcemaps for kmc 2022-10-10 05:42:18 +11:00