Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
frmContactEditor: Check save was successful before closing
[xestiaab/.git] / source / contacteditor / frmContactEditor-Save.cpp
index f00c739..dca32d0 100644 (file)
@@ -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("--");
@@ -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<int,wxString>::iterator gniter = ContactEditorData.GeneralNicknamesList.begin();
-               gniter != ContactEditorData.GeneralNicknamesList.end(); gniter++){
+               for (std::map<int,wxString>::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
Xestia Software Development
Yn Maystri
© 2006 - 2019 Xestia Software Development
Software

Xestia Address Book
Xestia Calendar
Development

Xestia Gelforn
Everything else

About
News
Privacy Policy