Commit graph

539 commits

Author SHA1 Message Date
Marc Durdin
4ac71cca19
Merge pull request #9986 from keymanapp/chore/developer/9948-manage-sourcepath-in-upgrade-project
chore(developer): manage SourcePath in project upgrade 🦕
2023-11-15 13:48:19 +11:00
Marc Durdin
16bea3442e
Merge pull request #9985 from keymanapp/chore/developer/9948-only-build-source-files
chore(developer): only build source files 🦕
2023-11-15 13:48:09 +11:00
Marc Durdin
8895775d12
Merge pull request #9984 from keymanapp/feat/developer/9948-project-settings-20-form
feat(developer): Project Settings Form for 17.0+ projects 🦕
2023-11-15 13:47:44 +11:00
Marc Durdin
e77472c658
Merge pull request #9969 from keymanapp/fix/developer/9948-show-project-upgrade-messages-in-messages-panel
fix(developer): Project upgrade messages now show in Messages panel 🦕
2023-11-15 13:47:35 +11:00
Marc Durdin
ad2f6b33c9
Merge pull request #9964 from keymanapp/feat/developer/9948-show-ldml-xml-keyboards-in-project
feat(developer): show .xml LDML keyboards in project 🦕
2023-11-15 13:47:16 +11:00
Marc Durdin
b8dcc1b43d
Merge branch 'master' into feat/developer/9948-load-xml-ldml-files 2023-11-15 13:46:52 +11:00
Marc Durdin
26900f7b2c
Merge pull request #9956 from keymanapp/chore/developer/9948-hide-remove-project
chore(developer): hide 'Remove From Project' for v2.0 projects 🦕
2023-11-15 13:46:26 +11:00
Marc Durdin
c060666c0a
Merge pull request #9950 from keymanapp/feat/developer/9869-new-project-description-and-tweaks
feat(developer): New Project - Description field and tweaks 🦕
2023-11-15 13:46:16 +11:00
Marc Durdin
a937f3c7de
Merge pull request #9949 from keymanapp/feat/developer/tike-2.0-projects
feat(developer): Support v2.0 projects in TIKE 🦕
2023-11-15 13:46:07 +11:00
Darcy Wong
9af4ce3f53 fix(developer): Attempt 2 to copy font 2023-11-15 09:07:04 +07:00
Darcy Wong
71ea3c3fd1 fix(developer): Update Makefile to copy keymanweb-osk.ttf 2023-11-15 06:41:13 +07:00
Marc Durdin
4fe5df1e69 chore(developer): show only source path files in project views
Relates to #9948.

For v2.0 projects, only show .kmn, .kps, .model.ts, .tsv, and .xml files
if they are source files within Options.SourcePath.
2023-11-14 06:02:04 +07:00
Darcy Wong
799a84579a chore(developer): Add configure step to copy font 2023-11-13 20:31:14 +07:00
Darcy Wong
6ff0cd202d chore(common): Move keymanweb-osk.ttf to common/ 2023-11-13 15:44:46 +07:00
Marc Durdin
53b57939e4 feat(developer): handle errors loading projects
Relates to #9948.

Prevents loading of projects other than v1.0, v2.0, and also handles
error cases when attempting to load projects.
2023-11-13 13:41:58 +07:00
Marc Durdin
c488460c71 chore(developer): manage SourcePath in project upgrade
Relates to #9948.

When upgrading a project to v2.0, it is important that all source files
are in the same folder. This change makes the upgrade process verify
that this is the case and blocks the upgrade if there are source files
in multiple folders.

Source files are .kmn, .xml (ldml keyboard), .kps, and .model.ts.
2023-11-13 12:12:11 +07:00
Marc Durdin
d39af4edc5 chore(developer): only build source files
For batch builds (e.g. project/compile all) of v2.0 projects, we only
want to build files that are listed in the project's $SOURCEPATH, so
that the project can contain extra folders with source file types that
won't break a project-level build.

Any source file types in extra folders can still be built one-by-one,
which is helpful for investigation and test for keyboard authors, but
will not be built if project build is selected.

This commit also formalizes the source/ SourcePath for upgraded projects
which contain a source/ folder. If the project to be upgraded does not
contain the source/ folder, then no SourcePath is assigned, and any
source file in any folder will be built.
2023-11-12 06:43:39 +07:00
Marc Durdin
f9272aac21 feat(developer): Project Settings Form for 17.0+ projects 2023-11-12 06:40:58 +07:00
Marc Durdin
3c0b7a9b51 fix(developer): Project upgrade messages now show in Messages panel
Relates to #9948.

Having the project upgrade messages in the Messages panel means that
users can refer to them as they clean up their projects to bring them
into the v17 format.
2023-11-08 12:33:42 +07:00
Marc Durdin
5e9056f142 feat(developer): show .xml LDML keyboards in project
Identifies .xml keyboards when building file list, then shows those
appropriately in the keyboard list. Also enables grouped actions such
as keyboard_compileall for those keyboards.
2023-11-08 10:06:25 +07:00
Marc Durdin
a923537ed4 feat(developer): Actions to support LdmlKeyboardEditor
Adds actions to support LdmlKeyboardEditor, and refactors and
reorganizes the existing actions along the way to make them clearer.

Compile, Install, and Uninstall supported at this time
2023-11-08 08:16:11 +07:00
Marc Durdin
7c937e7d94 feat(developer): Split dmActionsDebugger out of dmActionsKeyboardEditor
Because the debugger actions are used only with the kmn keyboard editor,
it makes sense to keep them as a separate module, in preparation for
supporting XmlLdmlKeyboards.
2023-11-08 06:22:50 +07:00
Marc Durdin
befe2b87a1 refactor(developer): add xmlLdml types and form, rename ActiveEditor
Adds XmlLdml keyboard editor form based on the plain text Editor for
now.

ActiveEditor is a name used for multiple purposes. Rename to
ActiveKmnKeyboardEditor and introduce ActiveLdmlKeyboardEditor
alongside.
2023-11-08 06:03:11 +07:00
Marc Durdin
7b8fe32161 feat(developer): Add basic LDML XML keyboard file support to TIKE projects 2023-11-08 05:51:28 +07:00
Darcy Wong
71a9b9d66a
Merge pull request #9846 from keymanapp/chore/developer/non-printing-chars
feat(developer): Add more non-printing characters
2023-11-07 15:20:21 +07:00
Marc Durdin
857017f4ad chore(developer): remove obsolete project code
Removes old state load/save from each project file type, and the
unused WarnAsError property, in preparation for xmlLdmlProjectFile.
2023-11-07 14:57:40 +07:00
Marc Durdin
96e78c6818 chore(developer): fix typo 2023-11-07 14:57:08 +07:00
Marc Durdin
a312f735ad chore(developer): tweak prompt for project upgrade 2023-11-07 14:29:04 +07:00
Marc Durdin
eb97eb94b5 chore(developer): hide 'Remove From Project' for v2.0 projects
Relates to #9948.
2023-11-07 14:26:49 +07:00
Marc Durdin
0285993fcf feat(developer): New Project - Description field and tweaks
Fixes #9869.

Adds a 'Description' field, tweaks Copyright strings, and tweaks
default content for documentation to the New Project wizards and
kmconvert.
2023-11-07 06:04:33 +07:00
Marc Durdin
4c5a91081f feat(developer): Support v2.0 projects in TIKE
Relates to #9948. Starts basic support for v2.0 projects.

For all operating modes:

- Remove blank projects / untitled projects mode
- Add Open Project Folder buttons and links
- Remove Project Save As
- Render uses in-memory XML
- Upgrade to v2.0 project file (along with checks)

For v2.0 projects:

- Remove 'Add File to Project'
- Populate Files to list all files in folder (note: consider efficiency
  here as currently files are parsed for subfile data)
- Version 2.0 project options and defaults
2023-11-07 05:18:25 +07:00
Marc Durdin
3e3fb92d59
Merge pull request #9924 from keymanapp/chore/developer/remove-CompileErrorCodes
chore(developer): remove compile.pas and CompileErrorCodes.pas
2023-11-06 14:57:35 +11:00
Marc Durdin
3336539ec5 chore(developer): remove obsolete 'Allow Multiple Instances' and 'Use Legacy Compiler' options
Fixes #9925.

Allow Multiple Instances is now always true.
Use Legacy Compiler did nothing (there is no legacy compiler!).
2023-11-03 13:24:05 +07:00
Darcy Wong
ecae59062b fix(developer): Update keymanweb-osk.ttf font 2023-11-02 15:50:50 +07:00
Marc Durdin
6f6e07975b chore(developer): remove compile.pas and CompileErrorCodes.pas
Fixes #9923.

These are no longer used because we now use kmc for builds. This also
means that the kmcomp-x64-structures test is no longer required, because
that was used to keep the Delphi and C++ structures in sync.

There are some minor details around error message identifiers that are
still present in a handful of places, but they are work for another
time.
2023-11-02 13:12:28 +07:00
Marc Durdin
a1c1658880
Merge pull request #9906 from keymanapp/fix/developer/9444-line-breaks-in-debugger
fix(developer): enable line breaks in debugger
2023-11-02 15:09:27 +11:00
Marc Durdin
38d2c92ecf
Merge pull request #9922 from keymanapp/fix/developer/7851-restore-selection-to-same-key-in-layout-builder
fix(developer): restore selection in layout builder even with duplicate ids
2023-11-02 15:06:32 +11:00
Marc Durdin
e052178231
Merge pull request #9910 from keymanapp/feat/developer/7891-compile-button-in-toolbar
feat(developer): Compile button in TIKE toolbar
2023-11-02 15:06:03 +11:00
Marc Durdin
0dac92da57
Merge pull request #9914 from keymanapp/fix/developer/7852-layout-builder-maintain-presentation-during-undo
fix(developer): layout builder - maintain presentation during undo
2023-11-02 14:54:50 +11:00
Marc Durdin
067b7767c7
Merge pull request #9905 from keymanapp/fix/developer/9849-open-editor-links-in-new-window
fix(developer): open editor links in new window
2023-11-02 14:53:36 +11:00
Marc Durdin
7fec53af81
Merge pull request #9904 from keymanapp/chore/developer/9853-related-package-id-label
chore(developer): change field label to 'Related Package ID' in Related Packages dialog
2023-11-02 14:53:15 +11:00
Marc Durdin
e2ecf5726c
chore: Apply suggestions from code review 2023-11-02 14:17:49 +11:00
Marc Durdin
bd2315dbac fix(developer): restore selection in layout builder even with duplicate ids
Fixes #7851.

Note that this fixes the selection pop issue with duplicate ids in some
scenarios but not all. For example, the undo stack doesn't have enough
detail at this point to be able to track this. This fix addresses the
most egregious issue relating to key size adjustment and similar.
2023-11-01 10:43:48 +07:00
Marc Durdin
c759414e71 fix(developer): layout builder - maintain presentation during undo
Fixes #7852.

When undo is run in the layout builder, it is better to keep the user's
selected presentation if possible. (The selected presentation is not
stored in the undo stack, but is a view property affected by the
currently selected platform.)
2023-11-01 04:59:40 +07:00
Marc Durdin
5b9608438e feat(developer): Compile button in TIKE toolbar
Fixes #7891.
2023-10-31 14:20:18 +07:00
Marc Durdin
0d36fc0cf8 fix(developer): enable line breaks in debugger
Fixes #9444.
2023-10-31 12:59:51 +07:00
Marc Durdin
3d6c3c81eb fix(developer): open editor links in new window
Fixes #9849.
2023-10-31 12:44:07 +07:00
Marc Durdin
3db78a2244 chore(developer): change field label to 'Related Package ID' in Related Packages dialog
Fixes #9853.
2023-10-31 11:50:53 +07:00
Marc Durdin
b2d628dc79 fix(developer): Project MRU now saves correctly
Fixes #9899.

Several problems resolved here:
* project mru did not refresh the welcome screen on first load, so the
  welcome screen was often showing projects that were no longer relevant
* content saved to registry did not match expectations on load, so mru
  never worked between sessions (always flushed on reload)
* synchronization between simultaneous sessions did not work, because
  the list was only saved when Keyman Developer exited

Minor tidyup:
* WideString -> string -- legacy cleanup from when Delphi was
  non-Unicode.
* Reordered functions to group more clearly.

Note: the issue was not that there was both registry and xml content;
the source of truth is the registry for Project MRU, and project_mru.xml
is copied from that for the welcome screen. So instead of taking the
fix recommended in #9899, have addressed this by fixing the above points
in the registry code.
2023-10-31 10:46:35 +07:00
Marc Durdin
68c1bcd454 fix(developer): debug flag for compiling keyboards
Fixes #9885.

The 'Include Debug Info' flag was being ignored by the kmc wrapper.
2023-10-31 09:39:35 +07:00