* @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. */
| 2516 | * possible in project files) and initializes the dialog with them. |
| 2517 | */ |
| 2518 | void 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 | { |
nothing calls this directly
no test coverage detected