OSDN Git Service

fix some dialog can't show after resize and close and open again
[tortoisegit/TortoiseGitJp.git] / src / TortoiseProc / PushDlg.cpp
1 // PushDlg.cpp : implementation file\r
2 //\r
3 \r
4 #include "stdafx.h"\r
5 #include "TortoiseProc.h"\r
6 #include "PushDlg.h"\r
7 \r
8 #include "Git.h"\r
9 // CPushDlg dialog\r
10 \r
11 IMPLEMENT_DYNAMIC(CPushDlg, CResizableStandAloneDialog)\r
12 \r
13 CPushDlg::CPushDlg(CWnd* pParent /*=NULL*/)\r
14         : CResizableStandAloneDialog(CPushDlg::IDD, pParent)\r
15 {\r
16 \r
17 }\r
18 \r
19 CPushDlg::~CPushDlg()\r
20 {\r
21 }\r
22 \r
23 void CPushDlg::DoDataExchange(CDataExchange* pDX)\r
24 {\r
25         CResizableStandAloneDialog::DoDataExchange(pDX);\r
26         DDX_Control(pDX, IDC_BRANCH_REMOTE, this->m_BranchRemote);\r
27         DDX_Control(pDX, IDC_BRANCH_SOURCE, this->m_BranchSource);\r
28         DDX_Control(pDX, IDC_REMOTE, this->m_Remote);\r
29         DDX_Control(pDX, IDC_URL, this->m_RemoteURL);\r
30         DDX_Check(pDX,IDC_FORCE,this->m_bForce);\r
31         DDX_Check(pDX,IDC_PACK,this->m_bPack);\r
32         DDX_Check(pDX,IDC_TAGS,this->m_bTags);\r
33 \r
34 }\r
35 \r
36 \r
37 BEGIN_MESSAGE_MAP(CPushDlg, CResizableStandAloneDialog)\r
38         ON_BN_CLICKED(IDC_RD_REMOTE, &CPushDlg::OnBnClickedRd)\r
39         ON_BN_CLICKED(IDC_RD_URL, &CPushDlg::OnBnClickedRd)\r
40         ON_CBN_SELCHANGE(IDC_BRANCH_SOURCE, &CPushDlg::OnCbnSelchangeBranchSource)\r
41         ON_BN_CLICKED(IDOK, &CPushDlg::OnBnClickedOk)\r
42 END_MESSAGE_MAP()\r
43 \r
44 BOOL CPushDlg::OnInitDialog()\r
45 {\r
46         CResizableStandAloneDialog::OnInitDialog();\r
47         \r
48         AddAnchor(IDOK,BOTTOM_RIGHT);\r
49         AddAnchor(IDCANCEL,BOTTOM_RIGHT);\r
50         AddAnchor(IDC_BRANCH_GROUP, TOP_LEFT,TOP_RIGHT);\r
51         AddAnchor(IDC_STATIC_REMOTE, TOP_RIGHT);\r
52         AddAnchor(IDC_STATIC_SOURCE, TOP_LEFT);\r
53 \r
54         AddAnchor(IDC_BRANCH_REMOTE, TOP_RIGHT);\r
55         AddAnchor(IDC_BRANCH_SOURCE, TOP_LEFT);\r
56 \r
57         AddAnchor(IDC_URL_GROUP, TOP_LEFT,TOP_RIGHT);\r
58         AddAnchor(IDC_RD_REMOTE, TOP_LEFT);\r
59         AddAnchor(IDC_RD_URL, TOP_LEFT);\r
60 \r
61         AddAnchor(IDC_REMOTE, TOP_LEFT, TOP_RIGHT);\r
62         \r
63         AddAnchor(IDC_URL, TOP_LEFT,TOP_RIGHT);\r
64 \r
65         AddAnchor(IDC_OPTION_GROUP, TOP_LEFT,TOP_RIGHT);\r
66         \r
67         AddAnchor(IDC_FORCE, TOP_LEFT);\r
68         AddAnchor(IDC_PACK, TOP_LEFT);\r
69         AddAnchor(IDC_TAGS, TOP_LEFT);\r
70 \r
71 \r
72         AddOthersToAnchor();\r
73 \r
74 \r
75         EnableSaveRestore(_T("PushDlg"));\r
76 \r
77         m_RemoteURL.SetURLHistory(TRUE);\r
78         \r
79         CString WorkingDir=g_Git.m_CurrentDir;\r
80         WorkingDir.Replace(_T(':'),_T('_'));\r
81         m_RemoteURL.LoadHistory(CString(_T("Software\\TortoiseGit\\History\\PushURLS\\"))+WorkingDir, _T("url"));\r
82         m_RemoteURL.SetCurSel(0);\r
83 \r
84         m_RemoteURL.EnableWindow(FALSE);\r
85         CheckRadioButton(IDC_RD_REMOTE,IDC_RD_URL,IDC_RD_REMOTE);\r
86 \r
87         STRING_VECTOR list;\r
88 \r
89         if(!g_Git.GetRemoteList(list))\r
90         {       \r
91                 for(unsigned int i=0;i<list.size();i++)\r
92                         m_Remote.AddString(list[i]);\r
93         }\r
94 \r
95         int current=0;\r
96         list.clear();\r
97         if(!g_Git.GetBranchList(list,&current))\r
98         {\r
99                 for(unsigned int i=0;i<list.size();i++)\r
100                         m_BranchSource.AddString(list[i]);\r
101         }\r
102         m_BranchSource.SetCurSel(current);\r
103         \r
104         m_BranchRemote.LoadHistory(CString(_T("Software\\TortoiseGit\\History\\RemoteBranch\\"))+WorkingDir, _T("branch"));\r
105         m_BranchRemote.SetCurSel(0);\r
106 \r
107         //m_BranchRemote.SetWindowTextW(m_BranchSource.GetString());\r
108 \r
109         \r
110         return TRUE;\r
111 }\r
112 \r
113 // CPushDlg message handlers\r
114 \r
115 void CPushDlg::OnBnClickedRd()\r
116 {\r
117         // TODO: Add your control notification handler code here\r
118         // TODO: Add your control notification handler code here\r
119         if( GetCheckedRadioButton(IDC_RD_REMOTE,IDC_RD_URL) == IDC_RD_REMOTE)\r
120         {\r
121                 m_Remote.EnableWindow(TRUE);\r
122                 m_RemoteURL.EnableWindow(FALSE);;\r
123         }\r
124         if( GetCheckedRadioButton(IDC_RD_REMOTE,IDC_RD_URL) == IDC_RD_URL)\r
125         {\r
126                 m_Remote.EnableWindow(FALSE);\r
127                 m_RemoteURL.EnableWindow(TRUE);\r
128         }\r
129 }\r
130 \r
131 \r
132 void CPushDlg::OnCbnSelchangeBranchSource()\r
133 {\r
134         // TODO: Add your control notification handler code here\r
135         m_BranchRemote.SetWindowTextW(m_BranchSource.GetString());\r
136 }\r
137 \r
138 void CPushDlg::OnBnClickedOk()\r
139 {\r
140         // TODO: Add your control notification handler code here\r
141         CResizableStandAloneDialog::UpdateData(TRUE);\r
142 \r
143         if( GetCheckedRadioButton(IDC_RD_REMOTE,IDC_RD_URL) == IDC_RD_REMOTE)\r
144         {\r
145                 m_URL=m_Remote.GetString();\r
146         }\r
147         if( GetCheckedRadioButton(IDC_RD_REMOTE,IDC_RD_URL) == IDC_RD_URL)\r
148         {\r
149                 m_URL=m_RemoteURL.GetString();\r
150         }\r
151 \r
152         this->m_BranchRemoteName=m_BranchRemote.GetString();\r
153         this->m_BranchSourceName=m_BranchSource.GetString();\r
154 \r
155         this->m_RemoteURL.SaveHistory();\r
156         this->m_BranchRemote.SaveHistory();\r
157         CResizableStandAloneDialog::OnOK();\r
158 }\r