From 21ccd33485eca2000caf68bbb72797d5d2af43cb Mon Sep 17 00:00:00 2001 From: Leonardo Robol Date: Thu, 11 Feb 2010 00:02:32 +0100 Subject: [PATCH] Ripulita la chiusura dell'applicazione e messe le premesse per poter creare un pulsante per interrompere il trasferimento in corso. --- Dizzy/MainWindow.cs | 3 +++ Dizzy/Protocol.cs | 43 +++++++++++++++++++++++++++---------------- 2 files changed, 30 insertions(+), 16 deletions(-) diff --git a/Dizzy/MainWindow.cs b/Dizzy/MainWindow.cs index 1f86831..3b170ff 100644 --- a/Dizzy/MainWindow.cs +++ b/Dizzy/MainWindow.cs @@ -61,7 +61,10 @@ public partial class MainWindow : Gtk.Window protected void OnDeleteEvent (object sender, DeleteEventArgs a) { if (protocol != null) + { + Log.Info ("Calling Protocol.Disconnect ()"); protocol.Disconnect (); + } Application.Quit (); diff --git a/Dizzy/Protocol.cs b/Dizzy/Protocol.cs index d2fb6dd..bc238c4 100644 --- a/Dizzy/Protocol.cs +++ b/Dizzy/Protocol.cs @@ -183,20 +183,12 @@ namespace Dizzy public void Disconnect () { - /*foreach(FileTransfer t in this.transfers) + foreach(FileTransfer t in this.transfers) { + Log.Info ("Stopping transfer"); t.Stop (); } - foreach(Thread t in this.threads) - { - if(t.IsAlive) - t.Abort (); - } - if(this.finder != null && this.finder.IsAlive) - { - this.finder.Abort (); - } - */ + } @@ -227,12 +219,15 @@ namespace Dizzy try { FileTransfer transfer = new FileTransfer (f, this.config.GetValue("user"), this.config.password, downloadFolder); this.transfers.Add (transfer); - } catch (Exception e) { - + transfer.Start (); + } catch (Exception e) { Log.Error (e.Message); this.config.authenticated = false; - this.Download (f, downloadFolder); + + EventManager.ErrorMessage ("Autenticazione fallita"); } + + } public void Upload(string f) @@ -260,11 +255,12 @@ namespace Dizzy try { FileUpload transfer = new FileUpload (f, this.config.GetValue("user"), this.config.password); this.transfers.Add (transfer); + transfer.Start (); } catch (Exception e) { Log.Error (e.Message); this.config.authenticated = false; - this.Upload (f); + EventManager.ErrorMessage ("Autenticazione fallita"); } } @@ -301,6 +297,10 @@ namespace Dizzy } + public void Abort () { + this.sftp.Cancel (); + } + private void TransferStartedHandler(string src, string dest, int transferredBytes, int totalBytes, string message) { @@ -398,6 +398,7 @@ namespace Dizzy Gtk.TreeIter iter; SFTPConnection sftp; + string downloadFolder; public delegate void Handler(string src, string dest, int transferredBytes, int totalBytes, string message); @@ -407,6 +408,7 @@ namespace Dizzy // Connessione al server this.sftp = new SFTPConnection (user, password); this.sftp.Connect (); + this.downloadFolder = downloadFolder; this.file = f; @@ -414,12 +416,17 @@ namespace Dizzy sftp.TransferProgress += new SFTPConnection.SFTPEvent(OnTransferProgress); sftp.TransferStopped += new SFTPConnection.SFTPEvent(OnTransferStopped); - sftp.Download (this.file, downloadFolder); + } + + public void Start () + { + sftp.Download (this.file, this.downloadFolder); sftp.Disconnect (); } public void Stop () { + this.sftp.Abort (); this.sftp.Disconnect (); } @@ -468,6 +475,10 @@ namespace Dizzy sftp.TransferProgress += new SFTPConnection.SFTPEvent(OnTransferProgress); sftp.TransferStopped += new SFTPConnection.SFTPEvent(OnTransferStopped); + } + + public void Start () + { sftp.Upload (this.filename); sftp.Disconnect (); } -- 2.1.4