mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-10 13:59:20 +02:00
IDE: updating schema selection dialog to recognize additional custom schemas, issue #39805
This commit is contained in:
parent
905bf25a94
commit
83cb0631ad
@ -47,6 +47,7 @@ type
|
|||||||
private
|
private
|
||||||
function GetKeymapScheme: string;
|
function GetKeymapScheme: string;
|
||||||
procedure SetKeymapScheme(const AValue: string);
|
procedure SetKeymapScheme(const AValue: string);
|
||||||
|
procedure UpdateColumns;
|
||||||
public
|
public
|
||||||
property KeymapScheme: string read GetKeymapScheme write SetKeymapScheme;// untranslated
|
property KeymapScheme: string read GetKeymapScheme write SetKeymapScheme;// untranslated
|
||||||
end;
|
end;
|
||||||
@ -72,6 +73,8 @@ end;
|
|||||||
{ TChooseKeySchemeDlg }
|
{ TChooseKeySchemeDlg }
|
||||||
|
|
||||||
procedure TChooseKeySchemeDlg.ChooseKeySchemeDlgCREATE(Sender: TObject);
|
procedure TChooseKeySchemeDlg.ChooseKeySchemeDlgCREATE(Sender: TObject);
|
||||||
|
var
|
||||||
|
i : integer;
|
||||||
begin
|
begin
|
||||||
Caption:=lisKMChooseKeymappingScheme;
|
Caption:=lisKMChooseKeymappingScheme;
|
||||||
NoteLabel.Caption:=lisKMNoteAllKeysWillBeSetToTheValuesOfTheChosenScheme;
|
NoteLabel.Caption:=lisKMNoteAllKeysWillBeSetToTheValuesOfTheChosenScheme;
|
||||||
@ -89,6 +92,12 @@ begin
|
|||||||
Add(lisKMDefaultToOSX);
|
Add(lisKMDefaultToOSX);
|
||||||
// do not add custom
|
// do not add custom
|
||||||
end;
|
end;
|
||||||
|
// searching configuration files on the main thread is not really good
|
||||||
|
LoadCustomKeySchemas;
|
||||||
|
|
||||||
|
for i:=0 to CustomKeySchemas.Count-1 do
|
||||||
|
SchemeRadiogroup.Items.Add(CustomKeySchemas[i]);
|
||||||
|
UpdateColumns;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TChooseKeySchemeDlg.HelpButtonClick(Sender: TObject);
|
procedure TChooseKeySchemeDlg.HelpButtonClick(Sender: TObject);
|
||||||
@ -109,15 +118,30 @@ end;
|
|||||||
procedure TChooseKeySchemeDlg.SetKeymapScheme(const AValue: string);
|
procedure TChooseKeySchemeDlg.SetKeymapScheme(const AValue: string);
|
||||||
var
|
var
|
||||||
kms: TKeyMapScheme;
|
kms: TKeyMapScheme;
|
||||||
|
i : integer;
|
||||||
begin
|
begin
|
||||||
kms:=KeySchemeNameToSchemeType(AValue);
|
kms:=KeySchemeNameToSchemeType(AValue);
|
||||||
if kms=kmsCustom then begin
|
if kms=kmsCustom then begin
|
||||||
if SchemeRadiogroup.Items.Count<=ord(kms) then
|
i := CustomKeySchemas.IndexOf(AValue);
|
||||||
SchemeRadiogroup.Items.Add(AValue)
|
if i < 0 then begin
|
||||||
else
|
if (SchemeRadiogroup.Items.IndexOf(AValue)<0) then
|
||||||
SchemeRadiogroup.Items[SchemeRadiogroup.Items.Count-1]:=AValue;
|
i := SchemeRadiogroup.Items.Add(AValue)
|
||||||
end;
|
else
|
||||||
SchemeRadiogroup.ItemIndex:=ord(kms);
|
i := SchemeRadiogroup.Items.Count-1;
|
||||||
|
end else
|
||||||
|
i := i + Ord(kmsCustom);
|
||||||
|
end else
|
||||||
|
i := ord(kms);
|
||||||
|
SchemeRadiogroup.ItemIndex:=i;
|
||||||
|
UpdateColumns;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TChooseKeySchemeDlg.UpdateColumns;
|
||||||
|
begin
|
||||||
|
if (SchemeRadiogroup.Items.Count>8) then
|
||||||
|
SchemeRadiogroup.Columns := 2
|
||||||
|
else
|
||||||
|
SchemeRadiogroup.Columns := 1;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
Loading…
Reference in New Issue
Block a user