Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Extra commit for -e command switch support.
authorSteve Brokenshire <sbrokenshire@xestia.co.uk>
Sun, 8 Nov 2015 15:25:35 +0000 (15:25 +0000)
committerSteve Brokenshire <sbrokenshire@xestia.co.uk>
Sun, 8 Nov 2015 15:25:35 +0000 (15:25 +0000)
source/contacteditor/frmContactEditor-Load.cpp
source/contacteditor/frmContactEditor-LoadGroup.cpp
source/contacteditor/frmContactEditor-Save.cpp
source/contacteditor/frmContactEditor.h

index 1ef92c4..3f1d407 100644 (file)
@@ -21,7 +21,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;
        
@@ -75,6 +78,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;
@@ -198,7 +202,22 @@ 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.
+                       
+                       wxPuts(wxSPropertySeg2);
+                       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
                
index 8a37f61..9d08801 100644 (file)
@@ -38,7 +38,10 @@ void frmContactEditor::LoadMember(wxString MemberData, int *GroupCount){
        // Go through the list of contacts for the account and find the matching UID.
        // If contact with UID doesn't match then say (unknown contact).
 
-       XABViewMode XVMData = MainPtr->GetViewMode();
+       XABViewMode XVMData;
+       if (StartupEditMode == FALSE){
+               XVMData = MainPtr->GetViewMode();
+       }
        
        wxString AccountDirFinal = GetAccountDir(wxSContactAccount, FALSE);
 
index 66890df..0ca9cb0 100644 (file)
@@ -29,54 +29,60 @@ void frmContactEditor::SaveContact( wxCommandEvent& event )
     wxString FilenameFinal;
     bool ReplaceContact = FALSE;
     
-    if (cmbType->GetCurrentSelection() == 1 ||
-        cmbType->GetCurrentSelection() == 3 ||
-        cmbType->GetCurrentSelection() == 4){
+    if (StartupEditMode == TRUE){
+    
+       if (cmbType->GetCurrentSelection() == 1 ||
+           cmbType->GetCurrentSelection() == 3 ||
+            cmbType->GetCurrentSelection() == 4){
         
-        if (IsGroup == TRUE){
-            
-            // Mark contact for replacing.
+           if (IsGroup == TRUE){
             
-            ReplaceContact = TRUE;
+               // Mark contact for replacing.
             
-        }
+               ReplaceContact = TRUE;
+               IsGroup = FALSE;
+           
+           }
         
-    } else if (cmbType->GetCurrentSelection() == 2){
+       } else if (cmbType->GetCurrentSelection() == 2){
         
-        if (IsGroup == TRUE){
-            
-            // Mark contact for replacing.
+               if (IsGroup == FALSE){
             
-            ReplaceContact = TRUE;
+               // Mark contact for replacing.
             
-        }
+               ReplaceContact = TRUE;
+               IsGroup = TRUE;
+           
+            }
         
-    }
+       }
     
-    if (ReplaceContact == TRUE){
+       if (ReplaceContact == TRUE){
         
-        wxString wxDelSplitFilename;
-        wxString wxDelFinalFilename;
-        wxString wxSDelDataURL;
-        wxStringTokenizer wSTDelFilename(wxSContactFilename, wxT("/"));
-        while(wSTDelFilename.HasMoreTokens()){
+            wxString wxDelSplitFilename;
+            wxString wxDelFinalFilename;
+            wxString wxSDelDataURL;
+            wxStringTokenizer wSTDelFilename(wxSContactFilename, wxT("/"));
+            while(wSTDelFilename.HasMoreTokens()){
             
-            wxDelSplitFilename = wSTDelFilename.GetNextToken();
+                wxDelSplitFilename = wSTDelFilename.GetNextToken();
             
-        }
+            }
         
-        wxSDelDataURL = wxDelSplitFilename;
+            wxSDelDataURL = wxDelSplitFilename;
         
-        // Delete the contact from the server as it will be useless in certain
-        // address book clients.
+            // Delete the contact from the server as it will be useless in certain
+            // address book clients.
         
-        ActMgrPtr->AddTask(2, cmbDisplayAs->GetValue(), wxSContactAccount, wxSDelDataURL, wxDelSplitFilename, wxSContactFilename, wxT(""));
+            ActMgrPtr->AddTask(2, cmbDisplayAs->GetValue(), wxSContactAccount, wxSDelDataURL, wxDelSplitFilename, wxSContactFilename, wxT(""));
         
-        // Clear the filename so the trigger to recreate the UID is done.
+            // Clear the filename so the trigger to recreate the UID is done.
         
-        wxSContactFilename.Clear();
-        EditMode = FALSE;
+           wxSContactFilename.Clear();
+           EditMode = FALSE;
         
+       }
+    
     }
     
     if (wxSContactFilename.IsEmpty()){
index f0e73a7..7123fc5 100644 (file)
@@ -350,6 +350,7 @@ class frmContactEditor : public frmContactEditorADT
                void SetupPointers(frmActivityMgr *ActMgr, wxETagProcessTimer *ETagProc,
                                        frmMain *MainPtrInc);
                bool LoadContact(wxString Filename);
+               void SetMode(bool StartupEditMode);
                void SetUID(int UID);
        private:
        
@@ -1210,6 +1211,7 @@ class frmContactEditor : public frmContactEditorADT
                int intValue3 = 0;
                bool BinaryDataProc = FALSE;
                bool EditMode = FALSE;
+               bool StartupEditMode = FALSE;
                bool DialogOpen = FALSE;
                
                /*
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