mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-21 07:47:40 +00:00
Merge pull request #2164 from keymanapp/developer-remove-model-version-from-package-metadata
[Developer] Remove model version from package metadata.
This commit is contained in:
commit
40afdaf2f8
11 changed files with 30 additions and 107 deletions
|
|
@ -91,7 +91,7 @@ export default class KmpCompiler {
|
|||
|
||||
if(kps.lexicalModels && kps.lexicalModels.lexicalModel) {
|
||||
kmp.lexicalModels = arrayWrap(kps.lexicalModels.lexicalModel).map((model: KpsFileLexicalModel) => {
|
||||
return { name:model.name, id:model.iD, version:model.version, languages: kpsLanguagesToKmpLanguages(arrayWrap(model.languages.language) as KpsFileLanguage[]) }
|
||||
return { name:model.name, id:model.iD, languages: kpsLanguagesToKmpLanguages(arrayWrap(model.languages.language) as KpsFileLanguage[]) }
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -45,7 +45,6 @@ interface KmpJsonFileContentFile {
|
|||
interface KmpJsonFileLexicalModel {
|
||||
name: string;
|
||||
id: string;
|
||||
version: string;
|
||||
languages: KmpJsonFileLanguage[];
|
||||
}
|
||||
|
||||
|
|
@ -67,7 +66,7 @@ interface KmpJsonFileKeyboard {
|
|||
interface KmpJsonFileStartMenu {
|
||||
folder?: string;
|
||||
addUninstallEntry?: boolean;
|
||||
items?: KmpJsonFileStartMenuItem[];
|
||||
items?: KmpJsonFileStartMenuItem[];
|
||||
}
|
||||
|
||||
interface KmpJsonFileStartMenuItem {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
//
|
||||
// The interfaces in this file are designed with reference to the
|
||||
// The interfaces in this file are designed with reference to the
|
||||
// mapped structures produced by xml2js when passed a .kps file.
|
||||
//
|
||||
// A few notes:
|
||||
|
|
@ -8,7 +8,7 @@
|
|||
// mixed up beastie).
|
||||
// * Arrays are buried a layer too deep (e.g. <Files><File/><File/></Files>
|
||||
// leads to KpsFiles.KpsFile[]
|
||||
// * Properties such as used in Info Items use `_` and `$` and must be
|
||||
// * Properties such as used in Info Items use `_` and `$` and must be
|
||||
// extracted.
|
||||
// * Strings element is not yet checked to be correct
|
||||
//
|
||||
|
|
@ -65,7 +65,6 @@ interface KpsFileContentFile {
|
|||
interface KpsFileLexicalModel {
|
||||
name: string;
|
||||
iD: string;
|
||||
version: string;
|
||||
languages: KpsFileLanguages;
|
||||
}
|
||||
|
||||
|
|
@ -99,7 +98,7 @@ interface KpsFileKeyboards {
|
|||
interface KpsFileStartMenu {
|
||||
folder?: string;
|
||||
addUninstallEntry?: string;
|
||||
items?: KpsFileStartMenuItems;
|
||||
items?: KpsFileStartMenuItems;
|
||||
}
|
||||
|
||||
interface KpsFileStartMenuItem {
|
||||
|
|
|
|||
|
|
@ -33,7 +33,6 @@
|
|||
{
|
||||
"name": "SENĆOŦEN dictionary",
|
||||
"id": "example.qaa.sencoten",
|
||||
"version": "1.0.3",
|
||||
"languages": [
|
||||
{
|
||||
"name": "North Straits Salish",
|
||||
|
|
|
|||
|
|
@ -618,13 +618,6 @@ inherited frmPackageEditor: TfrmPackageEditor
|
|||
Height = 13
|
||||
Caption = 'Description:'
|
||||
end
|
||||
object lblLexicalModelVersion: TLabel
|
||||
Left = 261
|
||||
Top = 129
|
||||
Width = 41
|
||||
Height = 13
|
||||
Caption = 'Version:'
|
||||
end
|
||||
object lblLexicalModelLanguages: TLabel
|
||||
Left = 260
|
||||
Top = 181
|
||||
|
|
@ -651,15 +644,6 @@ inherited frmPackageEditor: TfrmPackageEditor
|
|||
TabOrder = 1
|
||||
OnChange = editLexicalModelDescriptionChange
|
||||
end
|
||||
object editLexicalModelVersion: TEdit
|
||||
Left = 342
|
||||
Top = 126
|
||||
Width = 148
|
||||
Height = 21
|
||||
TabStop = False
|
||||
TabOrder = 2
|
||||
OnChange = editLexicalModelVersionChange
|
||||
end
|
||||
object gridLexicalModelLanguages: TStringGrid
|
||||
Left = 260
|
||||
Top = 200
|
||||
|
|
@ -671,7 +655,7 @@ inherited frmPackageEditor: TfrmPackageEditor
|
|||
FixedCols = 0
|
||||
RowCount = 9
|
||||
Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goColSizing, goRowSelect]
|
||||
TabOrder = 3
|
||||
TabOrder = 2
|
||||
OnClick = gridLexicalModelLanguagesClick
|
||||
OnDblClick = gridLexicalModelLanguagesDblClick
|
||||
ColWidths = (
|
||||
|
|
@ -685,7 +669,7 @@ inherited frmPackageEditor: TfrmPackageEditor
|
|||
Height = 25
|
||||
Anchors = [akLeft, akBottom]
|
||||
Caption = '&Add...'
|
||||
TabOrder = 4
|
||||
TabOrder = 3
|
||||
OnClick = cmdLexicalModelLanguageAddClick
|
||||
end
|
||||
object cmdLexicalModelLanguageRemove: TButton
|
||||
|
|
@ -695,7 +679,7 @@ inherited frmPackageEditor: TfrmPackageEditor
|
|||
Height = 25
|
||||
Anchors = [akLeft, akBottom]
|
||||
Caption = '&Remove'
|
||||
TabOrder = 5
|
||||
TabOrder = 4
|
||||
OnClick = cmdLexicalModelLanguageRemoveClick
|
||||
end
|
||||
object cmdLexicalModelLanguageEdit: TButton
|
||||
|
|
@ -705,16 +689,16 @@ inherited frmPackageEditor: TfrmPackageEditor
|
|||
Height = 25
|
||||
Anchors = [akLeft, akBottom]
|
||||
Caption = 'Ed&it...'
|
||||
TabOrder = 6
|
||||
TabOrder = 5
|
||||
OnClick = cmdLexicalModelLanguageEditClick
|
||||
end
|
||||
object chkLexicalModelRTL: TCheckBox
|
||||
Left = 342
|
||||
Top = 153
|
||||
Top = 126
|
||||
Width = 97
|
||||
Height = 17
|
||||
Caption = 'Is Right-to-left'
|
||||
TabOrder = 7
|
||||
TabOrder = 6
|
||||
OnClick = chkLexicalModelRTLClick
|
||||
end
|
||||
object editLexicalModelFilename: TEdit
|
||||
|
|
@ -725,7 +709,7 @@ inherited frmPackageEditor: TfrmPackageEditor
|
|||
TabStop = False
|
||||
ParentColor = True
|
||||
ReadOnly = True
|
||||
TabOrder = 8
|
||||
TabOrder = 7
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -188,11 +188,9 @@ type
|
|||
lblLexicalModelsSubtitle: TLabel;
|
||||
lblLexicalModelFilename: TLabel;
|
||||
lblLexicalModelDescription: TLabel;
|
||||
lblLexicalModelVersion: TLabel;
|
||||
lblLexicalModelLanguages: TLabel;
|
||||
lbLexicalModels: TListBox;
|
||||
editLexicalModelDescription: TEdit;
|
||||
editLexicalModelVersion: TEdit;
|
||||
gridLexicalModelLanguages: TStringGrid;
|
||||
cmdLexicalModelLanguageAdd: TButton;
|
||||
cmdLexicalModelLanguageRemove: TButton;
|
||||
|
|
@ -256,7 +254,6 @@ type
|
|||
procedure cmdLexicalModelLanguageRemoveClick(Sender: TObject);
|
||||
procedure chkLexicalModelRTLClick(Sender: TObject);
|
||||
procedure editLexicalModelDescriptionChange(Sender: TObject);
|
||||
procedure editLexicalModelVersionChange(Sender: TObject);
|
||||
private
|
||||
pack: TKPSFile;
|
||||
FSetup: Integer;
|
||||
|
|
@ -1837,7 +1834,6 @@ begin
|
|||
if not Assigned(lm) then
|
||||
begin
|
||||
editLexicalModelDescription.Text := '';
|
||||
editLexicalModelVersion.Text := '';
|
||||
editLexicalModelFilename.Text := '';
|
||||
chkLexicalModelRTL.Checked := False;
|
||||
gridLexicalModelLanguages.RowCount := 1;
|
||||
|
|
@ -1848,7 +1844,6 @@ begin
|
|||
// Details
|
||||
|
||||
editLexicalModelDescription.Text := lm.Name;
|
||||
editLexicalModelVersion.Text := lm.Version;
|
||||
chkLexicalModelRTL.Checked := lm.RTL;
|
||||
|
||||
for i := 0 to pack.Files.Count - 1 do
|
||||
|
|
@ -1876,8 +1871,6 @@ begin
|
|||
editLexicalModelDescription.Enabled := e;
|
||||
lblLexicalModelFilename.Enabled := e;
|
||||
editLexicalModelFilename.Enabled := e;
|
||||
lblLexicalModelVersion.Enabled := e;
|
||||
editLexicalModelVersion.Enabled := e;
|
||||
lblLexicalModelLanguages.Enabled := e;
|
||||
cmdLexicalModelLanguageAdd.Enabled := e;
|
||||
chkLexicalModelRTL.Enabled := e;
|
||||
|
|
@ -1953,18 +1946,6 @@ begin
|
|||
Modified := True;
|
||||
end;
|
||||
|
||||
procedure TfrmPackageEditor.editLexicalModelVersionChange(Sender: TObject);
|
||||
var
|
||||
lm: TPackageLexicalModel;
|
||||
begin
|
||||
if FSetup > 0 then
|
||||
Exit;
|
||||
lm := SelectedLexicalModel;
|
||||
Assert(Assigned(lm));
|
||||
lm.Version := editLexicalModelVersion.Text;
|
||||
Modified := True;
|
||||
end;
|
||||
|
||||
procedure TfrmPackageEditor.chkLexicalModelRTLClick(Sender: TObject);
|
||||
var
|
||||
lm: TPackageLexicalModel;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,11 @@
|
|||
## 13.0 alpha
|
||||
* Start version 13.0
|
||||
|
||||
## 2019-07-30 12.0.41 beta
|
||||
## 2019-10-04 12.0.44 beta
|
||||
* Package Editor: Lexical models do not have embedded version numbers, so remove this from the user interface. (#2164)
|
||||
* Touch Layout Editor: Dropping character from Character Map onto Touch Layout Editor now saves the change. (#2163)
|
||||
|
||||
## 2019-09-30 12.0.41 beta
|
||||
* General: Keyman Desktop 11 would crash if installed together with Keyman Developer 12. (#2148)
|
||||
|
||||
## 2019-09-29 12.0.40 beta
|
||||
|
|
|
|||
|
|
@ -161,7 +161,7 @@ begin
|
|||
kps.Info.Desc[PackageInfo_Name] := Name;
|
||||
kps.Info.Desc[PackageInfo_Copyright] := Copyright;
|
||||
kps.Info.Desc[PackageInfo_Author] := Author;
|
||||
kps.KPSOptions.FollowKeyboardVersion := True;
|
||||
kps.Info.Desc[PackageInfo_Version] := Version;
|
||||
kps.FileName := GetPackageFilename;
|
||||
|
||||
// Add model.js
|
||||
|
|
@ -184,7 +184,6 @@ begin
|
|||
plm := TPackageLexicalModel.Create(kps);
|
||||
plm.Name := Name;
|
||||
plm.ID := ID;
|
||||
plm.Version := Version;
|
||||
kps.LexicalModels.Add(plm);
|
||||
|
||||
SetPackageLanguageMetadata(kps, plm.Languages);
|
||||
|
|
|
|||
|
|
@ -262,36 +262,21 @@ begin
|
|||
|
||||
if pack.KPSOptions.FollowKeyboardVersion then
|
||||
begin
|
||||
if (kmpinf.Keyboards.Count = 0) and (kmpinf.LexicalModels.Count = 0) then
|
||||
if kmpinf.Keyboards.Count = 0 then
|
||||
begin
|
||||
FatalMessage('The option "Follow Keyboard Version" is set but there are no keyboards (or lexical models) in the package.');
|
||||
FatalMessage('The option "Follow Keyboard Version" is set but there are no keyboards in the package.');
|
||||
Exit;
|
||||
end;
|
||||
|
||||
if kmpinf.Keyboards.Count > 0 then
|
||||
begin
|
||||
FPackageVersion := kmpinf.Keyboards[0].Version;
|
||||
for i := 1 to kmpinf.Keyboards.Count - 1 do
|
||||
if kmpinf.Keyboards[i].Version <> FPackageVersion then
|
||||
begin
|
||||
FatalMessage(
|
||||
'The option "Follow Keyboard Version" is set but the package contains more than one keyboard, '+
|
||||
'and the keyboards have mismatching versions.');
|
||||
Exit;
|
||||
end;
|
||||
end
|
||||
else
|
||||
begin
|
||||
FPackageVersion := kmpinf.LexicalModels[0].Version;
|
||||
for i := 1 to kmpinf.LexicalModels.Count - 1 do
|
||||
if kmpinf.LexicalModels[i].Version <> FPackageVersion then
|
||||
begin
|
||||
FatalMessage(
|
||||
'The option "Follow Keyboard Version" is set but the package contains more than one lexical model, '+
|
||||
'and the models have mismatching versions.');
|
||||
Exit;
|
||||
end;
|
||||
end;
|
||||
FPackageVersion := kmpinf.Keyboards[0].Version;
|
||||
for i := 1 to kmpinf.Keyboards.Count - 1 do
|
||||
if kmpinf.Keyboards[i].Version <> FPackageVersion then
|
||||
begin
|
||||
FatalMessage(
|
||||
'The option "Follow Keyboard Version" is set but the package contains more than one keyboard, '+
|
||||
'and the keyboards have mismatching versions.');
|
||||
Exit;
|
||||
end;
|
||||
|
||||
kmpinf.Info.Desc[PackageInfo_Version] := FPackageVersion;
|
||||
end;
|
||||
|
|
|
|||
|
|
@ -338,7 +338,6 @@ type
|
|||
|
||||
TPackageLexicalModel = class(TPackageBaseObject)
|
||||
private
|
||||
FVersion: string;
|
||||
FName: string;
|
||||
FID: string;
|
||||
FLanguages: TPackageKeyboardLanguageList;
|
||||
|
|
@ -349,7 +348,6 @@ type
|
|||
procedure Assign(Source: TPackageLexicalModel); virtual;
|
||||
property Name: string read FName write FName;
|
||||
property ID: string read FID write FID;
|
||||
property Version: string read FVersion write FVersion;
|
||||
property RTL: Boolean read FRTL write FRTL;
|
||||
property Languages: TPackageKeyboardLanguageList read FLanguages;
|
||||
end;
|
||||
|
|
@ -518,7 +516,6 @@ const
|
|||
SJSON_LexicalModels = 'lexicalModels';
|
||||
SJSON_LexicalModel_Name = 'name';
|
||||
SJSON_LexicalModel_ID = 'id';
|
||||
SJSON_LexicalModel_Version = 'version';
|
||||
SJSON_LexicalModel_RTL = 'rtl';
|
||||
SJSON_LexicalModel_Languages = 'languages';
|
||||
|
||||
|
|
@ -2096,7 +2093,6 @@ var
|
|||
begin
|
||||
FName := Source.Name;
|
||||
FID := Source.ID;
|
||||
FVersion := Source.Version;
|
||||
FRTL := Source.RTL;
|
||||
FLanguages.Clear;
|
||||
for i := 0 to Source.Languages.Count - 1 do
|
||||
|
|
@ -2164,7 +2160,6 @@ begin
|
|||
lexicalModel := TPackageLexicalModel.Create(Package);
|
||||
lexicalModel.Name := GetJsonValueString(ALexicalModel, SJSON_LexicalModel_Name);
|
||||
lexicalModel.ID := GetJsonValueString(ALexicalModel,SJSON_LexicalModel_ID);
|
||||
lexicalModel.Version := GetJsonValueString(ALexicalModel, SJSON_LexicalModel_Version);
|
||||
lexicalModel.RTL := GetJsonValueBool(ALexicalModel, SJSON_LexicalModel_RTL);
|
||||
lexicalModel.Languages.LoadJSON(ALexicalModel);
|
||||
|
||||
|
|
@ -2188,7 +2183,6 @@ begin
|
|||
lexicalModel := TPackageLexicalModel.Create(Package);
|
||||
lexicalModel.Name := XmlVarToStr(ALexicalModel.ChildValues[SXML_PackageLexicalModel_Name]);
|
||||
lexicalModel.ID := XmlVarToStr(ALexicalModel.ChildValues[SXML_PackageLexicalModel_ID]);
|
||||
lexicalModel.Version := XmlVarToStr(ALexicalModel.ChildValues[SXML_PackageLexicalModel_Version]);
|
||||
lexicalModel.RTL := ANode.ChildNodes.IndexOf(SXML_PackageLexicalModel_RTL) >= 0;
|
||||
lexicalModel.Languages.LoadXML(ALexicalModel);
|
||||
Add(lexicalModel);
|
||||
|
|
@ -2214,7 +2208,6 @@ begin
|
|||
|
||||
ALexicalModel.AddPair(SJSON_LexicalModel_Name, Items[i].Name);
|
||||
ALexicalModel.AddPair(SJSON_LexicalModel_ID, Items[i].ID);
|
||||
ALexicalModel.AddPair(SJSON_LexicalModel_Version, Items[i].Version);
|
||||
if Items[i].RTL then ALexicalModel.AddPair(SJSON_LexicalModel_RTL, TJSONTrue.Create);
|
||||
Items[i].Languages.SaveJSON(ALexicalModel);
|
||||
end;
|
||||
|
|
@ -2232,7 +2225,6 @@ begin
|
|||
|
||||
ALexicalModel.ChildNodes[SXML_PackageLexicalModel_Name].NodeValue := Items[i].Name;
|
||||
ALexicalModel.ChildNodes[SXML_PackageLexicalModel_ID].NodeValue := Items[i].ID;
|
||||
ALexicalModel.ChildNodes[SXML_PackageLexicalModel_Version].NodeValue := Items[i].Version;
|
||||
if Items[i].RTL then
|
||||
ALexicalModel.ChildNodes[SXML_PackageLexicalModel_RTL].NodeValue := True;
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@ type
|
|||
|
||||
procedure DoError(msg: string; State: TProjectLogState);
|
||||
function CheckLexicalModelLanguages: Boolean;
|
||||
function CheckLexicalModelVersions: Boolean;
|
||||
function DoesFileMatchLexicalModelID(f: TPackageContentFile;
|
||||
const id: string): Boolean;
|
||||
function FindLexicalModelByFileName(const name: string): TPackageLexicalModel;
|
||||
|
|
@ -94,25 +93,7 @@ begin
|
|||
end;
|
||||
end;
|
||||
|
||||
Result := CheckLexicalModelVersions;
|
||||
Result := CheckLexicalModelLanguages and Result; // Always check all for comprehensive error messagess
|
||||
end;
|
||||
|
||||
function TPackageInfoRefreshLexicalModels.CheckLexicalModelVersions: Boolean;
|
||||
var
|
||||
lm: TPackageLexicalModel;
|
||||
begin
|
||||
// Test that each model has a version string
|
||||
for lm in pack.LexicalModels do
|
||||
begin
|
||||
if lm.Version = '' then
|
||||
begin
|
||||
DoError(Format(SError_LexicalModelMustHaveAVersion, [lm.ID]), plsError);
|
||||
Exit(False);
|
||||
end;
|
||||
end;
|
||||
|
||||
Result := True;
|
||||
Result := CheckLexicalModelLanguages; // Always check all for comprehensive error messagess
|
||||
end;
|
||||
|
||||
function TPackageInfoRefreshLexicalModels.CheckLexicalModelLanguages: Boolean;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue