#include "CreateBranchTagDlg.h"\r
#include "Settings\SettingGitRemote.h"\r
#include "SinglePropSheetDlg.h"\r
+#include "ConfirmDelRefDlg.h"\r
\r
\r
// CBrowseRefsDlg dialog\r
CPoint clientPoint=point;\r
m_RefTreeCtrl.ScreenToClient(&clientPoint);\r
\r
- int selectedItemCount=m_ListRefLeafs.GetSelectedCount();\r
-\r
\r
std::vector<CShadowTree*> selectedTrees;\r
- selectedTrees.reserve(selectedItemCount);\r
+ selectedTrees.reserve(m_ListRefLeafs.GetSelectedCount());\r
POSITION pos=m_ListRefLeafs.GetFirstSelectedItemPosition();\r
while(pos)\r
{\r
CMenu popupMenu;\r
popupMenu.CreatePopupMenu();\r
\r
- if(selectedItemCount==1)\r
+ if(selectedTrees.size()==1)\r
{\r
popupMenu.AppendMenu(MF_STRING,eCmd_ViewLog,L"View log");\r
+ if(selectedTrees[0]->IsFrom(L"refs/heads"))\r
+ popupMenu.AppendMenu(MF_STRING,eCmd_DeleteBranch,L"Delete Branch");\r
+ else if(selectedTrees[0]->IsFrom(L"refs/tags"))\r
+ popupMenu.AppendMenu(MF_STRING,eCmd_DeleteTag,L"Delete Tag");\r
\r
// CShadowTree* pTree = (CShadowTree*)m_ListRefLeafs.GetItemData(pNMHDR->idFrom);\r
// if(pTree==NULL)\r
dlg.DoModal();\r
}\r
break;\r
+ case eCmd_DeleteBranch:\r
+ {\r
+ CConfirmDelRefDlg(selectedTrees[0]->GetRefName(),this).DoModal();\r
+ Refresh();\r
+ }\r
+ break;\r
+ case eCmd_DeleteTag:\r
+ {\r
+ CConfirmDelRefDlg(selectedTrees[0]->GetRefName(),this).DoModal();\r
+ Refresh();\r
+ }\r
+ break;\r
}\r
}\r
\r
CSinglePropSheetDlg(L"Git Remote Settings",new CSettingGitRemote(m_cmdPath),this).DoModal();\r
// CSettingGitRemote W_Remotes(m_cmdPath);\r
// W_Remotes.DoModal();\r
+ Refresh();\r
}\r
break;\r
case eCmd_CreateBranch:\r