OSDN Git Service

BUG: [ 3022292 ] Location pane focus enabled "Save"
authorTim Gerundt <tim@gerundt.de>
Fri, 3 Sep 2010 19:39:48 +0000 (19:39 +0000)
committerTim Gerundt <tim@gerundt.de>
Fri, 3 Sep 2010 19:39:48 +0000 (19:39 +0000)
Docs/Users/ChangeLog.txt
Src/LocationView.cpp
Src/LocationView.h

index 18206f4..bb55cd1 100644 (file)
@@ -18,6 +18,7 @@ WinMerge 2.13.14
   Bugfix: New fix for the bug #2210403 (#2929005)
   Bugfix: Take changed compareoptions into use in folder compare (#3046938)
   Bugfix: "Copy and advance" toolbar icons not automatically enabled (#3033325)
+  Bugfix: Location pane focus enabled "Save" (#3022292)
   Translation updates:
   - Chinese (#3033324)
   - French (#3025202)
index 6ab15b2..5dc1c46 100644 (file)
@@ -118,6 +118,9 @@ BEGIN_MESSAGE_MAP(CLocationView, CView)
        ON_WM_SIZE()
        ON_WM_VSCROLL()
        ON_WM_ERASEBKGND()
+       ON_UPDATE_COMMAND_UI(ID_FILE_SAVE, OnUpdateFileSave)
+       ON_UPDATE_COMMAND_UI(ID_FILE_SAVE_LEFT, OnUpdateFileSaveLeft)
+       ON_UPDATE_COMMAND_UI(ID_FILE_SAVE_RIGHT, OnUpdateFileSaveRight)
        //}}AFX_MSG_MAP
 END_MESSAGE_MAP()
 
@@ -1070,3 +1073,42 @@ void CLocationView::DrawDiffMarker(CDC* pDC, int yCoord)
        pDC->SelectObject(pOldBrush);
        pDC->SelectObject(oldObj);
 }
+
+/**
+ * @brief Called when "Save" item is updated
+ */
+void CLocationView::OnUpdateFileSave(CCmdUI* pCmdUI)
+{
+       CMergeDoc *pd = GetDocument();
+
+       if (pd->m_ptBuf[0]->IsModified() || pd->m_ptBuf[1]->IsModified())
+               pCmdUI->Enable(true);
+       else
+               pCmdUI->Enable(false);
+}
+
+/**
+ * @brief Called when "Save left (as...)" item is updated
+ */
+void CLocationView::OnUpdateFileSaveLeft(CCmdUI* pCmdUI)
+{
+       CMergeDoc *pd = GetDocument();
+
+       if (!pd->m_ptBuf[0]->GetReadOnly() && pd->m_ptBuf[0]->IsModified())
+               pCmdUI->Enable(true);
+       else
+               pCmdUI->Enable(false);
+}
+
+/**
+ * @brief Called when "Save right (as...)" item is updated
+ */
+void CLocationView::OnUpdateFileSaveRight(CCmdUI* pCmdUI)
+{
+       CMergeDoc *pd = GetDocument();
+
+       if (!pd->m_ptBuf[1]->GetReadOnly() && pd->m_ptBuf[1]->IsModified())
+               pCmdUI->Enable(true);
+       else
+               pCmdUI->Enable(false);
+}
\ No newline at end of file
index 32081c2..f2a2063 100644 (file)
@@ -127,6 +127,9 @@ protected:
        afx_msg void OnSize(UINT nType, int cx, int cy);
        afx_msg BOOL OnEraseBkgnd(CDC* pDC);
        afx_msg void OnPaint();
+       afx_msg void OnUpdateFileSave(CCmdUI* pCmdUI);
+       afx_msg void OnUpdateFileSaveLeft(CCmdUI* pCmdUI);
+       afx_msg void OnUpdateFileSaveRight(CCmdUI* pCmdUI);
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
 };