1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
|
#ifndef SYNCDIALOG_H_INCLUDED
#define SYNCDIALOG_H_INCLUDED
#include "guiGenerated.h"
#include "../library/processXml.h"
#include <memory>
class BatchFileDropEvent;
class BatchFolderPairPanel;
namespace FreeFileSync
{
class DragDropOnDlg;
}
class SyncCfgDialog : public SyncCfgDlgGenerated
{
public:
SyncCfgDialog(wxWindow* window,
const FreeFileSync::CompareVariant compareVar,
FreeFileSync::SyncConfiguration& syncConfiguration,
FreeFileSync::DeletionPolicy& handleDeletion,
wxString& customDeletionDirectory,
bool* ignoreErrors); //optional input parameter
~SyncCfgDialog();
enum
{
BUTTON_APPLY = 10
};
static void updateConfigIcons(const FreeFileSync::CompareVariant compareVar,
const FreeFileSync::SyncConfiguration& syncConfig,
wxBitmapButton* buttonLeftOnly,
wxBitmapButton* buttonRightOnly,
wxBitmapButton* buttonLeftNewer,
wxBitmapButton* buttonRightNewer,
wxBitmapButton* buttonDifferent,
wxBitmapButton* buttonConflict,
wxStaticBitmap* bitmapLeftOnly,
wxStaticBitmap* bitmapRightOnly,
wxStaticBitmap* bitmapLeftNewer,
wxStaticBitmap* bitmapRightNewer,
wxStaticBitmap* bitmapDifferent,
wxStaticBitmap* bitmapConflict,
wxSizer* syncDirections);
//some syntax relaxation
void updateConfigIcons(const FreeFileSync::CompareVariant cmpVar, const FreeFileSync::SyncConfiguration& syncConfig);
private:
virtual void OnSyncAutomatic( wxCommandEvent& event);
virtual void OnSyncLeftToRight( wxCommandEvent& event);
virtual void OnSyncUpdate( wxCommandEvent& event);
virtual void OnSyncBothSides( wxCommandEvent& event);
virtual void OnExLeftSideOnly( wxCommandEvent& event);
virtual void OnExRightSideOnly( wxCommandEvent& event);
virtual void OnLeftNewer( wxCommandEvent& event);
virtual void OnRightNewer( wxCommandEvent& event);
virtual void OnDifferent( wxCommandEvent& event);
virtual void OnConflict( wxCommandEvent& event);
virtual void OnClose( wxCloseEvent& event);
virtual void OnCancel( wxCommandEvent& event);
virtual void OnApply( wxCommandEvent& event);
//set tooltip
void updateToolTipErrorHandling(bool ignoreErrors);
//error handling
bool getErrorHandling();
void setErrorHandling(bool ignoreErrors);
void OnChangeErrorHandling(wxCommandEvent& event);
//deletion handling
FreeFileSync::DeletionPolicy getDeletionHandling();
void setDeletionHandling(FreeFileSync::DeletionPolicy newValue);
void OnChangeDeletionHandling(wxCommandEvent& event);
const FreeFileSync::CompareVariant cmpVariant;
//temporal copy of maindialog.cfg.syncConfiguration
FreeFileSync::SyncConfiguration localSyncConfiguration;
//changing data
FreeFileSync::SyncConfiguration& refSyncConfiguration;
FreeFileSync::DeletionPolicy& refHandleDeletion;
wxString& refCustomDeletionDirectory;
bool* refIgnoreErrors;
std::auto_ptr<FreeFileSync::DragDropOnDlg> dragDropCustomDelFolder;
};
class BatchDialog: public BatchDlgGenerated
{
friend class BatchFileDropEvent;
friend class BatchFolderPairPanel;
public:
BatchDialog(wxWindow* window, const xmlAccess::XmlBatchConfig& batchCfg);
BatchDialog(wxWindow* window, const wxString& filename);
~BatchDialog() {};
enum
{
BATCH_FILE_SAVED = 15
};
private:
void init();
virtual void OnExLeftSideOnly( wxCommandEvent& event);
virtual void OnExRightSideOnly( wxCommandEvent& event);
virtual void OnLeftNewer( wxCommandEvent& event);
virtual void OnRightNewer( wxCommandEvent& event);
virtual void OnDifferent( wxCommandEvent& event);
virtual void OnConflict( wxCommandEvent& event);
virtual void OnCheckAutomatic( wxCommandEvent& event);
virtual void OnCheckFilter( wxCommandEvent& event);
virtual void OnCheckSilent( wxCommandEvent& event);
virtual void OnChangeCompareVar( wxCommandEvent& event);
virtual void OnClose( wxCloseEvent& event);
virtual void OnCancel( wxCommandEvent& event);
virtual void OnSaveBatchJob( wxCommandEvent& event);
virtual void OnLoadBatchJob( wxCommandEvent& event);
virtual void OnAddFolderPair( wxCommandEvent& event);
virtual void OnRemoveFolderPair( wxCommandEvent& event);
virtual void OnRemoveTopFolderPair(wxCommandEvent& event);
void addFolderPair(const std::vector<FreeFileSync::FolderPairEnh>& newPairs, bool addFront = false);
void removeAddFolderPair(const int pos);
void clearAddFolderPairs();
FreeFileSync::CompareVariant getCurrentCompareVar() const;
void updateConfigIcons(const FreeFileSync::CompareVariant cmpVar, const FreeFileSync::SyncConfiguration& syncConfig);
void updateVisibleTabs();
void showNotebookpage(wxWindow* page, const wxString& pageName, bool show);
//error handling
xmlAccess::OnError getSelectionHandleError() const;
void setSelectionHandleError(const xmlAccess::OnError value);
void OnChangeErrorHandling(wxCommandEvent& event);
//set tooltip
void updateToolTipErrorHandling(const xmlAccess::OnError value);
//deletion handling
FreeFileSync::DeletionPolicy getDeletionHandling() const;
void setDeletionHandling(FreeFileSync::DeletionPolicy newValue);
void OnChangeDeletionHandling(wxCommandEvent& event);
bool saveBatchFile(const wxString& filename);
void loadBatchFile(const wxString& filename);
void loadBatchCfg(const xmlAccess::XmlBatchConfig& batchCfg);
xmlAccess::XmlBatchConfig getCurrentConfiguration() const;
FreeFileSync::SyncConfiguration localSyncConfiguration;
std::vector<BatchFolderPairPanel*> additionalFolderPairs;
//used when saving batch file
wxString proposedBatchFileName;
//add drag & drop support when selecting logfile directory
std::auto_ptr<FreeFileSync::DragDropOnDlg> dragDropOnLogfileDir;
//support for drag and drop on main pair
std::auto_ptr<FreeFileSync::DragDropOnDlg> dragDropOnLeft;
std::auto_ptr<FreeFileSync::DragDropOnDlg> dragDropOnRight;
std::auto_ptr<FreeFileSync::DragDropOnDlg> dragDropCustomDelFolder;
};
#endif // SYNCDIALOG_H_INCLUDED
|