X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fcommon%2Ftimers.cpp;h=bf334bf8a0453ebc89fb566e5df62329bbcb57a2;hb=fe50d12a5d3750dd8993d5358fb53c76f1d0ac2a;hp=02bc92055961988c8e542a934117f7411a7a0dde;hpb=45729fca56479bd9158486e0cda0c4a94b4dd1dc;p=xestiaab%2F.git
diff --git a/source/common/timers.cpp b/source/common/timers.cpp
index 02bc920..bf334bf 100644
--- a/source/common/timers.cpp
+++ b/source/common/timers.cpp
@@ -1,4 +1,22 @@
-#include "../frmActivityMgr.h"
+// timers.cpp - Timers 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
+
+#include "../actmgr/frmActivityMgr.h"
#include "../frmContact.h"
#include "../frmMain.h"
#include
@@ -13,584 +31,622 @@
#include "../common/dirs.h"
void wxActTimer::Notify(){
-
- frmMain *frmMainPtrProc = static_cast(frmMainPtr);
-
- wxCommandEvent shuffleevent(ACTMGR_SHUFFLE);
-
- if (intActivityProgress == 0){
-
- wxMemoryInputStream istream(misc_activity1_png, sizeof(misc_activity1_png));
- wxImage misc_activity1_pngi(istream, wxBITMAP_TYPE_PNG);
- wxBitmap activityiconbmp(misc_activity1_pngi, -1);
- bmpActivity->SetBitmap(activityiconbmp);
-
- intActivityProgress++;
-
- } else if (intActivityProgress == 1){
-
- wxMemoryInputStream istream(misc_activity2_png, sizeof(misc_activity2_png));
- wxImage misc_activity2_pngi(istream, wxBITMAP_TYPE_PNG);
- wxBitmap activityiconbmp(misc_activity2_pngi, -1);
- bmpActivity->SetBitmap(activityiconbmp);
-
- intActivityProgress++;
-
- } else if (intActivityProgress == 2){
-
- wxMemoryInputStream istream(misc_activity3_png, sizeof(misc_activity3_png));
- wxImage misc_activity3_pngi(istream, wxBITMAP_TYPE_PNG);
- wxBitmap activityiconbmp(misc_activity3_pngi, -1);
- bmpActivity->SetBitmap(activityiconbmp);
-
- intActivityProgress++;
-
- } else if (intActivityProgress == 3){
-
- wxMemoryInputStream istream(misc_activity4_png, sizeof(misc_activity4_png));
- wxImage misc_activity4_pngi(istream, wxBITMAP_TYPE_PNG);
- wxBitmap activityiconbmp(misc_activity4_pngi, -1);
- bmpActivity->SetBitmap(activityiconbmp);
-
- intActivityProgress++;
-
- } else if (intActivityProgress == 4){
-
- wxMemoryInputStream istream(misc_activity5_png, sizeof(misc_activity5_png));
- wxImage misc_activity5_pngi(istream, wxBITMAP_TYPE_PNG);
- wxBitmap activityiconbmp(misc_activity5_pngi, -1);
- bmpActivity->SetBitmap(activityiconbmp);
-
- intActivityProgress++;
-
- } else if (intActivityProgress == 5){
-
- wxMemoryInputStream istream(misc_activity6_png, sizeof(misc_activity6_png));
- wxImage misc_activity6_pngi(istream, wxBITMAP_TYPE_PNG);
- wxBitmap activityiconbmp(misc_activity6_pngi, -1);
- bmpActivity->SetBitmap(activityiconbmp);
-
- intActivityProgress++;
-
- } else if (intActivityProgress == 6){
-
- wxMemoryInputStream istream(misc_activity7_png, sizeof(misc_activity7_png));
- wxImage misc_activity7_pngi(istream, wxBITMAP_TYPE_PNG);
- wxBitmap activityiconbmp(misc_activity7_pngi, -1);
- bmpActivity->SetBitmap(activityiconbmp);
-
- intActivityProgress++;
-
- } else if (intActivityProgress == 7){
-
- wxMemoryInputStream istream(misc_activity8_png, sizeof(misc_activity8_png));
- wxImage misc_activity8_pngi(istream, wxBITMAP_TYPE_PNG);
- wxBitmap activityiconbmp(misc_activity8_pngi, -1);
- bmpActivity->SetBitmap(activityiconbmp);
-
- intActivityProgress++;
-
- } else if (intActivityProgress == 8){
-
- wxMemoryInputStream istream(misc_activity9_png, sizeof(misc_activity9_png));
- wxImage misc_activity9_pngi(istream, wxBITMAP_TYPE_PNG);
- wxBitmap activityiconbmp(misc_activity9_pngi, -1);
- bmpActivity->SetBitmap(activityiconbmp);
-
- intActivityProgress++;
-
- } else if (intActivityProgress == 9){
-
- wxMemoryInputStream istream(misc_activity10_png, sizeof(misc_activity10_png));
- wxImage misc_activity10_pngi(istream, wxBITMAP_TYPE_PNG);
- wxBitmap activityiconbmp(misc_activity10_pngi, -1);
- bmpActivity->SetBitmap(activityiconbmp);
-
- intActivityProgress++;
-
- } else if (intActivityProgress == 10){
-
- wxMemoryInputStream istream(misc_activity11_png, sizeof(misc_activity11_png));
- wxImage misc_activity11_pngi(istream, wxBITMAP_TYPE_PNG);
- wxBitmap activityiconbmp(misc_activity11_pngi, -1);
- bmpActivity->SetBitmap(activityiconbmp);
-
- intActivityProgress++;
-
- } else if (intActivityProgress == 11){
-
- wxMemoryInputStream istream(misc_activity12_png, sizeof(misc_activity12_png));
- wxImage misc_activity12_pngi(istream, wxBITMAP_TYPE_PNG);
- wxBitmap activityiconbmp(misc_activity12_pngi, -1);
- bmpActivity->SetBitmap(activityiconbmp);
-
- intActivityProgress = 0;
-
- }
-
- wxPostEvent(frmMainPtrProc, shuffleevent);
-
+
+ frmMain *frmMainPtrProc = static_cast(frmMainPtr);
+
+ wxCommandEvent shuffleevent(ACTMGR_SHUFFLE);
+
+ if (intActivityProgress == 0){
+
+ wxMemoryInputStream istream(misc_activity1_png, sizeof(misc_activity1_png));
+ wxImage misc_activity1_pngi(istream, wxBITMAP_TYPE_PNG);
+ wxBitmap activityiconbmp(misc_activity1_pngi, -1);
+ bmpActivity->SetBitmap(activityiconbmp);
+
+ intActivityProgress++;
+
+ } else if (intActivityProgress == 1){
+
+ wxMemoryInputStream istream(misc_activity2_png, sizeof(misc_activity2_png));
+ wxImage misc_activity2_pngi(istream, wxBITMAP_TYPE_PNG);
+ wxBitmap activityiconbmp(misc_activity2_pngi, -1);
+ bmpActivity->SetBitmap(activityiconbmp);
+
+ intActivityProgress++;
+
+ } else if (intActivityProgress == 2){
+
+ wxMemoryInputStream istream(misc_activity3_png, sizeof(misc_activity3_png));
+ wxImage misc_activity3_pngi(istream, wxBITMAP_TYPE_PNG);
+ wxBitmap activityiconbmp(misc_activity3_pngi, -1);
+ bmpActivity->SetBitmap(activityiconbmp);
+
+ intActivityProgress++;
+
+ } else if (intActivityProgress == 3){
+
+ wxMemoryInputStream istream(misc_activity4_png, sizeof(misc_activity4_png));
+ wxImage misc_activity4_pngi(istream, wxBITMAP_TYPE_PNG);
+ wxBitmap activityiconbmp(misc_activity4_pngi, -1);
+ bmpActivity->SetBitmap(activityiconbmp);
+
+ intActivityProgress++;
+
+ } else if (intActivityProgress == 4){
+
+ wxMemoryInputStream istream(misc_activity5_png, sizeof(misc_activity5_png));
+ wxImage misc_activity5_pngi(istream, wxBITMAP_TYPE_PNG);
+ wxBitmap activityiconbmp(misc_activity5_pngi, -1);
+ bmpActivity->SetBitmap(activityiconbmp);
+
+ intActivityProgress++;
+
+ } else if (intActivityProgress == 5){
+
+ wxMemoryInputStream istream(misc_activity6_png, sizeof(misc_activity6_png));
+ wxImage misc_activity6_pngi(istream, wxBITMAP_TYPE_PNG);
+ wxBitmap activityiconbmp(misc_activity6_pngi, -1);
+ bmpActivity->SetBitmap(activityiconbmp);
+
+ intActivityProgress++;
+
+ } else if (intActivityProgress == 6){
+
+ wxMemoryInputStream istream(misc_activity7_png, sizeof(misc_activity7_png));
+ wxImage misc_activity7_pngi(istream, wxBITMAP_TYPE_PNG);
+ wxBitmap activityiconbmp(misc_activity7_pngi, -1);
+ bmpActivity->SetBitmap(activityiconbmp);
+
+ intActivityProgress++;
+
+ } else if (intActivityProgress == 7){
+
+ wxMemoryInputStream istream(misc_activity8_png, sizeof(misc_activity8_png));
+ wxImage misc_activity8_pngi(istream, wxBITMAP_TYPE_PNG);
+ wxBitmap activityiconbmp(misc_activity8_pngi, -1);
+ bmpActivity->SetBitmap(activityiconbmp);
+
+ intActivityProgress++;
+
+ } else if (intActivityProgress == 8){
+
+ wxMemoryInputStream istream(misc_activity9_png, sizeof(misc_activity9_png));
+ wxImage misc_activity9_pngi(istream, wxBITMAP_TYPE_PNG);
+ wxBitmap activityiconbmp(misc_activity9_pngi, -1);
+ bmpActivity->SetBitmap(activityiconbmp);
+
+ intActivityProgress++;
+
+ } else if (intActivityProgress == 9){
+
+ wxMemoryInputStream istream(misc_activity10_png, sizeof(misc_activity10_png));
+ wxImage misc_activity10_pngi(istream, wxBITMAP_TYPE_PNG);
+ wxBitmap activityiconbmp(misc_activity10_pngi, -1);
+ bmpActivity->SetBitmap(activityiconbmp);
+
+ intActivityProgress++;
+
+ } else if (intActivityProgress == 10){
+
+ wxMemoryInputStream istream(misc_activity11_png, sizeof(misc_activity11_png));
+ wxImage misc_activity11_pngi(istream, wxBITMAP_TYPE_PNG);
+ wxBitmap activityiconbmp(misc_activity11_pngi, -1);
+ bmpActivity->SetBitmap(activityiconbmp);
+
+ intActivityProgress++;
+
+ } else if (intActivityProgress == 11){
+
+ wxMemoryInputStream istream(misc_activity12_png, sizeof(misc_activity12_png));
+ wxImage misc_activity12_pngi(istream, wxBITMAP_TYPE_PNG);
+ wxBitmap activityiconbmp(misc_activity12_pngi, -1);
+ bmpActivity->SetBitmap(activityiconbmp);
+
+ intActivityProgress = 0;
+
+ }
+
+ wxPostEvent(frmMainPtrProc, shuffleevent);
+
}
void wxActTimer::SetBitmap(wxStaticBitmap *bitmap)
{
-
- bmpActivity = bitmap;
-
+
+ bmpActivity = bitmap;
+
}
void wxActTimer::SetSleepBitmap(wxBitmap *SleepBitmap)
{
-
- SleepBitmapPtr = SleepBitmap;
-
+
+ SleepBitmapPtr = SleepBitmap;
+
}
void wxActTimer::StopAnimation()
{
-
- // Stop the icon animation.
-
- frmMain *frmMainPtrProc = static_cast(frmMainPtr);
-
- wxCommandEvent actstop(ACTMGR_STOP);
- wxPostEvent(frmMainPtrProc, actstop);
- //frmMainPtrProc->ActivityIconStop();
-
- this->Stop();
- bmpActivity->SetBitmap(*SleepBitmapPtr);
+
+ // Stop the icon animation.
+
+ frmMain *frmMainPtrProc = static_cast(frmMainPtr);
+
+ wxCommandEvent actstop(ACTMGR_STOP);
+ wxPostEvent(frmMainPtrProc, actstop);
+ //frmMainPtrProc->ActivityIconStop();
+
+ this->Stop();
+ bmpActivity->SetBitmap(*SleepBitmapPtr);
}
void wxActTimer::StartAnimation()
{
-
- frmMain *frmMainPtrProc = static_cast(frmMainPtr);
- wxCommandEvent actstart(ACTMGR_START);
- wxPostEvent(frmMainPtrProc, actstart);
- //frmMainPtrProc->ActivityIconStart();
-
- this->ResetBitmap();
- this->Start(50, FALSE);
+
+ frmMain *frmMainPtrProc = static_cast(frmMainPtr);
+ wxCommandEvent actstart(ACTMGR_START);
+ wxPostEvent(frmMainPtrProc, actstart);
+ //frmMainPtrProc->ActivityIconStart();
+
+ this->ResetBitmap();
+ this->Start(50, FALSE);
}
void wxActTimer::ResetBitmap()
{
-
- intActivityProgress = 0;
-
+
+ intActivityProgress = 0;
+
}
void wxActTimer::SetupPointer(void *frmMainPtrIn)
{
-
- frmMainPtr = frmMainPtrIn;
-
+
+ frmMainPtr = frmMainPtrIn;
+
}
void wxActProcessTimer::Notify()
{
-
- // Pause the timer whilst processing to avoid problems.
-
- this->Stop();
-
- // Process Tasks.
-
- frmActivityMgr *ActMgrPtrProc = static_cast(ActMgrPtr);
- ActMgrPtrProc->ProcessTasks();
-
+
+ // Pause the timer whilst processing to avoid problems.
+
+ this->Stop();
+
+ // Process Tasks.
+
+ frmActivityMgr *ActMgrPtrProc = static_cast(ActMgrPtr);
+ ActMgrPtrProc->ProcessTasks();
+
}
void wxActProcessTimer::SetupPointers(void *ActMgr){
-
- ActMgrPtr = ActMgr;
-
+
+ ActMgrPtr = ActMgr;
+
}
void wxActListProcTimer::Notify(){
-
- // Setup Label and get task data (update SetupPointers subroutine).
-
- this->Stop();
-
- for (std::map::iterator iter = ActListPtr->begin();
- iter != ActListPtr->end(); ++iter){
-
- // Check for any queued tasks and start one.
-
- if (iter->second > 4){
- continue;
- }
-
-
- // 0 = Queued.
- // 1 = Processing.
- // 2 = Failed.
- // 3 = Stopped.
- // 4 = Completed.
- // 5 = Failed (UI Updated).
- // 6 = Stopped (UI Updated).
- // 7 = (Reserved) (UI Updated).
- // 8 = Completed. (UI Updated).
-
- std::map::iterator LongIter = ActListUIPtr->find(iter->first);
- std::map::iterator DetailIter = ActListDetailPtr->find(iter->first);
-
- if (iter->second == 1){
-
- lstActivityPtr->SetItem(LongIter->second, 2, _("Processing..."));
- if (ActListDetailPtr->find(iter->first) != ActListDetailPtr->end()){
- lblDetailsPtr->SetLabel(_("Adding Contact '") + DetailIter->second + _("'..."));
- }
- //CardDAVIter->second.
-
- } else if (iter->second == 2){
-
- lstActivityPtr->SetItem(LongIter->second, 2, _("Failed"));
- iter->second = 5;
-
- } else if (iter->second == 3){
-
- lstActivityPtr->SetItem(LongIter->second, 2, _("Stopped"));
- iter->second = 6;
-
- } else if (iter->second == 4){
-
- lstActivityPtr->SetItem(LongIter->second, 2, _("Completed"));
- iter->second = 8;
-
- }
-
- // Insert a finish date.
-
- wxDateTime adt;
- adt = adt.Now();
-
- ActListFinDTPtr->insert(std::make_pair(iter->first, adt));
-
- }
-
- if (ClearupProcessed == TRUE){
-
- // Clear up processed items.
-
- // Delete the processed items.
-
- ClearupProcessed = FALSE;
-
- }
-
- if (*TasksActivePtr == FALSE){
-
- ActTimerPtr->StopAnimation();
- lblDetailsPtr->SetLabel(_("No activity."));
-
- } else {
-
- this->Start();
-
- }
-
+
+ // Setup Label and get task data (update SetupPointers subroutine).
+
+ this->Stop();
+
+ for (std::map::iterator iter = ActListPtr->begin();
+ iter != ActListPtr->end(); ++iter){
+
+ // Check for any queued tasks and start one.
+
+ // 0 = Queued.
+ // 1 = Processing.
+ // 2 = Failed.
+ // 3 = Stopped.
+ // 4 = Completed.
+ // 5 = Failed (UI Updated).
+ // 6 = Stopped (UI Updated).
+ // 7 = (Reserved) (UI Updated).
+ // 8 = Completed. (UI Updated).
+
+ std::map::iterator LongIter = ActListUIPtr->find(iter->first);
+
+ if (iter->second > 4){
+
+ continue;
+ }
+
+ std::map::iterator DetailIter = ActListDetailPtr->find(iter->first);
+
+ wxCommandEvent uevent(ACTMGR_UPDATESTATUSLABEL);
+ ActivityMgrLabelUpdate *ueventdata = new ActivityMgrLabelUpdate;
+ uevent.SetClientData(ueventdata);
+
+ if (iter->second == 1){
+
+ ueventdata->ItemIndex = LongIter->second;
+ ueventdata->ItemLabel = _("Processing...");
+ //ueventdata->ItemDes = _("Adding Contact '") + DetailIter->second + _("'...");
+
+ wxPostEvent(static_cast(ActMgrPtr), uevent);
+
+ /*lstActivityPtr->SetItem(LongIter->second, 2, _("Processing..."));
+ if (ActListDetailPtr->find(iter->first) != ActListDetailPtr->end()){
+ lblDetailsPtr->SetLabel(_("Adding Contact '") + DetailIter->second + _("'..."));
+ }*/
+
+ } else if (iter->second == 2){
+
+ ueventdata->ItemIndex = LongIter->second;
+ ueventdata->ItemLabel = _("Failed");
+
+ wxPostEvent(static_cast(ActMgrPtr), uevent);
+ iter->second = 5;
+
+ //lstActivityPtr->SetItem(LongIter->second, 2, _("Failed"));
+
+ } else if (iter->second == 3){
+
+ ueventdata->ItemIndex = LongIter->second;
+ ueventdata->ItemLabel = _("Stopped");
+
+ wxPostEvent(static_cast(ActMgrPtr), uevent);
+ iter->second = 5;
+
+ //lstActivityPtr->SetItem(LongIter->second, 2, _("Stopped"));
+ //iter->second = 6;
+
+ } else if (iter->second == 4){
+
+ ueventdata->ItemIndex = LongIter->second;
+ ueventdata->ItemLabel = _("Completed");
+
+ wxPostEvent(static_cast(ActMgrPtr), uevent);
+ iter->second = 8;
+
+ //lstActivityPtr->SetItem(LongIter->second, 2, _("Completed"));
+ //iter->second = 8;
+
+ }
+
+ // Insert a finish date.
+
+ wxDateTime adt;
+ adt = adt.Now();
+
+ ActListFinDTPtr->insert(std::make_pair(iter->first, adt));
+
+ // Delete the connection object.
+
+ std::map::iterator ConnObject = ActListConnPtr->find(iter->first);
+ delete ConnObject->second;
+ ConnObject->second = NULL;
+
+ }
+
+ if (ClearupProcessed == TRUE){
+
+ // Clear up processed items.
+
+ // Delete the processed items.
+
+ ClearupProcessed = FALSE;
+
+ }
+
+ if (*TasksActivePtr == FALSE){
+
+ ActTimerPtr->StopAnimation();
+ lblDetailsPtr->SetLabel(_("No activity."));
+
+ } else {
+
+ this->Start();
+
+ }
+
}
-void wxActListProcTimer::SetupPointers(std::map *ActList, std::map *ActListUI,
- std::map *ActListDetail, bool *TasksActive,
- wxListCtrl *lstActivity, wxStaticText *lblDetails, wxGauge *GauProgress,
- void *ActMgr, wxActTimer *ActTimer, wxActProcessTimer *ActProcessTimer,
- std::map *ActListFinDT){
-
- ActListPtr = ActList;
- ActListUIPtr = ActListUI;
- ActListDetailPtr = ActListDetail;
- TasksActivePtr = TasksActive;
- lstActivityPtr = lstActivity;
- lblDetailsPtr = lblDetails;
- GauProgressPtr = GauProgress;
- ActMgrPtr = ActMgr;
- ActTimerPtr = ActTimer;
- ActProcessTimerPtr = ActProcessTimer;
- ActListFinDTPtr = ActListFinDT;
-
+void wxActListProcTimer::SetupPointers(std::map *ActList, std::map *ActListUI,
+ std::map *ActListDetail, bool *TasksActive,
+ wxListCtrl *lstActivity, wxStaticText *lblDetails, wxGauge *GauProgress,
+ void *ActMgr, wxActTimer *ActTimer, wxActProcessTimer *ActProcessTimer,
+ std::map *ActListFinDT, std::map *ActListConn){
+
+ ActListPtr = ActList;
+ ActListUIPtr = ActListUI;
+ ActListDetailPtr = ActListDetail;
+ TasksActivePtr = TasksActive;
+ lstActivityPtr = lstActivity;
+ lblDetailsPtr = lblDetails;
+ GauProgressPtr = GauProgress;
+ ActMgrPtr = ActMgr;
+ ActTimerPtr = ActTimer;
+ ActProcessTimerPtr = ActProcessTimer;
+ ActListFinDTPtr = ActListFinDT;
+ ActListConnPtr = ActListConn;
+
}
void wxActListProcTimer::EnableClearup(){
-
- ClearupProcessed = TRUE;
-
+
+ ClearupProcessed = TRUE;
+
}
void wxETagProcessTimer::Notify(){
-
- // Check each ETagDB and see if writing to file is required.
-
- //ETagDB* ETagDBPtr;
- //ETagDB ETagDBCopy;
-
- std::map::iterator ETagIter;
-
- for (ETagIter = ETagDBList.begin();
- ETagIter != ETagDBList.end(); ++ETagIter){
-
- if (ETagIter->second.GetWriteStatus() == TRUE){
-
- ETagIter->second.WriteETagDB();
-
- }
-
- }
-
-
+
+ // Check each ETagDB and see if writing to file is required.
+
+ //ETagDB* ETagDBPtr;
+ //ETagDB ETagDBCopy;
+
+ std::map::iterator ETagIter;
+
+ for (ETagIter = ETagDBList.begin();
+ ETagIter != ETagDBList.end(); ++ETagIter){
+
+ if (ETagIter->second.GetWriteStatus() == TRUE){
+
+ ETagIter->second.WriteETagDB();
+
+ }
+
+ }
+
+
}
void wxETagProcessTimer::ReloadAccounts(){
-
- // Get the account preferences file and setup each database accordingly.
-
- ReloadLock.lock();
-
- // Stop the timer.
-
- this->Stop();
- ETagDBList.clear();
-
- wxString PrefFilename = GetUserPrefDir();
-
- XABPreferences PrefData(PrefFilename);
-
- wxString AccountName;
- wxString AccountDir;
- wxString AccountAddress;
- wxString AccountUsername;
- wxString AccountPassword;
- wxString AccountPrefix;
- wxString AccountType;
-
- // Look for the account and get the friendly name for the account.
-
- for (int i = 0; i < PrefData.accounts.GetCount(); i++){
-
- AccountDir = PrefData.accounts.GetAccountDirectory(i);
- AccountType = PrefData.accounts.GetAccountType(i);
-
- if (AccountType == wxT("Local") || AccountType == wxT("local")){
- continue;
- }
-
- AccountDir.Trim();
- AccountDir.Append(wxT(".carddav"));
-
- ETagDB AccountDB;
- AccountDB.SetupDB(AccountDir);
-
- ETagDBList.insert(std::make_pair(AccountDir, AccountDB));
-
- AccountDir.clear();
-
- }
-
- //raise(SIGABRT);
-
- /*for (int i = 0; i < PrefData.accounts.GetCount(); i++){
-
- AccountDir = PrefData.accounts.GetAccountDirectory(i);
-
- AccountDir.Trim();
- AccountDir.Append(wxT(".carddav"));
-
- //AccountPrefix = PrefData.accounts.GetAccountDirPrefix(i);
-
- //ETagDB NewETagDB (AccountDir);
-
- ETagDB AccountDB;
- AccountDB.SetupDB(AccountDir);
-
- //ETagDBList.insert(std::make_pair(AccountDir, Moo));
-
- //std::pair Moo2;
-
- //ETagDB2 Meep;
-
- //ETagDBListv3.insert(std::make_pair(0,Meep));
-
- //ETagDBListv2.insert(std::make_pair(0, Moo));
-
- //ETagDBList.insert(Moo2);
-
- ETagDBList.insert(std::make_pair(AccountDir, AccountDB));
-
- //Moo55.insert(std::make_pair(wxT("Meep"), wxT("Meep")));
-
- //ETagDBList[AccountDir] = new ETagDB (AccountDir);
-
- }*/
-
- //ETagDB Test (AccountDir);
-
- //ETagDBList.insert(std::make_pair(AccountDir, Test));
-
- ReloadLock.unlock();
- this->Start(15000);
-
+
+ // Get the account preferences file and setup each database accordingly.
+
+ ReloadLock.lock();
+
+ // Stop the timer.
+
+ this->Stop();
+ ETagDBList.clear();
+
+ wxString PrefFilename = GetUserPrefDir();
+
+ XABPreferences PrefData(PrefFilename);
+
+ wxString AccountName;
+ wxString AccountDir;
+ wxString AccountAddress;
+ wxString AccountUsername;
+ wxString AccountPassword;
+ wxString AccountPrefix;
+ wxString AccountType;
+
+ // Look for the account and get the friendly name for the account.
+
+ for (int i = 0; i < PrefData.accounts.GetCount(); i++){
+
+ AccountDir = PrefData.accounts.GetAccountDirectory(i);
+ AccountType = PrefData.accounts.GetAccountType(i);
+
+ if (AccountDir.IsEmpty()){
+ continue;
+ }
+
+ if (AccountType == wxT("Local") || AccountType == wxT("local")){
+ continue;
+ }
+
+ AccountDir.Trim();
+ AccountDir.Append(wxT(".carddav"));
+
+ ETagDB AccountDB;
+ AccountDB.SetupDB(AccountDir);
+
+ ETagDBList.insert(std::make_pair(AccountDir, AccountDB));
+
+ AccountDir.clear();
+
+ }
+
+ //raise(SIGABRT);
+
+ /*for (int i = 0; i < PrefData.accounts.GetCount(); i++){
+
+ AccountDir = PrefData.accounts.GetAccountDirectory(i);
+
+ AccountDir.Trim();
+ AccountDir.Append(wxT(".carddav"));
+
+ //AccountPrefix = PrefData.accounts.GetAccountDirPrefix(i);
+
+ //ETagDB NewETagDB (AccountDir);
+
+ ETagDB AccountDB;
+ AccountDB.SetupDB(AccountDir);
+
+ //ETagDBList.insert(std::make_pair(AccountDir, Moo));
+
+ //std::pair Moo2;
+
+ //ETagDB2 Meep;
+
+ //ETagDBListv3.insert(std::make_pair(0,Meep));
+
+ //ETagDBListv2.insert(std::make_pair(0, Moo));
+
+ //ETagDBList.insert(Moo2);
+
+ ETagDBList.insert(std::make_pair(AccountDir, AccountDB));
+
+ //Moo55.insert(std::make_pair(wxT("Meep"), wxT("Meep")));
+
+ //ETagDBList[AccountDir] = new ETagDB (AccountDir);
+
+ }*/
+
+ //ETagDB Test (AccountDir);
+
+ //ETagDBList.insert(std::make_pair(AccountDir, Test));
+
+ ReloadLock.unlock();
+ this->Start(15000);
+
}
ETagDB* wxETagProcessTimer::GetPointer(wxString AccountName){
-
- ETagDB *ETagDBPtr = NULL;
-
- std::map::iterator ETagIter;
-
- ETagIter = ETagDBList.find(AccountName);
-
- if (ETagIter != ETagDBList.end()){
-
- ETagDBPtr = &ETagIter->second;
-
- }
-
- return ETagDBPtr;
-
+
+ ETagDB *ETagDBPtr = NULL;
+
+ std::map::iterator ETagIter;
+
+ ETagIter = ETagDBList.find(AccountName);
+
+ if (ETagIter != ETagDBList.end()){
+
+ ETagDBPtr = &ETagIter->second;
+
+ }
+
+ return ETagDBPtr;
+
}
void wxContactFileMonitorTimer::Notify(){
-
- if (Filename.IsEmpty()){
-
- return;
-
- }
-
- wxFileName FileCheck(Filename);
- wxDateTime CurrentDateTime;
-
- CurrentDateTime = FileCheck.GetModificationTime();
-
- if (FileDateTime != CurrentDateTime){
-
- // The dates & times of the file are different.
- // Send an event to notify the user of this change.
-
- wxCommandEvent dateevent(wxEVT_COMMAND_BUTTON_CLICKED);
- wxPostEvent(frmCEPtr, dateevent);
-
- }
-
+
+ if (Filename.IsEmpty()){
+
+ return;
+
+ }
+
+ wxFileName FileCheck(Filename);
+ wxDateTime CurrentDateTime;
+
+ CurrentDateTime = FileCheck.GetModificationTime();
+
+ if (FileDateTime != CurrentDateTime){
+
+ // The dates & times of the file are different.
+ // Send an event to notify the user of this change.
+
+ wxCommandEvent dateevent(wxEVT_COMMAND_BUTTON_CLICKED);
+ wxPostEvent(frmCEPtr, dateevent);
+
+ }
+
}
void wxContactFileMonitorTimer::SetFilename(wxString FilenameInc){
-
- Filename = FilenameInc;
-
- wxFileName FileCheck(Filename);
- FileDateTime = FileCheck.GetModificationTime();
-
+
+ Filename = FilenameInc;
+
+ wxFileName FileCheck(Filename);
+ FileDateTime = FileCheck.GetModificationTime();
+
}
void wxContactFileMonitorTimer::SetupPointers(frmContactEditor *frmCEPtrInc){
-
- frmCEPtr = frmCEPtrInc;
-
+
+ frmCEPtr = frmCEPtrInc;
+
}
void wxContactFileMonitorTimer::UpdateTimestamp(){
-
- wxFileName FileCheck(Filename);
- FileDateTime = FileCheck.GetModificationTime();
-
+
+ wxFileName FileCheck(Filename);
+ FileDateTime = FileCheck.GetModificationTime();
+
}
void wxContactWindowMonitor::Notify(){
-
- // Look through the list of windows and see if any have
- // closed. IF they have closed then delete and free the
- // memory (also delete from the map).
-
- /*for(std::map::iterator iter = ContactWindowListPtr->begin();
- iter != ContactWindowListPtr->end(); iter++){
-
- frmContact *ContactPtr = (frmContact*)iter->second;
-
- // Check if open.
-
- if (
-
- // Delete the form.
-
- // Delete the data from the map.
-
- }*/
-
+
+ // Look through the list of windows and see if any have
+ // closed. IF they have closed then delete and free the
+ // memory (also delete from the map).
+
+ /*for(std::map::iterator iter = ContactWindowListPtr->begin();
+ iter != ContactWindowListPtr->end(); iter++){
+
+ frmContact *ContactPtr = (frmContact*)iter->second;
+
+ // Check if open.
+
+ if (
+
+ // Delete the form.
+
+ // Delete the data from the map.
+
+ }*/
+
}
void wxContactWindowMonitor::SetupPointers(std::map *ContactWindowListPtrInc){
-
- ContactWindowListPtr = ContactWindowListPtrInc;
-
+
+ ContactWindowListPtr = ContactWindowListPtrInc;
+
}
void wxAccountSyncTimer::Notify(){
-
- frmActivityMgr *ActMgrPtrProc = static_cast(frmActMgrPtr);
-
- // Disable the timer. (Don't go updating unless needed).
-
- this->Stop();
-
- if (ActMgrPtrProc->GetTaskStatus(intTaskID) < 2){
-
- this->Start();
- return;
-
- }
-
- // Add task to the activity manager.
-
- intTaskID = ActMgrPtrProc->AddTask(3, wxT(""), AccName,
- wxT(""), wxT(""), wxT(""), wxT(""));
-
- // Go to sleep and wait for the task to be completed.
-
- // Enable the timer as we are now finished syncronising.
-
- this->Start();
-
+
+ frmActivityMgr *ActMgrPtrProc = static_cast(frmActMgrPtr);
+
+ // Disable the timer. (Don't go updating unless needed).
+
+ this->Stop();
+
+ if (ActMgrPtrProc->GetTaskStatus(intTaskID) < 2){
+
+ this->Start();
+ return;
+
+ }
+
+ // Add task to the activity manager.
+
+ intTaskID = ActMgrPtrProc->AddTask(3, wxT(""), AccName,
+ wxT(""), wxT(""), wxT(""), wxT(""));
+
+ // Go to sleep and wait for the task to be completed.
+
+ // Enable the timer as we are now finished syncronising.
+
+ this->Start();
+
}
void wxAccountSyncTimer::SetupData(wxString AccNameInc,
- wxString AccNameFullInc){
-
- // Set the account name.
-
- AccName = AccNameInc;
- AccNameFull = AccNameFullInc;
-
+ wxString AccNameFullInc){
+
+ // Set the account name.
+
+ AccName = AccNameInc;
+ AccNameFull = AccNameFullInc;
+
}
void wxAccountSyncTimer::SetupPointers(void *frmMainPtrInc,
- void *frmActMgrPtrInc, ETagDB *ETagDBPtrInc){
-
- // Set the pointers.
-
- frmMainPtr = frmMainPtrInc;
- frmActMgrPtr = frmActMgrPtrInc;
- ETagDBPtr = ETagDBPtrInc;
-
+ void *frmActMgrPtrInc, ETagDB *ETagDBPtrInc){
+
+ // Set the pointers.
+
+ frmMainPtr = frmMainPtrInc;
+ frmActMgrPtr = frmActMgrPtrInc;
+ ETagDBPtr = ETagDBPtrInc;
+
}
void SleepFor(unsigned long longSleepNanoSecs){
-
+
#ifdef __WIN32__
- ::Sleep((longSleepNanoSecs / 1000000));
+ ::Sleep((longSleepNanoSecs / 1000000));
#elif __HAIKU__
-
+
#else
-
- timespec n1, n2;
-
- n1.tv_sec = 0;
- n1.tv_nsec = longSleepNanoSecs;
-
- nanosleep(&n1, &n2);
-
+
+ timespec n1, n2;
+
+ n1.tv_sec = 0;
+ n1.tv_nsec = longSleepNanoSecs;
+
+ nanosleep(&n1, &n2);
+
#endif
-
+
}
\ No newline at end of file