OSDN Git Service

Fixed issue #126: Config dialog / control
authorFrank Li <lznuaa@gmail.com>
Thu, 6 Aug 2009 15:03:20 +0000 (23:03 +0800)
committerFrank Li <lznuaa@gmail.com>
Thu, 6 Aug 2009 15:03:20 +0000 (23:03 +0800)
Signed-off-by: Frank Li <lznuaa@gmail.com>
src/Resources/TortoiseProcENG.rc
src/TortoiseProc/Settings/SettingGitConfig.cpp
src/TortoiseProc/Settings/SettingGitConfig.h
src/TortoiseProc/resource.h

index 8877079..e4ace23 100644 (file)
Binary files a/src/Resources/TortoiseProcENG.rc and b/src/Resources/TortoiseProcENG.rc differ
index a0d1ac1..8078053 100644 (file)
@@ -8,6 +8,7 @@
 #include "Settings.h"\r
 #include "GitAdminDir.h"\r
 #include "MessageBox.h"\r
+#include "ProjectProperties.h"\r
 // CSettingGitConfig dialog\r
 \r
 IMPLEMENT_DYNAMIC(CSettingGitConfig, ISettingsPropPage)\r
@@ -17,6 +18,8 @@ CSettingGitConfig::CSettingGitConfig()
     , m_UserName(_T(""))\r
     , m_UserEmail(_T(""))\r
     , m_bGlobal(FALSE)\r
+       , m_bAutoCrlf(FALSE)\r
+       , m_bSafeCrLf(FALSE)\r
 {\r
 \r
 }\r
@@ -27,10 +30,12 @@ CSettingGitConfig::~CSettingGitConfig()
 \r
 void CSettingGitConfig::DoDataExchange(CDataExchange* pDX)\r
 {\r
-    CPropertyPage::DoDataExchange(pDX);\r
-    DDX_Text(pDX, IDC_GIT_USERNAME, m_UserName);\r
-    DDX_Text(pDX, IDC_GIT_USEREMAIL, m_UserEmail);\r
-    DDX_Check(pDX, IDC_CHECK_GLOBAL, m_bGlobal);\r
+       CPropertyPage::DoDataExchange(pDX);\r
+       DDX_Text(pDX, IDC_GIT_USERNAME, m_UserName);\r
+       DDX_Text(pDX, IDC_GIT_USEREMAIL, m_UserEmail);\r
+       DDX_Check(pDX, IDC_CHECK_GLOBAL, m_bGlobal);\r
+       DDX_Check(pDX, IDC_CHECK_AUTOCRLF, m_bAutoCrlf);\r
+       DDX_Check(pDX, IDC_CHECK_SAFECRLF, m_bSafeCrLf);\r
 }\r
 \r
 \r
@@ -38,6 +43,8 @@ BEGIN_MESSAGE_MAP(CSettingGitConfig, CPropertyPage)
     ON_BN_CLICKED(IDC_CHECK_GLOBAL, &CSettingGitConfig::OnBnClickedCheckGlobal)\r
     ON_EN_CHANGE(IDC_GIT_USERNAME, &CSettingGitConfig::OnEnChangeGitUsername)\r
     ON_EN_CHANGE(IDC_GIT_USEREMAIL, &CSettingGitConfig::OnEnChangeGitUseremail)\r
+       ON_BN_CLICKED(IDC_CHECK_AUTOCRLF, &CSettingGitConfig::OnBnClickedCheckAutocrlf)\r
+       ON_BN_CLICKED(IDC_CHECK_SAFECRLF, &CSettingGitConfig::OnBnClickedCheckSafecrlf)\r
 END_MESSAGE_MAP()\r
 \r
 BOOL CSettingGitConfig::OnInitDialog()\r
@@ -46,7 +53,10 @@ BOOL CSettingGitConfig::OnInitDialog()
 \r
        m_UserName=g_Git.GetUserName();\r
        m_UserEmail=g_Git.GetUserEmail();\r
-       \r
+\r
+       ProjectProperties::GetBOOLProps(this->m_bAutoCrlf,_T("core.autocrlf"));\r
+       ProjectProperties::GetBOOLProps(this->m_bSafeCrLf, _T("core.safecrlf"));\r
+\r
        CString str=((CSettings*)GetParent())->m_CmdPath.GetWinPath();\r
        CString proj;\r
        if(     g_GitAdminDir.HasAdminDir(str,&proj) )\r
@@ -115,6 +125,32 @@ BOOL CSettingGitConfig::OnApply()
                return FALSE;\r
        }\r
 \r
+       out.Empty();\r
+       cmd.Format(_T("git.exe config %s core.autocrlf \"%s\""),global,this->m_bAutoCrlf?_T("true"):_T("false"));\r
+       if(g_Git.Run(cmd,&out,CP_ACP))\r
+       {\r
+               CMessageBox::Show(NULL,out,_T("TortoiseGit"),MB_OK|MB_ICONERROR);\r
+               return FALSE;\r
+       }\r
+\r
+       out.Empty();\r
+       cmd.Format(_T("git.exe config %s core.safecrlf \"%s\""),global,this->m_bSafeCrLf?_T("true"):_T("false"));\r
+       if(g_Git.Run(cmd,&out,CP_ACP))\r
+       {\r
+               CMessageBox::Show(NULL,out,_T("TortoiseGit"),MB_OK|MB_ICONERROR);\r
+               return FALSE;\r
+       }\r
     SetModified(FALSE);\r
        return ISettingsPropPage::OnApply();\r
-}
\ No newline at end of file
+}\r
+void CSettingGitConfig::OnBnClickedCheckAutocrlf()\r
+{\r
+       // TODO: Add your control notification handler code here\r
+       SetModified();\r
+}\r
+\r
+void CSettingGitConfig::OnBnClickedCheckSafecrlf()\r
+{\r
+       // TODO: Add your control notification handler code here\r
+       SetModified();\r
+}\r
index f81f04b..63249f5 100644 (file)
@@ -30,4 +30,8 @@ public:
     afx_msg void OnBnClickedCheckGlobal();\r
     afx_msg void OnEnChangeGitUsername();\r
     afx_msg void OnEnChangeGitUseremail();\r
+       BOOL m_bAutoCrlf;\r
+       BOOL m_bSafeCrLf;\r
+       afx_msg void OnBnClickedCheckAutocrlf();\r
+       afx_msg void OnBnClickedCheckSafecrlf();\r
 };\r
index f79c778..969805c 100644 (file)
Binary files a/src/TortoiseProc/resource.h and b/src/TortoiseProc/resource.h differ