Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
8c9cc2d3bbe8abcc663e898c6ec3899d1c70e031
[xestiaab/.git] / source / export / export.cpp
1 // export.cpp - Export subroutines.
2 //
3 // (c) 2012-2015 Xestia Software Development.
4 //
5 // This file is part of Xestia Address Book.
6 //
7 // Xestia Address Book is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by the
9 // Free Software Foundation, version 3 of the license.
10 //
11 // Xestia Address Book is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
15 //
16 // You should have received a copy of the GNU General Public License along
17 // with Xestia Address Book. If not, see <http://www.gnu.org/licenses/>
19 #include <wx/filedlg.h>
20 #include <wx/arrstr.h>
21 #include <csignal>
23 #include "../frmMain.h"
24 #include "export-vcard3.h"
25 #include "export-vcard4.h"
27 void ExportRun(frmMain *frmMainPtrInc, wxArrayString *FileListInc){
29         // Run the export function. Bring up the export file save
30         // dialog and run the required export functions as needed.
31         
32         frmMainPtrInc->PauseAllTimers();
34         wxString FileTypes;
35         
36         bool DirMode = FALSE;
37         int ExportType = 0;
38         int ExportCount = 0;
39         wxString FinalFilename;
40         
41         FileTypes.Append(wxT("vCard 4.0 (directory, one contact per file) (*.vcf)"));
42         FileTypes.Append(wxT("|*.vcf|"));
43         FileTypes.Append(wxT("vCard 4.0 (file, all contacts in one file) (*.vcf)"));
44         FileTypes.Append(wxT("|*.vcf|"));
45         FileTypes.Append(wxT("vCard 3.0 (directory, one contact per file) (*.vcf)"));
46         FileTypes.Append(wxT("|*.vcf|"));
47         FileTypes.Append(wxT("vCard 3.0 (file, all contacts in one file) (*.vcf)"));
48         FileTypes.Append(wxT("|*.vcf"));
50         // Open up the dialog to export file data.
51         
52         wxFileDialog ExportDlg(frmMainPtrInc, wxT("Export Contacts"), wxT(""), wxT(""),
53                 FileTypes, wxFD_SAVE|wxFD_OVERWRITE_PROMPT);
54         
55         if (ExportDlg.ShowModal() == wxID_CANCEL){
56         
57                 frmMainPtrInc->ResumeAllTimers();
58                 return;
59         
60         }
62         // Find which data type is being used.
63                 
64         ExportType = ExportDlg.GetFilterIndex();
66         if (ExportType == 0 || ExportType == 2){
67                 DirMode = TRUE;
68         }
70         // Process the filename based on data type.
71         
72         if (DirMode == FALSE){
73         
74                 // All contacts exported into one file. Setup the filename.
75         
76                 FinalFilename = ExportDlg.GetPath();
77         
78         } else {
79         
80                 // One contact per filename. Setup the directory name.
81         
82                 FinalFilename = ExportDlg.GetDirectory();
83         
84         }
86         if (ExportType == 0 || ExportType == 1){
87         
88                 ExportVCard4(DirMode, FinalFilename, FileListInc, &ExportCount);
89         
90         }
91         
92         // vCard 3.0 export
93         
94         if (ExportType == 2 || ExportType == 3){
95         
96                 ExportVCard3(DirMode, FinalFilename, FileListInc, &ExportCount);
98         }
99         
100         // Notify the user of how many contacts
101         // were exported.
102         
103         wxMessageBox(wxString::Format(_("%i contacts exported."), ExportCount), _("Contacts exported"));
104         
105         frmMainPtrInc->ResumeAllTimers();
107
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