mirror of
https://github.com/HeidiSQL/HeidiSQL.git
synced 2026-03-13 09:24:25 +08:00
Remove LoginPrompt() function, create and use TfrmLogin instance like a normal form. That way, mysql_authentication_dialog_ask() can hide the labels and the irrelevant edit box.
This commit is contained in:
@@ -1095,16 +1095,19 @@ end;
|
||||
|
||||
procedure TDBConnection.DoBeforeConnect;
|
||||
var
|
||||
UsernamePrompt, PasswordPrompt: String;
|
||||
UsingPass: String;
|
||||
Dialog: TfrmLogin;
|
||||
begin
|
||||
// Prompt for password on initial connect
|
||||
if FParameters.LoginPrompt and (not FLoginPromptDone) then begin
|
||||
UsernamePrompt := FParameters.Username;
|
||||
PasswordPrompt := FParameters.Password;
|
||||
LoginPrompt('Login to '+FParameters.Hostname+':', UsernamePrompt, PasswordPrompt);
|
||||
FParameters.Username := UsernamePrompt;
|
||||
FParameters.Password := PasswordPrompt;
|
||||
Dialog := TfrmLogin.Create(Self);
|
||||
Dialog.lblPrompt.Caption := 'Login to '+FParameters.Hostname+':';
|
||||
Dialog.editUsername.Text := FParameters.Username;
|
||||
Dialog.editPassword.Text := FParameters.Password;
|
||||
Dialog.ShowModal;
|
||||
FParameters.Username := Dialog.editUsername.Text;
|
||||
FParameters.Password := Dialog.editPassword.Text;
|
||||
Dialog.Free;
|
||||
FLoginPromptDone := True;
|
||||
end;
|
||||
|
||||
@@ -4601,6 +4604,7 @@ end;
|
||||
function mysql_authentication_dialog_ask;
|
||||
var
|
||||
Username, Password: String;
|
||||
Dialog: TfrmLogin;
|
||||
begin
|
||||
{
|
||||
From client_plugin.h:
|
||||
@@ -4626,17 +4630,26 @@ begin
|
||||
}
|
||||
Username := '';
|
||||
Password := '';
|
||||
case _type of
|
||||
1: Username := String(buf);
|
||||
2: Password := String(buf);
|
||||
else raise EDatabaseError.Create('Unsupported type ('+IntToStr(_type)+') in mysql_authentication_dialog_ask.');
|
||||
end;
|
||||
LoginPrompt(String(prompt), Username, Password, _type=1, _type=2);
|
||||
Dialog := TfrmLogin.Create(nil);
|
||||
Dialog.lblPrompt.Caption := String(prompt);
|
||||
Dialog.editUsername.Width := Dialog.editUsername.Width + (Dialog.editUsername.Left - Dialog.lblUsername.Left);
|
||||
Dialog.editPassword.Width := Dialog.editUsername.Width;
|
||||
Dialog.lblUsername.Visible := False;
|
||||
Dialog.lblPassword.Visible := False;
|
||||
Dialog.editUsername.Left := Dialog.lblUsername.Left;
|
||||
Dialog.editPassword.Left := Dialog.lblPassword.Left;
|
||||
Dialog.editUsername.Top := Dialog.lblPrompt.Top + Dialog.lblPrompt.Height + 15;
|
||||
Dialog.editPassword.Top := Dialog.editUsername.Top;
|
||||
Dialog.editUsername.Visible := _type=1;
|
||||
Dialog.editPassword.Visible := _type=2;
|
||||
Dialog.ShowModal;
|
||||
Result := buf;
|
||||
case _type of
|
||||
1: Result := PAnsiChar(AnsiString(Username));
|
||||
2: Result := PAnsiChar(AnsiString(Password));
|
||||
1: Result := PAnsiChar(AnsiString(Dialog.editUsername.Text));
|
||||
2: Result := PAnsiChar(AnsiString(Dialog.editPassword.Text));
|
||||
else raise EDatabaseError.Create('Unsupported type ('+IntToStr(_type)+') in mysql_authentication_dialog_ask.');
|
||||
end;
|
||||
Dialog.Free;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
@@ -24,7 +24,6 @@ type
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
procedure LoginPrompt(ACaption: String; var AUsername, APassword: String; UsernameEnabled: Boolean=True; PasswordEnabled: Boolean=True);
|
||||
|
||||
implementation
|
||||
|
||||
@@ -33,24 +32,6 @@ uses helpers, main;
|
||||
{$R *.dfm}
|
||||
{$I const.inc}
|
||||
|
||||
procedure LoginPrompt(ACaption: String; var AUsername, APassword: String; UsernameEnabled: Boolean=True; PasswordEnabled: Boolean=True);
|
||||
var
|
||||
frm: TfrmLogin;
|
||||
begin
|
||||
// Create login box and pass back user + pass
|
||||
frm := TfrmLogin.Create(nil);
|
||||
frm.lblPrompt.Caption := ACaption;
|
||||
frm.editUsername.Text := AUsername;
|
||||
frm.editPassword.Text := APassword;
|
||||
frm.editUsername.Enabled := UsernameEnabled;
|
||||
frm.lblUsername.Enabled := UsernameEnabled;
|
||||
frm.editPassword.Enabled := PasswordEnabled;
|
||||
frm.lblPassword.Enabled := PasswordEnabled;
|
||||
frm.ShowModal;
|
||||
AUsername := frm.editUsername.Text;
|
||||
APassword := frm.editPassword.Text;
|
||||
frm.Free;
|
||||
end;
|
||||
|
||||
|
||||
procedure TfrmLogin.FormCreate(Sender: TObject);
|
||||
@@ -61,6 +42,8 @@ begin
|
||||
lblPrompt.Font.Size := 10;
|
||||
lblPrompt.Font.Color := clHotlight;
|
||||
lblPrompt.Font.Style := lblPrompt.Font.Style + [fsBold];
|
||||
editUsername.Text := '';
|
||||
editPassword.Text := '';
|
||||
end;
|
||||
|
||||
procedure TfrmLogin.FormShow(Sender: TObject);
|
||||
|
||||
Reference in New Issue
Block a user