// 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