OSDN Git Service

Add -show-dialog and -show-compare-as-menu command line options (2)
authorTakashi Sawanaka <sdottaka@users.sourceforge.net>
Sun, 19 Feb 2023 01:10:31 +0000 (10:10 +0900)
committerTakashi Sawanaka <sdottaka@users.sourceforge.net>
Sun, 19 Feb 2023 01:10:31 +0000 (10:10 +0900)
Src/Merge.cpp
Src/Merge.h

index 44e900d..7278b38 100644 (file)
@@ -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);
        }
 
index 900f090..0fd24c2 100644 (file)
@@ -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