Commit graph

3486 commits

Author SHA1 Message Date
Marc Durdin
5dcd95da41
Merge pull request #6449 from keymanapp/feat/developer/5063-multiple-virtual-keys
feat(developer): keep Virtual Key Identifier dialog open on Insert
2022-04-01 07:32:53 +11:00
Darcy Wong
5bcac1b1bf chore(common): Update crowdin strings for km 2022-03-31 20:59:07 +07:00
Marc Durdin
674ff3a711 fix(developer): update kmconvert command line call 2022-03-31 12:11:47 +11:00
Marc Durdin
67a02a4a93 fix(developer): make sure unit tests stop build on error 2022-03-31 11:39:09 +11:00
Marc Durdin
921f0b9f1a fix(developer): adds unit test for kmconvert 2022-03-31 11:38:54 +11:00
Marc Durdin
34e2d7008c fix(developer): validate kmconvert parameters
Checks common error scenarios in kmconvert command line parameters.
2022-03-31 11:38:03 +11:00
Marc Durdin
0696587cc8 refactor(developer): KMConvertParameters use private setters
First part of #5472.

Refactoring with no behavioural change to make it easier to validate
parameters.
2022-03-31 10:09:53 +11:00
Marc Durdin
746a2d9be6 chore: update additional tests 2022-03-31 08:02:37 +11:00
Marc Durdin
32eaff95b8 chore(developer): and... tweak test fixture 2022-03-31 06:40:03 +11:00
Marc Durdin
62e2f51887 feat(developer): keep Virtual Key Identifier dialog open on Insert
Fixes #5063.

It can be useful to be able to insert multiple keys into the active
keyboard source file. With this tweak, the dialog no longer closes with
the Insert button, only with the Close button.
2022-03-31 06:24:59 +11:00
Marc Durdin
0606e4e732 chore(developer): tweak test 2022-03-31 06:09:32 +11:00
Marc Durdin
7c1c4b8729 chore(developer): tweak test reporting 2022-03-30 19:57:53 +11:00
Marc Durdin
a639eaa946 feat(developer): promote 'info' messages to 'hint'
There was confusion in the compiler between INFO and HINT type messages.
The problem is that INFO messages will be suppressed by -s/-ss in
kmcomp, but we actually still want HINT messages to be emitted. So I
have gone ahead and renamed CERR_INFO to CERR_HINT and updated all the
places.

This was necessary in order for the kmcomp e2e test 194 to pass.
2022-03-30 17:04:48 +11:00
Marc Durdin
d0a26ae62f feat(developer): check filename case consistency when compiling keyboard
Fixes #194.

Adds a check for all the various file types that may be referenced by a
.kmn file to ensure that the case of the reference matches the case in
the filesystem, to ensure that files are transportable across to
case-sensitive filesystems.

The output is provided as a Hint (Info) level message so that it does
not fail keyboard builds.
2022-03-30 16:25:12 +11:00
Marc Durdin
825083e601 fix(developer): Add Wordlist button now copies into source folder
Fixes #2185.

If a wordlist file is not in the same folder as the .model.ts file,
Keyman Developer will now ask the user if they want it copied into the
folder.

Also minor fix: if the user deletes a row in a wordlist, it marks the
file as modified.

Also very minor: the initial folder for the Add Wordlist dialog is now
the same as the .model.ts file.
2022-03-30 10:04:55 +11:00
Marc Durdin
5603ca46fd feat(developer): add tests for unreachable code
This adds 4 tests for unreachable code and 1 future test. It also fixes
test.bat so that it exits with an error if the tests fail, and ensures
that tests are run by fixing the parent Makefile.
2022-03-30 09:15:07 +11:00
Marc Durdin
4a619b051d fix(developer): set kmcomp debug build to correct folder 2022-03-30 09:12:27 +11:00
Marc Durdin
7ff1ab8419
Merge pull request #6435 from keymanapp/feat/developer/4854-character-map-builder-integration
feat(developer): improve Touch Layout Editor and Character Map integration
2022-03-30 05:22:17 +11:00
Marc Durdin
175efea0b4 feat(developer): cleanup of unicode support 2022-03-29 14:55:21 +11:00
Marc Durdin
b50ad35d72 feat(developer): hint on unreachable code
Fixes #355.
Fixes #1710.

This is structured as a feature so it is tested as such, but was part of
the set of fixes scheduled for 15.0 beta. Any rule in a group that
Keyman Developer assesses as 'unreachable' will receive a hint message.

The current rule match is fairly simplistic -- it only does an exact
comparison -- so duplication which is indirect, through `any(store)`
references in the context would still result in unreachable rules that
are not picked up.
2022-03-29 12:49:34 +11:00
Marc Durdin
c0248bec1b
Merge pull request #6432 from keymanapp/fix/web/shifted-key-cap
fix(web): *Shifted* showed unshifted key cap
2022-03-29 12:36:12 +11:00
Marc Durdin
33fda3e59f feat(developer): improve Touch Layout Editor and Character Map integration
Fixes #4854.

Adds some intelligence to the drag + drop integration with the Touch
Layout Editor, so that we always drop a character onto a key cap, we
always drop a code onto a ID field, and can drop both character + code
together (if the key id is T_new_..., or holding Ctrl key).

Hovering over any key for 0.25 sec while dragging will select that key.
You can then continue dragging down to the subkey array and drop onto
any of those keys. Note that you do not need to hover for 0.25 sec
before you drop onto a key -- the drop operation will select the key
under the cursor when dropping.

Double-clicking will update the selected key or subkey; Ctrl will do
both the key cap and the ID.
2022-03-28 11:47:55 +11:00
Marc Durdin
46807d7af2 fix(web): *Shifted* showed unshifted key cap
While this was done in code as a global override, probably following
Apple stylistic changes, it is better to leave this to the keyboard
developer to decide on.
2022-03-28 09:02:22 +11:00
Marc Durdin
b87197a3f6
Merge pull request #6424 from keymanapp/fix/windows/6098-ui-language-scroll
fix(windows): make long menus scroll in Configuration
2022-03-28 04:44:19 +11:00
Ross
f8402a35e0 fix(windows): Fix scope of variables in case statement 2022-03-25 08:50:09 +10:00
rc-swag
2c40f13db0
fix(windows): add brackets to string return
Co-authored-by: Marc Durdin <marc@durdin.net>
2022-03-24 20:19:17 +10:00
Ross
31138ecdbc fix(windows): put correct HK_ALT flag for modifier 2022-03-24 16:20:12 +10:00
Marc Durdin
bfc973ec4e fix(windows): make long menus scroll in Configuration
Fixes #6098.

If the list of languages is too long to fit, the menu now dynamically
adds a scroll bar.

As a bonus:
* The language names are sorted (non-Latin scripts at bottom for now)
* `nmake install` works again (in kmshell, presence of `install` folder
  was confusing it)
2022-03-24 15:17:57 +11:00
Marc Durdin
d714ccc2d1
Merge pull request #6408 from keymanapp/fix/developer/kmcomp-x64-struct-sizes
fix(developer): structure sizes for kmcomp x64
2022-03-24 09:45:22 +11:00
Marc Durdin
5c388d1d7e
Merge pull request #6366 from keymanapp/feat/web/6364-new-layer-old-layer-replaces-layerchanged
feat(web): `&newLayer` and `&oldLayer`
2022-03-23 16:53:34 +11:00
Ross
342af79c34 fix(windows): add cs_clsidKMTipTextService const 2022-03-23 15:12:48 +10:00
rc-swag
4f218e7d6f
fix(windows): apply review comments as batch
Co-authored-by: Marc Durdin <marc@durdin.net>
2022-03-23 15:07:10 +10:00
Ross
c2d478ba4e fix(windows): rename header - review comments 2022-03-22 16:34:46 +10:00
rc-swag
fec2120b2e
fix(windows): address review comments 2022-03-22 13:37:33 +10:00
Marc Durdin
68a792c0b5 fix(developer): structure sizes for kmcomp x64
I am not sure how this was ever working. This just adds the specific
structure sizes for x64 and verifies that the Delphi sizes are the
same as the reported sizes from C++.

Minor tweak to printf format args for kcframe to assist in this, sorting
a compiler warning.
2022-03-22 13:38:32 +11:00
Marc Durdin
0764305211 fix(developer): detect changes in dropdowns in builder
Fixes #6386.

The touch layout editor would not reliably detect changes if using the
mouse to select an item in a dropdown 'autocomplete'.
2022-03-21 17:06:38 +11:00
Ross
79fa9f8a86 fix(windows): create header for keyman guids 2022-03-21 14:58:43 +10:00
Ross
dbc950741a fix(windows): change variable name add comments 2022-03-18 14:41:26 +10:00
Marc Durdin
a3d9a9e4c1 chore(windows): move crash metadata to extra
Fixes #6396.
2022-03-18 11:33:41 +11:00
Ross
6d248d4e55 chore(windows): Merge branch 'beta' into fix/windows/5996/no-keystrokes-emoji-input 2022-03-18 09:13:15 +10:00
Ross
d58a8c97d8 fix(windows): add threat check 2022-03-18 08:25:45 +10:00
Ross
be333860f0 fix(windows): framework for switching of pipeline
We want to be able to switch of the seralized pipeline if a keyman
keyboard is not active. To do this we need to store this information
in a way the seralized thread can get the information.
2022-03-17 13:02:50 +10:00
Marc Durdin
7a5d1b964f chore(web): Merge branch 'beta' into feat/web/6364-new-layer-old-layer-replaces-layerchanged 2022-03-17 04:55:25 +11:00
Marc Durdin
2e9e90dd77 chore: license date 2022-03-15 13:59:27 +11:00
Marc Durdin
81ec8b86e2
Merge pull request #6347 from keymanapp/fix/developer/warn-on-ncaps-consistency
fix(developer): warn on ncaps usage inconsistency
2022-03-15 10:02:35 +11:00
Marc Durdin
b23df3fbc8 feat(web): &newLayer and &oldLayer
Fixes #6364.

Removes `&layerChanged` and adds `&newLayer` and `&oldLayer` system
stores with the additional nuances around values as described in #6364.
2022-03-13 08:29:15 +11:00
rc-swag
514e585f88
Merge pull request #6187 from keymanapp/fix/windows/imsample-null-pointer-checks
fix(windows): add null pointer checks imsample keyboard
2022-03-10 19:15:38 +10:00
Marc Durdin
62b7d67d1e fix(developer): warn on ncaps usage inconsistency
If a developer has two rules where one includes CAPS and the other
does not include NCAPS, the CAPS rule may not be correctly matched. This
change warns them when this is the case.
2022-03-09 14:13:29 +11:00
Marc Durdin
785c45eb40
Merge pull request #6325 from keymanapp/fix/developer/project-should-not-steal-focus-on-load
fix(developer): project should not steal focus on load ✂
2022-03-08 20:29:51 +11:00
Ross
2dfdecaf44 fix(windows): create registry keys for IM window
This commit adds a function that sets the IM window registry keys
needed for the IMSample keyboard.

It also adds a null pointer check on the lpActiveKeyboard in the imx
callback module.
2022-03-08 18:09:13 +10:00