public void UpdatePicture(PictureMetaData pmd) { if (pmd == null) { return; } if (headlineChecked) { pmd.IptcHeadline = Util.nullAsEmpty(headline); } if (captionChecked) { pmd.IptcCaption = Util.nullAsEmpty(caption); } if (objectNameChecked) { pmd.IptcObjectName = Util.nullAsEmpty(objectName); } if (copyrightChecked) { pmd.IptcCopyright = Util.nullAsEmpty(copyright); } if (cityChecked) { pmd.IptcCity = Util.nullAsEmpty(city); } if (sublocationChecked) { pmd.IptcSubLocation = Util.nullAsEmpty(sublocation); } if (provinceStateChecked) { pmd.IptcProvinceState = Util.nullAsEmpty(provinceState); } if (countryNameChecked) { pmd.IptcCountryName = Util.nullAsEmpty(countryName); } if (countryCodeChecked) { pmd.IptcCountryCode = Util.nullAsEmpty(countryCode); } if (authorChecked) { pmd.ClearByline(); if (author != "") { pmd.AddByline(author); } } if (writeChecked) { pmd.ClearWriter(); if (writer != "") { pmd.AddWriter(writer); } } if (contactChecked) { pmd.ClearContact(); if (contact != "") { pmd.AddContact(contact); } } if (createdChecked) { if (getDateFromExifChecked) { pmd.IptcDateTimeCreated = pmd.ExifOriginalDateTime; } else { if (created != DateTime.MinValue) { pmd.IptcDateTimeCreated = created; } else { pmd.IptcDateTimeCreated = null; } } } if (keywordChecked) { List <string> allKeywords = pmd.ListKeyword(); foreach (string s in keywordsChecked) { if (!allKeywords.Contains(s)) { pmd.AddKeyword(s); } } foreach (string s in keywordsUnchecked) { if (allKeywords.Contains(s)) { pmd.RemoveKeyword(s); } } } }
//model private bool SaveToPicture(PictureMetaData pic, bool commit) { if (updateCaption.Checked) { pic.IptcCaption = this.txtCaption.Text; Settings.Default.Captions.AddIfGrowing(this.txtCaption.Text); } bool updateAnyLocation = false; if (updateCity.Checked) { pic.IptcCity = this.txtCity.Text; updateAnyLocation = true; } if (updateCountryCode.Checked) { pic.IptcCountryCode = this.txtContryCode.Text; updateAnyLocation = true; } if (updateCountryName.Checked) { pic.IptcCountryName = this.txtContryName.Text; updateAnyLocation = true; } if (updateState.Checked) { pic.IptcProvinceState = this.txtProvinceState.Text; updateAnyLocation = true; } if (updateSublocation.Checked) { pic.IptcSubLocation = this.txtSublocation.Text; updateAnyLocation = true; } if (updateAnyLocation) { Location l = new Location(); l.City = this.txtCity.Text; l.Sublocation = this.txtSublocation.Text; l.State = this.txtProvinceState.Text; l.CountryName = this.txtContryName.Text; l.CountryCode = this.txtContryCode.Text; Settings.Default.Locations.AddIfGrowing(l); } if (updateCopyright.Checked) { pic.IptcCopyright = this.txtCopyright.Text; Settings.Default.Copyrights.AddIfGrowing(this.txtCopyright.Text); } if (updateHeadline.Checked) { pic.IptcHeadline = this.txtHeadline.Text; Settings.Default.Headlines.AddIfGrowing(this.txtHeadline.Text); } if (updateObjectName.Checked) { pic.IptcObjectName = this.txtObjectName.Text; Settings.Default.Objectnames.AddIfGrowing(this.txtObjectName.Text); } if (updateAuthor.Checked) { pic.ClearByline(); pic.AddByline(this.txtAuthorByline.Text); Settings.Default.Authors.AddIfGrowing(this.txtAuthorByline.Text); } if (updateContact.Checked) { pic.ClearContact(); pic.AddContact(this.txtContact.Text); Settings.Default.Contacts.AddIfGrowing(this.txtContact.Text); } if (updateWriter.Checked) { pic.ClearWriter(); pic.AddWriter(this.txtWriter.Text); Settings.Default.Writers.AddIfGrowing(this.txtWriter.Text); } if (updateDateCreated.Checked) { if (chkCreatedFromExif.Checked) { DateTime?d = pic.ExifOriginalDateTime; if (d.HasValue) { pic.IptcDateTimeCreated = d.Value; } } else { DateTime datePart = this.dateCreated.Value; DateTime timePart = this.timeCreated.Value; datePart = datePart.AddHours(-datePart.Hour); datePart = datePart.AddMinutes(-datePart.Minute); datePart = datePart.AddSeconds(-datePart.Second); datePart = datePart.AddHours(timePart.Hour); datePart = datePart.AddMinutes(timePart.Minute); datePart = datePart.AddSeconds(timePart.Second); pic.IptcDateTimeCreated = datePart; } } if (updateKeywords.Checked) { List <string> keywords = pic.ListKeyword(); foreach (ThreeStateTreeNode groupNode in this.treeKeywords.Nodes) { foreach (ThreeStateTreeNode node in groupNode.Nodes) { string nodeKeyword = node.Text; string nodeGroup = node.Parent.Text; bool picHasKeyword = keywords.Contains(nodeKeyword); if (node.CheckState == CheckState.Checked) { Settings.Default.GroupedKeywords.AddIfGrowing(nodeKeyword, nodeGroup); } if (node.CheckState == CheckState.Indeterminate) { continue; } if (node.CheckState == CheckState.Unchecked && !picHasKeyword) { continue; } if (node.CheckState == CheckState.Checked && picHasKeyword) { continue; } if (node.CheckState == CheckState.Unchecked && picHasKeyword) { pic.RemoveKeyword(nodeKeyword); } if (node.CheckState == CheckState.Checked && !picHasKeyword) { pic.AddKeyword(nodeKeyword); } } } } if (Settings.Default.RemoveThumbnailOrientation) { if (pic.ExifThumbnailOrientation != pic.ExifImageOrientation) { pic.RemoveExifThumbnailOrientation(); } } if (commit) { if (!pic.SaveChanges()) { return(this.ShowFileVanishedMsg(pic.Filename)); } } return(true); }