Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Introduced simplified LoadBirthday and LoadAnniversary.
[xestiaab/.git] / source / contacteditor / frmContactEditor-Load.cpp
index 1ef92c4..8449f61 100644 (file)
@@ -1,3 +1,21 @@
+// frmContactEditor-Load.cpp - frmContactEditor load contact subroutines.
+//
+// (c) 2012-2015 Xestia Software Development.
+//
+// This file is part of Xestia Address Book.
+//
+// Xestia Address Book is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by the
+// Free Software Foundation, version 3 of the license.
+//
+// Xestia Address Book is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with Xestia Address Book. If not, see <http://www.gnu.org/licenses/>
+
 #include <map>
 
 #include <wx/ffile.h>
@@ -12,6 +30,7 @@
 #include "../vcard/vcard.h"
 #include "../common/textprocessing.h"
 #include "../common/dirs.h"
+#include "cdo/ContactDataObject.h"
 
 bool frmContactEditor::LoadContact(wxString Filename){
 
@@ -21,7 +40,10 @@ bool frmContactEditor::LoadContact(wxString Filename){
        wxString wxSContactString;
        wxString ContactLine;
        vCard ContactData;
-       XABViewMode XVMData = MainPtr->GetViewMode();
+       XABViewMode XVMData;
+       if (StartupEditMode == FALSE){
+               XVMData = MainPtr->GetViewMode();
+       }
        
        wxSContactFilename = Filename;
        
@@ -40,6 +62,8 @@ bool frmContactEditor::LoadContact(wxString Filename){
        
        }
        
+       ContactEditorData.LoadFile(Filename);
+       
        ContactFile.ReadAll(&wxSContactString, wxConvAuto());
        
        // Split the lines.
@@ -75,6 +99,7 @@ bool frmContactEditor::LoadContact(wxString Filename){
        bool KindProcessed = FALSE;
        bool ETagFound = FALSE;
        bool ETagOrigFound = FALSE;
+       bool VersionProcessed = FALSE;
        int intExtraNickname = 0;
        wxString wxSProperty;
        wxString wxSPropertySeg1;
@@ -111,6 +136,18 @@ bool frmContactEditor::LoadContact(wxString Filename){
        int XTokenCount = 0;
        //int intValueSeek = 1;
 
+       // Process the Birthday (BDAY) (frmContactEditor-LoadBADays.cpp)
+       
+       LoadBirthday(&ContactEditorData.Birthday, &ContactEditorData.BirthdayText);
+
+       // Process the Anniversary (ANNIVERSARY) (frmContactEditor-LoadBADays.cpp)
+       
+       LoadAnniversary(&ContactEditorData.Anniversary, &ContactEditorData.AnniversaryText);
+
+       // Process the Gender (GENDER) (frmContactEditor-LoadGender.cpp)
+       
+       LoadGender(&ContactEditorData.Gender, &ContactEditorData.GenderDetails);
+
        for (std::map<int,wxString>::iterator iter = ContactFileLines.begin(); 
         iter != ContactFileLines.end(); ++iter){
        
@@ -198,7 +235,21 @@ bool frmContactEditor::LoadContact(wxString Filename){
                
                // Add the data into the contact editor depending on what it is.                                
                
-               if (wxSProperty == wxT("KIND") && KindProcessed == FALSE){
+               if (wxSProperty == wxT("VERSION") && VersionProcessed == FALSE){
+               
+                       // Check if version is 4.0, otherwise don't
+                       // load.
+                       
+                       if (wxSPropertySeg2 != wxT("4.0")){
+                               wxMessageBox(_("This file is not a vCard 4.0 contact and is not supported under Xestia Address Book."),
+                                       _("Contact not supported"), wxICON_ERROR);
+                               this->Close();
+                               return FALSE;
+                       }
+                       
+                       VersionProcessed = TRUE;
+               
+               } if (wxSProperty == wxT("KIND") && KindProcessed == FALSE){
                
                        // See frmContactEditor-LoadGroup.cpp
                
@@ -228,7 +279,7 @@ bool frmContactEditor::LoadContact(wxString Filename){
                        
                        LoadNickname(wxSPropertySeg1, wxSPropertySeg2, &NicknameCount, &ContactData);
                        
-               } else if (wxSProperty == wxT("GENDER") && GenderProcessed == FALSE){
+               }/* else if (wxSProperty == wxT("GENDER") && GenderProcessed == FALSE){
                
                        // See frmContactEditor-LoadGender.cpp
                
@@ -246,7 +297,7 @@ bool frmContactEditor::LoadContact(wxString Filename){
                        
                        LoadAnniversary(wxSPropertySeg1, wxSPropertySeg2, &AnniversaryProcessed);
                
-               } else if (wxSProperty == wxT("TZ")){
+               }*/ else if (wxSProperty == wxT("TZ")){
                
                        // See frmContactEditor-LoadTimeZone.cpp
                
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