wxString AccDirFull;
wxString AccDirFullSfx;
wxString AccName;
+ wxString AccType;
wxString AccDirFinal;
wxTreeItemId AccountTreeId;
wxTreeItemId GroupTreeId;
AccDirFull.Append(AccDirFullSfx);
AccName = preferences.accounts.GetAccountName(i);
AccName.Trim();
+ AccType = preferences.accounts.GetAccountType(i);
+ AccType.Trim();
AccountAccDirList.insert(std::make_pair(i, AccDirFull));
+ AccountAccTypeList.insert(std::make_pair(i, AccType));
if (preferences.accounts.GetAccountType(i) == wxT("CardDAV") ||
preferences.accounts.GetAccountType(i) == wxT("carddav")){
}
+frmImportContacts::~frmImportContacts()
+{
+
+ /*delete AccControl;
+ AccControl = NULL;
+ delete treAccounts;
+ treAccounts = NULL;
+ delete AccImgList;
+ AccImgList = NULL;*/
+
+}
+
void frmImportContacts::GetResult()
{
return AccountName;
+}
+
+wxString frmImportContacts::GetAccountType()
+{
+
+ wxString preffilename = GetUserPrefDir();
+
+ XABPreferences preferences(preffilename);
+
+ wxString AccountType;
+
+ //XABPrefAccounts prefaccounts;
+
+ wxTreeItemIdValue cookie;
+ wxTreeItemId next = treAccounts->GetRootItem();
+
+ wxTreeItemId selectedChild = treAccounts->GetSelection();
+ wxTreeItemId nextChild;
+
+ for (int i = 0; i < preferences.accounts.GetCount(); i++){
+
+ if (!nextChild){
+ nextChild = treAccounts->GetFirstChild(next, cookie);
+ } else {
+ nextChild = treAccounts->GetNextSibling(nextChild);
+ }
+
+ if (nextChild == selectedChild){
+
+ std::map<int, wxString>::iterator AccTypeIter = AccountAccTypeList.find(i);
+
+ AccountType = AccTypeIter->second;
+
+ }
+
+
+ }
+
+ return AccountType;
+
}
\ No newline at end of file
private:
wxComboCtrl* AccControl = new wxComboCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxCB_READONLY|wxEXPAND);
XABAccountView* treAccounts = new XABAccountView();
- std::map<int, wxString> AccountAccDirList;
wxImageList *AccImgList = new wxImageList(16,16,true);
+ //wxComboCtrl* AccControl;
+ //XABAccountView* treAccounts;
+ std::map<int, wxString> AccountAccDirList;
+ std::map<int, wxString> AccountAccTypeList;
+ //wxImageList *AccImgList;
int AccountID;
int AccountNetID;
int AccountGrpID;
public:
/** Constructor */
frmImportContacts( wxWindow* parent );
+ ~frmImportContacts();
void SetupList(std::map<int,ImportDataContact>* ContactDataInc);
void GetResults(std::map<int,ImportDataContact>* ContactDataInc);
wxString GetAccount();
+ wxString GetAccountType();
//// end generated class members
};
// Bring up a dialog selecting one or multiple
// files for processing based on type.
- struct ImportResultData{
-
- };
-
frmMainPtrInc->PauseAllTimers();
wxString FileTypes;
wxArrayString SelectedFileList;
wxString SelectedFileDirectory;
wxString AccountName;
+ wxString AccountType;
int ImportErrorCount = 0;
- std::map<int,wxString> ResultData;
+ std::map<int,wxString> *ResultData = new std::map<int,wxString>;
FileTypes.Append(wxT("vCard 4.0 Contact(s) (*.vcf)"));
FileTypes.Append(wxT("|*.vcf|"));
frmIC->ShowModal();
frmIC->GetResults(&ContactData);
AccountName = frmIC->GetAccount();
+ AccountType = frmIC->GetAccountType();
+
+ delete frmIC;
+ frmIC = NULL;
// Import the contacts into the selected account.
if (iter->second.ContactSelected == TRUE){
- // Workout the file name.
+ // Workout the file name. void CloseWindow( wxCommandEvent& event );
// Get the UID value and check if it is empty.
// If it isn't empty, check it can be used for a valid
// filename other wise generate a file name for the purposes
// File already exists so mark as an error.
- ResultData.insert(std::make_pair(ImportSeek, wxString::Format(_("Unable to import '%s'(%s): "), iter->second.FriendlyName, UIDToken)));
+ ResultData->insert(std::make_pair(ImportSeek, wxString::Format(_("Unable to import '%s'(%s): %s"), iter->second.FriendlyName, UIDToken, _("Contact already exists."))));
ImportErrorCount++;
ImportSeek++;
GeneratedFilename.Clear();
wxFFile OutputFile;
#if wxABI_VERSION < 20900
- OutputFile.Open(OutputFilename, wxT("w"));
+ if(!OutputFile.Open(OutputFilename, wxT("w"))){
#else
- OutputFile.Open(OutputFilename, wxT("w"));
+ if(!OutputFile.Open(OutputFilename, wxT("w"))){
#endif
+ ResultData->insert(std::make_pair(ImportSeek, wxString::Format(_("Unable to import '%s'(%s): %s"), iter->second.FriendlyName, UIDToken, _("Error occured whilst trying to create this contact. Please check permissions and storage device."))));
+
+ }
OutputFile.Write(iter->second.ContactData, wxConvAuto());
OutputFile.Close();
- ResultData.insert(std::make_pair(ImportSeek, wxString::Format(_("Contact '%s'(%s) was successfully imported."))));
+ ResultData->insert(std::make_pair(ImportSeek, wxString::Format(_("Contact '%s'(%s) was successfully imported."), iter->second.FriendlyName, UIDToken)));
}
// Check if the import error count is more than 0. If it is, then
// display the results dialog.
- frmImportResults *frmIR = new frmImportResults(frmMainPtrInc);
- frmIR->LoadData(&ResultData);
- frmIR->ShowModal();
+ wxCommandEvent imprres(IMPORT_RESULTSSHOW);
+ imprres.SetClientData(ResultData);
+ imprres.SetInt(ImportCount);
+ imprres.SetExtraLong(ImportErrorCount);
+ wxPostEvent(frmMainPtrInc, imprres);
- delete frmIR;
- frmIR = NULL;
-
- delete frmIC;
- frmIC = NULL;
-
// Syncronise the account which the contacts got imported to.
+ // (If the account is not a local account).
- wxString *AccNamePostEventPtr = new wxString;
+ if (AccountType != wxT("Local") && AccountType != wxT("local")){
- wxCommandEvent accevent(SYNCACCOUNT);
- accevent.SetClientData(AccNamePostEventPtr);
+ wxString *AccNamePostEventPtr = new wxString;
- wxPostEvent(frmMainPtrInc, accevent);
+ wxCommandEvent accevent(SYNCACCOUNT);
+ accevent.SetClientData(AccNamePostEventPtr);
+
+ wxPostEvent(frmMainPtrInc, accevent);
+
+ }
//wxPostEvent