}\r
\r
\r
-#if 0 \r
+ \r
if (GetSelectedCount() > 0)\r
{\r
-\r
+#if 0 \r
if ((!entry->IsFolder())&&(wcStatus >= git_wc_status_normal)\r
&&(wcStatus!=git_wc_status_missing)&&(wcStatus!=git_wc_status_deleted)\r
&&(wcStatus!=git_wc_status_added))\r
popup.AppendMenu(MF_SEPARATOR);\r
popup.AppendMenuIcon(IDSVNLC_PROPERTIES, IDS_STATUSLIST_CONTEXT_PROPERTIES, IDI_PROPERTIES);\r
}\r
+#endif \r
popup.AppendMenu(MF_SEPARATOR);\r
popup.AppendMenuIcon(IDSVNLC_COPY, IDS_STATUSLIST_CONTEXT_COPY, IDI_COPYCLIP);\r
popup.AppendMenuIcon(IDSVNLC_COPYEXT, IDS_STATUSLIST_CONTEXT_COPYEXT, IDI_COPYCLIP);\r
+#if 0\r
if ((m_dwContextMenus & SVNSLC_POPCHANGELISTS)&&(XPorLater)\r
&&(wcStatus != git_wc_status_unversioned)&&(wcStatus != git_wc_status_none))\r
{\r
popup.AppendMenu(MF_POPUP|MF_STRING, (UINT_PTR)changelistSubMenu.GetSafeHmenu(), temp);\r
}\r
}\r
- }\r
#endif\r
+ }\r
+\r
int cmd = popup.TrackPopupMenu(TPM_RETURNCMD | TPM_LEFTALIGN | TPM_NONOTIFY, point.x, point.y, this, 0);\r
\r
m_bBlock = TRUE;\r
bool bForce = false;\r
switch (cmd)\r
{\r
+ case IDSVNLC_VIEWREV:\r
+ OpenFile(filepath,NOTEPAD2);\r
+ break;\r
case IDSVNLC_OPEN:\r
- {\r
- CString file;\r
- if(this->m_CurrentVersion.IsEmpty() || m_CurrentVersion == GIT_REV_ZERO)\r
- {\r
- file= filepath->GetWinPath();\r
- }else\r
- {\r
- CString temppath;\r
- GetTempPath(temppath);\r
- file.Format(_T("%s%s_%s%s"),\r
- temppath, \r
- filepath->GetBaseFilename(),\r
- m_CurrentVersion.Left(6),\r
- filepath->GetFileExtension());\r
-\r
- }\r
- int ret = (int)ShellExecute(this->m_hWnd, NULL,file, NULL, NULL, SW_SHOW);\r
- if (ret <= HINSTANCE_ERROR)\r
- {\r
- CString cmd = _T("RUNDLL32 Shell32,OpenAs_RunDLL ");\r
- cmd += file;\r
- CAppUtils::LaunchApplication(cmd, NULL, false);\r
- }\r
- }\r
+ OpenFile(filepath,OPEN);\r
break;\r
case IDSVNLC_OPENWITH:\r
- {\r
- CString file;\r
- if(m_CurrentVersion.IsEmpty() || m_CurrentVersion == GIT_REV_ZERO)\r
- {\r
- file= filepath->GetWinPath();\r
- }else\r
- {\r
- CString temppath;\r
- GetTempPath(temppath);\r
- file.Format(_T("%s%s_%s%s"),\r
- temppath, \r
- filepath->GetBaseFilename(),\r
- m_CurrentVersion.Left(6),\r
- filepath->GetFileExtension());\r
-\r
- }\r
-\r
- CString cmd = _T("RUNDLL32 Shell32,OpenAs_RunDLL ");\r
- cmd += file + _T(" ");\r
- CAppUtils::LaunchApplication(cmd, NULL, false);\r
- }\r
+ OpenFile(filepath,OPEN_WITH);\r
break;\r
case IDSVNLC_EXPLORE:\r
{\r
if(path == NULL)\r
continue;\r
CString cmd;\r
- cmd.Format(_T("git.exe add %s"),path->GetGitPathString());\r
+ cmd.Format(_T("git.exe add \"%s\""),path->GetGitPathString());\r
CString output;\r
- if(!g_Git.Run(cmd,&output,CP_OEMCP))\r
+ if(!g_Git.Run(cmd,&output,CP_ACP))\r
{\r
path->m_Action = CTGitPath::LOGACTIONS_ADDED;\r
SetEntryCheck(path,index,true);\r
{\r
CString cmd,output;\r
cmd.Format(_T("git.exe add \"%s\""),fentry->GetGitPathString());\r
- if(g_Git.Run(cmd,&output,CP_OEMCP))\r
+ if(g_Git.Run(cmd,&output,CP_ACP))\r
{\r
CMessageBox::Show(m_hWnd, output, _T("TortoiseSVN"), MB_ICONERROR);\r
}else\r
\r
bool CGitStatusListCtrl::CopySelectedEntriesToClipboard(DWORD dwCols)\r
{\r
-#if 0\r
+\r
static CString ponly(MAKEINTRESOURCE(IDS_STATUSLIST_PROPONLY));\r
static HINSTANCE hResourceHandle(AfxGetResourceHandle());\r
WORD langID = (WORD)CRegStdWORD(_T("Software\\TortoiseGit\\LanguageID"), GetUserDefaultLangID());\r
int index;\r
while ((index = GetNextSelectedItem(pos)) >= 0)\r
{\r
- FileEntry * entry = GetListEntry(index);\r
- sClipboard += entry->GetDisplayName();\r
+ CTGitPath * entry = (CTGitPath*)GetItemData(index);\r
+ if(entry == NULL)\r
+ continue;\r
+\r
+ sClipboard += entry->GetWinPathString();\r
if (selection & SVNSLC_COLFILENAME)\r
{\r
- sClipboard += _T("\t")+entry->path.GetFileOrDirectoryName();\r
+ sClipboard += _T("\t")+entry->GetFileOrDirectoryName();\r
}\r
if (selection & SVNSLC_COLEXT)\r
{\r
- sClipboard += _T("\t")+entry->path.GetFileExtension();\r
+ sClipboard += _T("\t")+entry->GetFileExtension();\r
}\r
+ \r
if (selection & SVNSLC_COLSTATUS)\r
{\r
+#if 0\r
if (entry->isNested)\r
{\r
temp.LoadString(IDS_STATUSLIST_NESTED);\r
_tcscat_s(buf, 100, ponly);\r
temp = buf;\r
}\r
- sClipboard += _T("\t")+temp;\r
+#endif\r
+ sClipboard += _T("\t")+entry->GetActionName();\r
}\r
+#if 0\r
if (selection & SVNSLC_COLTEXTSTATUS)\r
{\r
+\r
if (entry->isNested)\r
{\r
temp.LoadString(IDS_STATUSLIST_NESTED);\r
}\r
sClipboard += _T("\t")+temp;\r
}\r
+#endif\r
+#if 0\r
if (selection & SVNSLC_COLREMOTESTATUS)\r
{\r
if (entry->isNested)\r
temp.Empty();\r
sClipboard += _T("\t")+temp;\r
}\r
+\r
if (selection & SVNSLC_COLDATE)\r
{\r
TCHAR datebuf[SVN_DATE_BUFFER];\r
sClipboard += _T("\t") + value;\r
}\r
}\r
+#endif\r
+ if (selection & SVNSLC_COLADD)\r
+ {\r
+ sClipboard += _T("\t")+entry->m_StatAdd;\r
+ }\r
+ if (selection & SVNSLC_COLDEL)\r
+ {\r
+ sClipboard += _T("\t")+entry->m_StatDel;\r
+ }\r
\r
sClipboard += _T("\r\n");\r
}\r
\r
return CStringUtils::WriteAsciiStringToClipboard(sClipboard);\r
-#endif\r
+\r
return TRUE;\r
\r
}\r
\r
out.Format(_T("%d files revert to %s"),count,m_CurrentVersion.Left(6));\r
CMessageBox::Show(NULL,out,_T("TortoiseGit"),MB_OK);\r
+}\r
+\r
+void CGitStatusListCtrl::OpenFile(CTGitPath*filepath,int mode)\r
+{\r
+ CString file;\r
+ if(this->m_CurrentVersion.IsEmpty() || m_CurrentVersion == GIT_REV_ZERO)\r
+ {\r
+ file= filepath->GetWinPath();\r
+ }else\r
+ {\r
+ CString temppath;\r
+ GetTempPath(temppath);\r
+ file.Format(_T("%s%s_%s%s"),\r
+ temppath, \r
+ filepath->GetBaseFilename(),\r
+ m_CurrentVersion.Left(6),\r
+ filepath->GetFileExtension());\r
+ CString cmd,out;\r
+ cmd.Format(_T("git.exe cat-file -p %s:\"%s\""),m_CurrentVersion,filepath->GetGitPathString());\r
+ if(g_Git.RunLogFile(cmd,file))\r
+ {\r
+ CMessageBox::Show(NULL,out,_T("TortoiseGit"),MB_OK);\r
+ return;\r
+ }\r
+\r
+ }\r
+ if(mode == NOTEPAD2)\r
+ {\r
+ CString sCmd;\r
+ sCmd.Format(_T("\"%s\" \"%s\""),\r
+ (LPCTSTR)(CPathUtils::GetAppDirectory()+_T("notepad2.exe")), file);\r
+\r
+ CAppUtils::LaunchApplication(sCmd, NULL, false);\r
+ return ;\r
+ }\r
+ int ret = HINSTANCE_ERROR;\r
+\r
+ if(mode == OPEN )\r
+ {\r
+ ret = (int)ShellExecute(this->m_hWnd, NULL,file, NULL, NULL, SW_SHOW);\r
+ \r
+ if (ret > HINSTANCE_ERROR)\r
+ {\r
+ return;\r
+ }\r
+ }\r
+\r
+ {\r
+ CString cmd = _T("RUNDLL32 Shell32,OpenAs_RunDLL ");\r
+ cmd += file;\r
+ CAppUtils::LaunchApplication(cmd, NULL, false);\r
+ }\r
+ \r
}
\ No newline at end of file