index 51f2ea698f63a1d6e8f62ebf069195e0fc95923e..588d9c49a8c807e34d42960c4fdf9c762f977ff1 100644 (file)
--- a/src/editor/f_options.pas
+++ b/src/editor/f_options.pas
procedure bGridClick(Sender: TObject);
- procedure FormActivate(Sender: TObject);
+ procedure FormShow(Sender: TObject);
procedure bOKClick(Sender: TObject);
procedure bCancelClick(Sender: TObject);
procedure bBackClick(Sender: TObject);
implementation
uses
- LazFileUtils, StrUtils, f_main, StdConvs, CONFIG, g_language, g_resources, g_options;
+ LazFileUtils, f_main, StdConvs, CONFIG, g_language, g_resources, g_options;
{$R *.lfm}
edD2dExe.Text := FindD2dDialog.FileName;
end;
-procedure TOptionsForm.FormActivate(Sender: TObject);
- var info: TSearchRec; s: String; i: Integer;
+procedure TOptionsForm.FormShow(Sender: TObject);
+ var list: TStringList;
begin
sDotColor.Brush.Color := DotColor;
cbShowDots.Checked := DotEnable;
cbLanguage.Items.BeginUpdate;
cbLanguage.Items.Clear;
cbLanguage.Items.Add('Auto');
- if FindFirst(LangDir + DirectorySeparator + '*.mo', faAnyFile, info) = 0 then
- begin
- repeat
- s := ExtractFileNameWithoutExt(info.Name);
- // TODO: check encoding part in name (editor.ru_RU.UTF-8.mo)
- i := Max(RPos('.', s), 1);
- s := Copy(s, i + 1, Length(s) - i);
- cbLanguage.Items.Add(s);
- until FindNext(info) <> 0;
- FindClose(info);
- end;
+ list := g_Language_GetList();
+ cbLanguage.Items.AddStrings(list);
+ list.Free();
cbLanguage.ItemIndex := IfThen(gLanguage = '', 0, cbLanguage.Items.IndexOf(gLanguage));
finally
cbLanguage.Items.EndUpdate;
begin
// General tab
- if cbLanguage.ItemIndex <= 0 then str := '' else str := cbLanguage.Items[cbLanguage.ItemIndex];
- if (str = '') or (gLanguage <> str) then
+ if cbLanguage.ItemIndex >= 0 then
begin
- gLanguage := str;
- g_Language_Set(gLanguage);
+ if cbLanguage.ItemIndex = 0 then str := '' else str := cbLanguage.Items[cbLanguage.ItemIndex];
+ if (str = '') or (gLanguage <> str) then
+ begin
+ gLanguage := str;
+ g_Language_Set(gLanguage);
+ end;
end;
-
+
DotColor := sDotColor.Brush.Color;
DotEnable := cbShowDots.Checked;