public void Merge() { Log.DebugFormat("Merging {0} and {1}", raw.VersionUri(Photo.OriginalVersionId), jpeg.VersionUri(Photo.OriginalVersionId)); foreach (uint version_id in jpeg.VersionIds) { string name = jpeg.GetVersion(version_id).Name; try { raw.DefaultVersionId = raw.CreateReparentedVersion(jpeg.GetVersion(version_id) as PhotoVersion, version_id == Photo.OriginalVersionId); if (version_id == Photo.OriginalVersionId) { raw.RenameVersion(raw.DefaultVersionId, "Jpeg"); } else { raw.RenameVersion(raw.DefaultVersionId, name); } } catch (Exception e) { Log.Exception(e); } } raw.AddTag(jpeg.Tags); uint [] version_ids = jpeg.VersionIds; Array.Reverse(version_ids); foreach (uint version_id in version_ids) { try { jpeg.DeleteVersion(version_id, true, true); } catch (Exception e) { Log.Exception(e); } } raw.Changes.DataChanged = true; App.Instance.Database.Photos.Commit(raw); App.Instance.Database.Photos.Remove(jpeg); }
public bool Execute(PhotoStore store, Photo photo, Gtk.Window parent_window) { // FIXME HIG-ify. Dialog dialog = new Dialog(); dialog.BorderWidth = 6; dialog.TransientFor = parent_window; dialog.HasSeparator = false; dialog.Title = Catalog.GetString("Really Delete?"); dialog.AddButton(Catalog.GetString("Cancel"), (int)ResponseType.Cancel); dialog.AddButton(Catalog.GetString("Delete"), (int)ResponseType.Ok); dialog.DefaultResponse = ResponseType.Ok; string version_name = photo.GetVersionName(photo.DefaultVersionId); Label label = new Label(String.Format(Catalog.GetString("Really delete version \"{0}\"?"), version_name)); label.Show(); dialog.VBox.PackStart(label, false, true, 6);; if (dialog.Run() == (int)ResponseType.Ok) { try { photo.DeleteVersion(photo.DefaultVersionId); store.Commit(photo); } catch (Exception e) { // FIXME show error dialog. string msg = Catalog.GetString("Could not delete a version"); string desc = String.Format(Catalog.GetString("Received exception \"{0}\". Unable to delete version \"{1}\""), e.Message, photo.Name); HigMessageDialog md = new HigMessageDialog(parent_window, DialogFlags.DestroyWithParent, Gtk.MessageType.Error, ButtonsType.Ok, msg, desc); md.Run(); md.Destroy(); dialog.Destroy(); // Delete confirmation window. return(false); } dialog.Destroy(); return(true); } dialog.Destroy(); return(false); }
public bool Execute(PhotoStore store, Photo photo, Gtk.Window parent_window) { string ok_caption = Strings.Delete; string msg = Strings.ReallyDeleteVersionXQuestion(photo.DefaultVersion.Name); string desc = Strings.ThisRemovesTheVersionAndDeletesTheCorrespondingFileFromDisk; try { if (ResponseType.Ok == HigMessageDialog.RunHigConfirmation(parent_window, DialogFlags.DestroyWithParent, MessageType.Warning, msg, desc, ok_caption)) { photo.DeleteVersion(photo.DefaultVersionId); store.Commit(photo); return(true); } } catch (Exception e) { HandleException("Could not delete a version", e, parent_window); } return(false); }
public bool Execute(PhotoStore store, Photo photo, Gtk.Window parent_window) { // FIXME HIG-ify. Dialog dialog = new Dialog (); dialog.BorderWidth = 6; dialog.TransientFor = parent_window; dialog.HasSeparator = false; dialog.Title = Catalog.GetString ("Really Delete?"); dialog.AddButton (Catalog.GetString ("Cancel"), (int) ResponseType.Cancel); dialog.AddButton (Catalog.GetString ("Delete"), (int) ResponseType.Ok); dialog.DefaultResponse = ResponseType.Ok; string version_name = photo.GetVersion (photo.DefaultVersionId).Name; Label label = new Label (String.Format (Catalog.GetString ("Really delete version \"{0}\"?"), version_name)); label.Show (); dialog.VBox.PackStart (label, false, true, 6);; if (dialog.Run () == (int) ResponseType.Ok) { try { photo.DeleteVersion (photo.DefaultVersionId); store.Commit (photo); } catch (Exception e) { Log.DebugException (e); string msg = Catalog.GetString ("Could not delete a version"); string desc = String.Format (Catalog.GetString ("Received exception \"{0}\". Unable to delete version \"{1}\""), e.Message, photo.Name); HigMessageDialog md = new HigMessageDialog (parent_window, DialogFlags.DestroyWithParent, Gtk.MessageType.Error, ButtonsType.Ok, msg, desc); md.Run (); md.Destroy (); dialog.Destroy (); // Delete confirmation window. return false; } dialog.Destroy (); return true; } dialog.Destroy (); return false; }
public bool Execute(PhotoStore store, Photo photo, Gtk.Window parent_window) { string ok_caption = Catalog.GetString("Delete"); string msg = String.Format(Catalog.GetString("Really delete version \"{0}\"?"), photo.DefaultVersion.Name); string desc = Catalog.GetString("This removes the version and deletes the corresponding file from disk."); try { if (ResponseType.Ok == HigMessageDialog.RunHigConfirmation(parent_window, DialogFlags.DestroyWithParent, MessageType.Warning, msg, desc, ok_caption)) { photo.DeleteVersion(photo.DefaultVersionId); store.Commit(photo); return(true); } } catch (Exception e) { HandleException("Could not delete a version", e, parent_window); } return(false); }
public bool Execute(PhotoStore store, Photo photo, Gtk.Window parent_window) { string ok_caption = Catalog.GetString("De_tach"); string msg = String.Format(Catalog.GetString("Really detach version \"{0}\" from \"{1}\"?"), photo.DefaultVersion.Name, photo.Name.Replace("_", "__")); string desc = Catalog.GetString("This makes the version appear as a separate photo in the library. To undo, drag the new photo back to its parent."); try { if (ResponseType.Ok == HigMessageDialog.RunHigConfirmation(parent_window, DialogFlags.DestroyWithParent, MessageType.Warning, msg, desc, ok_caption)) { Photo new_photo = store.CreateFrom(photo, photo.RollId); new_photo.CopyAttributesFrom(photo); photo.DeleteVersion(photo.DefaultVersionId, false, true); store.Commit(new Photo[] { new_photo, photo }); return(true); } } catch (Exception e) { HandleException("Could not detach a version", e, parent_window); } return(false); }
public bool Execute(PhotoStore store, Photo photo, Gtk.Window parent_window) { string ok_caption = Strings.DetachButton; string msg = Strings.ReallyDetachVersionXFromYQuestion(photo.DefaultVersion.Name, photo.Name.Replace("_", "__")); string desc = Strings.ThisMakesTheVersionAppearAsASeperatePhotoInTheLibraryToUndoDragTheNewPhotoBackToItsParent; try { if (ResponseType.Ok == HigMessageDialog.RunHigConfirmation(parent_window, DialogFlags.DestroyWithParent, MessageType.Warning, msg, desc, ok_caption)) { var new_photo = store.CreateFrom(photo, true, photo.RollId); new_photo.CopyAttributesFrom(photo); photo.DeleteVersion(photo.DefaultVersionId, false, true); store.Commit(new Photo[] { new_photo, photo }); return(true); } } catch (Exception e) { HandleException("Could not detach a version", e, parent_window); } return(false); }
public bool Execute(PhotoStore store, Photo photo, Gtk.Window parent_window) { string ok_caption = Catalog.GetString ("De_tach"); string msg = String.Format (Catalog.GetString ("Really detach version \"{0}\" from \"{1}\"?"), photo.DefaultVersion.Name, photo.Name.Replace("_", "__")); string desc = Catalog.GetString ("This makes the version appear as a separate photo in the library. To undo, drag the new photo back to its parent."); try { if (ResponseType.Ok == HigMessageDialog.RunHigConfirmation(parent_window, DialogFlags.DestroyWithParent, MessageType.Warning, msg, desc, ok_caption)) { Photo new_photo = store.CreateFrom (photo, photo.RollId); new_photo.CopyAttributesFrom (photo); photo.DeleteVersion (photo.DefaultVersionId, false, true); store.Commit (new Photo[] {new_photo, photo}); return true; } } catch (Exception e) { HandleException ("Could not detach a version", e, parent_window); } return false; }
public bool Execute(PhotoStore store, Photo photo, Gtk.Window parent_window) { string ok_caption = Catalog.GetString ("Delete"); string msg = String.Format (Catalog.GetString ("Really delete version \"{0}\"?"), photo.DefaultVersion.Name); string desc = Catalog.GetString ("This removes the version and deletes the corresponding file from disk."); try { if (ResponseType.Ok == HigMessageDialog.RunHigConfirmation(parent_window, DialogFlags.DestroyWithParent, MessageType.Warning, msg, desc, ok_caption)) { photo.DeleteVersion (photo.DefaultVersionId); store.Commit (photo); return true; } } catch (Exception e) { HandleException ("Could not delete a version", e, parent_window); } return false; }