source: filezilla/trunk/fuentes/src/interface/sitemanager_dialog.h @ 130

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

First release to xenial

File size: 3.4 KB
Line 
1#ifndef __SITEMANAGER_DIALOG_H__
2#define __SITEMANAGER_DIALOG_H__
3
4#include "dialogex.h"
5#include "sitemanager.h"
6
7class CInterProcessMutex;
8class CWindowStateManager;
9class CSiteManagerDropTarget;
10class CSiteManagerDialog final : public wxDialogEx
11{
12        friend class CSiteManagerDropTarget;
13
14        DECLARE_EVENT_TABLE()
15
16public:
17        struct _connected_site
18        {
19                CServer server;
20                wxString old_path;
21                wxString new_path;
22        };
23
24        /// Constructors
25        CSiteManagerDialog();
26        virtual ~CSiteManagerDialog();
27
28        // Creation. If pServer is set, it will cause a new item to be created.
29        bool Create(wxWindow* parent, std::vector<_connected_site> *connected_sites, const CServer* pServer = 0);
30
31        bool GetServer(CSiteManagerItemData_Site& data);
32        wxString GetSitePath(bool stripBookmark = true);
33
34protected:
35        // Creates the controls and sizers
36        void CreateControls(wxWindow* parent);
37
38        bool Verify();
39        bool UpdateItem();
40        bool UpdateServer(CSiteManagerItemData_Site &server, const wxString& name);
41        bool UpdateBookmark(CSiteManagerItemData &bookmark, const CServer& server);
42        bool Load();
43        bool Save(pugi::xml_node element = pugi::xml_node(), wxTreeItemId treeId = wxTreeItemId());
44        bool SaveChild(pugi::xml_node element, wxTreeItemId child);
45        void SetCtrlState();
46        bool LoadDefaultSites();
47
48        void SetProtocol(ServerProtocol protocol);
49        ServerProtocol GetProtocol() const;
50        LogonType GetLogonType() const;
51
52        bool IsPredefinedItem(wxTreeItemId item);
53
54        wxString FindFirstFreeName(const wxTreeItemId &parent, const wxString& name);
55
56        void AddNewSite(wxTreeItemId parent, const CServer& server, bool connected = false);
57        void CopyAddServer(const CServer& server);
58
59        void AddNewBookmark(wxTreeItemId parent);
60
61        void RememberLastSelected();
62
63        wxString GetSitePath(wxTreeItemId item, bool stripBookmark = true);
64
65        void MarkConnectedSites();
66        void MarkConnectedSite(int connected_site);
67
68        void OnOK(wxCommandEvent&);
69        void OnCancel(wxCommandEvent&);
70        void OnConnect(wxCommandEvent& event);
71        void OnNewSite(wxCommandEvent& event);
72        void OnNewFolder(wxCommandEvent& event);
73        void OnRename(wxCommandEvent& event);
74        void OnDelete(wxCommandEvent& event);
75        void OnBeginLabelEdit(wxTreeEvent& event);
76        void OnEndLabelEdit(wxTreeEvent& event);
77        void OnSelChanging(wxTreeEvent& event);
78        void OnSelChanged(wxTreeEvent& event);
79        void OnLogontypeSelChanged(wxCommandEvent& event);
80        void OnRemoteDirBrowse(wxCommandEvent& event);
81        void OnItemActivated(wxTreeEvent& event);
82        void OnLimitMultipleConnectionsChanged(wxCommandEvent& event);
83        void OnCharsetChange(wxCommandEvent& event);
84        void OnProtocolSelChanged(wxCommandEvent& event);
85        void OnBeginDrag(wxTreeEvent& event);
86        void OnChar(wxKeyEvent& event);
87        void OnCopySite(wxCommandEvent& event);
88        void OnContextMenu(wxTreeEvent& event);
89        void OnExportSelected(wxCommandEvent&);
90        void OnNewBookmark(wxCommandEvent&);
91        void OnBookmarkBrowse(wxCommandEvent&);
92        void OnKeyFileBrowse(wxCommandEvent&);
93
94        void SetControlVisibility(ServerProtocol protocol, LogonType type);
95
96        CInterProcessMutex* m_pSiteManagerMutex{};
97
98        wxTreeItemId m_predefinedSites;
99        wxTreeItemId m_ownSites;
100
101        wxTreeItemId m_dropSource;
102
103        wxTreeItemId m_contextMenuItem;
104
105        bool MoveItems(wxTreeItemId source, wxTreeItemId target, bool copy);
106
107protected:
108        CWindowStateManager* m_pWindowStateManager{};
109
110        wxNotebook *m_pNotebook_Site{};
111        wxNotebook *m_pNotebook_Bookmark{};
112
113        std::vector<_connected_site> *m_connected_sites{};
114
115        bool m_is_deleting{};
116};
117
118#endif //__SITEMANAGER_DIALOG_H__
Note: See TracBrowser for help on using the repository browser.