OSDN Git Service

Update CWindowsManagerDialog - check some pointers for null and made … (#824) (2)
[winmerge-jp/winmerge-jp.git] / Src / PropBackups.cpp
1 /** 
2  * @file  PropBackups.cpp
3  *
4  * @brief Implementation of PropBackups propertysheet
5  */
6
7 #include "stdafx.h"
8 #include "PropBackups.h"
9 #include "OptionsDef.h"
10 #include "OptionsMgr.h"
11 #include "OptionsPanel.h"
12 #include "FileOrFolderSelect.h"
13 #include "paths.h"
14
15 #ifdef _DEBUG
16 #define new DEBUG_NEW
17 #endif
18
19 /** 
20  * @brief Constructor taking OptionsManager parameter.
21  * @param [in] optionsMgr Pointer to OptionsManager.
22  */
23 PropBackups::PropBackups(COptionsMgr *optionsMgr)
24         : OptionsPanel(optionsMgr, PropBackups::IDD)
25         , m_bCreateForFolderCmp(false)
26         , m_bCreateForFileCmp(false)
27         , m_bAppendBak(false)
28         , m_bAppendTime(false)
29         , m_nBackupFolder(0)
30 {
31 }
32
33 void PropBackups::DoDataExchange(CDataExchange* pDX)
34 {
35         CDialog::DoDataExchange(pDX);
36         DDX_Check(pDX, IDC_BACKUP_FOLDERCMP, m_bCreateForFolderCmp);
37         DDX_Check(pDX, IDC_BACKUP_FILECMP, m_bCreateForFileCmp);
38         DDX_Text(pDX, IDC_BACKUP_FOLDER, m_sGlobalFolder);
39         DDX_Check(pDX, IDC_BACKUP_APPEND_BAK, m_bAppendBak);
40         DDX_Check(pDX, IDC_BACKUP_APPEND_TIME, m_bAppendTime);
41         DDX_Radio(pDX, IDC_BACKUP_ORIGFOLD, m_nBackupFolder);
42 }
43
44
45 BEGIN_MESSAGE_MAP(PropBackups, OptionsPanel)
46         ON_BN_CLICKED(IDC_BACKUP_BROWSE, OnBnClickedBackupBrowse)
47 END_MESSAGE_MAP()
48
49
50 /** 
51  * @brief Reads options values from storage to UI.
52  */
53 void PropBackups::ReadOptions()
54 {
55         m_bCreateForFolderCmp = GetOptionsMgr()->GetBool(OPT_BACKUP_FOLDERCMP);
56         m_bCreateForFileCmp = GetOptionsMgr()->GetBool(OPT_BACKUP_FILECMP);
57         m_nBackupFolder = GetOptionsMgr()->GetInt(OPT_BACKUP_LOCATION);
58         m_sGlobalFolder = GetOptionsMgr()->GetString(OPT_BACKUP_GLOBALFOLDER);
59         m_bAppendBak = GetOptionsMgr()->GetBool(OPT_BACKUP_ADD_BAK);
60         m_bAppendTime = GetOptionsMgr()->GetBool(OPT_BACKUP_ADD_TIME);
61 }
62
63 /** 
64  * @brief Writes options values from UI to storage.
65  */
66 void PropBackups::WriteOptions()
67 {
68         m_sGlobalFolder = strutils::trim_ws(m_sGlobalFolder);
69         if (m_sGlobalFolder.length() > 3)
70                 m_sGlobalFolder = paths::AddTrailingSlash(m_sGlobalFolder);
71
72         GetOptionsMgr()->SaveOption(OPT_BACKUP_FOLDERCMP, m_bCreateForFolderCmp);
73         GetOptionsMgr()->SaveOption(OPT_BACKUP_FILECMP, m_bCreateForFileCmp);
74         GetOptionsMgr()->SaveOption(OPT_BACKUP_LOCATION, m_nBackupFolder);
75         GetOptionsMgr()->SaveOption(OPT_BACKUP_GLOBALFOLDER, m_sGlobalFolder);
76         GetOptionsMgr()->SaveOption(OPT_BACKUP_ADD_BAK, m_bAppendBak);
77         GetOptionsMgr()->SaveOption(OPT_BACKUP_ADD_TIME, m_bAppendTime);
78 }
79
80 /** 
81  * @brief Called when user selects Browse-button.
82  */
83 void PropBackups::OnBnClickedBackupBrowse()
84 {
85         String path;
86         if (SelectFolder(path, m_sGlobalFolder.c_str(), _T(""), GetSafeHwnd()))
87         {
88                 SetDlgItemText(IDC_BACKUP_FOLDER, path);
89         }
90 }