public void Transfer() { try { #if GIO_2_16 bool result = true; #else Gnome.Vfs.Result result = Gnome.Vfs.Result.Ok; #endif if (clean) #if GIO_2_16 { Clean(dest); } #else { Clean(); } #endif foreach (IBrowsableItem photo in selection.Items) { //FIXME need to implement the uniquename as a filter using (FilterRequest request = new FilterRequest(photo.DefaultVersionUri)) { if (rotate) { new OrientationFilter().Convert(request); } #if GIO_2_16 GLib.File source = FileFactory.NewForUri(request.Current.ToString()); #else Gnome.Vfs.Uri source = new Gnome.Vfs.Uri(request.Current.ToString()); Gnome.Vfs.Uri target = dest.Clone(); #endif #if GIO_2_16 GLib.File target = UniqueName(dest, photo.Name); FileProgressCallback cb = Progress; #else target = UniqueName(target, photo.Name); Gnome.Vfs.XferProgressCallback cb = new Gnome.Vfs.XferProgressCallback(Progress); #endif progress_dialog.Message = System.String.Format(Catalog.GetString("Transferring picture \"{0}\" To CD"), photo.Name); progress_dialog.Fraction = photo_index / (double)selection.Count; progress_dialog.ProgressText = System.String.Format(Catalog.GetString("{0} of {1}"), photo_index, selection.Count); #if GIO_2_16 result &= source.Copy(target, FileCopyFlags.None, null, cb); #else result = Gnome.Vfs.Xfer.XferUri(source, target, Gnome.Vfs.XferOptions.Default, Gnome.Vfs.XferErrorMode.Abort, Gnome.Vfs.XferOverwriteMode.Replace, cb); #endif } photo_index++; } // FIXME the error dialog here is ugly and needs improvement when strings are not frozen. #if GIO_2_16 if (result) { #else if (result == Gnome.Vfs.Result.Ok) { #endif progress_dialog.Message = Catalog.GetString("Done Sending Photos"); progress_dialog.Fraction = 1.0; progress_dialog.ProgressText = Catalog.GetString("Transfer Complete"); progress_dialog.ButtonLabel = Gtk.Stock.Ok; progress_dialog.Hide(); system("nautilus-cd-burner"); } else { throw new System.Exception(System.String.Format("{0}{3}{1}{3}{2}", progress_dialog.Message, Catalog.GetString("Error While Transferring"), result.ToString(), System.Environment.NewLine)); } } catch (System.Exception e) { progress_dialog.Message = e.ToString(); progress_dialog.ProgressText = Catalog.GetString("Error Transferring"); return; } Gtk.Application.Invoke(this.Destroy); }
public void Transfer () { try { Gnome.Vfs.Result result = Gnome.Vfs.Result.Ok; if (clean) Clean (); foreach (IBrowsableItem photo in selection.Items) { //FIXME need to implement the uniquename as a filter using (Filters.FilterRequest request = new Filters.FilterRequest (photo.DefaultVersionUri)) { if (rotate) new Filters.OrientationFilter ().Convert (request); Gnome.Vfs.Uri source = new Gnome.Vfs.Uri (request.Current.ToString ()); Gnome.Vfs.Uri target = dest.Clone (); target = UniqueName (target, source.ExtractShortName ()); Gnome.Vfs.XferProgressCallback cb = new Gnome.Vfs.XferProgressCallback (Progress); progress_dialog.Message = System.String.Format (Catalog.GetString ("Transferring picture \"{0}\" To CD"), photo.Name); progress_dialog.Fraction = photo_index / (double) selection.Count; progress_dialog.ProgressText = System.String.Format (Catalog.GetString ("{0} of {1}"), photo_index, selection.Count); result = Gnome.Vfs.Xfer.XferUri (source, target, Gnome.Vfs.XferOptions.Default, Gnome.Vfs.XferErrorMode.Abort, Gnome.Vfs.XferOverwriteMode.Replace, cb); } photo_index++; } // FIXME the error dialog here is ugly and needs improvement when strings are not frozen. if (result == Gnome.Vfs.Result.Ok) { progress_dialog.Message = Catalog.GetString ("Done Sending Photos"); progress_dialog.Fraction = 1.0; progress_dialog.ProgressText = Catalog.GetString ("Transfer Complete"); progress_dialog.ButtonLabel = Gtk.Stock.Ok; progress_dialog.Hide (); system ("nautilus-cd-burner"); } else { throw new System.Exception (System.String.Format ("{0}{3}{1}{3}{2}", progress_dialog.Message, Catalog.GetString ("Error While Transferring"), result.ToString (), System.Environment.NewLine)); } } catch (System.Exception e) { progress_dialog.Message = e.ToString (); progress_dialog.ProgressText = Catalog.GetString ("Error Transferring"); return; } Gtk.Application.Invoke (this.Destroy); }
void Clean() { Gnome.Vfs.Uri target = dest.Clone(); Gnome.Vfs.XferProgressCallback cb = new Gnome.Vfs.XferProgressCallback(Progress); Gnome.Vfs.Xfer.XferDeleteList(new Gnome.Vfs.Uri [] { target }, Gnome.Vfs.XferErrorMode.Query, Gnome.Vfs.XferOptions.Recursive, cb); }
void Clean () { Gnome.Vfs.Uri target = dest.Clone (); Gnome.Vfs.XferProgressCallback cb = new Gnome.Vfs.XferProgressCallback (Progress); Gnome.Vfs.Xfer.XferDeleteList (new Gnome.Vfs.Uri [] {target}, Gnome.Vfs.XferErrorMode.Query, Gnome.Vfs.XferOptions.Recursive, cb); }