OSDN Git Service

Add Copy File List Clipboard
authorFrank Li <lznuaa@gmail.com>
Tue, 10 Mar 2009 15:12:17 +0000 (23:12 +0800)
committerFrank Li <lznuaa@gmail.com>
Tue, 10 Mar 2009 15:12:17 +0000 (23:12 +0800)
Signed-off-by: Frank Li <lznuaa@gmail.com>
Signed-off-by: Frank Li <lznuaa@gmail.com>
src/Git/GitStatusListCtrl.cpp

index 3cd811a..aadb314 100644 (file)
@@ -2528,10 +2528,10 @@ void CGitStatusListCtrl::OnContextMenuList(CWnd * pWnd, CPoint point)
                        }\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
@@ -2566,9 +2566,11 @@ void CGitStatusListCtrl::OnContextMenuList(CWnd * pWnd, CPoint point)
                                        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
@@ -2614,8 +2616,9 @@ void CGitStatusListCtrl::OnContextMenuList(CWnd * pWnd, CPoint point)
                                                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
@@ -4790,7 +4793,7 @@ BOOL CGitStatusListCtrl::PreTranslateMessage(MSG* pMsg)
 \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
@@ -4821,18 +4824,23 @@ bool CGitStatusListCtrl::CopySelectedEntriesToClipboard(DWORD dwCols)
        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
@@ -4851,10 +4859,13 @@ bool CGitStatusListCtrl::CopySelectedEntriesToClipboard(DWORD dwCols)
                                        _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
@@ -4870,6 +4881,8 @@ bool CGitStatusListCtrl::CopySelectedEntriesToClipboard(DWORD dwCols)
                        }\r
                        sClipboard += _T("\t")+temp;\r
                }\r
+#endif\r
+#if 0\r
                if (selection & SVNSLC_COLREMOTESTATUS)\r
                {\r
                        if (entry->isNested)\r
@@ -4992,6 +5005,7 @@ bool CGitStatusListCtrl::CopySelectedEntriesToClipboard(DWORD dwCols)
                                temp.Empty();\r
                        sClipboard += _T("\t")+temp;\r
                }\r
+\r
                if (selection & SVNSLC_COLDATE)\r
                {\r
                        TCHAR datebuf[SVN_DATE_BUFFER];\r
@@ -5023,12 +5037,21 @@ bool CGitStatusListCtrl::CopySelectedEntriesToClipboard(DWORD dwCols)
                 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