source: filezilla/trunk/fuentes/src/interface/export.cpp @ 130

Last change on this file since 130 was 130, checked in by jrpelegrina, 4 years ago

First release to xenial

File size: 2.0 KB
Line 
1#include <filezilla.h>
2#include "export.h"
3#include "filezillaapp.h"
4#include "xmlfunctions.h"
5#include "ipcmutex.h"
6#include "queue.h"
7
8CExportDialog::CExportDialog(wxWindow* parent, CQueueView* pQueueView)
9        : m_parent(parent), m_pQueueView(pQueueView)
10{
11}
12
13void CExportDialog::Run()
14{
15        if (!Load(m_parent, _T("ID_EXPORT")))
16                return;
17
18        if (ShowModal() != wxID_OK)
19                return;
20
21        bool sitemanager = XRCCTRL(*this, "ID_SITEMANAGER", wxCheckBox)->GetValue();
22        bool settings = XRCCTRL(*this, "ID_SETTINGS", wxCheckBox)->GetValue();
23        bool queue = XRCCTRL(*this, "ID_QUEUE", wxCheckBox)->GetValue();
24
25        if (!sitemanager && !settings && !queue) {
26                wxMessageBoxEx(_("No category to export selected"), _("Error exporting settings"), wxICON_ERROR, m_parent);
27                return;
28        }
29
30        wxString str;
31        if (sitemanager && !queue && !settings)
32                str = _("Select file for exported sites");
33        else if (!sitemanager && queue && !settings)
34                str = _("Select file for exported queue");
35        else if (!sitemanager && !queue && settings)
36                str = _("Select file for exported settings");
37        else
38                str = _("Select file for exported data");
39
40        wxFileDialog dlg(m_parent, str, wxString(),
41                                        _T("FileZilla.xml"), _T("XML files (*.xml)|*.xml"),
42                                        wxFD_SAVE | wxFD_OVERWRITE_PROMPT);
43
44        if (dlg.ShowModal() != wxID_OK)
45                return;
46
47        CXmlFile xml(dlg.GetPath());
48
49        auto exportRoot = xml.CreateEmpty();
50
51        if (sitemanager) {
52                CInterProcessMutex mutex(MUTEX_SITEMANAGER);
53
54                CXmlFile file(wxGetApp().GetSettingsFile(_T("sitemanager")));
55                auto document = file.Load();
56                if (document) {
57                        auto element = document.child("Servers");
58                        if (element)
59                                exportRoot.append_copy(element);
60                }
61        }
62        if (settings) {
63                CInterProcessMutex mutex(MUTEX_OPTIONS);
64                CXmlFile file(wxGetApp().GetSettingsFile(_T("filezilla")));
65                auto document = file.Load();
66                if (document) {
67                        auto element = document.child("Settings");
68                        if (element)
69                                exportRoot.append_copy(element);
70                }
71        }
72
73        if (queue) {
74                m_pQueueView->WriteToFile(exportRoot);
75        }
76
77        xml.Save(true);
78}
Note: See TracBrowser for help on using the repository browser.