Fixes#9869.
Adds a 'Description' field, tweaks Copyright strings, and tweaks
default content for documentation to the New Project wizards and
kmconvert.
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
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.
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.
Fixes#8000.
In earlier versions of KeymanWeb, it was assumed that layer switch keys
would not necessarily need an identifier, as they would not be
generating a standard KeymanWeb key event. However, this assumption does
not really hold, so we should be warning on missing identifiers for
layer switch keys.
Renames two messages.ts to kmn-compiler-messages.ts and
kmw-compiler-messages.ts, as otherwise confusion reigns.
Also a minor cleanup of the error messages from touch layout processing,
to clarify message names and return appropriate message for missing
layout file.
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.)
Fixes#7880.
Virtual keys have never been allowed in context. This should be an error
in a keyboard. Note: virtual keys in output are officially unsupported
but still kinda sorta a little bit work in Windows -- but I doubt they
will ever be officially supported.
Also includes small side journey to tidy up names and constants for two
other tests (error_duplicate_group and error_duplicate_store).
Several unit tests were not running as they were not referenced in
developer/src/test/auto/Makefile. This meant that some tests were
outdated:
* two keyboard fixtures needed recompiling with kmcomp in order to match
* some interfaces had changed slightly, necessitating updates to
corresponding unit tests.
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.
Fixes#9889.
This arises from a deprecated way of using Keyman Developer by starting
Keyman Developer by opening a keyboard .kmn file from Explorer, which
causes Developer to run in a 'projectless' mode. This was not tested in
the new compiler integration, and that has caused this crash.
In 'projectless' mode, there is still a global 'untitled' project, but
the files loaded do not 'belong' to it. The compiler settings are
inherited from the global 'untitled' project in this case.
Fixes#9851.
Two fixes:
* errors from loading the displayMap from disk should be handled before
passing result to next function
* temp compile of the .kmn for the 'fill from layout' function should be
in the same path as the original .kmn, so that referenced files can be
located
Instead of generating a name for the web fonts, we should be using the
font family from the .ttf, as we have it available. This allows us to
avoid downloading the font if the user already has it installed on their
system.
Uses ttfmeta npm package, which is a lightweight .ttf reader. Updates
the honking big unit test to do some basic tests on this functionality.