Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Replaced CardDAV with CardDAV* in the activity manager, improving memory usage.
[xestiaab/.git] / source / frmActivityMgr.cpp
index 5638c70..69ae3c7 100644 (file)
@@ -1,3 +1,21 @@
+// frmActivityMgr.cpp - Activity Manager form.
+//
+// (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 "frmActivityMgr.h"
 #include <wx/mstream.h>
 #include <wx/file.h>
@@ -30,6 +48,7 @@ DEFINE_EVENT_TYPE(ACTMGR_STARTTIMER);
 DEFINE_EVENT_TYPE(ACTMGR_STOPTIMER);
 DEFINE_EVENT_TYPE(ACTMGR_STARTPROCESSTIMER);
 DEFINE_EVENT_TYPE(ACTMGR_STOPPROCESSTIMER);
+DEFINE_EVENT_TYPE(ACTMGR_UPDATESTATUSLABEL);
 
 BEGIN_EVENT_TABLE(frmActivityMgr, wxWindow)
   EVT_COMMAND(wxID_ANY, ACTMGR_RESUMEPROC, frmActivityMgr::ResumeProcessing)
@@ -38,6 +57,7 @@ BEGIN_EVENT_TABLE(frmActivityMgr, wxWindow)
   EVT_COMMAND(wxID_ANY, ACTMGR_STOPTIMER, frmActivityMgr::StopTimer)
   EVT_COMMAND(wxID_ANY, ACTMGR_STARTPROCESSTIMER, frmActivityMgr::StartProcessTimer)
   EVT_COMMAND(wxID_ANY, ACTMGR_STOPPROCESSTIMER, frmActivityMgr::StopProcessTimer)
+  EVT_COMMAND(wxID_ANY, ACTMGR_UPDATESTATUSLABEL, frmActivityMgr::UpdateStatusLabel)
 END_EVENT_TABLE()
 
 frmActivityMgr::frmActivityMgr( wxWindow* parent )
@@ -62,7 +82,7 @@ frmActivityMgrADT( parent )
        
        ActListProcTimer.SetupPointers(&ActivityList, &ActivityListIndex, &ActivityListTaskDetail, 
                                        &TasksActive, lstActivity, lblDetails, GauProgress, this, &AnimationTimer,
-                                       &ActProcessTimer, &ActivityListFinDate);
+                                       &ActProcessTimer, &ActivityListFinDate, &ActivityListConn);
        
        AnimationTimer.SetBitmap(bmpActivity);
        AnimationTimer.SetSleepBitmap(&SleepBitmap);
@@ -160,7 +180,7 @@ int frmActivityMgr::AddTask(int TaskType, wxString TaskDetail, wxString TaskAcco
 
        wxListItem coldata;
        long itemindex = -1;
-       CardDAV CardDAVConn;
+       CardDAV* CardDAVConn = new CardDAV;
 
        coldata.SetId(ActivityTaskID);
        coldata.SetData(ActivityTaskID);
@@ -213,9 +233,9 @@ int frmActivityMgr::AddTask(int TaskType, wxString TaskDetail, wxString TaskAcco
        
        }
        
-       CardDAVConn.SetupConnection(AccountAddress, AccountPort, AccountUsername, AccountPassword, AccountSSL, AccountPrefix, AccountDir);
-       CardDAVConn.SetupVariables(&ActivityList, ActivityTaskID);
-       CardDAVConn.SetupResultBools(&BlankBool, &BlankBool);           
+       CardDAVConn->SetupConnection(AccountAddress, AccountPort, AccountUsername, AccountPassword, AccountSSL, AccountPrefix, AccountDir);
+       CardDAVConn->SetupVariables(&ActivityList, ActivityTaskID);
+       CardDAVConn->SetupResultBools(&BlankBool, &BlankBool);          
 
        // TaskType:
        // 0 - Add a contact.
@@ -231,8 +251,8 @@ int frmActivityMgr::AddTask(int TaskType, wxString TaskDetail, wxString TaskAcco
                lstActivity->SetItem(itemindex, 1, AccountName);
                lstActivity->SetItem(itemindex, 2, _("Queued"));
                
-               CardDAVConn.SetUploadMode(TRUE);
-               CardDAVConn.SetupData(wxT("PUT"), TaskURL, TaskData);
+               CardDAVConn->SetUploadMode(TRUE);
+               CardDAVConn->SetupData(wxT("PUT"), TaskURL, TaskData);
                
                // Setup all of the task details.
 
@@ -259,9 +279,9 @@ int frmActivityMgr::AddTask(int TaskType, wxString TaskDetail, wxString TaskAcco
                lstActivity->SetItem(itemindex, 1, AccountName);
                lstActivity->SetItem(itemindex, 2, _("Queued"));
                
-               CardDAVConn.SetUploadMode(TRUE);
-               CardDAVConn.SetupData(wxT("PUT"), TaskURL, TaskData);
-               CardDAVConn.SetEditMode(TRUE);
+               CardDAVConn->SetUploadMode(TRUE);
+               CardDAVConn->SetupData(wxT("PUT"), TaskURL, TaskData);
+               CardDAVConn->SetEditMode(TRUE);
                
                ETagDB *ETagDBPtr = ETagTmrPtr->GetPointer(AccountDir);
                
@@ -286,7 +306,7 @@ int frmActivityMgr::AddTask(int TaskType, wxString TaskDetail, wxString TaskAcco
                lstActivity->SetItem(itemindex, 1, AccountName);
                lstActivity->SetItem(itemindex, 2, _("Queued"));
                
-               // TODO: Pass the ETagDB for the account to the connection.
+               ETagDB *ETagDBPtr = ETagTmrPtr->GetPointer(AccountDir);
                
                ActivityList.insert(std::make_pair(ActivityTaskID, 0));
                ActivityListType.insert(std::make_pair(ActivityTaskID, 2));
@@ -358,11 +378,11 @@ void frmActivityMgr::StopTask( wxCommandEvent& event ){
                return;
        }
        
-       std::map<int,CardDAV>::iterator CDAVter;
+       std::map<int,CardDAV*>::iterator CDAVter;
        
        CDAVter = ActivityListConn.find(intSelectedData);
        
-       CDAVter->second.Abort();
+       CDAVter->second->Abort();
        
        lstActivity->SetItem(longSelected, 2, _("Stopped"));
 
@@ -387,11 +407,11 @@ void frmActivityMgr::StopAllTasks( wxCommandEvent& event ){
                return;
        }
        
-       std::map<int,CardDAV>::iterator CDAVter;
+       std::map<int,CardDAV*>::iterator CDAVter;
        
        CDAVter = ActivityListConn.find(intSelectedData);
        
-       CDAVter->second.Abort();
+       CDAVter->second->Abort();
        
        lstActivity->SetItem(longSelected, 2, _("Stopped"));
        AnimationTimer.StopAnimation();
@@ -417,7 +437,7 @@ void frmActivityMgr::RetryTask( wxCommandEvent& event ){
                return;
        }
        
-       std::map<int,CardDAV>::iterator CDAVter;
+       std::map<int,CardDAV*>::iterator CDAVter;
        
        CDAVter = ActivityListConn.find(intSelectedData);
        
@@ -454,6 +474,12 @@ void frmActivityMgr::CloseWindow( wxCommandEvent& event )
        this->Hide();
 }
 
+void frmActivityMgr::CloseWindow( wxCloseEvent& event )
+{
+       WindowOpen = FALSE;
+       this->Hide();
+}
+
 void frmActivityMgr::ProcessTasksThread()
 {
        
@@ -472,7 +498,7 @@ void frmActivityMgr::ProcessTasksThread()
        std::map<int,wxString>::iterator StringTaskDetailIter;
        std::map<int,wxString>::iterator StringETagIter;
        std::map<int,wxString>::iterator StringETagOrigIter;
-       std::map<int,CardDAV>::iterator CardDAVIter;
+       std::map<int,CardDAV*>::iterator CardDAVIter;
        std::map<int,long>::iterator LongIter;
        bool TasksFoundProc = FALSE;
        wxString TaskDetail;
@@ -523,8 +549,8 @@ void frmActivityMgr::ProcessTasksThread()
                        iter->second = 1;
                        
                        if (TypeIter->second == 1){
-                               CardDAVIter->second.GetServerETagValueThread();
-                               ETagServer = CardDAVIter->second.ETagValueResult();
+                               CardDAVIter->second->GetServerETagValueThread();
+                               ETagServer = CardDAVIter->second->ETagValueResult();
                        }
                        
                        // Compare the ETags and work out if a conflict has occured.
@@ -562,8 +588,8 @@ void frmActivityMgr::ProcessTasksThread()
                                        
                                                // Load the client data from the filename given.
                                        
-                                               CardDAVIter->second.GetServerContactData();
-                                               ServerContactData = CardDAVIter->second.GetPageData();
+                                               CardDAVIter->second->GetServerContactData();
+                                               ServerContactData = CardDAVIter->second->GetPageData();
                                                
                                                // Process v3 version into v4 version.
                                                
@@ -624,7 +650,7 @@ void frmActivityMgr::ProcessTasksThread()
                                        
                                                        // Decided to use client version.
                                        
-                                                       CardDAVIter->second.ProcessData();
+                                                       CardDAVIter->second->ProcessData();
                                                
                                                        iter->second = 4;
                                        
@@ -636,7 +662,6 @@ void frmActivityMgr::ProcessTasksThread()
                                                
                                                        ConvertedV4Data.WriteFile(FullFilename);
                                                
-                                               
                                                        iter->second = 4;
                                        
                                                }
@@ -645,7 +670,7 @@ void frmActivityMgr::ProcessTasksThread()
                                
                                                // Update the data to the server.
                                        
-                                               CardDAVIter->second.ProcessData();
+                                               CardDAVIter->second->ProcessData();
                                
                                        }
                        
@@ -670,8 +695,8 @@ void frmActivityMgr::ProcessTasksThread()
                                        
                                                // Load the client data from the filename given.
                                        
-                                               CardDAVIter->second.GetServerContactData();
-                                               ServerContactData = CardDAVIter->second.GetPageData();
+                                               CardDAVIter->second->GetServerContactData();
+                                               ServerContactData = CardDAVIter->second->GetPageData();
                                                ClientData.LoadFile(FullFilename);
                                                
                                                // Process v3 version into v4 version.
@@ -723,7 +748,7 @@ void frmActivityMgr::ProcessTasksThread()
                                        
                                                        // Decided to use client version.
                                        
-                                                       CardDAVIter->second.ProcessData();
+                                                       CardDAVIter->second->ProcessData();
                                                        //ETagServer = CardDAVIter->second.GetServerETagValueThread();
                                                        //ETagDBPtr->UpdateETag(ContactFilename, ETagServer, ETagServer);
                                                
@@ -745,7 +770,7 @@ void frmActivityMgr::ProcessTasksThread()
                                
                                                // Update the data to the server.
                                        
-                                               CardDAVIter->second.ProcessData();
+                                               CardDAVIter->second->ProcessData();
                                
                                        }
                        
@@ -753,11 +778,12 @@ void frmActivityMgr::ProcessTasksThread()
                                
                                // Update the ETag DB.
                                
-                               CardDAVIter->second.GetServerETagValueThread();
-                               ETagServer = CardDAVIter->second.ETagValueResult();
+                               CardDAVIter->second->GetServerETagValueThread();
+                               ETagServer = CardDAVIter->second->ETagValueResult();
                                ETagDBPtr->UpdateETag(ContactFilename, ETagServer, ETagServer);
                        
                                iter->second = 4;
+                               CardDAVIter->second = NULL;
                        
                        } else if (TypeIter->second == 2) {
                        
@@ -768,13 +794,14 @@ void frmActivityMgr::ProcessTasksThread()
                                                                
                                ETagDB *ETagDBPtr = ETagTmrPtr->GetPointer(AccountDir);
                                
-                               CardDAVIter->second.SetUploadMode(FALSE);
-                               CardDAVIter->second.SetupData(wxT("DELETE"), ContactFilename, wxT(""));
+                               CardDAVIter->second->SetUploadMode(FALSE);
+                               CardDAVIter->second->SetupData(wxT("DELETE"), ContactFilename, wxT(""));
                                //CardDAVIter->second.SetServerFilename();
-                               CardDAVIter->second.ProcessData();
+                               CardDAVIter->second->ProcessData();
                                ETagDBPtr->RemoveETag(ContactFilename);
                                
                                iter->second = 4;
+                               CardDAVIter->second = NULL;
                        
                        } else if (TypeIter->second == 3) {
                        
@@ -869,16 +896,14 @@ void frmActivityMgr::ProcessTasksThread()
                                
                                        std::map<wxString,ETagData> ETagDBData = ETagDBPtr->GetETagData();
                                        
-                                       CardDAV CardDAVInstance = CardDAVIter->second;
-                                       
                                        bool ExitLoop = FALSE;
 
                                        std::map<wxString,FileSyncData> *SCListData = NULL;
                                        
                                        while (ExitLoop == FALSE){
                                        
-                                               //ServerContactList = CardDAVInstance.GetContactList(SyncTokenLoad.ToUTF8());
-                                               ServerContactList = CardDAVIter->second.GetContactList(SyncTokenLoad.ToUTF8());
+                                               ServerContactList = CardDAVIter->second->GetContactList(SyncTokenLoad.ToUTF8());
+                                               SSLCertCollection certcol = CardDAVIter->second->GetCertificateData();
                                
                                                // Create a pointer for the std::map<wxString,FileSyncData>.
                                
@@ -886,7 +911,7 @@ void frmActivityMgr::ProcessTasksThread()
                                
                                                // Check if any errors have occured whilst getting the data.
                                
-                                               int ErrorCode = CardDAVIter->second.GetResultCode();
+                                               int ErrorCode = CardDAVIter->second->GetResultCode();
                                
                                                if (ErrorCode != 0){
                                        
@@ -911,7 +936,7 @@ void frmActivityMgr::ProcessTasksThread()
                                                                qrn.QResponse = &SSLResult;
                                                                qrn.PausePtr = PauseMode;
                                                                
-                                                               SSLICNProcData.CertCollection = CardDAVIter->second.GetCertificateData();
+                                                               SSLICNProcData.CertCollection = certcol;
                                                                SSLICNProcData.QRNotifData = &qrn;
                                                                SSLICNProcData.AccountName = AccountNameFriendly;
                                                        
@@ -938,14 +963,14 @@ void frmActivityMgr::ProcessTasksThread()
                                                                        // Accept the certificate. Write the certificate into the account
                                                                        // directory (as server.crt) - will overwrite old certificate.
 
-                                                                       frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 0, CardDAVIter->second.GetCertificateData());
-                                                                       WriteServerCertificate(AccountDir, CardDAVIter->second.GetCertificateData());
+                                                                       frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 0, CardDAVIter->second->GetCertificateData());
+                                                                       WriteServerCertificate(AccountDir, CardDAVIter->second->GetCertificateData());
                                                                
                                                                } else if (SSLResult == 2){
                                                                
                                                                        // Reject the certificate, abort the task and mark as failed.
 
-                                                                       frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 1, CardDAVIter->second.GetCertificateData());
+                                                                       frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 1, CardDAVIter->second->GetCertificateData());
                                                                        iter->second = 2;
                                                                        break;
                                                                
@@ -974,7 +999,7 @@ void frmActivityMgr::ProcessTasksThread()
                                                break;
                                        }
                                
-                                       frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 0, CardDAVIter->second.GetCertificateData());
+                                       frmMainPtrGet->UpdateSSLAccountStatus(AccountID, 0, CardDAVIter->second->GetCertificateData());
                                
                                        // Look in directory and see which vCards to add and delete
                                
@@ -1087,9 +1112,9 @@ void frmActivityMgr::ProcessTasksThread()
                                                        
                                                                // Get the server contact data for comparison.
                                                        
-                                                               CardDAVIter->second.SetServerFilename(srviter->first);
-                                                               CardDAVIter->second.GetServerContactData();
-                                                               ServerContactData = CardDAVIter->second.GetPageData();
+                                                               CardDAVIter->second->SetServerFilename(srviter->first);
+                                                               CardDAVIter->second->GetServerContactData();
+                                                               ServerContactData = CardDAVIter->second->GetPageData();
                                                        
                                                                FullFilename = CreateFilenamePath(AccountDirFinal, srviter->first);
                                                        
@@ -1223,9 +1248,9 @@ void frmActivityMgr::ProcessTasksThread()
                                        
                                                        vCard34Conv vCard34Obj;
                                                
-                                                       CardDAVIter->second.SetServerFilename(additer->first);
-                                                       CardDAVIter->second.GetServerContactData();
-                                                       vCardInputData = CardDAVIter->second.GetPageData();
+                                                       CardDAVIter->second->SetServerFilename(additer->first);
+                                                       CardDAVIter->second->GetServerContactData();
+                                                       vCardInputData = CardDAVIter->second->GetPageData();
                                                
                                                        vCard34Obj.ConvertToV4(&vCardInputData, &ConvertedV4Data);
                                                
@@ -1245,8 +1270,8 @@ void frmActivityMgr::ProcessTasksThread()
                                                        // Get the server ETag.
                                                
                                                        wxString ServerETag;
-                                                       CardDAVIter->second.GetServerETagValueThread();
-                                                       ServerETag = CardDAVIter->second.ETagValueResult();
+                                                       CardDAVIter->second->GetServerETagValueThread();
+                                                       ServerETag = CardDAVIter->second->ETagValueResult();
                                                
                                                        // Add to the ETag Database.
                                                
@@ -1271,8 +1296,8 @@ void frmActivityMgr::ProcessTasksThread()
                                                        // Update the ETagDB.
 
                                                        wxString ServerETag;
-                                                       CardDAVIter->second.GetServerETagValueThread();
-                                                       ServerETag = CardDAVIter->second.ETagValueResult();
+                                                       CardDAVIter->second->GetServerETagValueThread();
+                                                       ServerETag = CardDAVIter->second->ETagValueResult();
                                                
                                                        // Add to the ETag Database.
                                                
@@ -1326,14 +1351,19 @@ void frmActivityMgr::ProcessTasksThread()
                                                ETagDB *ETagDBPtr = ETagTmrPtr->GetPointer(AccountDir);
                                                ETag = ETagDBPtr->GetETag(vCardAdd[vi]);
                                                ETagOriginal = ETagDBPtr->GetETagOriginal(vCardAdd[vi]);
+                                               
                                                ContactFilename = vCardAdd[vi];
                                                FullFilename = CreateFilenamePath(AccountDirFinal, vCardAdd[vi]);
 
                                                ContactFilename.Trim();
                        
-                                               if (ETag == ETagOriginal){
+                                               if (ETag == ETagOriginal && ETagDBPtr->ETagExists(vCardAdd[vi])){
                        
                                                        // Compare the ETag with the Server ETag.
+                                               
+                                                       CardDAVIter->second->SetServerFilename(vCardAdd[vi]);
+                                                       CardDAVIter->second->GetServerETagValueThread();
+                                                       ETagServer = CardDAVIter->second->ETagValueResult();
                                
                                                        if (ETagOriginal != ETagServer){
                                
@@ -1351,8 +1381,8 @@ void frmActivityMgr::ProcessTasksThread()
                                        
                                                                // Load the client data from the filename given.
                                        
-                                                               CardDAVIter->second.GetServerContactData();
-                                                               ServerContactData = CardDAVIter->second.GetPageData();
+                                                               CardDAVIter->second->GetServerContactData();
+                                                               ServerContactData = CardDAVIter->second->GetPageData();
                                                
                                                                // Process v3 version into v4 version.
                                                
@@ -1413,7 +1443,7 @@ void frmActivityMgr::ProcessTasksThread()
                                        
                                                                        // Decided to use client version.
                                        
-                                                                       CardDAVIter->second.ProcessData();
+                                                                       CardDAVIter->second->ProcessData();
                                                
                                                                        iter->second = 4;
                                        
@@ -1462,15 +1492,15 @@ void frmActivityMgr::ProcessTasksThread()
 
                                                                // Upload the data to the server.
                                        
-                                                               CardDAVIter->second.SetUploadMode(TRUE);
-                                                               CardDAVIter->second.SetupData(wxT("PUT"), vCardAdd[vi], TaskData);
-                                                               CardDAVIter->second.ProcessData();
+                                                               CardDAVIter->second->SetUploadMode(TRUE);
+                                                               CardDAVIter->second->SetupData(wxT("PUT"), vCardAdd[vi], TaskData);
+                                                               CardDAVIter->second->ProcessData();
                                                        
                                                                // Get the Server ETag and put it in the ETag database.
                                                        
-                                                               CardDAVIter->second.SetServerFilename(vCardAdd[vi]);
-                                                               CardDAVIter->second.GetServerETagValueThread();
-                                                               ETagServer = CardDAVIter->second.ETagValueResult();
+                                                               CardDAVIter->second->SetServerFilename(vCardAdd[vi]);
+                                                               CardDAVIter->second->GetServerETagValueThread();
+                                                               ETagServer = CardDAVIter->second->ETagValueResult();
                                
                                                                ETagDBPtr->AddETag(vCardAdd[vi], ETagServer, ETagServer);
                                
@@ -1497,8 +1527,8 @@ void frmActivityMgr::ProcessTasksThread()
                                        
                                                                // Load the client data from the filename given.
                                        
-                                                               CardDAVIter->second.GetServerContactData();
-                                                               ServerContactData = CardDAVIter->second.GetPageData();
+                                                               CardDAVIter->second->GetServerContactData();
+                                                               ServerContactData = CardDAVIter->second->GetPageData();
                                                                ClientData.LoadFile(FullFilename);
                                                
                                                                // Process v3 version into v4 version.
@@ -1550,7 +1580,7 @@ void frmActivityMgr::ProcessTasksThread()
                                        
                                                                        // Decided to use client version.
                                                                
-                                                                       CardDAVIter->second.ProcessData();
+                                                                       CardDAVIter->second->ProcessData();
                                                                        //ETagServer = CardDAVIter->second.GetServerETagValueThread();
                                                                        //ETagDBPtr->UpdateETag(ContactFilename, ETagServer, ETagServer);
                                                
@@ -1601,15 +1631,15 @@ void frmActivityMgr::ProcessTasksThread()
 
                                                                // Upload the data to the server.
                                        
-                                                               CardDAVIter->second.SetUploadMode(TRUE);
-                                                               CardDAVIter->second.SetupData(wxT("PUT"), vCardAdd[vi], TaskData);
-                                                               CardDAVIter->second.ProcessData();
+                                                               CardDAVIter->second->SetUploadMode(TRUE);
+                                                               CardDAVIter->second->SetupData(wxT("PUT"), vCardAdd[vi], TaskData);
+                                                               CardDAVIter->second->ProcessData();
                                                        
                                                                // Get the Server ETag and put it in the ETag database.
                                                        
-                                                               CardDAVIter->second.SetServerFilename(vCardAdd[vi]);
-                                                               CardDAVIter->second.GetServerETagValueThread();
-                                                               ETagServer = CardDAVIter->second.ETagValueResult();
+                                                               CardDAVIter->second->SetServerFilename(vCardAdd[vi]);
+                                                               CardDAVIter->second->GetServerETagValueThread();
+                                                               ETagServer = CardDAVIter->second->ETagValueResult();
                                
                                
                                                                ETagDBPtr->AddETag(vCardAdd[vi], ETagServer, ETagServer);
@@ -1646,9 +1676,9 @@ void frmActivityMgr::ProcessTasksThread()
                                        
                                                if (deliter->second == wxT("DELETED")){
 
-                                                       CardDAVIter->second.SetUploadMode(FALSE);
-                                                       CardDAVIter->second.SetupData(wxT("DELETE"), deliter->first, wxT(""));
-                                                       CardDAVIter->second.ProcessData();
+                                                       CardDAVIter->second->SetUploadMode(FALSE);
+                                                       CardDAVIter->second->SetupData(wxT("DELETE"), deliter->first, wxT(""));
+                                                       CardDAVIter->second->ProcessData();
                                        
                                                        // Delete the ETag as the file has now been deleted.
                                        
@@ -1690,6 +1720,14 @@ void frmActivityMgr::ProcessTasksThread()
                                }
                                
                                // Mark as completed.
+                       
+                               wxString AccountNameFinal;
+                               AccountNameFinal = PrefData.accounts.GetAccountDirectory(AccountID);
+                               AccountNameFinal.Append(wxT(".carddav"));
+                               
+                               wxCommandEvent reloadevent(RELOADCONTACTLIST);
+                               reloadevent.SetString(AccountNameFinal);
+                               wxPostEvent(this->GetParent(), reloadevent);
                                
                                iter->second = 4;
                                continue;
@@ -1698,7 +1736,9 @@ void frmActivityMgr::ProcessTasksThread()
                        
                                // Update the data to the server.
                                        
-                               CardDAVIter->second.ProcessData();
+                               CardDAVIter->second->ProcessData();
+                               iter->second = 4;
+                               continue;
                        
                        }
 
@@ -1720,8 +1760,8 @@ void frmActivityMgr::ProcessTasksThread()
                                AccountDir = StringAccountIter->second;
                                ETagDB *ETagDBPtr = ETagTmrPtr->GetPointer(AccountDir);
                                
-                               CardDAVIter->second.GetServerETagValueThread();
-                               ETagServer = CardDAVIter->second.ETagValueResult();
+                               CardDAVIter->second->GetServerETagValueThread();
+                               ETagServer = CardDAVIter->second->ETagValueResult();
                                ETagDBPtr->UpdateETag(ContactFilename, ETagServer, ETagServer);
                        
                        }
@@ -1732,8 +1772,8 @@ void frmActivityMgr::ProcessTasksThread()
                                AccountDir = StringAccountIter->second;
                                ETagDB *ETagDBPtr = ETagTmrPtr->GetPointer(AccountDir);                 
 
-                               CardDAVIter->second.GetServerETagValueThread();
-                               ETagServer = CardDAVIter->second.ETagValueResult();
+                               CardDAVIter->second->GetServerETagValueThread();
+                               ETagServer = CardDAVIter->second->ETagValueResult();
                                ETagDBPtr->UpdateETag(ContactFilename, ETagServer, ETagServer);
                        
                        }
@@ -1876,4 +1916,23 @@ void frmActivityMgr::StopProcessTimer(wxCommandEvent& event){
 
 }
 
+void frmActivityMgr::UpdateStatusLabel(wxCommandEvent& event){
+
+       ActivityMgrLabelUpdate *actmgrudata = (ActivityMgrLabelUpdate*)event.GetClientData();
+       
+       if (actmgrudata != NULL){
+       
+               lstActivity->SetItem(actmgrudata->ItemIndex, 2, actmgrudata->ItemLabel);
+       
+               /*if (!actmgrudata->ItemDes.IsEmpty()){
+               lstActivity->SetItem(actmgrudata->ItemIndex, 0, actmgrudata->ItemDes);
+               }*/
+       
+               delete actmgrudata;
+               actmgrudata = NULL;
+       
+       }
+
+}
+
 #endif
\ 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