summaryrefslogtreecommitdiff
path: root/UConnectionManager.pas
diff options
context:
space:
mode:
authorTomas Bzatek <tbzatek@users.sourceforge.net>2009-12-13 20:20:55 +0100
committerTomas Bzatek <tbzatek@users.sourceforge.net>2009-12-13 20:20:55 +0100
commit4cdfa1d463b2f33436aea8f1ca8a4f75f5938ddf (patch)
tree967c1f615854984b9b0dd4ffa8ca28f73b603f5a /UConnectionManager.pas
parent0f7616a007edaa1d19c4672a4fd390c072b1eba6 (diff)
downloadtuxcmd-4cdfa1d463b2f33436aea8f1ca8a4f75f5938ddf.tar.xz
Consolidate ProcessProgressThread, make it more universal
Diffstat (limited to 'UConnectionManager.pas')
-rw-r--r--UConnectionManager.pas37
1 files changed, 6 insertions, 31 deletions
diff --git a/UConnectionManager.pas b/UConnectionManager.pas
index 7109cc3..d1f79e2 100644
--- a/UConnectionManager.pas
+++ b/UConnectionManager.pas
@@ -66,7 +66,7 @@ type
Thread: TOpenConnectionThread;
SourcePanelEngine: TPanelEngine;
ConnectedEngine: TVFSEngine;
- function DoConnectInternal(const URI: string; Engine: TVFSEngine; VFSDialogsParentWindow: PGtkWidget; VFSQuickConnectMode: boolean; Error: PPGError): boolean;
+ function DoConnectInternal(const URI: string; Engine: TVFSEngine; ParentForm: TCustomGTKForm; VFSQuickConnectMode: boolean; Error: PPGError): boolean;
end;
var
@@ -601,7 +601,7 @@ begin
Engine.PasswordUsed := False;
Error := nil;
- if not DoConnectInternal(UTF8ToStr(FActiveConnInfo.GetURI(False)), Engine, FWidget, False, @Error) then begin
+ if not DoConnectInternal(UTF8ToStr(FActiveConnInfo.GetURI(False)), Engine, Self, False, @Error) then begin
if not FSilenceError then
ShowError(Self, 'Couldn''t open the URI specified', Error);
ListViewTable.Enabled := True;
@@ -624,44 +624,19 @@ begin
ModalResult := mbOK;
end;
-function TFConnectionManager.DoConnectInternal(const URI: string; Engine: TVFSEngine; VFSDialogsParentWindow: PGtkWidget; VFSQuickConnectMode: boolean; Error: PPGError): boolean;
+function TFConnectionManager.DoConnectInternal(const URI: string; Engine: TVFSEngine; ParentForm: TCustomGTKForm; VFSQuickConnectMode: boolean; Error: PPGError): boolean;
begin
Result := False;
FSilenceError := False;
Thread := TOpenConnectionThread.Create;
try
- Thread.VFSConnectionManagerMode := VFSDialogsParentWindow = FWidget;
+ Thread.VFSConnectionManagerMode := ParentForm = Self;
Thread.VFSQuickConnectMode := VFSQuickConnectMode;
- Thread.VFSDialogsParentWindow := VFSDialogsParentWindow;
+ Thread.DialogsParentWindow := ParentForm;
Thread.AEngine := Engine;
Thread.URI := URI;
Thread.Resume;
- repeat
- Sleep(ConstInternalProgressTimer);
- Application.ProcessMessages;
- if Thread.VFSAskQuestion_Display then begin
- Thread.VFSAskQuestion_Display := False;
- DebugMsg(['Main thread: displaying question dialog']);
- HandleVFSAskQuestionCallback(FWidget, Thread.VFSAskQuestion_Message, Thread.VFSAskQuestion_Choices, Thread.VFSAskQuestion_Choice);
- Thread.VFSCallbackEvent.SetEvent;
- end;
- if Thread.VFSAskPassword_Display then begin
- Thread.VFSAskPassword_Display := False;
- DebugMsg(['Main thread: displaying password prompt']);
- Thread.VFSAskPassword_Result := HandleVFSAskPasswordCallback(FWidget,
- Thread.VFSAskPassword_Message,
- Thread.VFSAskPassword_default_user,
- Thread.VFSAskPassword_default_domain,
- Thread.VFSAskPassword_default_password,
- Thread.VFSAskPassword_flags,
- Thread.VFSAskPassword_username,
- Thread.VFSAskPassword_password,
- Thread.VFSAskPassword_anonymous,
- Thread.VFSAskPassword_domain,
- Thread.VFSAskPassword_password_save);
- Thread.VFSCallbackEvent.SetEvent;
- end;
- until Thread.Finished;
+ ProcessThreadEvents(Thread);
Result := Thread.OpenResult;
if Thread.OpenError <> nil then
g_propagate_error(Error, Thread.OpenError);