OSDN Git Service

Suppressed compiler warning
[tortoisegit/TortoiseGitJp.git] / src / Git / GitStatusListCtrl.cpp
index 3cd811a..077b775 100644 (file)
@@ -1408,9 +1408,9 @@ void CGitStatusListCtrl::AddEntry(CTGitPath * GitPath, WORD langID, int listInde
        int nCol = 1;\r
        CString entryname = GitPath->GetGitPathString();\r
        int icon_idx = 0;\r
-//     if (entry->isfolder)\r
-//             icon_idx = m_nIconFolder;\r
-//     else\r
+       if (GitPath->IsDirectory())\r
+               icon_idx = m_nIconFolder;\r
+       else\r
        {\r
                icon_idx = SYS_IMAGE_LIST().GetPathIconIndex(*GitPath);\r
        }\r
@@ -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
@@ -2680,18 +2683,26 @@ void CGitStatusListCtrl::OnContextMenuList(CWnd * pWnd, CPoint point)
                        case IDSVNLC_ADD:\r
                                {       // The add went ok, but we now need to run through the selected items again\r
                                        // and update their status\r
+                                       std::vector<int> selectIndex;\r
+\r
                                        POSITION pos = GetFirstSelectedItemPosition();\r
                                        int index;\r
                                        while ((index = GetNextSelectedItem(pos)) >= 0)\r
                                        {\r
+                                               selectIndex.push_back(index);\r
+                                       }\r
+                                       for(int i=0;i<selectIndex.size();i++)\r
+                                       {\r
+                                               index=selectIndex[i];\r
+\r
                                                CTGitPath * path=(CTGitPath*)GetItemData(index);\r
                                                ASSERT(path);\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
@@ -2748,7 +2759,7 @@ void CGitStatusListCtrl::OnContextMenuList(CWnd * pWnd, CPoint point)
                                                {\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
@@ -3169,7 +3180,19 @@ void CGitStatusListCtrl::OnContextMenuList(CWnd * pWnd, CPoint point)
                                                                        CTGitPath *path=(CTGitPath*)GetItemData(nItem);\r
                                                                        if (path->GetGitPathString()==targetList[i].GetGitPathString())\r
                                                                        {\r
-                                                                               RemoveListEntry(nItem);\r
+                                                                               if(path->m_Action & CTGitPath::LOGACTIONS_ADDED)\r
+                                                                               {\r
+                                                                                       path->m_Action = CTGitPath::LOGACTIONS_UNVER;\r
+                                                                                       SetEntryCheck(path,nItem,false);\r
+                                                                                       SetItemGroup(nItem,1);\r
+                                                                                       this->m_StatusFileList.RemoveItem(*path);\r
+                                                                                       this->m_UnRevFileList.AddPath(*path);\r
+                                                                                       //this->m_IgnoreFileList.RemoveItem(*path);\r
+\r
+                                                                               }else\r
+                                                                               {\r
+                                                                                       RemoveListEntry(nItem);\r
+                                                                               }\r
                                                                                break;\r
                                                                        }\r
                                                                }\r
@@ -3877,7 +3900,7 @@ void CGitStatusListCtrl::OnNMDblclk(NMHDR *pNMHDR, LRESULT *pResult)
        *pResult = 0;\r
        if (m_bBlock)\r
                return;\r
-#if 0\r
+\r
        if (pNMLV->iItem < 0)\r
        {\r
                if (!IsGroupViewEnabled())\r
@@ -3904,7 +3927,8 @@ void CGitStatusListCtrl::OnNMDblclk(NMHDR *pNMHDR, LRESULT *pResult)
                        GetItem(&lv);\r
                        if (lv.iGroupId == group)\r
                        {\r
-                               FileEntry * entry = GetListEntry(i);\r
+                               CTGitPath *entry=(CTGitPath*)GetItemData(i);\r
+\r
                                if (!bFirst)\r
                                {\r
                                        bCheck = !GetCheck(i);\r
@@ -3929,18 +3953,16 @@ void CGitStatusListCtrl::OnNMDblclk(NMHDR *pNMHDR, LRESULT *pResult)
                NotifyCheck();\r
                return;\r
        }\r
-#endif\r
-//     FileEntry * entry = GetListEntry(pNMLV->iItem);\r
-//     if (entry)\r
-       {\r
-//             if (entry->isConflicted)\r
-//             {\r
-//                     gitDiff::StartConflictEditor(entry->GetPath());\r
-//             }\r
-//             else\r
-               {\r
-                       StartDiff(pNMLV->iItem);\r
-               }\r
+\r
+       CTGitPath *file=(CTGitPath*)GetItemData(pNMLV->iItem);\r
+\r
+       if( file->m_Action&CTGitPath::LOGACTIONS_UNMERGED )\r
+       {\r
+               CAppUtils::ConflictEdit(*file,false);\r
+\r
+       }else\r
+       {\r
+               StartDiff(pNMLV->iItem);\r
        }\r
 \r
 }\r
@@ -3978,13 +4000,16 @@ void CGitStatusListCtrl::StartDiff(int fileindex)
 \r
        if(this->m_CurrentVersion.IsEmpty() || m_CurrentVersion== GIT_REV_ZERO)\r
        {\r
-               if(!g_Git.IsInitRepos())\r
+               if( g_Git.IsInitRepos())\r
+                       CGitDiff::DiffNull((CTGitPath*)GetItemData(fileindex),\r
+                               CString(GIT_REV_ZERO));                 \r
+               else if( file1.m_Action&CTGitPath::LOGACTIONS_DELETED )\r
+                       CGitDiff::DiffNull((CTGitPath*)GetItemData(fileindex),\r
+                                       GitRev::GetHead(),false);                               \r
+               else\r
                        CGitDiff::Diff(&file1,&file2,\r
                                CString(GIT_REV_ZERO),\r
                                        GitRev::GetHead());\r
-               else\r
-                       CGitDiff::DiffNull((CTGitPath*)GetItemData(fileindex),\r
-                               CString(GIT_REV_ZERO));\r
        }else\r
        {\r
                CGitDiff::Diff(&file1,&file2,\r
@@ -4790,7 +4815,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 +4846,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 +4881,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 +4903,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 +5027,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 +5059,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
@@ -5080,7 +5125,7 @@ bool CGitStatusListCtrl::PrepareGroups(bool bForce /* = false */)
 \r
                //if(m_UnRevFileList.GetCount()>0)\r
                {\r
-                       _tcsncpy_s(groupname, 1024, (LPCTSTR)_T("No Version Control"), 1023);\r
+                       _tcsncpy_s(groupname, 1024, (LPCTSTR)_T("Not Versioned"), 1023);\r
                        grp.pszHeader = groupname;\r
                        grp.iGroupId = groupindex;\r
                        grp.uAlign = LVGA_HEADER_LEFT;\r
@@ -5089,7 +5134,7 @@ bool CGitStatusListCtrl::PrepareGroups(bool bForce /* = false */)
 \r
                //if(m_IgnoreFileList.GetCount()>0)\r
                {\r
-                       _tcsncpy_s(groupname, 1024, (LPCTSTR)_T("Ignored File"), 1023);\r
+                       _tcsncpy_s(groupname, 1024, (LPCTSTR)_T("Ignored"), 1023);\r
                        grp.pszHeader = groupname;\r
                        grp.iGroupId = groupindex;\r
                        grp.uAlign = LVGA_HEADER_LEFT;\r
@@ -5562,6 +5607,7 @@ int CGitStatusListCtrl::RevertSelectedItemToVersion()
 \r
        out.Format(_T("%d files revert to %s"),count,m_CurrentVersion.Left(6));\r
        CMessageBox::Show(NULL,out,_T("TortoiseGit"),MB_OK);\r
+       return 0;\r
 }\r
 \r
 void CGitStatusListCtrl::OpenFile(CTGitPath*filepath,int mode)\r