OSDN Git Service

Fix issue #2046: Folder compare omits unique folders from results if they contain...
[winmerge-jp/winmerge-jp.git] / Src / PropCompareWebPage.cpp
1 /** 
2  * @file  PropCompareWebPage.cpp
3  *
4  * @brief Implementation of PropCompareWebPage propertysheet
5  */
6
7 #include "stdafx.h"
8 #include "PropCompareWebPage.h"
9 #include "OptionsDef.h"
10 #include "OptionsMgr.h"
11 #include "OptionsPanel.h"
12
13 #ifdef _DEBUG
14 #define new DEBUG_NEW
15 #endif
16
17 /** 
18  * @brief Constructor.
19  * @param [in] optionsMgr Pointer to COptionsMgr.
20  */
21 PropCompareWebPage::PropCompareWebPage(COptionsMgr *optionsMgr) 
22  : OptionsPanel(optionsMgr, PropCompareWebPage::IDD)
23  , m_nUserDataFolderType(0)
24  , m_bUserDataFolderPerPane(true)
25 {
26 }
27
28 void PropCompareWebPage::DoDataExchange(CDataExchange* pDX)
29 {
30         CPropertyPage::DoDataExchange(pDX);
31         //{{AFX_DATA_MAP(PropCompareWebPage)
32         DDX_Text(pDX, IDC_COMPAREWEBPAGE_URLPATTERNTOINCLUDE, m_sURLPatternToInclude);
33         DDX_Text(pDX, IDC_COMPAREWEBPAGE_URLPATTERNTOEXCLUDE, m_sURLPatternToExclude);
34         DDX_CBIndex(pDX, IDC_COMPAREWEBPAGE_USERDATAFOLDER_TYPE, m_nUserDataFolderType);
35         DDX_Check(pDX, IDC_COMPAREWEBPAGE_USERDATAFOLDER_PERPANE, m_bUserDataFolderPerPane);
36         //}}AFX_DATA_MAP
37 }
38
39
40 BEGIN_MESSAGE_MAP(PropCompareWebPage, OptionsPanel)
41         //{{AFX_MSG_MAP(PropCompareWebPage)
42         ON_BN_CLICKED(IDC_COMPARE_DEFAULTS, OnDefaults)
43         //}}AFX_MSG_MAP
44 END_MESSAGE_MAP()
45
46 /** 
47  * @brief Reads options values from storage to UI.
48  * Property sheet calls this before displaying GUI to load values
49  * into members.
50  */
51 void PropCompareWebPage::ReadOptions()
52 {
53         m_sURLPatternToInclude = GetOptionsMgr()->GetString(OPT_CMP_WEB_URL_PATTERN_TO_INCLUDE);
54         m_sURLPatternToExclude = GetOptionsMgr()->GetString(OPT_CMP_WEB_URL_PATTERN_TO_EXCLUDE);
55         m_nUserDataFolderType = GetOptionsMgr()->GetInt(OPT_CMP_WEB_USERDATAFOLDER_TYPE);
56         m_bUserDataFolderPerPane = GetOptionsMgr()->GetBool(OPT_CMP_WEB_USERDATAFOLDER_PERPANE);
57 }
58
59 /** 
60  * @brief Writes options values from UI to storage.
61  * Property sheet calls this after dialog is closed with OK button to
62  * store values in member variables.
63  */
64 void PropCompareWebPage::WriteOptions()
65 {
66         GetOptionsMgr()->SaveOption(OPT_CMP_WEB_URL_PATTERN_TO_INCLUDE, m_sURLPatternToInclude);
67         GetOptionsMgr()->SaveOption(OPT_CMP_WEB_URL_PATTERN_TO_EXCLUDE, m_sURLPatternToExclude);
68         GetOptionsMgr()->SaveOption(OPT_CMP_WEB_USERDATAFOLDER_TYPE, m_nUserDataFolderType);
69         GetOptionsMgr()->SaveOption(OPT_CMP_WEB_USERDATAFOLDER_PERPANE, m_bUserDataFolderPerPane);
70 }
71
72 /** 
73  * @brief Called before propertysheet is drawn.
74  */
75 BOOL PropCompareWebPage::OnInitDialog()
76 {
77         SetDlgItemComboBoxList(IDC_COMPAREWEBPAGE_USERDATAFOLDER_TYPE,
78                 { _("AppData folder"), _("Install folder") });
79
80         OptionsPanel::OnInitDialog();
81         return TRUE;  // return TRUE unless you set the focus to a control
82 }
83
84 /** 
85  * @brief Sets options to defaults
86  */
87 void PropCompareWebPage::OnDefaults()
88 {
89         m_sURLPatternToInclude = GetOptionsMgr()->GetDefault<String>(OPT_CMP_WEB_URL_PATTERN_TO_INCLUDE);
90         m_sURLPatternToExclude = GetOptionsMgr()->GetDefault<String>(OPT_CMP_WEB_URL_PATTERN_TO_EXCLUDE);
91         m_bUserDataFolderPerPane = GetOptionsMgr()->GetDefault<bool>(OPT_CMP_WEB_USERDATAFOLDER_PERPANE);
92         m_nUserDataFolderType = GetOptionsMgr()->GetDefault<unsigned>(OPT_CMP_WEB_USERDATAFOLDER_TYPE);
93         UpdateData(FALSE);
94 }
95