CSV import: add checkbox option for keeping dialog open after successful import, so the user may process multiple files with less clicks

This commit is contained in:
Ansgar Becker
2024-07-23 19:39:56 +02:00
parent 322b78b8b4
commit e521f7ab0c
4 changed files with 74 additions and 52 deletions

View File

@ -53,6 +53,7 @@ type
chkLocalNumbers: TCheckBox;
chkTruncateTable: TCheckBox;
btnCheckAll: TToolButton;
chkKeepDialogOpen: TCheckBox;
const ProgressBarSteps=100;
procedure FormCreate(Sender: TObject);
procedure editFilenameChange(Sender: TObject);
@ -104,6 +105,7 @@ begin
updownIgnoreLines.Position := AppSettings.ReadInt(asCSVImportIgnoreLines);
chkLowPriority.Checked := AppSettings.ReadBool(asCSVImportLowPriority);
chkLocalNumbers.Checked := AppSettings.ReadBool(asCSVImportLocalNumbers);
chkKeepDialogOpen.Checked := AppSettings.ReadBool(asCSVKeepDialogOpen);
// Uncheck critical "Truncate table" checkbox, to avoid accidental data removal
chkTruncateTable.Checked := False;
grpDuplicates.ItemIndex := AppSettings.ReadInt(asCSVImportDuplicateHandling);
@ -172,6 +174,7 @@ begin
AppSettings.WriteInt(asCSVImportIgnoreLines, updownIgnoreLines.Position);
AppSettings.WriteBool(asCSVImportLowPriority, chkLowPriority.Checked);
AppSettings.WriteBool(asCSVImportLocalNumbers, chkLocalNumbers.Checked);
AppSettings.WriteBool(asCSVKeepDialogOpen, chkKeepDialogOpen.Checked);
AppSettings.WriteInt(asCSVImportDuplicateHandling, grpDuplicates.ItemIndex);
AppSettings.WriteInt(asCSVImportParseMethod, grpParseMethod.ItemIndex);
end;
@ -330,6 +333,9 @@ begin
FLineTerm := FConnection.UnescapeString(editLineTerminator.Text);
FEscp := FConnection.UnescapeString(editFieldEscaper.Text);
if chkKeepDialogOpen.Checked then
ModalResult := mrNone;
try
case grpParseMethod.ItemIndex of
0: ServerParse(Sender);
@ -362,6 +368,9 @@ begin
end;
end;
if ModalResult = mrNone then
btnCancel.Caption := _('Close');
Mainform.ShowStatusMsg;
MainForm.DisableProgress;
Screen.Cursor := crDefault;