summaryrefslogtreecommitdiff
path: root/ui/SyncDialog.h
blob: 05a2d65b77391f3d178268429f327624ea3eabd7 (plain)
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
#ifndef SYNCDIALOG_H_INCLUDED
#define SYNCDIALOG_H_INCLUDED

#include "../FreeFileSync.h"
#include "guiGenerated.h"
#include "../library/processXml.h"

using namespace FreeFileSync;


class SyncDialog: public SyncDlgGenerated
{
public:
    SyncDialog(wxWindow* window,
               const FileCompareResult& gridDataRef,
               MainConfiguration& config,
               bool& ignoreErrors,
               bool synchronizationEnabled);

    ~SyncDialog();

    enum
    {
        BUTTON_START = 15
    };

    static void updateConfigIcons(wxBitmapButton* button1,
                                  wxBitmapButton* button2,
                                  wxBitmapButton* button3,
                                  wxBitmapButton* button4,
                                  wxBitmapButton* button5,
                                  const SyncConfiguration& syncConfig);

    static void adjustToolTips(wxStaticBitmap* bitmap, const CompareVariant var);

private:
    void calculatePreview();

    void OnSyncLeftToRight( wxCommandEvent& event);
    void OnSyncUpdate(      wxCommandEvent& event);
    void OnSyncBothSides(   wxCommandEvent& event);

    void OnExLeftSideOnly(  wxCommandEvent& event);
    void OnExRightSideOnly( wxCommandEvent& event);
    void OnLeftNewer(       wxCommandEvent& event);
    void OnRightNewer(      wxCommandEvent& event);
    void OnDifferent(       wxCommandEvent& event);

    void OnStartSync(       wxCommandEvent& event);
    void OnClose(           wxCloseEvent&   event);
    void OnBack(            wxCommandEvent& event);
    void OnCancel(          wxCommandEvent& event);

    void OnSelectRecycleBin(wxCommandEvent& event);

    //temporal copy of maindialog.cfg.syncConfiguration
    SyncConfiguration localSyncConfiguration;
    const FileCompareResult& gridData;
    MainConfiguration& cfg;
    bool& m_ignoreErrors;
};


class BatchFileDropEvent;


class BatchDialog: public BatchDlgGenerated
{
    friend class BatchFileDropEvent;

public:
    BatchDialog(wxWindow* window, const xmlAccess::XmlBatchConfig& batchCfg);
    BatchDialog(wxWindow* window, const wxString& filename);
    ~BatchDialog() {};

    enum
    {
        BATCH_FILE_SAVED = 15
    };

private:
    void init();

    void OnChangeErrorHandling(wxCommandEvent& event);

    void OnExLeftSideOnly(  wxCommandEvent& event);
    void OnExRightSideOnly( wxCommandEvent& event);
    void OnLeftNewer(       wxCommandEvent& event);
    void OnRightNewer(      wxCommandEvent& event);
    void OnDifferent(       wxCommandEvent& event);

    void OnFilterButton(    wxCommandEvent& event);
    void OnSelectRecycleBin(wxCommandEvent& event);
    void OnChangeCompareVar(wxCommandEvent& event);

    void OnClose(           wxCloseEvent&   event);
    void OnCancel(          wxCommandEvent& event);
    void OnSaveBatchJob(    wxCommandEvent& event);
    void OnLoadBatchJob(    wxCommandEvent& event);

    void updateFilterButton();
    xmlAccess::OnError getSelectionHandleError();
    void setSelectionHandleError(const xmlAccess::OnError value);

    bool saveBatchFile(const wxString& filename);
    void loadBatchFile(const wxString& filename);
    void loadBatchCfg(const xmlAccess::XmlBatchConfig& batchCfg);

    SyncConfiguration localSyncConfiguration;
    std::vector<BatchFolderPairGenerated*> localFolderPairs;

    bool filterIsActive;

    //used when saving batch file
    wxString proposedBatchFileName;
};

#endif // SYNCDIALOG_H_INCLUDED
bgstack15