X-Git-Url: http://Server1/repobrowser/?p=xestiaab%2F.git;a=blobdiff_plain;f=source%2Fcontacteditor%2FfrmContactEditor-Save.cpp;h=dca32d08358cdfe0065bdf2ceac7bbb26eff72cf;hp=c47ed40dad47c1275be3757e682332ee3613b145;hb=f17747e21a80b71447654462a60fca6baaf64a17;hpb=c251478c84029b1ff0dcc7d7736e178a9ea53bfa diff --git a/source/contacteditor/frmContactEditor-Save.cpp b/source/contacteditor/frmContactEditor-Save.cpp index c47ed40..dca32d0 100644 --- a/source/contacteditor/frmContactEditor-Save.cpp +++ b/source/contacteditor/frmContactEditor-Save.cpp @@ -33,7 +33,8 @@ void frmContactEditor::SaveContact( wxCommandEvent& event ) if (boolUnsupportedAccount == true){ - wxMessageBox(_("Cannot make changes to a contact from an unsupported account type."), _("Unsupported account"), wxICON_ERROR); + wxMessageBox(_("Cannot make changes to a contact from an unsupported account type."), _("Unsupported account"), wxICON_ERROR); + saveSuccess = false; return; } @@ -46,10 +47,24 @@ void frmContactEditor::SaveContact( wxCommandEvent& event ) if (cmbDisplayAsValue.IsEmpty()){ wxMessageBox(_("Display As value cannot be left blank."), _("Display As value empty"), wxICON_ERROR); + saveSuccess = false; return; } + // Check if a value has been entered either in the Title, + // Forename, Surname, Other Names and Suffix text boxes. + + if (txtTitle->IsEmpty() && txtForename->IsEmpty() && txtSurname->IsEmpty() + && txtOtherNames->IsEmpty() && txtSuffix->IsEmpty()) + { + + wxMessageBox(_("A value must be as minimum eithered in either the Title, Forename, Surname, Other Names or Suffix text boxes."), _("No name information entered"), wxICON_ERROR); + saveSuccess = false; + return; + + } + // Save the updated contact data. //vCard ContactData; @@ -345,7 +360,7 @@ void frmContactEditor::SaveContact( wxCommandEvent& event ) FinalAnniversaryMonth = wxString::Format(wxT("%i"), ((int)AnniversaryMonth + 1)); } - + if (AnniversaryYear == 0){ FinalAnniversaryYear = wxT("--"); @@ -470,7 +485,7 @@ void frmContactEditor::SaveContact( wxCommandEvent& event ) wxString wxSETag = ETagDBPtr->GetETag(wxSplitFilename); wxString wxSETagOrig = ETagDBPtr->GetETagOriginal(wxSplitFilename); - + if (wxSETagOrig.IsEmpty()){ // Generate the ETag. @@ -484,7 +499,7 @@ void frmContactEditor::SaveContact( wxCommandEvent& event ) // Update empty ETag. wxSETag = wxSETagOrig; - ETagDBPtr->UpdateETag(wxSplitFilename, wxSETag, wxSETagOrig); + ETagDBPtr->AddETag(wxSplitFilename, wxSETag, ""); } else { @@ -496,7 +511,7 @@ void frmContactEditor::SaveContact( wxCommandEvent& event ) } if (EditMode == FALSE){ - + ActMgrPtr->AddTask(0, cmbDisplayAs->GetValue(), wxSContactAccount, wxSDataURL, wxSplitFilename, FilenameFinal, wxSData); EditMode = TRUE; FMTimer.SetFilename(FilenameFinal); @@ -534,22 +549,27 @@ void frmContactEditor::SaveContact( wxCommandEvent& event ) NameData.Title = txtTitle->GetValue(); NameData.Suffix = txtSuffix->GetValue(); - ucd->ContactAccount = wxSContactAccount; - ucd->ContactFilename = FilenameFinal; - ucd->ContactName = cmbDisplayAs->GetValue(); - ucd->ContactNameArray = NameData; + if (this->GetParent() != nullptr) + { + ucd->ContactAccount = wxSContactAccount; + ucd->ContactFilename = FilenameFinal; + ucd->ContactName = cmbDisplayAs->GetValue(); + ucd->ContactNameArray = NameData; - for (std::map::iterator gniter = ContactEditorData.GeneralNicknamesList.begin(); - gniter != ContactEditorData.GeneralNicknamesList.end(); gniter++){ + for (std::map::iterator gniter = ContactEditorData.GeneralNicknamesList.begin(); + gniter != ContactEditorData.GeneralNicknamesList.end(); gniter++){ - ucd->ContactNickname = gniter->second; - break; + ucd->ContactNickname = gniter->second; + break; + } + + wxCommandEvent event2(CE_UPDATECONTACTLIST); + event2.SetClientData(ucd); + wxPostEvent(MainPtr, event2); } - - wxCommandEvent event2(CE_UPDATECONTACTLIST); - event2.SetClientData(ucd); - wxPostEvent(MainPtr, event2); + + saveSuccess = true; } @@ -560,6 +580,9 @@ void frmContactEditor::SaveCloseContact( wxCommandEvent& event ) wxCommandEvent NullEvent; this->SaveContact(NullEvent); - this->Close(); + if (saveSuccess) + { + this->Close(); + } } \ No newline at end of file