private bool SaveToPicture(PictureMetaData pic, bool commit) { // todo: die worker und modelle können mehrfach verwendet werden! IptcWorker iptcWorker = new IptcWorker(); ExifGpsWorker exifGpsWorker = new ExifGpsWorker(); IptcModel iptcModel = iptcView.GetModel(); ExifGpsModel exifGpsModel = exifGpsView.GetModel(); bool somethingChanged = false; if (iptcWorker.ProcessFile(pic, iptcModel)) { somethingChanged = true; } if (exifGpsWorker.ProcessFile(pic, exifGpsModel)) { somethingChanged = true; } if (iptcModel.PendingUpdates) { iptcModel.UpdateSettings(); } if (somethingChanged && commit) { if (!pic.SaveChanges()) { return(this.ShowFileVanishedMsg(pic.Filename)); } } return(true); }
public override void SetModel(IptcModel m) { this.BeginUpdate(); base.SetModel(m); suspendChechBoxUpdate = true; this.bindingSource.DataSource = this.model; suspendChechBoxUpdate = false; FillKeywordTree(); this.EndUpdate(); }
public void SaveToAll_Click(object sender, EventArgs e) { if (saveToAllWorker.IsBusy) { return; } IptcModel model = iptcView.GetModel(); if (model.KeywordChecked) { if (model.KeywordsChecked.Count != 0 || model.KeywordsUnchecked.Count != 0) { StringBuilder sb = new StringBuilder(); sb.AppendLine("You are going to change the keywords of ALL selected files!"); sb.AppendLine(); if (model.KeywordsChecked.Count != 0) { string checkedKeywords = String.Join(", ", model.KeywordsChecked.ToArray()); sb.Append("Adding "); sb.AppendLine(checkedKeywords); } if (model.KeywordsUnchecked.Count != 0) { string uncheckedKeywords = String.Join(", ", model.KeywordsUnchecked.ToArray()); sb.Append("Removing "); sb.AppendLine(uncheckedKeywords); } sb.AppendLine(); sb.Append("Are you sure?"); if (MessageBox.Show(sb.ToString(), mainForm.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } } PauseOtherWorker(); List <string> filenames = this.GetAllFileList(this.processFilesInSubdirectories); saveToAllWorker.RunWorkerAsync(filenames); }
public override RequestFileChangeResult RequestFileChange() { if (!askForFileSave) { return(RequestFileChangeResult.Close); } if (this.currentPicture == null) { return(RequestFileChangeResult.Close); } if (!this.currentPicture.ExistFile) { return(RequestFileChangeResult.Close); } IptcModel iptcModel = iptcView.GetModel(); ExifGpsModel exifGpsModel = exifGpsView.GetModel(); if (!iptcModel.PendingUpdates && !exifGpsModel.PendingUpdates) { return(RequestFileChangeResult.Close); } if (!isDataLoaded) { return(RequestFileChangeResult.Close); } DialogResult r = MessageBox.Show("Save changes to this picture?", "Iptc and Gps Editor", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); if (r == DialogResult.Cancel) { return(RequestFileChangeResult.DoNotClose); } if (r == DialogResult.Yes) { mainForm.WaitCursor(true); SaveToPicture(currentPicture, false); mainForm.WaitCursor(false); return(RequestFileChangeResult.CloseAndSave); } askForFileSave = false; return(RequestFileChangeResult.Close); }