Add rtl property to keyboard info in package.json

This commit is contained in:
Marc Durdin 2018-02-13 15:05:04 +07:00
parent 48697c63a7
commit 784cb53b1e
4 changed files with 60 additions and 19 deletions

View file

@ -181,7 +181,7 @@ inherited frmPackageEditor: TfrmPackageEditor
Top = 0
Width = 681
Height = 447
ActivePage = pageDetails
ActivePage = pageKeyboards
Align = alClient
Images = modActionsMain.ilEditorPages
MultiLine = True
@ -387,7 +387,7 @@ inherited frmPackageEditor: TfrmPackageEditor
end
object lblKeyboardFiles: TLabel
Left = 15
Top = 365
Top = 341
Width = 26
Height = 13
Anchors = [akLeft, akBottom]
@ -395,7 +395,7 @@ inherited frmPackageEditor: TfrmPackageEditor
end
object lblKeyboardDescription: TLabel
Left = 15
Top = 338
Top = 314
Width = 62
Height = 13
Anchors = [akLeft, akBottom]
@ -403,7 +403,7 @@ inherited frmPackageEditor: TfrmPackageEditor
end
object lblKeyboardVersion: TLabel
Left = 15
Top = 417
Top = 393
Width = 41
Height = 13
Anchors = [akLeft, akBottom]
@ -430,20 +430,28 @@ inherited frmPackageEditor: TfrmPackageEditor
Height = 13
Caption = 'Languages'
end
object lblKeyboardRTL: TLabel
Left = 15
Top = 420
Width = 75
Height = 13
Anchors = [akLeft, akBottom]
Caption = 'Is right-to-left:'
end
object lbKeyboards: TListBox
Left = 15
Top = 72
Width = 229
Height = 249
Height = 233
Anchors = [akLeft, akTop, akBottom]
ItemHeight = 13
TabOrder = 0
OnClick = lbKeyboardsClick
end
object editKeyboardDescription: TEdit
Left = 87
Top = 335
Width = 157
Left = 96
Top = 311
Width = 148
Height = 21
TabStop = False
Anchors = [akLeft, akBottom]
@ -452,9 +460,9 @@ inherited frmPackageEditor: TfrmPackageEditor
TabOrder = 1
end
object memoKeyboardFiles: TMemo
Left = 87
Top = 362
Width = 157
Left = 96
Top = 338
Width = 148
Height = 46
TabStop = False
Anchors = [akLeft, akBottom]
@ -463,9 +471,9 @@ inherited frmPackageEditor: TfrmPackageEditor
TabOrder = 2
end
object editKeyboardVersion: TEdit
Left = 87
Top = 414
Width = 157
Left = 96
Top = 390
Width = 148
Height = 21
TabStop = False
Anchors = [akLeft, akBottom]
@ -479,7 +487,7 @@ inherited frmPackageEditor: TfrmPackageEditor
Width = 230
Height = 21
Style = csDropDownList
TabOrder = 4
TabOrder = 5
OnClick = cbKeyboardOSKFontClick
end
object cbKeyboardDisplayFont: TComboBox
@ -488,7 +496,7 @@ inherited frmPackageEditor: TfrmPackageEditor
Width = 230
Height = 21
Style = csDropDownList
TabOrder = 5
TabOrder = 6
OnClick = cbKeyboardDisplayFontClick
end
object gridKeyboardLanguages: TStringGrid
@ -502,7 +510,7 @@ inherited frmPackageEditor: TfrmPackageEditor
FixedCols = 0
RowCount = 9
Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goColSizing, goEditing, goTabs]
TabOrder = 6
TabOrder = 7
OnClick = gridKeyboardLanguagesClick
OnSetEditText = gridKeyboardLanguagesSetEditText
ColWidths = (
@ -516,7 +524,7 @@ inherited frmPackageEditor: TfrmPackageEditor
Height = 25
Anchors = [akLeft, akBottom]
Caption = '&Add...'
TabOrder = 7
TabOrder = 8
OnClick = cmdKeyboardAddLanguageClick
end
object cmdKeyboardRemoveLanguage: TButton
@ -526,9 +534,20 @@ inherited frmPackageEditor: TfrmPackageEditor
Height = 25
Anchors = [akLeft, akBottom]
Caption = '&Remove'
TabOrder = 8
TabOrder = 9
OnClick = cmdKeyboardRemoveLanguageClick
end
object editKeyboardRTL: TEdit
Left = 96
Top = 417
Width = 148
Height = 21
TabStop = False
Anchors = [akLeft, akBottom]
ParentColor = True
ReadOnly = True
TabOrder = 4
end
end
end
object pageDetails: TTabSheet

View file

@ -167,6 +167,8 @@ type
cmdKeyboardAddLanguage: TButton;
cmdKeyboardRemoveLanguage: TButton;
chkFollowKeyboardVersion: TCheckBox;
lblKeyboardRTL: TLabel;
editKeyboardRTL: TEdit;
procedure cmdCloseClick(Sender: TObject);
procedure cmdAddFileClick(Sender: TObject);
procedure cmdRemoveFileClick(Sender: TObject);
@ -1323,6 +1325,7 @@ begin
editKeyboardDescription.Text := '';
editKeyboardVersion.Text := '';
memoKeyboardFiles.Text := '';
editKeyboardRTL.Text := '';
cbKeyboardOSKFont.ItemIndex := -1;
cbKeyboardDisplayFont.ItemIndex := -1;
gridKeyboardLanguages.RowCount := 1;
@ -1336,6 +1339,10 @@ begin
editKeyboardDescription.Text := k.Name;
editKeyboardVersion.Text := k.Version;
if k.RTL
then editKeyboardRTL.Text := 'True'
else editKeyboardRTL.Text := 'False (or not .js format)';
for i := 0 to pack.Files.Count - 1 do
if SameText(TKeyboardUtils.KeyboardFileNameToID(pack.Files[i].FileName), k.ID) then
begin

View file

@ -288,6 +288,7 @@ type
FName: string;
FOSKFont: TPackageContentFile;
FID: string;
FRTL: Boolean;
FDisplayFont: TPackageContentFile;
FLanguages: TPackageKeyboardLanguageList;
FVersion: string;
@ -303,6 +304,7 @@ type
procedure Assign(Source: TPackageKeyboard); virtual;
property Name: string read FName write FName;
property ID: string read FID write FID;
property RTL: Boolean read FRTL write FRTL;
property Version: string read FVersion write FVersion;
property Languages: TPackageKeyboardLanguageList read FLanguages;
property OSKFont: TPackageContentFile read FOSKFont write SetOSKFont;
@ -404,6 +406,7 @@ const
SXML_PackageKeyboard_Name = 'Name';
SXML_PackageKeyboard_ID = 'ID';
SXML_PackageKeyboard_Version = 'Version';
SXML_PackageKeyboard_RTL = 'RTL';
SXML_PackageKeyboard_OSKFont = 'OSKFont';
SXML_PackageKeyboard_DisplayFont = 'DisplayFont';
SXML_PackageKeyboard_Languages = 'Languages';
@ -460,6 +463,7 @@ const
SJSON_Keyboards = 'keyboards';
SJSON_Keyboard_Name = 'name';
SJSON_Keyboard_ID = 'id';
SJSON_Keyboard_RTL = 'rtl';
SJSON_Keyboard_Version = 'version';
SJSON_Keyboard_OSKFont = 'oskFont';
SJSON_Keyboard_DisplayFont = 'displayFont';
@ -1726,6 +1730,7 @@ begin
FName := Source.Name;
FID := Source.ID;
FVersion := Source.Version;
FRTL := Source.RTL;
if Assigned(Source.OSKFont)
then FOSKFont := Package.Files.FromFileNameEx(Source.OSKFont.FileName)
else FOSKFont := nil;
@ -1841,6 +1846,7 @@ begin
keyboard.Name := AIni.ReadString(FSectionName, SXML_PackageKeyboard_Name, '');
keyboard.ID := AIni.ReadString(FSectionName, SXML_PackageKeyboard_ID, '');
keyboard.Version := AIni.ReadString(FSectionName, SXML_PackageKeyboard_Version, '1.0');
keyboard.RTL := AIni.ReadBool(FSectionName, SXML_PackageKeyboard_RTL, False);
keyboard.OSKFont := Package.Files.FromFileNameEx(AIni.ReadString(FSectionName, SXML_PackageKeyboard_OSKFont, ''));
keyboard.DisplayFont := Package.Files.FromFileNameEx(AIni.ReadString(FSectionName, SXML_PackageKeyboard_DisplayFont, ''));
@ -1884,6 +1890,7 @@ begin
keyboard.Name := GetJsonValueString(AKeyboard, SJSON_Keyboard_Name);
keyboard.ID := GetJsonValueString(AKeyboard,SJSON_Keyboard_ID);
keyboard.Version := GetJsonValueString(AKeyboard, SJSON_Keyboard_Version);
keyboard.RTL := GetJsonValueBool(AKeyboard, SJSON_Keyboard_RTL);
keyboard.OSKFont := Package.Files.FromFileNameEx(GetJsonValueString(AKeyboard, SJSON_Keyboard_OSKFont));
keyboard.DisplayFont := Package.Files.FromFileNameEx(GetJsonValueString(AKeyboard, SJSON_Keyboard_DisplayFont));
@ -1923,6 +1930,7 @@ begin
keyboard.Name := XmlVarToStr(AKeyboard.ChildValues[SXML_PackageKeyboard_Name]);
keyboard.ID := XmlVarToStr(AKeyboard.ChildValues[SXML_PackageKeyboard_ID]);
keyboard.Version := XmlVarToStr(AKeyboard.ChildValues[SXML_PackageKeyboard_Version]);
keyboard.RTL := ANode.ChildNodes.IndexOf(SXML_PackageKeyboard_RTL) >= 0;
keyboard.OSKFont := Package.Files.FromFileNameEx(XmlVarToStr(AKeyboard.ChildValues[SXML_PackageKeyboard_OSKFont]));
keyboard.DisplayFont := Package.Files.FromFileNameEx(XmlVarToStr(AKeyboard.ChildValues[SXML_PackageKeyboard_DisplayFont]));
@ -1955,6 +1963,7 @@ begin
AIni.WriteString(FSectionName, SXML_PackageKeyboard_Name, Items[i].Name);
AIni.WriteString(FSectionName, SXML_PackageKeyboard_ID, Items[i].ID);
AIni.WriteString(FSectionName, SXML_PackageKeyboard_Version, Items[i].Version);
if Items[i].RTL then AIni.WriteBool(FSectionName, SXML_PackageKeyboard_RTL, True);
if Assigned(Items[i].OSKFont) then
AIni.WriteString(FSectionName, SXML_PackageKeyboard_OSKFont, Items[i].OSKFont.RelativeFileName);
if Assigned(Items[i].DisplayFont) then
@ -1987,6 +1996,7 @@ begin
AKeyboard.AddPair(SJSON_Keyboard_Name, Items[i].Name);
AKeyboard.AddPair(SJSON_Keyboard_ID, Items[i].ID);
AKeyboard.AddPair(SJSON_Keyboard_Version, Items[i].Version);
if Items[i].RTL then AKeyboard.AddPair(SJSON_Keyboard_RTL, TJSONTrue.Create);
if Assigned(Items[i].OSKFont) then
AKeyboard.AddPair(SJSON_Keyboard_OSKFont, Items[i].OSKFont.RelativeFileName);
if Assigned(Items[i].DisplayFont) then
@ -2018,6 +2028,8 @@ begin
AKeyboard.ChildNodes[SXML_PackageKeyboard_Name].NodeValue := Items[i].Name;
AKeyboard.ChildNodes[SXML_PackageKeyboard_ID].NodeValue := Items[i].ID;
AKeyboard.ChildNodes[SXML_PackageKeyboard_Version].NodeValue := Items[i].Version;
if Items[i].RTL then
AKeyboard.ChildNodes[SXML_PackageKeyboard_RTL].NodeValue := True;
if Assigned(Items[i].OSKFont) then
AKeyboard.ChildNodes[SXML_PackageKeyboard_OSKFont].NodeValue := Items[i].OSKFont.RelativeFileName;
if Assigned(Items[i].DisplayFont) then

View file

@ -26,6 +26,7 @@ type
public
type TPackageKeyboardInfo = record
Name, ID, Version: string;
RTL: Boolean;
end;
class function FillKeyboardDetails(f: TPackageContentFile;
@ -114,6 +115,7 @@ begin
k.Name := pki.Name;
k.ID := pki.ID;
k.Version := pki.Version;
k.RTL := pki.RTL;
end;
end;
end;
@ -244,6 +246,7 @@ begin
try
pki.Name := Name;
pki.Version := Version;
pki.RTL := RTL;
finally
Free;
end;