OSDN Git Service

Fix compile error in TortoiseShell build.
[tortoisegit/TortoiseGitJp.git] / src / Git / GitStatusListCtrl.cpp
index 4521750..f6acf62 100644 (file)
@@ -2683,10 +2683,18 @@ 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
@@ -3172,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
@@ -3980,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
@@ -5102,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
@@ -5111,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