diff options
| author | Tomas Bzatek <tbzatek@users.sourceforge.net> | 2009-12-13 20:20:55 +0100 |
|---|---|---|
| committer | Tomas Bzatek <tbzatek@users.sourceforge.net> | 2009-12-13 20:20:55 +0100 |
| commit | 4cdfa1d463b2f33436aea8f1ca8a4f75f5938ddf (patch) | |
| tree | 967c1f615854984b9b0dd4ffa8ca28f73b603f5a /UConnectionManager.pas | |
| parent | 0f7616a007edaa1d19c4672a4fd390c072b1eba6 (diff) | |
| download | tuxcmd-4cdfa1d463b2f33436aea8f1ca8a4f75f5938ddf.tar.xz | |
Consolidate ProcessProgressThread, make it more universal
Diffstat (limited to 'UConnectionManager.pas')
| -rw-r--r-- | UConnectionManager.pas | 37 |
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); |
