summaryrefslogtreecommitdiff
path: root/ui/SyncDialog.h
blob: 2c705122f09497914bae909772c7ebe55de09906 (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
119
120
121
122
123
124
125
126
#ifndef SYNCDIALOG_H_INCLUDED
#define SYNCDIALOG_H_INCLUDED

#include "../structures.h"
#include "guiGenerated.h"
#include "../library/processXml.h"
#include <memory>

class BatchFileDropEvent;
class BatchFolderPairPanel;

namespace FreeFileSync
{
    class DragDropOnDlg;
}


class SyncDialog: public SyncDlgGenerated
{
public:
    SyncDialog(wxWindow* window,
               const FreeFileSync::FolderComparison& folderCmpRef,
               FreeFileSync::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 FreeFileSync::SyncConfiguration& syncConfig);

    static void adjustToolTips(wxStaticBitmap* bitmap, const FreeFileSync::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
    FreeFileSync::SyncConfiguration localSyncConfiguration;
    const FreeFileSync::FolderComparison& folderCmp;
    FreeFileSync::MainConfiguration& cfg;
    bool& m_ignoreErrors;
};


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 OnCheckFilter(     wxCommandEvent& event);
    void OnCheckLogging(    wxCommandEvent& event);
    void OnSelectRecycleBin(wxCommandEvent& event);
    void OnChangeCompareVar(wxCommandEvent& event);

    void updateVisibleTabs();
    void showNotebookpage(wxWindow* page, const wxString& pageName, bool show);

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

    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);

    FreeFileSync::SyncConfiguration localSyncConfiguration;
    std::vector<BatchFolderPairPanel*> localFolderPairs;

    //used when saving batch file
    wxString proposedBatchFileName;

    //add drag & drop support when selecting logfile directory
    std::auto_ptr<FreeFileSync::DragDropOnDlg> dragDropOnLogfileDir;
};

#endif // SYNCDIALOG_H_INCLUDED
bgstack15