Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Removed CardDAV class and all uses/references.
[xestiaab/.git] / source / frmMain.cpp
index 6625432..0986e18 100644 (file)
@@ -54,7 +54,6 @@
 #include "common/events.h"
 #include "common/dirs.h"
 #include "vcard/vcard.h"
-#include "carddav/carddav.h"
 #include "contacteditor/frmContactEditor.h"
 #include "import/import.h"
 #include "export/export.h"
@@ -85,6 +84,7 @@ DEFINE_EVENT_TYPE(WINDOW_EDIT);
 DEFINE_EVENT_TYPE(WINDOW_CLOSE);
 DEFINE_EVENT_TYPE(CONNSTAT_UPDATE);
 DEFINE_EVENT_TYPE(INVALIDSSLCERT);
+DEFINE_EVENT_TYPE(INVALIDSSLCERTSTRING);
 DEFINE_EVENT_TYPE(GETSELECTEDLIST);
 DEFINE_EVENT_TYPE(SYNCACCOUNT);
 DEFINE_EVENT_TYPE(IMPORT_RESULTSSHOW);
@@ -117,6 +117,7 @@ EVT_COMMAND(wxID_ANY, WINDOW_EDIT, frmMain::WindowEdit)
 EVT_COMMAND(wxID_ANY, WINDOW_CLOSE, frmMain::WindowDelete)
 EVT_COMMAND(wxID_ANY, CONNSTAT_UPDATE, frmMain::UpdateConnectionStatus)
 EVT_COMMAND(wxID_ANY, INVALIDSSLCERT, frmMain::InvalidSSLCertificate)
+EVT_COMMAND(wxID_ANY, INVALIDSSLCERTSTRING, frmMain::InvalidSSLCertificateString)
 EVT_COMMAND(wxID_ANY, GETSELECTEDLIST, frmMain::GetSelectedList)
 EVT_COMMAND(wxID_ANY, SYNCACCOUNT, frmMain::SyncAccount)
 EVT_COMMAND(wxID_ANY, IMPORT_RESULTSSHOW, frmMain::ShowImportResults)
@@ -138,6 +139,7 @@ frmMainADT( parent )
        wxMemoryInputStream bstream(icons_acclocal_png, sizeof(icons_acclocal_png));
        wxMemoryInputStream cstream(icons_accgroup_png, sizeof(icons_accgroup_png));
        wxMemoryInputStream dstream(icons_accnone_png, sizeof(icons_accnone_png));
+       wxMemoryInputStream estream(icons_accunsupported_png, sizeof(icons_accunsupported_png));
     
        wxImage icons_accinet_png(astream, wxBITMAP_TYPE_PNG);
        wxBitmap AccInet(icons_accinet_png, -1);
@@ -153,16 +155,22 @@ frmMainADT( parent )
        wxBitmap AccGrp(icons_accgroup_png, -1);
        wxIcon wxIAccGrp;
        wxIAccGrp.CopyFromBitmap(AccGrp);
-    
+
        wxImage icons_accnone_png(dstream, wxBITMAP_TYPE_PNG);
        wxBitmap AccNone(icons_accnone_png, -1);
        wxIcon wxIAccNone;
        wxIAccNone.CopyFromBitmap(AccNone);
+       
+       wxImage icons_accunsupported_png(estream, wxBITMAP_TYPE_PNG);
+       wxBitmap AccUnsupported(icons_accunsupported_png, -1);
+       wxIcon wxIAccUnsupported;
+       wxIAccUnsupported.CopyFromBitmap(AccUnsupported);
     
        AccountID = AccImgList->Add(wxIAccNIcon);
        AccountNetID = AccImgList->Add(wxIAccInet);
        AccountGrpID = AccImgList->Add(wxIAccGrp);
        AccountNoneID = AccImgList->Add(wxIAccNone);
+       AccountUnsupportedID = AccImgList->Add(wxIAccUnsupported);
     
        bmpIcon->SetIcon(AccImgList->GetIcon(AccountNoneID));
     
@@ -541,6 +549,10 @@ void frmMain::LoadContactList( wxTreeEvent& event )
                                        imgSSLStatus->SetBitmap(*imgOffline);
                                        SSLToolTip->SetTip(wxT("SSL status is not applicable for this account"));
                                        AccountTypeFinal.Append(wxT("local"));
+                               } else {
+                                       imgSSLStatus->SetBitmap(*imgOffline);
+                                       SSLToolTip->SetTip(wxT("SSL status is not applicable for this account"));                                       
+                                       AccountTypeFinal.Append(AccountType.Lower());
                                }
                 
                                AccountIndex = i;
@@ -571,6 +583,8 @@ void frmMain::LoadContactList( wxTreeEvent& event )
                        } else if (AccountType == wxT("Local")){
                                SSLToolTip->SetTip(wxT("SSL status is not applicable for this account"));
                                AccountTypeFinal.Append(wxT("local"));
+                       } else {
+                               AccountTypeFinal.Append(AccountType.Lower());
                        }
             
                        AccountIndex = i;
@@ -614,7 +628,7 @@ void frmMain::LoadContactList( wxTreeEvent& event )
        long ContactSeekPoint = 0;
     
        wxDir vcardaccdir(AccountDirFinal);
-    
+
        // Get the wxTreeItemId and image icon and compare it to the list.
     
        if (ActiveItemIcon == AccountGrpID){
@@ -1080,6 +1094,17 @@ void frmMain::ShowContactEditorNew( wxCommandEvent& event )
                return;
         
        }
+       
+       // Check if the account type is a valid account type, otherwise
+       // display an error message.
+       
+       if (ActiveAccountType != "CardDAV" && ActiveAccountType != "carddav" &&
+               ActiveAccountType != "Local" && ActiveAccountType != "local"){
+               
+               wxMessageBox(_("Cannot add a new contact as the account type is unsupported."), _("Unsupported account type"), wxICON_ERROR);
+               return;
+                       
+       }
     
        // Add Pointer to SetupPointers for the ETagDB.
     
@@ -1130,7 +1155,7 @@ void frmMain::ShowContactEditorEdit( wxCommandEvent& event )
                return;
         
        }
-    
+       
        wxMemoryInputStream istream(bigimgs_contactpersonicon48_png, sizeof(bigimgs_contactpersonicon48_png));
        wxImage bigimgs_contactpersonicon48i(istream, wxBITMAP_TYPE_PNG);
        wxBitmap contacticonbmp(bigimgs_contactpersonicon48i, -1);
@@ -1175,6 +1200,13 @@ void frmMain::ShowContactEditorEdit( wxCommandEvent& event )
     
        ContactEditor->SetupPointers(frameActMgr, &ETagProcTimer, this);
        ContactEditor->SetupHeaders();
+
+       if (ActiveAccountType != "CardDAV" && ActiveAccountType != "carddav" &&
+               ActiveAccountType != "Local" && ActiveAccountType != "local"){
+                       
+               ContactEditor->SetupAccountData(true);
+                       
+       }
     
        // Check if pointer is NULL (not from the search forms) or not.
     
@@ -1218,7 +1250,7 @@ void frmMain::RefreshAddressBook( wxCommandEvent& event ){
     
        if (!ActiveAccount.IsEmpty()){
    
-               if (ActiveAccountType != wxT("Local")){
+               if (ActiveAccountType == wxT("CardDAV") || ActiveAccountType == wxT("carddav")){
         
                        // Account type is not local.
        
@@ -1228,7 +1260,7 @@ void frmMain::RefreshAddressBook( wxCommandEvent& event ){
         
                } else {
        
-                       wxMessageBox(_("The refresh address book command is not supported with this type of account."), wxT("Not supported for this type of account"));
+                       wxMessageBox(_("The refresh address book command is not supported with this type of account."), wxT("Not supported"), wxICON_ERROR);
        
                }
        
@@ -1433,7 +1465,7 @@ void frmMain::LoadPreferences(){
         ETagProcTimer.ReloadAccounts();
     
        for (int i = 0; i < preferences.accounts.GetCount(); i++){
-        
+               
                if ((preferences.accounts.GetAccountType(i) == wxT("Local") ||
                        preferences.accounts.GetAccountType(i) == wxT("local")) && HideLocalABs == TRUE){
             
@@ -1458,7 +1490,7 @@ void frmMain::LoadPreferences(){
                AccName = preferences.accounts.GetAccountName(i);
                AccName.Trim();
                AccountAccDirList.insert(std::make_pair(i, AccDirFull));
-        
+               
                if (preferences.accounts.GetAccountType(i) == wxT("CardDAV") ||
                        preferences.accounts.GetAccountType(i) == wxT("carddav")){
             
@@ -1482,10 +1514,15 @@ void frmMain::LoadPreferences(){
             
                        AccountTreeId = treAccounts->AppendItem(RootNode, preferences.accounts.GetAccountName(i), AccountNetID, -1);
             
-               } else {
+               } else if (preferences.accounts.GetAccountType(i) == wxT("Local") ||
+                       preferences.accounts.GetAccountType(i) == wxT("local")) {
             
                        AccountTreeId = treAccounts->AppendItem(RootNode, preferences.accounts.GetAccountName(i), AccountID, -1);
             
+               } else {
+
+                       AccountTreeId = treAccounts->AppendItem(RootNode, preferences.accounts.GetAccountName(i), AccountUnsupportedID, -1);
+                       
                }
         
                // Go through the account directory and find contact files with
@@ -1498,7 +1535,7 @@ void frmMain::LoadPreferences(){
                wxString vCardFilename;
                wxString vCardDataString;
                wxString vCardFilenameFull;
-
+               
                bool ProcFiles = vcardaccdir.GetFirst(&vCardFilename, wxEmptyString, wxDIR_FILES);
         
                while(ProcFiles){
@@ -1927,7 +1964,7 @@ void frmMain::RevealContact(wxCommandEvent& event){
 void frmMain::DeleteContact(wxCommandEvent& event){
     
        // Delete a contact from the main window.
-    
+       
        // Check if a contact is selected.
     
        long intSelected = -1;
@@ -1941,6 +1978,17 @@ void frmMain::DeleteContact(wxCommandEvent& event){
        if (intSelected == -1){
                return;
        }
+       
+       // Check if the account type is a valid account type, otherwise
+       // display an error message.
+       
+       if (ActiveAccountType != "CardDAV" && ActiveAccountType != "carddav" &&
+               ActiveAccountType != "Local" && ActiveAccountType != "local"){
+               
+               wxMessageBox(_("Cannot delete contact as the account type is unsupported."), _("Unsupported account type"), wxICON_ERROR);
+               return;
+                       
+       }
     
        frmActivityMgr *frameActMgr = static_cast<frmActivityMgr*>(ActMgrPtr);
     
@@ -2056,13 +2104,14 @@ void frmMain::DeleteContact(wxCommandEvent& event){
                        if (nextChild == selectedChild){
                        
                                wxSDataURL = prefaccounts.GetAccountDirPrefix(i) + wxT("/") + wxSplitFilename;
+                               break;
 
                        }
             
                }
         
                // Add task to the activity monitor to delete the contact.
-        
+               
                frameActMgr->AddTask(2, wxSContactName, ActiveAccount, wxSDataURL, wxSplitFilename, ContactsFileIndex[intContactSeekNum], wxT(""));
         
        }
@@ -2603,7 +2652,7 @@ void frmMain::ShowSSLCertificates( wxCommandEvent &event ){
 
 #else
     
-       std::map<int, SSLCertCollection>::iterator SSLColIter;
+       std::map<int, SSLCertCollectionString>::iterator SSLColIter;
         
        for (int i = 0; i < prefaccounts.GetCount(); i++){
         
@@ -2630,11 +2679,11 @@ void frmMain::ShowSSLCertificates( wxCommandEvent &event ){
             
                        SSLColIter = AccountSSLData.find(i);
             
-                       SSLCertCollection SSLCertInfo = SSLColIter->second;
+                       SSLCertCollectionString SSLCertInfo = SSLColIter->second;
             
                        frmSSLCertificate *frameSSLCert = new frmSSLCertificate ( this );
                        frameSSLCert->StartCertFrom(0);
-                       frameSSLCert->SetupCerts(SSLCertInfo);
+                       frameSSLCert->SetupCertsString(SSLCertInfo);
                        frameSSLCert->ShowModal();
             
                        delete frameSSLCert;
@@ -2703,6 +2752,31 @@ void frmMain::InvalidSSLCertificate( wxCommandEvent &event ){
         
 }
 
+void frmMain::InvalidSSLCertificateString( wxCommandEvent &event ){
+    
+       // Display the form for showing an invalid SSL certificate.
+    
+       frmInvalidSSLCertificate *frameISC = new frmInvalidSSLCertificate ( this );
+       SSLInvalidCertNotifObjString *SSLICNObj = (SSLInvalidCertNotifObjString*)event.GetClientData();
+       SSLCertCollectionString SSLCCData = SSLICNObj->CertCollection;
+       wxString AccountName = SSLICNObj->AccountName;
+       frameISC->LoadData(SSLCCData, AccountName);
+       frameISC->ShowModal();
+    
+       int FinalConflictResult = frameISC->GetResult();
+    
+       wxCommandEvent event2(ACTMGR_RESUMEPROC);
+       event2.SetClientData(SSLICNObj->QRNotifData);
+       event2.SetInt(FinalConflictResult);
+    
+       delete frameISC;
+       frameISC = NULL;
+    
+       frmActivityMgr *frameActMgr = static_cast<frmActivityMgr*>(ActMgrPtr);  
+       wxPostEvent(frameActMgr, event2);
+        
+}
+
 void frmMain::PauseAllTimers(){
     
        // Pause all the account timers.
@@ -2755,7 +2829,7 @@ void frmMain::UpdateSSLAccountStatus(int AccountID, int SSLStatus, PCCERT_CONTEX
 
 #else
 
-void frmMain::UpdateSSLAccountStatus(int AccountID, int SSLStatus, SSLCertCollection SSLCertInc){
+void frmMain::UpdateSSLAccountStatus(int AccountID, int SSLStatus, SSLCertCollectionString SSLCertInc){
     
        // Delete existing data.
     
@@ -2791,6 +2865,17 @@ void frmMain::SetupSSLStatus( int AccountID ){
                 
         }
         
+       // Check the account type is a supported account type.
+       
+       if (AccType != "CardDAV" && AccType != "carddav" &&
+               AccType != "Local" && AccType != "local"){
+       
+                SSLToolTip->SetTip(wxT("SSL is not enabled for this account"));
+                imgSSLStatus->SetBitmap(*imgNoSSL);
+               return;
+                       
+       }
+       
         // Check if the account has SSL enabled.
         
         bool SSLInUse = prefaccounts.GetAccountSSL(AccountID);
@@ -3050,7 +3135,7 @@ void frmMain::ShowContactMenu( wxMouseEvent& event ){
 
        bool EnableRefresh = FALSE;
 
-       if (!ActiveAccount.IsEmpty()){
+       if (!ActiveAccount.IsEmpty() && (ActiveAccountType == "CardDAV" || ActiveAccountType == "carddav")){
 
                EnableRefresh = TRUE;
        
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