OSDN Git Service

Fix GitHub issue #191: "Recompare as" menu option doesn't follow current choice
authorTakashi Sawanaka <sdottaka@users.sourceforge.net>
Tue, 1 Oct 2019 23:00:45 +0000 (08:00 +0900)
committerTakashi Sawanaka <sdottaka@users.sourceforge.net>
Tue, 1 Oct 2019 23:00:45 +0000 (08:00 +0900)
Src/MergeDoc.cpp
Src/MergeDoc.h

index b3764ac..5212e88 100644 (file)
@@ -116,6 +116,7 @@ BEGIN_MESSAGE_MAP(CMergeDoc, CDocument)
        ON_BN_CLICKED(IDC_HEXVIEW, OnBnClickedHexView)
        ON_COMMAND(IDOK, OnOK)
        ON_COMMAND(ID_MERGE_COMPARE_XML, OnFileRecompareAsXML)
+       ON_UPDATE_COMMAND_UI(ID_MERGE_COMPARE_XML, OnUpdateFileRecompareAsXML)
        ON_COMMAND_RANGE(ID_MERGE_COMPARE_HEX, ID_MERGE_COMPARE_IMAGE, OnFileRecompareAs)
        //}}AFX_MSG_MAP
 END_MESSAGE_MAP()
@@ -3155,11 +3156,24 @@ void CMergeDoc::OnOK()
 
 void CMergeDoc::OnFileRecompareAsXML()
 {
-       PackingInfo infoUnpacker(PLUGIN_BUILTIN_XML);
-       SetUnpacker(&infoUnpacker);
+       if (m_pInfoUnpacker->m_PluginOrPredifferMode == PLUGIN_BUILTIN_XML)
+       {
+               PackingInfo infoUnpacker;
+               SetUnpacker(&infoUnpacker);
+       }
+       else
+       {
+               PackingInfo infoUnpacker(PLUGIN_BUILTIN_XML);
+               SetUnpacker(&infoUnpacker);
+       }
        OnFileReload();
 }
 
+void CMergeDoc::OnUpdateFileRecompareAsXML(CCmdUI *pCmdUI)
+{
+       pCmdUI->SetCheck(m_pInfoUnpacker->m_PluginOrPredifferMode == PLUGIN_BUILTIN_XML);
+}
+
 void CMergeDoc::OnFileRecompareAs(UINT nID)
 {
        DWORD dwFlags[3] = { 0 };
index 765e2b7..c018a95 100644 (file)
@@ -379,6 +379,7 @@ protected:
        afx_msg void OnBnClickedHexView();
        afx_msg void OnOK();
        afx_msg void OnFileRecompareAsXML();
+       afx_msg void OnUpdateFileRecompareAsXML(CCmdUI* pCmdUI);
        afx_msg void OnFileRecompareAs(UINT nID);
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()