OSDN Git Service

Remove combine option from Rebase context menu Fix crash in CGitLogListBase::Refresh()
[tortoisegit/TortoiseGitJp.git] / src / TortoiseProc / GitLogListBase.cpp
index b46cc7e..a3b11a1 100644 (file)
@@ -1029,16 +1029,16 @@ void CGitLogListBase::OnContextMenu(CWnd* pWnd, CPoint point)
        {\r
 \r
                if(m_ContextMenuMask&GetContextMenuBit(ID_REBASE_PICK))\r
-                       popup.AppendMenuIcon(ID_REBASE_PICK,   _T("Pick"),   IDI_OPEN);\r
+                       popup.AppendMenuIcon(ID_REBASE_PICK,   _T("Pick"),   IDI_PICK);\r
 \r
                if(m_ContextMenuMask&GetContextMenuBit(ID_REBASE_SQUASH))\r
-                       popup.AppendMenuIcon(ID_REBASE_SQUASH, _T("Squash"), IDI_OPEN);\r
+                       popup.AppendMenuIcon(ID_REBASE_SQUASH, _T("Squash"), IDI_SQUASH);\r
 \r
                if(m_ContextMenuMask&GetContextMenuBit(ID_REBASE_EDIT))\r
-                       popup.AppendMenuIcon(ID_REBASE_EDIT,   _T("Edit"),   IDI_OPEN);\r
+                       popup.AppendMenuIcon(ID_REBASE_EDIT,   _T("Edit"),   IDI_EDIT);\r
 \r
                if(m_ContextMenuMask&GetContextMenuBit(ID_REBASE_SKIP))\r
-                       popup.AppendMenuIcon(ID_REBASE_SKIP,   _T("SKIP"),   IDI_OPEN);\r
+                       popup.AppendMenuIcon(ID_REBASE_SKIP,   _T("SKIP"),   IDI_SKIP);\r
                \r
                if(m_ContextMenuMask&(GetContextMenuBit(ID_REBASE_SKIP)|GetContextMenuBit(ID_REBASE_EDIT)|\r
                              GetContextMenuBit(ID_REBASE_SQUASH)|GetContextMenuBit(ID_REBASE_PICK)))\r
@@ -1046,25 +1046,6 @@ void CGitLogListBase::OnContextMenu(CWnd* pWnd, CPoint point)
 \r
                if (GetSelectedCount() == 1)\r
                {\r
-#if 0\r
-                       if (!m_path.IsDirectory())\r
-                       {\r
-                               if (m_hasWC)\r
-                               {\r
-                                       popup.AppendMenuIcon(ID_COMPARE, IDS_LOG_POPUP_COMPARE, IDI_DIFF);\r
-                                       popup.AppendMenuIcon(ID_BLAMECOMPARE, IDS_LOG_POPUP_BLAMECOMPARE, IDI_BLAME);\r
-                               }\r
-                               popup.AppendMenuIcon(ID_GNUDIFF1, IDS_LOG_POPUP_GNUDIFF_CH, IDI_DIFF);\r
-                               popup.AppendMenuIcon(ID_COMPAREWITHPREVIOUS, IDS_LOG_POPUP_COMPAREWITHPREVIOUS, IDI_DIFF);\r
-                               popup.AppendMenu(MF_SEPARATOR, NULL);\r
-                               popup.AppendMenuIcon(ID_SAVEAS, IDS_LOG_POPUP_SAVE, IDI_SAVEAS);\r
-                               popup.AppendMenuIcon(ID_OPEN, IDS_LOG_POPUP_OPEN, IDI_OPEN);\r
-                               popup.AppendMenuIcon(ID_OPENWITH, IDS_LOG_POPUP_OPENWITH, IDI_OPEN);\r
-                               popup.AppendMenuIcon(ID_BLAME, IDS_LOG_POPUP_BLAME, IDI_BLAME);\r
-                               popup.AppendMenu(MF_SEPARATOR, NULL);\r
-                       }\r
-                       else\r
-#endif \r
                        {\r
                                if (m_hasWC)\r
                                {\r
@@ -1122,14 +1103,23 @@ void CGitLogListBase::OnContextMenu(CWnd* pWnd, CPoint point)
 \r
                        if(m_ContextMenuMask&GetContextMenuBit(ID_CREATE_TAG))\r
                                popup.AppendMenuIcon(ID_CREATE_TAG, _T("Create Tag at this version"), IDI_COPY);\r
-\r
+               }\r
+       \r
+               if ( GetSelectedCount() >0 )\r
+               {\r
                        if(m_ContextMenuMask&GetContextMenuBit(ID_CHERRY_PICK))\r
                                popup.AppendMenuIcon(ID_CHERRY_PICK, _T("Cherry Pick this version"), IDI_EXPORT);\r
+       \r
+               }\r
 \r
-                       str.Format(_T("Rebase %s to this"),g_Git.GetCurrentBranch());\r
+               if (GetSelectedCount() == 1)\r
+               {\r
+                       CString str;\r
+                       str.Format(_T("*Rebase %s to this"),g_Git.GetCurrentBranch());\r
 \r
-                       if(m_ContextMenuMask&GetContextMenuBit(ID_REBASE_TO_VERSION))\r
-                               popup.AppendMenuIcon(ID_REBASE_TO_VERSION, str , IDI_EXPORT);                   \r
+                       if(pSelLogEntry->m_CommitHash != m_HeadHash)\r
+                               if(m_ContextMenuMask&GetContextMenuBit(ID_REBASE_TO_VERSION))\r
+                                       popup.AppendMenuIcon(ID_REBASE_TO_VERSION, str , IDI_REBASE);                   \r
 \r
                        if(m_ContextMenuMask&GetContextMenuBit(ID_EXPORT))\r
                                popup.AppendMenuIcon(ID_EXPORT, _T("Export this version"), IDI_EXPORT); \r
@@ -1164,7 +1154,7 @@ void CGitLogListBase::OnContextMenu(CWnd* pWnd, CPoint point)
                                        hash=hash.Left(40);\r
                                        GitRev* pLastEntry = reinterpret_cast<GitRev*>(m_arShownList.GetAt(LastSelect));\r
                                        if(pLastEntry->m_CommitHash == hash)\r
-                                               popup.AppendMenuIcon(ID_COMBINE_COMMIT,_T("Combine to one commit"),IDI_MERGE);\r
+                                               popup.AppendMenuIcon(ID_COMBINE_COMMIT,_T("*Combine to one commit"),IDI_MERGE);\r
                                }\r
                        }\r
                        if (m_hasWC)\r
@@ -1799,9 +1789,12 @@ UINT CGitLogListBase::LogThread()
 void CGitLogListBase::Refresh()\r
 {      \r
        m_bExitThread=TRUE;\r
-       DWORD ret =::WaitForSingleObject(m_LoadingThread->m_hThread,20000);\r
-       if(ret == WAIT_TIMEOUT)\r
-               TerminateThread();\r
+       if(m_LoadingThread!=NULL)\r
+       {\r
+               DWORD ret =::WaitForSingleObject(m_LoadingThread->m_hThread,20000);\r
+               if(ret == WAIT_TIMEOUT)\r
+                       TerminateThread();\r
+       }\r
 \r
        this->Clear();\r
 \r