Commit graph

2740 commits

Author SHA1 Message Date
Marc Durdin
97817b8724 chore(developer): remove unused dependencies from KeymanWeb compiler 2022-07-27 14:58:13 +10:00
Marc Durdin
66e07aed48
Merge pull request #6989 from keymanapp/fix/developer/improve-error-for-multi-part-key-ids
fix(developer): improve error message for multi-part key ids on <15.0 🎾
2022-07-26 13:55:04 +10:00
Marc Durdin
5895d26e64
Merge pull request #6884 from keymanapp/feat/developer/touch-layout-editor-flick-and-multitap
feat(developer): Rework Touch Layout Editor to support flick and multitap 🙊
2022-07-26 07:14:02 +10:00
Marc Durdin
9d82419aac fix(developer): improve error message for multi-part key ids on <15.0
Relates to https://community.software.sil.org/t/rule-for-touch-layout-question/6482/6
2022-07-26 06:19:02 +10:00
Marc Durdin
767927bf16 chore(common): use /usr/bin/env bash
Fixes up scripts (except under /linux) to use `#!/usr/bin/env bash`
instead of `#!/bin/bash` or `#!/bin/sh` so that we don't end up with
the ancient version of bash supplied with macOS.

This became urgent with this PR, because of bash-4.xisms in
build-utils.sh, for example on line 572:

```
if [[ -v _builder_params[$e] ]]; then
```
2022-07-25 14:59:37 +10:00
Marc Durdin
0d7e998bb6
Merge pull request #6943 from keymanapp/fix/developer/6897-timeouts-when-server-shutdown
fix(developer): reduce timeouts if server shut down 🎾
2022-07-22 16:42:50 +10:00
Marc Durdin
6c12bbc6cd refactor(developer): fixup path to tests
tidied up +removed unnecessary files
checked contents of files+included a few new functions needed for myVersion
changed datatypes in CheckForDuplicates
tidy up more paths
CheckFileConsistency: not able to fully adapt for use of char16_t on non windows p.
	-> used char16_t + commented out some AddWarning().
2022-07-20 17:49:17 +02:00
Marc Durdin
bde97ccf51
Merge pull request #6942 from keymanapp/fix/developer/crash-on-switching-back-tab
fix(developer): crash when switching back a tab 🎾
2022-07-15 15:44:16 +10:00
Marc Durdin
54538e00de
Merge pull request #6941 from keymanapp/fix/developer/6928-crash-on-exit
fix(developer): crash on exit when checking for updates 🎾
2022-07-15 15:44:10 +10:00
Marc Durdin
76d221e3e7
Merge pull request #6940 from keymanapp/fix/developer/kmdecomp-virtual-character-keys
fix(developer): kmdecomp virtual character key output 🎾
2022-07-15 15:44:05 +10:00
Joshua Horton
ed8c15fe6e
Merge pull request #6901 from keymanapp/fix/web/context-only-device
fix(web): postkeystroke processing should ignore key-event source🖇️
2022-07-15 11:06:39 +07:00
Marc Durdin
d2cfd5cc7e chore(developer): address review comments 2022-07-15 06:13:44 +10:00
Marc Durdin
307b052f2f refactor(developer): fixup path to tests 2022-07-14 17:47:53 +10:00
Marc Durdin
da5fc1da2b chore: move headers and refs 2022-07-14 17:46:11 +10:00
Marc Durdin
ca9a9922db chore: remove unnecessary files 2022-07-14 16:54:52 +10:00
Marc Durdin
45f97988cf fix(developer): reduce timeouts if server shut down
If Server is shut down, Keyman Developer now handles this better
and offers to restart it in UI interactions, and backs out quietly
in non-UI processes.
2022-07-14 16:28:39 +10:00
Marc Durdin
e42d50a6da fix(developer): crash when switching back a tab
In rare circumstances, Keyman Developer can crash during startup if you
try and switch back to a tab which is not yet available
(Ctrl+Shift+Tab).
2022-07-14 16:24:39 +10:00
Marc Durdin
1659dde17a fix(developer): crash on exit when checking for updates
Fixes #6928.
2022-07-14 16:22:36 +10:00
Marc Durdin
6cf8eb7807 fix(developer): kmdecomp virtual character key output
Virtual character keys were being written as garbage, for example:

```
store(store17) [RALT ""] [RALT SHIFT ""] [RALT ""] [RALT SHIFT ''] [RALT SHIFT ""] [RALT SHIFT ""] [RALT SHIFT ""] [RALT SHIFT ""] [RALT SHIFT ""] [RALT ""] [RALT SHIFT ""] [RALT SHIFT ""] [RALT SHIFT ""] [RALT ""] [RALT SHIFT ""] [RALT ""] [RALT ""] [RALT ""] [RALT SHIFT ""]
store(store18) [RCTRL ""] [RCTRL SHIFT ""] [RCTRL ""] [RCTRL SHIFT ''] [RCTRL SHIFT ""] [RCTRL SHIFT ""] [RCTRL SHIFT ""] [RCTRL SHIFT ""] [RCTRL SHIFT ""] [RCTRL ""] [RCTRL SHIFT ""] [RCTRL SHIFT ""] [RCTRL SHIFT ""] [RCTRL ""] [RCTRL SHIFT ""] [RCTRL ""] [RCTRL ""] [RCTRL ""] [RCTRL SHIFT ""]
```

Picked up in regression testing the compiler.
2022-07-14 16:19:03 +10:00
Marc Durdin
6032181e18 feat(developer): rework displayHint to defaultHint
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.
2022-07-14 10:58:59 +10:00
Marc Durdin
02d03588b2 chore(developer): simplify dialog workflow
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.
2022-07-14 10:58:58 +10:00
Marc Durdin
1738f12428 feat(developer): add displayHint property to touch layout editor
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.
2022-07-14 10:58:57 +10:00
Marc Durdin
a362f27dda feat(developer): add hint property to touch layout editor
Also fixes a couple of minor issues with character map integration and
Unicode text fields.
2022-07-14 10:58:56 +10:00
Marc Durdin
54a655e92e feat(developer): add hint and displayHint to touch layout validation and parsing 2022-07-14 10:58:55 +10:00
Marc Durdin
51a94a1d7d feat(developer): cleanup touch layout files on load and save
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.
2022-07-14 10:57:39 +10:00
Marc Durdin
60dabb5284 feat(developer): add support for flick and multitap to compiler 2022-07-14 10:57:25 +10:00
Marc Durdin
b702b7dbc3 fix(developer): fix issues with template and presentation 2022-07-14 10:55:03 +10:00
Marc Durdin
d29468441d chore(developer): remove multitap icon cleanly 2022-07-14 10:55:02 +10:00
Marc Durdin
f9241f4cd7 chore(developer): minor cleanup 2022-07-14 10:55:01 +10:00
Marc Durdin
268ba98219 feat(developer): Support new touch layout definitions in Delphi
Also minor tweaks to allow jquery-ui images to load, fixup for broken
file path for node.exe.
2022-07-14 10:55:01 +10:00
Marc Durdin
feee081f6f feat(developer): tweaks ui for selected key cap
* Separates out the 'command' icon key cap controls
* Fixes selection of last active element with undo
2022-07-14 10:55:00 +10:00
Marc Durdin
a637b58066 feat(developer): rework touch layout editor
* 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.
2022-07-14 10:54:59 +10:00
Marc Durdin
5875cf504f chore(developer): update jquery-ui version to 1.13.1 2022-07-14 10:54:58 +10:00
Marc Durdin
054423fbef chore(developer): refactor subkeys out of builder.js 2022-07-14 10:54:57 +10:00
Marc Durdin
83bf20cb44 chore(developer): refactor 'constants' out of builder.js 2022-07-14 10:54:56 +10:00
Marc Durdin
f8f271577b chore(developer): refactor undo actions out of builder.js 2022-07-14 10:54:55 +10:00
Marc Durdin
c88826ccaa chore(developer): refactor builder.js 2022-07-14 10:54:54 +10:00
Marc Durdin
d4c3dd89a3
Merge pull request #6918 from keymanapp/feat/developer/build-kmcomp-distributable-in-release
feat(developer): compiler regression support (build kmcomp-$version.zip during release build) 🚦
2022-07-14 10:52:45 +10:00
Sabine
0a66df6914 changes in meson + include-paths of several files 2022-07-13 14:36:27 +02:00
Sabine
3e58fa76b6 get keymans version
Merge branch 'master' of https://github.com/keymanapp/keyman into refactor/developer/6026-kmcompx-compiler-cross-platform-part-2-NEW_VERSION

# Conflicts:
#	common/core/desktop/src/kmx/kmx_context.h
#	common/core/desktop/src/kmx/kmx_processor.cpp
#	common/windows/cpp/include/keymanversion.h
#	common/windows/cpp/include/kkmnkbd/Compfile.h
#	common/windows/cpp/include/kmtip_guids.h
#	common/windows/cpp/src/kmtip_guids.cpp
#	core/src/kmx/kmx_conversion.cpp
#	core/src/kmx/kmx_conversion.h
#	core/src/kmx/kmx_file.cpp
#	core/src/kmx/kmx_processevent.cpp
#	core/src/kmx/kmx_processor.hpp
#	core/src/kmx/kmx_xstring.cpp
#	developer/js/.gitignore
#	developer/js/package-lock.json
#	developer/js/tests/tsconfig.json
#	developer/src/kmcmpdll/CasedKeys.cpp
#	developer/src/kmcmpdll/CheckFilenameConsistency.cpp
#	developer/src/kmcmpdll/CheckFilenameConsistency.h
#	developer/src/kmcmpdll/CheckForDuplicates.cpp
#	developer/src/kmcmpdll/CheckForDuplicates.h
#	developer/src/kmcmpdll/CheckNCapsConsistency.cpp
#	developer/src/kmcmpdll/CheckNCapsConsistency.h
#	developer/src/kmcmpdll/Compiler.cpp
#	developer/src/kmcmpdll/DeprecationChecks.cpp
#	developer/src/kmcmpdll/NamedCodeConstants.cpp
#	developer/src/kmcmpdll/UnreachableRules.cpp
#	developer/src/kmcmpdll/UnreachableRules.h
#	developer/src/kmcmpdll/compfile.h
#	developer/src/kmcmpdll/kcframe/kcframe.cpp
#	developer/src/kmcmpdll/kcframe/kcframe.vcxproj
#	developer/src/kmcmpdll/kcframe/kcframe.vcxproj.filters
#	developer/src/kmcmpdll/kmcmpdll.vcxproj
#	developer/src/kmcmpdll/kmcmpdll.vcxproj.filters
#	developer/src/kmcmpdll/version.rc
#	developer/src/kmcmpdll/versioning.cpp
#	developer/src/kmlmc/bundle.sh
#	developer/src/kmlmc/tests/test-join-word-breaker.ts
#	developer/src/kmlmc/tests/test-override-script-defaults.ts
#	developer/src/server/tsconfig.json
#	windows/src/developer/kmcmpdll/Makefile
#	windows/src/developer/kmcmpdll/vkeys.h
#	windows/src/engine/keyman32/keymanengine.h
#	windows/src/global/inc/Vkeys.h
#	windows/src/global/inc/rc4.h
#	windows/src/global/vc/rc4.cpp
2022-07-12 10:43:20 +02:00
Marc Durdin
05b3c23b98 fix(developer): QR Code for Package Editor had wrong path 2022-07-12 15:04:58 +10:00
Marc Durdin
9a3d11e9ff feat(developer): Option to skip embed of compiler version
If `-no-compiler-version` is specified, then we skip the embedding of
the `TSS_COMPILEDVERSION` and `TSS_KEYMANCOPYRIGHT` stores. This is
intended for use with regression test builds of keyboards when we want
to verify changes to the compiler.

This patch introduces the new export `SetCompilerOptions` in kmcmpdll,
which should make it easier to include new options like this in future
versions.
2022-07-11 12:01:13 +10:00
Marc Durdin
b700432583 fix(developer): kmdecomp stability tweaks
Adds kmdecomp to kmcomp-<version>.zip and fixes a couple of stability
issues:

* Increase buffer sizes (this fix very much a hack)
* Ensures that .bmp/.ico files are saved to correct output folder
* Disable loading sentry.dll when running on WINE
2022-07-11 10:42:33 +10:00
Marc Durdin
e38cc79efc feat(developer): build kmcomp-$version.zip during release build
Replaces the script building kmcomp-$version.zip in TeamCity. Will be
used for more automated keyboard testing shortly.

Means kmcomp-$version.zip will be available as an artifact in all test
builds.

@keymanapp-test-bot skip
2022-07-09 15:45:44 +10:00
Marc Durdin
27eb1b9f19 fix(developer): add no-ops for symbol builds for components
Fixes the release build where we do `nmake symbols` for developer/src,
which was failing on calls to these two sets of components. (In
windows/src, the build structure is different due to an additional layer
of folders, so we end up with no `nmake symbols` call on the common
components).
2022-07-08 05:04:10 +10:00
Marc Durdin
de4dc1a6e1 fix(developer): set contextDevice in web debugger
With the fix in fix/web/context-only-device, we need to ensure that the
debugger correctly tells KeymanWeb which device is active.

@keymanapp-test-bot skip
2022-07-07 13:09:00 +10:00
Marc Durdin
da89fe4b9b
Merge pull request #6866 from keymanapp/fix/developer/show-version-number
fix(developer): Show full version number
2022-07-06 05:41:26 +10:00
Marc Durdin
a0d6150922
Merge pull request #6865 from keymanapp/fix/developer/6799-readonly-groups-never-emit
fix(developer): readonly groups should never emit output
2022-07-06 05:41:08 +10:00
Marc Durdin
5d9aea7094 chore(developer): increase label height in setup 2022-06-29 12:54:22 +10:00
Marc Durdin
7ec9859838 fix(developer): Show full version number
Updated various places in Keyman Developer to show the full
VersionWithTag rather than the short version number we had been
previously showing:

- About dialog
- Welcome screen
- Installer
- kmcomp help
- kmconvert help
- kmanalyze help
- kmdecomp help

This should help when testing to verify that we are testing the right
version.

Also fixed the keymansentry path when running command line C++ programs
from source repo.
2022-06-29 10:58:40 +10:00