Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Documentation (en-GB).fodt: Updated documentation with new screenshots
[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 "export.h"
24 #include "../frmMain.h"
25 #include "export-vcard3.h"
26 #include "export-vcard4.h"
28 void ExportRun(frmMain *frmMainPtrInc, wxArrayString *FileListInc){
30         // Run the export function. Bring up the export file save
31         // dialog and run the required export functions as needed.
32         
33         frmMainPtrInc->PauseAllTimers();
35         wxString FileTypes;
36         
37         bool DirMode = FALSE;
38         int ExportType = 0;
39         int ExportCount = 0;
40         wxString FinalFilename;
41         
42         FileTypes.Append(wxT("vCard 4.0 (directory, one contact per file) (*.vcf)"));
43         FileTypes.Append(wxT("|*.vcf|"));
44         FileTypes.Append(wxT("vCard 4.0 (file, all contacts in one file) (*.vcf)"));
45         FileTypes.Append(wxT("|*.vcf|"));
46         FileTypes.Append(wxT("vCard 3.0 (directory, one contact per file) (*.vcf)"));
47         FileTypes.Append(wxT("|*.vcf|"));
48         FileTypes.Append(wxT("vCard 3.0 (file, all contacts in one file) (*.vcf)"));
49         FileTypes.Append(wxT("|*.vcf"));
51         // Open up the dialog to export file data.
52         
53         wxFileDialog ExportDlg(frmMainPtrInc, wxT("Export Contacts"), wxT(""), wxT(""),
54                 FileTypes, wxFD_SAVE|wxFD_OVERWRITE_PROMPT);
55         
56         if (ExportDlg.ShowModal() == wxID_CANCEL){
57         
58                 frmMainPtrInc->ResumeAllTimers();
59                 return;
60         
61         }
63         // Find which data type is being used.
64                 
65         ExportType = ExportDlg.GetFilterIndex();
67         if (ExportType == 0 || ExportType == 2){
68                 DirMode = TRUE;
69         }
71         // Process the filename based on data type.
72         
73         if (DirMode == FALSE){
74         
75                 // All contacts exported into one file. Setup the filename.
76         
77                 FinalFilename = ExportDlg.GetPath();
78         
79         } else {
80         
81                 // One contact per filename. Setup the directory name.
82         
83                 FinalFilename = ExportDlg.GetDirectory();
84         
85         }
87         if (ExportType == 0 || ExportType == 1){
88         
89                 ExportVCard4(DirMode, FinalFilename, FileListInc, &ExportCount);
90         
91         }
92         
93         // vCard 3.0 export
94         
95         if (ExportType == 2 || ExportType == 3){
96         
97                 ExportVCard3(DirMode, FinalFilename, FileListInc, &ExportCount);
99         }
100         
101         // Notify the user of how many contacts
102         // were exported.
103         
104         wxMessageBox(wxString::Format(_("%i contacts exported."), ExportCount), _("Contacts exported"));
105         
106         frmMainPtrInc->ResumeAllTimers();
108
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