From 26baa5eb0dd5c1690b765898a8564ba4e928e3cb Mon Sep 17 00:00:00 2001 From: Ansgar Becker Date: Sun, 6 Feb 2022 13:49:09 +0100 Subject: [PATCH] Issue #1503: replace remaining usages of TOpenTextFileDialog with new TExtFileOpenDialog --- source/extra_controls.pas | 12 ++++++++++++ source/loaddata.pas | 10 ++++++---- source/main.pas | 9 ++------- source/texteditor.pas | 8 ++++---- 4 files changed, 24 insertions(+), 15 deletions(-) diff --git a/source/extra_controls.pas b/source/extra_controls.pas index 70e2abee..706afd01 100644 --- a/source/extra_controls.pas +++ b/source/extra_controls.pas @@ -40,6 +40,7 @@ type public constructor Create(AOwner: TComponent); override; destructor Destroy; override; + procedure AddFileType(FileMask, DisplayName: String); property Encodings: TStringList read FEncodings write FEncodings; property EncodingIndex: Integer read FEncodingIndex write FEncodingIndex default 0; end; @@ -394,6 +395,17 @@ begin end; +procedure TExtFileOpenDialog.AddFileType(FileMask, DisplayName: String); +var + FileType: TFileTypeItem; +begin + // Shorthand for callers + FileType := FileTypes.Add; + FileType.DisplayName := DisplayName; + FileType.FileMask := FileMask; +end; + + procedure TExtFileOpenDialog.DoOnExecute; var iCustomize: IFileDialogCustomize; diff --git a/source/loaddata.pas b/source/loaddata.pas index 3b14aca6..3c700539 100644 --- a/source/loaddata.pas +++ b/source/loaddata.pas @@ -658,13 +658,15 @@ end; procedure Tloaddataform.btnOpenFileClick(Sender: TObject); var - Dialog: TOpenTextFileDialog; + Dialog: TExtFileOpenDialog; TestStream: TFileStream; begin AppSettings.ResetPath; - Dialog := TOpenTextFileDialog.Create(Self); - Dialog.Filter := _('CSV files')+' (*.csv)|*.csv|'+_('Text files')+' (*.txt)|*.txt|'+_('All files')+' (*.*)|*.*'; - Dialog.DefaultExt := 'csv'; + Dialog := TExtFileOpenDialog.Create(Self); + Dialog.AddFileType('*.csv', _('CSV files')); + Dialog.AddFileType('*.txt', _('Text files')); + Dialog.AddFileType('*.*', _('All files')); + Dialog.DefaultExtension := 'csv'; Dialog.Encodings.Assign(Mainform.FileEncodings); Dialog.EncodingIndex := AppSettings.ReadInt(asFileDialogEncoding, Self.Name); if Dialog.Execute then begin diff --git a/source/main.pas b/source/main.pas index 1447d68d..8f77ce11 100644 --- a/source/main.pas +++ b/source/main.pas @@ -3882,19 +3882,14 @@ procedure TMainForm.actLoadSQLExecute(Sender: TObject); var i, ProceedResult: Integer; Dialog: TExtFileOpenDialog; - FileType: TFileTypeItem; Encoding: TEncoding; Tab: TQueryTab; begin AppSettings.ResetPath; Dialog := TExtFileOpenDialog.Create(Self); Dialog.Options := Dialog.Options + [fdoAllowMultiSelect]; - FileType := Dialog.FileTypes.Add; - FileType.DisplayName := _('SQL files'); - FileType.FileMask := '*.sql'; - FileType := Dialog.FileTypes.Add; - FileType.DisplayName := _('All files'); - FileType.FileMask := '*.*'; + Dialog.AddFileType('*.sql', _('SQL files')); + Dialog.AddFileType('*.*', _('All files')); Dialog.DefaultExtension := 'sql'; Dialog.Encodings.Assign(FileEncodings); Dialog.EncodingIndex := AppSettings.ReadInt(asFileDialogEncoding, Self.Name); diff --git a/source/texteditor.pas b/source/texteditor.pas index 463b5888..e2a04fb8 100644 --- a/source/texteditor.pas +++ b/source/texteditor.pas @@ -333,12 +333,12 @@ end; procedure TfrmTextEditor.btnLoadTextClick(Sender: TObject); var - d: TOpenTextFileDialog; + d: TExtFileOpenDialog; begin AppSettings.ResetPath; - d := TOpenTextFileDialog.Create(Self); - d.Filter := _('Text files')+' (*.txt)|*.txt|'+_('All files')+' (*.*)|*.*'; - d.FilterIndex := 0; + d := TExtFileOpenDialog.Create(Self); + d.AddFileType('*.txt', _('Text files')); + d.AddFileType('*.*', _('All files')); d.Encodings.Assign(MainForm.FileEncodings); d.EncodingIndex := AppSettings.ReadInt(asFileDialogEncoding, Self.Name); if d.Execute then try