From 9e3714e38b60fc4ff0034d2e9b8c72a663b5117a Mon Sep 17 00:00:00 2001 From: Takashi Sawanaka Date: Sun, 19 Feb 2023 10:10:31 +0900 Subject: [PATCH] Add -show-dialog and -show-compare-as-menu command line options (2) --- Src/Merge.cpp | 12 +++++++++--- Src/Merge.h | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Src/Merge.cpp b/Src/Merge.cpp index 44e900d94..7278b387c 100644 --- a/Src/Merge.cpp +++ b/Src/Merge.cpp @@ -667,14 +667,14 @@ void CMergeApp::ApplyCommandLineConfigOptions(MergeCmdLineInfo& cmdInfo) } } -void CMergeApp::ShowCompareAsMenu(MergeCmdLineInfo& cmdInfo) +bool CMergeApp::ShowCompareAsMenu(MergeCmdLineInfo& cmdInfo) { CMenu menu; VERIFY(menu.LoadMenu(IDR_POPUP_COMPARE)); theApp.TranslateMenu(menu.m_hMenu); CMenu* pPopup = menu.GetSubMenu(0); if (!pPopup) - return; + return false; String filteredFilenames = strutils::join(cmdInfo.m_Files.begin(), cmdInfo.m_Files.end(), _T("|")); CMainFrame::AppendPluginMenus(pPopup, filteredFilenames, FileTransform::UnpackerEventNames, true, ID_UNPACKERS_FIRST); @@ -716,8 +716,13 @@ void CMergeApp::ShowCompareAsMenu(MergeCmdLineInfo& cmdInfo) { cmdInfo.m_sUnpacker = CMainFrame::GetPluginPipelineByMenuId(nID, FileTransform::UnpackerEventNames, ID_UNPACKERS_FIRST); } + else + { + return false; + } break; } + return true; } void CMergeApp::ShowDialog(MergeCmdLineInfo::DialogType type) @@ -753,7 +758,8 @@ bool CMergeApp::ParseArgsAndDoOpen(MergeCmdLineInfo& cmdInfo, CMainFrame* pMainF { if (cmdInfo.m_bShowCompareAsMenu) { - ShowCompareAsMenu(cmdInfo); + if (!ShowCompareAsMenu(cmdInfo)) + return false; AfxGetMainWnd()->ShowWindow(cmdInfo.m_nCmdShow); } diff --git a/Src/Merge.h b/Src/Merge.h index 900f09036..0fd24c28f 100644 --- a/Src/Merge.h +++ b/Src/Merge.h @@ -121,7 +121,7 @@ protected: void UpdateDefaultCodepage(int cpDefaultMode, int cpCustomCodepage); void UpdateCodepageModule(); void ApplyCommandLineConfigOptions(MergeCmdLineInfo & cmdInfo); - void ShowCompareAsMenu(MergeCmdLineInfo& cmdInfo); + bool ShowCompareAsMenu(MergeCmdLineInfo& cmdInfo); void ShowDialog(MergeCmdLineInfo::DialogType type); // End MergeArgs.cpp -- 2.11.0