Commit graph

2636 commits

Author SHA1 Message Date
Marc Durdin
4c60319266
Merge branch 'beta' into feat/developer/6462-duplicate-store-group-definitions 2022-04-04 19:35:01 +10:00
Marc Durdin
5a8064ef4e
Merge branch 'beta' into fix/developer/5472-kmconvert-check-parameters 2022-04-04 19:32:42 +10:00
Marc Durdin
10ec7fbc2f
Merge pull request #6466 from keymanapp/fix/developer/2748-icon-editor-font-color
fix(developer): icon editor font color now follows fgcolor
2022-04-04 19:30:04 +10:00
Marc Durdin
551dbe4cdf
Merge pull request #6465 from keymanapp/feat/developer/2749-icon-editor-clear-all-button
feat(developer): add Clear All button to icon editor
2022-04-04 19:29:54 +10:00
Marc Durdin
348036c703
Merge pull request #6445 from keymanapp/feat/developer/194-check-filename-case
feat(developer): check filename case consistency when compiling keyboard
2022-04-04 19:29:22 +10:00
Marc Durdin
7f914c9e82
Merge pull request #6440 from keymanapp/feat/developer/355-unreachable-code
feat(developer): hint on unreachable code
2022-04-04 19:29:13 +10:00
Darcy Wong
e6f8939721 chore(common): Update in-app help versions to 15.0 2022-04-04 11:52:13 +07:00
Marc Durdin
ce67954d20 fix(developer): icon editor font color now follows fgcolor
Fixes #2748.

Note that transparent text is not supported for ClearType or antialiased
modes.
2022-04-04 10:24:14 +10:00
Marc Durdin
e9e5d285af feat(developer): add Clear All button to icon editor
Fixes #2749.

Adds a Clear All button which does the same as Edit/Clear Selection.

At the same time, fixes the Clear code for transparent background
colours; previously, clear all with transparent background gave a black
fill.
2022-04-04 09:29:31 +10:00
Marc Durdin
55561b3d34 fix(developer): improves More Help link for icon tool
Fixes #2750.

This tweaks the More Help link to open the correct part of the Keyboard
Editor help page. Goes together with keymanapp/help.keyman.com#526.

The context help data needs a consolidated rewrite. This does not
attempt to touch that, nor does it attempt to add more contextual help
links for any other part of the Developer IDE. That is work for another
day...
2022-04-04 09:25:43 +10:00
Marc Durdin
3e6f416bfa feat(developer): check for duplicate store/group names
Fixes #6462.

The compiler will now produce an error if a store() or group() name is
re-used, as this is invalid.
2022-04-04 08:08:28 +10:00
Marc Durdin
10b81d56ba
Update windows/src/developer/kmcmpdll/Compiler.rc
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2022-04-03 06:39:48 +10:00
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
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
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
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
Marc Durdin
a3d9a9e4c1 chore(windows): move crash metadata to extra
Fixes #6396.
2022-03-18 11:33:41 +11: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