OSDN Git Service

Add Include Subfolders menu item to IDR_POPUP_DIFF_OPTIONS popup menu
authorsdottaka <sdottaka@users.sourceforge.net>
Mon, 21 Sep 2015 07:04:47 +0000 (16:04 +0900)
committersdottaka <sdottaka@users.sourceforge.net>
Mon, 21 Sep 2015 07:04:47 +0000 (16:04 +0900)
Src/DirDoc.cpp
Src/MainFrm.cpp
Src/MainFrm.h
Src/Merge.rc
Src/OpenDoc.cpp
Src/OpenDoc.h
Src/OpenView.cpp
Src/OpenView.h

index 58bdecf..38d140b 100644 (file)
@@ -469,6 +469,7 @@ void CDirDoc::CompareReady()
  */
 void CDirDoc::RefreshOptions()
 {
+       m_pCtxt->m_bRecursive = (theApp.GetProfileInt(_T("Settings"), _T("Recurse"), 0) == 1);
        if (m_pDirView)
                m_pDirView->RefreshOptions();
 }
index b9e60eb..e1c858e 100644 (file)
@@ -245,6 +245,8 @@ BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
        ON_UPDATE_COMMAND_UI(IDC_DIFF_CASESENSITIVE, OnUpdateDiffCaseSensitive)
        ON_COMMAND(IDC_DIFF_IGNOREEOL, OnDiffIgnoreEOL)
        ON_UPDATE_COMMAND_UI(IDC_DIFF_IGNOREEOL, OnUpdateDiffIgnoreEOL)
+       ON_COMMAND(IDC_RECURS_CHECK, OnIncludeSubfolders)
+       ON_UPDATE_COMMAND_UI(IDC_RECURS_CHECK, OnUpdateIncludeSubfolders)
        ON_COMMAND_RANGE(ID_COMPMETHOD_FULL_CONTENTS, ID_COMPMETHOD_SIZE, OnCompareMethod)
        ON_UPDATE_COMMAND_UI_RANGE(ID_COMPMETHOD_FULL_CONTENTS, ID_COMPMETHOD_SIZE, OnUpdateCompareMethod)
        ON_COMMAND_RANGE(ID_MRU_FIRST, ID_MRU_LAST, OnMRUs)
@@ -2677,6 +2679,32 @@ void CMainFrame::OnUpdateDiffIgnoreEOL(CCmdUI* pCmdUI)
        pCmdUI->Enable();
 }
 
+void CMainFrame::OnIncludeSubfolders()
+{
+       theApp.WriteProfileInt(_T("Settings"), _T("Recurse"), !(theApp.GetProfileInt(_T("Settings"), _T("Recurse"), 0) == 1));
+       // Update all dirdoc settings
+       const DirDocList &dirDocs = GetAllDirDocs();
+       POSITION pos = dirDocs.GetHeadPosition();
+       while (pos)
+       {
+               CDirDoc * pDirDoc = dirDocs.GetNext(pos);
+               pDirDoc->RefreshOptions();
+       }
+       const OpenDocList &openDocs = GetAllOpenDocs();
+       pos = openDocs.GetHeadPosition();
+       while (pos)
+       {
+               COpenDoc * pOpenDoc = openDocs.GetNext(pos);
+               pOpenDoc->RefreshOptions();
+       }
+}
+
+void CMainFrame::OnUpdateIncludeSubfolders(CCmdUI* pCmdUI)
+{
+       pCmdUI->SetCheck(theApp.GetProfileInt(_T("Settings"), _T("Recurse"), 0) == 1);
+       pCmdUI->Enable();
+}
+
 void CMainFrame::OnCompareMethod(UINT nID)
 { 
        GetOptionsMgr()->SaveOption(OPT_CMP_METHOD, nID - ID_COMPMETHOD_FULL_CONTENTS);
index 0d7fa7a..af64d2c 100644 (file)
@@ -273,6 +273,8 @@ protected:
        afx_msg void OnUpdateDiffCaseSensitive(CCmdUI* pCmdUI);
        afx_msg void OnDiffIgnoreEOL();
        afx_msg void OnUpdateDiffIgnoreEOL(CCmdUI* pCmdUI);
+       afx_msg void OnIncludeSubfolders();
+       afx_msg void OnUpdateIncludeSubfolders(CCmdUI* pCmdUI);
        afx_msg void OnCompareMethod(UINT nID);
        afx_msg void OnUpdateCompareMethod(CCmdUI* pCmdUI);
        afx_msg void OnMRUs(UINT nID);
index faffa89..f1b3b45 100644 (file)
@@ -746,6 +746,8 @@ BEGIN
         END
         MENUITEM "Case sensi&tive", IDC_DIFF_CASESENSITIVE
         MENUITEM "Igno&re carriage return differences (Windows/Unix/Mac)", IDC_DIFF_IGNOREEOL
+        MENUITEM SEPARATOR
+        MENUITEM "&Include Subfolders", IDC_RECURS_CHECK
         POPUP "&Compare method:"
         BEGIN
             MENUITEM "Full Contents",          ID_COMPMETHOD_FULL_CONTENTS
index 6712621..808578e 100644 (file)
@@ -3,6 +3,7 @@
 
 #include "stdafx.h"
 #include "OpenDoc.h"
+#include "Merge.h"
 
 // COpenDoc
 
@@ -25,6 +26,11 @@ COpenDoc::~COpenDoc()
 {
 }
 
+void COpenDoc::RefreshOptions()
+{
+       m_bRecurse = (theApp.GetProfileInt(_T("Settings"), _T("Recurse"), 0) == 1);
+       UpdateAllViews(NULL);
+}
 
 BEGIN_MESSAGE_MAP(COpenDoc, CDocument)
 END_MESSAGE_MAP()
index 8862366..6bec9fb 100644 (file)
@@ -14,6 +14,7 @@ class COpenDoc : public CDocument
 public:
        COpenDoc();
        virtual ~COpenDoc();
+       void RefreshOptions();
 
        DWORD   m_dwFlags[3];
        PathContext m_files;
index bb64324..afc2c16 100644 (file)
@@ -288,6 +288,12 @@ void COpenView::OnInitialUpdate()
        RegisterDragDrop(m_hWnd, m_pDropHandler);
 }
 
+void COpenView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)
+{
+       m_bRecurse = GetDocument()->m_bRecurse;
+       UpdateData(FALSE);
+}
+
 // COpenView diagnostics
 
 #ifdef _DEBUG
index b2492fb..db618a0 100644 (file)
@@ -100,6 +100,7 @@ virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
 protected:
        virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
        virtual void OnInitialUpdate(); // called first time after construct
+       virtual void OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint);
        virtual BOOL PreTranslateMessage(MSG* pMsg);
 
 // Implementation