MCPcopy Create free account
hub / github.com/WinMerge/winmerge / OnSaveProject

Method OnSaveProject

Src/MainFrm.cpp:2518–2596  ·  view source on GitHub ↗

* @brief Opens dialog for user to Load, edit and save project files. * This dialog gets current compare paths and filter (+other properties * possible in project files) and initializes the dialog with them. */

Source from the content-addressed store, hash-verified

2516 * possible in project files) and initializes the dialog with them.
2517 */
2518void CMainFrame::OnSaveProject()
2519{
2520 CMultiDocTemplate* pOpenTemplate = theApp.GetOpenTemplate();
2521 if (m_pMenus[MENU_OPENVIEW] == nullptr)
2522 pOpenTemplate->m_hMenuShared = NewOpenViewMenu();
2523 COpenDoc *pOpenDoc = static_cast<COpenDoc *>(pOpenTemplate->CreateNewDocument());
2524
2525 CFrameWnd * pFrame = GetActiveFrame();
2526 FRAMETYPE frame = pFrame ? GetFrameType(pFrame) : FRAME_OTHER;
2527
2528 if (frame == FRAME_FILE || frame == FRAME_HEXFILE || frame == FRAME_IMGFILE || frame == FRAME_WEBPAGE)
2529 {
2530 if (IMergeDoc* pMergeDoc = GetActiveIMergeDoc())
2531 {
2532 PathContext paths;
2533 for (int pane = 0; pane < pMergeDoc->GetFileCount(); ++pane)
2534 {
2535 pOpenDoc->m_dwFlags[pane] = FFILEOPEN_PROJECT | (pMergeDoc->GetReadOnly(pane) ? FFILEOPEN_READONLY : 0);
2536 paths.SetPath(pane, pMergeDoc->GetPath(pane), false);
2537 pOpenDoc->m_strDesc[pane] = pMergeDoc->GetDescription(pane);
2538 }
2539 pOpenDoc->m_files = paths;
2540 pOpenDoc->m_bRecurse = GetOptionsMgr()->GetBool(OPT_CMP_INCLUDE_SUBDIRS);
2541 pOpenDoc->m_strExt = theApp.GetGlobalFileFilter()->GetMaskOrExpression();
2542 pOpenDoc->m_strUnpackerPipeline = pMergeDoc->GetUnpacker() ? pMergeDoc->GetUnpacker()->GetPluginPipeline() : _T("");
2543 pOpenDoc->m_strPredifferPipeline = pMergeDoc->GetPrediffer() ? pMergeDoc->GetPrediffer()->GetPluginPipeline() : _T("");
2544 switch (frame)
2545 {
2546 case FRAME_FILE:
2547 {
2548 CMergeDoc* pDoc = static_cast<CMergeDoc*>(pMergeDoc);
2549 if (pDoc->m_ptBuf[0]->GetTableEditing())
2550 {
2551 pOpenDoc->m_nWindowType = ID_MERGE_COMPARE_TABLE - ID_MERGE_COMPARE_TEXT + 1;
2552 pOpenDoc->m_cTableDelimiter = pDoc->m_ptBuf[0]->GetFieldDelimiter();
2553 pOpenDoc->m_cTableQuote = pDoc->m_ptBuf[0]->GetFieldEnclosure();
2554 pOpenDoc->m_bTableAllowNewLinesInQuotes = pDoc->m_ptBuf[0]->GetAllowNewlinesInQuotes();
2555 }
2556 else
2557 {
2558 pOpenDoc->m_nWindowType = ID_MERGE_COMPARE_TEXT - ID_MERGE_COMPARE_TEXT + 1;
2559 }
2560 break;
2561 }
2562 case FRAME_HEXFILE:
2563 pOpenDoc->m_nWindowType = ID_MERGE_COMPARE_HEX - ID_MERGE_COMPARE_TEXT + 1;
2564 break;
2565 case FRAME_IMGFILE:
2566 pOpenDoc->m_nWindowType = ID_MERGE_COMPARE_IMAGE - ID_MERGE_COMPARE_TEXT + 1;
2567 break;
2568 case FRAME_WEBPAGE:
2569 pOpenDoc->m_nWindowType = ID_MERGE_COMPARE_WEBPAGE - ID_MERGE_COMPARE_TEXT + 1;
2570 break;
2571 }
2572 }
2573 }
2574 else if (frame == FRAME_FOLDER)
2575 {

Callers

nothing calls this directly

Calls 14

AddTrailingSlashFunction · 0.85
GetOpenTemplateMethod · 0.80
GetGlobalFileFilterMethod · 0.80
GetNormalizedPathMethod · 0.80
GetOptionsMgrFunction · 0.70
GetFileCountMethod · 0.45
GetReadOnlyMethod · 0.45
SetPathMethod · 0.45
GetPathMethod · 0.45
GetDescriptionMethod · 0.45
GetBoolMethod · 0.45
GetUnpackerMethod · 0.45

Tested by

no test coverage detected