X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fimport%2Fimport.cpp;h=948f83ff3f6738aa92393a02401139783b34a950;hb=34fa97b95a58f99ee51775bafcab7322935f058d;hp=416a39f3766a81c38ece468f7393d14267e8956d;hpb=45729fca56479bd9158486e0cda0c4a94b4dd1dc;p=xestiaab%2F.git diff --git a/source/import/import.cpp b/source/import/import.cpp index 416a39f..948f83f 100644 --- a/source/import/import.cpp +++ b/source/import/import.cpp @@ -19,10 +19,6 @@ void ImportRun(frmMain *frmMainPtrInc){ // Bring up a dialog selecting one or multiple // files for processing based on type. - struct ImportResultData{ - - }; - frmMainPtrInc->PauseAllTimers(); wxString FileTypes; @@ -35,9 +31,10 @@ void ImportRun(frmMain *frmMainPtrInc){ wxArrayString SelectedFileList; wxString SelectedFileDirectory; wxString AccountName; + wxString AccountType; int ImportErrorCount = 0; - std::map ResultData; + std::map *ResultData = new std::map; FileTypes.Append(wxT("vCard 4.0 Contact(s) (*.vcf)")); FileTypes.Append(wxT("|*.vcf|")); @@ -105,6 +102,10 @@ void ImportRun(frmMain *frmMainPtrInc){ frmIC->ShowModal(); frmIC->GetResults(&ContactData); AccountName = frmIC->GetAccount(); + AccountType = frmIC->GetAccountType(); + + delete frmIC; + frmIC = NULL; // Import the contacts into the selected account. @@ -139,7 +140,7 @@ void ImportRun(frmMain *frmMainPtrInc){ 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 @@ -223,7 +224,7 @@ void ImportRun(frmMain *frmMainPtrInc){ // 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(); @@ -240,16 +241,19 @@ void ImportRun(frmMain *frmMainPtrInc){ 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))); } @@ -274,24 +278,25 @@ void ImportRun(frmMain *frmMainPtrInc){ // 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