diff options
| author | Tomas Bzatek <tbzatek@users.sourceforge.net> | 2009-12-13 14:32:58 +0100 |
|---|---|---|
| committer | Tomas Bzatek <tbzatek@users.sourceforge.net> | 2009-12-13 14:32:58 +0100 |
| commit | 0f7616a007edaa1d19c4672a4fd390c072b1eba6 (patch) | |
| tree | a1524927d8986bb54345c47ded84bb3c2a9559c2 /UConnectionManager.pas | |
| parent | ae0047b8a5fa76ea76c66d8c5c580eba39178755 (diff) | |
| download | tuxcmd-0f7616a007edaa1d19c4672a4fd390c072b1eba6.tar.xz | |
Error system transformation to GErrorv0.6.74
Note that most coreworkers are broken at the moment.
Diffstat (limited to 'UConnectionManager.pas')
| -rw-r--r-- | UConnectionManager.pas | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/UConnectionManager.pas b/UConnectionManager.pas index a89147d..7109cc3 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): boolean; + function DoConnectInternal(const URI: string; Engine: TVFSEngine; VFSDialogsParentWindow: PGtkWidget; VFSQuickConnectMode: boolean; Error: PPGError): boolean; end; var @@ -74,7 +74,7 @@ var implementation -uses ULocale, UCoreUtils, UConfig, UConnectionProperties, UGnome, UQuickConnect; +uses ULocale, UCoreUtils, UConfig, UConnectionProperties, UGnome, UQuickConnect, UError; procedure TFConnectionManager.FormCreate(Sender: TObject); @@ -539,6 +539,7 @@ var Engine: TVFSEngine; FActiveConnInfo: TConnMgrItem; DontShowAgain: boolean; res: TMessageButton; + Error: PGError; begin FActiveConnInfo := nil; if ListView.Selected <> nil then FActiveConnInfo := ListView.Selected.AsPointer(0); @@ -599,8 +600,10 @@ begin Engine.Password := FActiveConnInfo.Password; Engine.PasswordUsed := False; - if not DoConnectInternal(UTF8ToStr(FActiveConnInfo.GetURI(False)), Engine, FWidget, False) then begin - if not FSilenceError then Application.MessageBox(PGtkWindow(FWidget), LANGCouldntOpenURI, [mbOK], mbError, mbOK, mbOK); + Error := nil; + if not DoConnectInternal(UTF8ToStr(FActiveConnInfo.GetURI(False)), Engine, FWidget, False, @Error) then begin + if not FSilenceError then + ShowError(Self, 'Couldn''t open the URI specified', Error); ListViewTable.Enabled := True; CloseButton.Enabled := True; ConnectButton.Enabled := True; @@ -609,6 +612,8 @@ begin StopButton.Enabled := False; ListView.SetFocus; Engine.Free; + if Error <> nil then + g_error_free(Error); Exit; end; @@ -619,7 +624,7 @@ begin ModalResult := mbOK; end; -function TFConnectionManager.DoConnectInternal(const URI: string; Engine: TVFSEngine; VFSDialogsParentWindow: PGtkWidget; VFSQuickConnectMode: boolean): boolean; +function TFConnectionManager.DoConnectInternal(const URI: string; Engine: TVFSEngine; VFSDialogsParentWindow: PGtkWidget; VFSQuickConnectMode: boolean; Error: PPGError): boolean; begin Result := False; FSilenceError := False; @@ -658,6 +663,8 @@ begin end; until Thread.Finished; Result := Thread.OpenResult; + if Thread.OpenError <> nil then + g_propagate_error(Error, Thread.OpenError); FSilenceError := Thread.VFSCallbackCancelled; Thread.Free; Thread := nil; |
