IDE/Options: Show restart hint only when changing language

This commit is contained in:
n7800 2024-09-18 23:31:55 +05:00 committed by Martin
parent 35f64bfd57
commit 6d5a09d6a1
2 changed files with 13 additions and 1 deletions

View File

@ -109,6 +109,7 @@ object DesktopOptionsFrame: TDesktopOptionsFrame
ShowHint = True ShowHint = True
Style = csDropDownList Style = csDropDownList
TabOrder = 0 TabOrder = 0
OnChange = LanguageComboBoxChange
end end
object AutoSaveIntervalInSecsComboBox: TComboBox object AutoSaveIntervalInSecsComboBox: TComboBox
AnchorSideLeft.Control = Owner AnchorSideLeft.Control = Owner
@ -488,5 +489,6 @@ object DesktopOptionsFrame: TDesktopOptionsFrame
Caption = 'lblLangChangeHint' Caption = 'lblLangChangeHint'
Font.Style = [fsItalic] Font.Style = [fsItalic]
ParentFont = False ParentFont = False
Visible = False
end end
end end

View File

@ -27,7 +27,7 @@ interface
uses uses
Classes, SysUtils, Classes, SysUtils,
// LCL // LCL
Forms, StdCtrls, Dialogs, ExtCtrls, Spin, Forms, StdCtrls, Dialogs, Controls, ExtCtrls, Spin,
// LazUtils // LazUtils
FileUtil, LazUTF8, LazLoggerBase, FileUtil, LazUTF8, LazLoggerBase,
// LazControls // LazControls
@ -80,7 +80,9 @@ type
spDropDownCount: TSpinEdit; spDropDownCount: TSpinEdit;
procedure ExportDesktopButtonClick(Sender: TObject); procedure ExportDesktopButtonClick(Sender: TObject);
procedure ImportDesktopButtonClick(Sender: TObject); procedure ImportDesktopButtonClick(Sender: TObject);
procedure LanguageComboBoxChange(Sender: TObject);
private private
fCurrentLang: TCaption;
function LangIDToCaption(const LangID: string): string; function LangIDToCaption(const LangID: string): string;
function CaptionToLangID(const ACaption: string): string; function CaptionToLangID(const ACaption: string): string;
procedure DoLoadSettings(AOptions: TAbstractIDEOptions); procedure DoLoadSettings(AOptions: TAbstractIDEOptions);
@ -110,6 +112,8 @@ var
LangID: String; LangID: String;
sl: TStringListUTF8Fast; sl: TStringListUTF8Fast;
begin begin
fCurrentLang := '';
// language // language
lblLanguage.Caption := dlgEnvLanguage; lblLanguage.Caption := dlgEnvLanguage;
lblLangChangeHint.Caption := dlgEnvLanguageHint; lblLangChangeHint.Caption := dlgEnvLanguageHint;
@ -184,6 +188,7 @@ begin
begin begin
// language // language
LanguageComboBox.Text:=LangIDToCaption(EnvOpt.LanguageID); LanguageComboBox.Text:=LangIDToCaption(EnvOpt.LanguageID);
fCurrentLang := LanguageComboBox.Text;
//debugln('TEnvironmentOptionsDialog.ReadSettings LanguageComboBox.ItemIndex=',dbgs(LanguageComboBox.ItemIndex),' LanguageID="',LanguageID,'" LanguageComboBox.Text="',LanguageComboBox.Text,'"'); //debugln('TEnvironmentOptionsDialog.ReadSettings LanguageComboBox.ItemIndex=',dbgs(LanguageComboBox.ItemIndex),' LanguageID="',LanguageID,'" LanguageComboBox.Text="',LanguageComboBox.Text,'"');
// mouse action // mouse action
@ -348,6 +353,11 @@ begin
end; end;
end; end;
procedure TDesktopOptionsFrame.LanguageComboBoxChange(Sender: TObject);
begin
lblLangChangeHint.Visible := LanguageComboBox.Text <> fCurrentLang;
end;
function TDesktopOptionsFrame.LangIDToCaption(const LangID: string): string; function TDesktopOptionsFrame.LangIDToCaption(const LangID: string): string;
begin begin
if LangID <> '' then if LangID <> '' then