OSDN Git Service

Fixed issue #113: (10) Push and push times out on WebDAV passwords
[tortoisegit/TortoiseGitJp.git] / src / TortoiseProc / Settings / Settings.cpp
index 1a08e0c..8ec5c95 100644 (file)
 #include "MessageBox.h"\r
 #include "..\..\TGitCache\CacheInterface.h"\r
 #include "CommonResource.h"\r
-\r
+#include "GitAdminDir.h"\r
 \r
 IMPLEMENT_DYNAMIC(CSettings, CTreePropSheet)\r
-CSettings::CSettings(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)\r
+CSettings::CSettings(UINT nIDCaption,CTGitPath *cmdPath, CWnd* pParentWnd, UINT iSelectPage)\r
        :CTreePropSheet(nIDCaption, pParentWnd, iSelectPage)\r
 {\r
+       if(cmdPath)\r
+               this->m_CmdPath=*cmdPath;\r
+\r
        m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);\r
        AddPropPages();\r
 }\r
@@ -60,7 +63,8 @@ void CSettings::AddPropPages()
        m_pBugTraqPage = new CSetBugTraq();\r
        m_pTBlamePage = new CSettingsTBlame();\r
        m_pGitConfig = new CSettingGitConfig();\r
-       m_pGitRemote = new CSettingGitRemote();\r
+       m_pGitRemote = new CSettingGitRemote(m_CmdPath.GetWinPath());\r
+       m_pBugtraqConfig = new CSettingsBugtraqConfig(m_CmdPath.GetWinPath());\r
 \r
 \r
        SetPageIcon(m_pMainPage, m_pMainPage->GetIconID());\r
@@ -86,6 +90,7 @@ void CSettings::AddPropPages()
        SetPageIcon(m_pGitConfig, m_pGitConfig->GetIconID());\r
        SetPageIcon(m_pGitRemote, m_pGitRemote->GetIconID());\r
        SetPageIcon(m_pBugTraqPage, m_pBugTraqPage->GetIconID());\r
+       SetPageIcon(m_pBugtraqConfig, m_pBugtraqConfig->GetIconID());\r
        SetPageIcon(m_pTBlamePage, m_pTBlamePage->GetIconID());\r
 \r
        AddPage(m_pMainPage);\r
@@ -105,11 +110,19 @@ void CSettings::AddPropPages()
        AddPage(m_pSavedPage);\r
 \r
        AddPage(m_pGitConfig);\r
-       AddPage(m_pGitRemote);\r
+\r
+       if(     g_GitAdminDir.HasAdminDir(this->m_CmdPath.GetWinPath()) )\r
+       {\r
+               AddPage(m_pGitRemote);\r
+       }\r
 //     AddPage(m_pGitRemotem_pLogCachePage);\r
 //    AddPage(m_pLogCacheListPage);\r
 //     AddPage(m_pHooksPage);\r
        AddPage(m_pBugTraqPage);\r
+       if(     g_GitAdminDir.HasAdminDir(this->m_CmdPath.GetWinPath()) )\r
+       {\r
+               AddPage(m_pBugtraqConfig);\r
+       }\r
        AddPage(m_pTBlamePage);\r
 }\r
 \r
@@ -138,6 +151,7 @@ void CSettings::RemovePropPages()
 \r
        delete m_pGitConfig;\r
        delete m_pGitRemote;\r
+       delete m_pBugtraqConfig;\r
 \r
 }\r
 \r
@@ -167,6 +181,7 @@ void CSettings::HandleRestart()
 \r
        restart |= m_pGitConfig->GetRestart();\r
        restart |= m_pGitRemote->GetRestart();\r
+       restart |= m_pBugTraqPage->GetRestart();\r
 \r
        if (restart & ISettingsPropPage::Restart_System)\r
        {\r
@@ -259,6 +274,74 @@ BOOL CSettings::OnInitDialog()
        SetIcon(m_hIcon, FALSE);                // Set small icon\r
 \r
        CenterWindow(CWnd::FromHandle(hWndExplorer));\r
+\r
+       if(this->m_DefaultPage == _T("gitremote"))\r
+       {\r
+               this->SetActivePage(this->m_pGitRemote);\r
+       }\r
+       if(this->m_DefaultPage == _T("main"))\r
+       {\r
+               this->SetActivePage(this->m_pMainPage);\r
+       }\r
+       if(this->m_DefaultPage == _T("overlay"))\r
+       {\r
+               this->SetActivePage(this->m_pOverlayPage);\r
+       }\r
+       if(this->m_DefaultPage == _T("overlays"))\r
+       {\r
+               this->SetActivePage(this->m_pOverlaysPage);\r
+       }\r
+       if(this->m_DefaultPage == _T("proxy"))\r
+       {\r
+               this->SetActivePage(this->m_pProxyPage);\r
+       }\r
+       \r
+       if(this->m_DefaultPage == _T("diff"))\r
+       {\r
+               this->SetActivePage(this->m_pProgsDiffPage);\r
+       }\r
+       if(this->m_DefaultPage == _T("merge"))\r
+       {\r
+               this->SetActivePage(this->m_pProgsMergePage);\r
+       }\r
+       if(this->m_DefaultPage == _T("unidiff"))\r
+       {\r
+               this->SetActivePage(this->m_pProgsUniDiffPage);\r
+       }\r
+       if(this->m_DefaultPage == _T("look"))\r
+       {\r
+               this->SetActivePage(this->m_pLookAndFeelPage);\r
+       }\r
+       if(this->m_DefaultPage == _T("dialog"))\r
+       {\r
+               this->SetActivePage(this->m_pDialogsPage);\r
+       }\r
+       if(this->m_DefaultPage == _T("misc"))\r
+       {\r
+               this->SetActivePage(this->m_pMiscPage);\r
+       }\r
+       if(this->m_DefaultPage == _T("graph"))\r
+       {\r
+               this->SetActivePage(this->m_pRevisionGraphPage);\r
+       }\r
+\r
+       if(this->m_DefaultPage == _T("color1"))\r
+       {\r
+               this->SetActivePage(this->m_pColorsPage);\r
+       }\r
+       if(this->m_DefaultPage == _T("color2"))\r
+       {\r
+               this->SetActivePage(this->m_pColorsPage2);\r
+       }\r
+       if(this->m_DefaultPage == _T("color3"))\r
+       {\r
+               this->SetActivePage(this->m_pColorsPage3);\r
+       }\r
+       if(this->m_DefaultPage == _T("save"))\r
+       {\r
+               this->SetActivePage(this->m_pSavedPage);\r
+       }\r
+\r
        return bResult;\r
 }\r
 \r