1 // TortoiseGit - a Windows shell extension for easy version control
3 // Copyright (C) 2009-2013 - TortoiseGit
5 // This program is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU General Public License
7 // as published by the Free Software Foundation; either version 2
8 // of the License, or (at your option) any later version.
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software Foundation,
17 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 // settings\SettingsBugtraqConfig.cpp : implementation file
23 #include "TortoiseProc.h"
24 #include "SettingsBugtraqConfig.h"
25 #include "ProjectProperties.h"
27 // CSettingsBugtraqConfig dialog
29 IMPLEMENT_DYNAMIC(CSettingsBugtraqConfig
, ISettingsPropPage
)
31 CSettingsBugtraqConfig::CSettingsBugtraqConfig(CString cmdPath
)
32 : ISettingsPropPage(CSettingsBugtraqConfig::IDD
)
41 CSettingsBugtraqConfig::~CSettingsBugtraqConfig()
45 void CSettingsBugtraqConfig::DoDataExchange(CDataExchange
* pDX
)
47 CPropertyPage::DoDataExchange(pDX
);
48 DDX_Text(pDX
, IDC_BUGTRAQ_URL
, m_URL
);
49 DDX_Control(pDX
, IDC_BUGTRAQ_WARNINGIFNOISSUE
, m_cWarningifnoissue
);
50 DDX_Text(pDX
, IDC_BUGTRAQ_MESSAGE
, m_Message
);
51 DDX_Control(pDX
, IDC_BUGTRAQ_APPEND
, m_cAppend
);
52 DDX_Text(pDX
, IDC_BUGTRAQ_LABEL
, m_Label
);
53 DDX_Control(pDX
, IDC_BUGTRAQ_NUMBER
, m_cNumber
);
54 DDX_Text(pDX
, IDC_BUGTRAQ_LOGREGEX
, m_Logregex
);
55 DDX_Control(pDX
, IDC_BUGTRAQ_LOGREGEX
, m_BugtraqRegex1
);
59 BEGIN_MESSAGE_MAP(CSettingsBugtraqConfig
, ISettingsPropPage
)
60 GITSETTINGS_RADIO_EVENT
61 ON_EN_CHANGE(IDC_BUGTRAQ_URL
, &CSettingsBugtraqConfig::OnChange
)
62 ON_CBN_SELCHANGE(IDC_BUGTRAQ_WARNINGIFNOISSUE
, &CSettingsBugtraqConfig::OnChange
)
63 ON_EN_CHANGE(IDC_BUGTRAQ_MESSAGE
, &CSettingsBugtraqConfig::OnChange
)
64 ON_CBN_SELCHANGE(IDC_BUGTRAQ_APPEND
, &CSettingsBugtraqConfig::OnChange
)
65 ON_EN_CHANGE(IDC_BUGTRAQ_LABEL
, &CSettingsBugtraqConfig::OnChange
)
66 ON_CBN_SELCHANGE(IDC_BUGTRAQ_NUMBER
, &CSettingsBugtraqConfig::OnChange
)
67 ON_EN_CHANGE(IDC_BUGTRAQ_LOGREGEX
, &CSettingsBugtraqConfig::OnChange
)
70 BOOL
CSettingsBugtraqConfig::OnInitDialog()
72 ISettingsPropPage::OnInitDialog();
74 AddTrueFalseToComboBox(m_cWarningifnoissue
);
75 AddTrueFalseToComboBox(m_cAppend
);
76 AddTrueFalseToComboBox(m_cNumber
);
78 InitGitSettings(this, true);
80 this->UpdateData(FALSE
);
84 void CSettingsBugtraqConfig::OnChange()
90 void CSettingsBugtraqConfig::LoadDataImpl(git_config
* config
)
92 if (m_iConfigSource
== 0)
94 // use project properties here, so that we correctly get the default values
95 ProjectProperties props
;
96 props
.ReadProps(g_Git
.m_CurrentDir
);
98 m_Logregex
= props
.sCheckRe
+ _T("\n") + props
.sBugIDRe
;
99 m_Label
= props
.sLabel
;
100 m_Message
= props
.sMessage
;
103 m_cAppend
.SetCurSel(1);
105 m_cAppend
.SetCurSel(2);
108 m_cNumber
.SetCurSel(1);
110 m_cNumber
.SetCurSel(2);
112 if (props
.bWarnIfNoIssue
)
113 m_cWarningifnoissue
.SetCurSel(1);
115 m_cWarningifnoissue
.SetCurSel(2);
119 GetConfigValue(config
, BUGTRAQPROPNAME_URL
, m_URL
);
120 GetConfigValue(config
, BUGTRAQPROPNAME_MESSAGE
, m_Message
);
121 GetConfigValue(config
, BUGTRAQPROPNAME_LABEL
, m_Label
);
122 GetBoolConfigValueComboBox(config
, BUGTRAQPROPNAME_NUMBER
, m_cNumber
);
123 GetBoolConfigValueComboBox(config
, BUGTRAQPROPNAME_APPEND
, m_cAppend
);
124 GetBoolConfigValueComboBox(config
, BUGTRAQPROPNAME_WARNIFNOISSUE
, m_cWarningifnoissue
);
125 GetConfigValue(config
, BUGTRAQPROPNAME_LOGREGEX
, m_Logregex
);
129 m_Logregex
.Replace(_T("\n"), _T("\r\n"));
136 BOOL
CSettingsBugtraqConfig::SafeDataImpl(git_config
* config
)
138 if (!Save(config
, BUGTRAQPROPNAME_URL
, m_URL
))
141 if (!Save(config
, BUGTRAQPROPNAME_MESSAGE
, m_Message
))
144 if (!Save(config
, BUGTRAQPROPNAME_LABEL
, m_Label
))
149 m_cAppend
.GetWindowText(value
);
150 if (!Save(config
, BUGTRAQPROPNAME_APPEND
, value
))
155 m_cNumber
.GetWindowText(value
);
156 if (!Save(config
, BUGTRAQPROPNAME_NUMBER
, value
))
161 m_cWarningifnoissue
.GetWindowText(value
);
162 if (!Save(config
, BUGTRAQPROPNAME_WARNIFNOISSUE
, value
))
166 CString
value(m_Logregex
);
167 value
.Replace(_T("\r\n"),_T("\n"));
168 if (!Save(config
, BUGTRAQPROPNAME_LOGREGEX
, value
))
175 BOOL
CSettingsBugtraqConfig::OnApply()