comparison kdiff3/src/directorymergewindow.cpp @ 58:8af4bb9d9a5a

Version 0.9.83
author joachim99
date Sun, 07 Mar 2004 09:59:09 +0000
parents 32d5cbf9db71
children efe33e938730
comparison
equal deleted inserted replaced
57:023fbd76c1e3 58:8af4bb9d9a5a
1 /*************************************************************************** 1 /***************************************************************************
2 directorymergewindow.cpp 2 directorymergewindow.cpp
3 ------------------- 3 -----------------
4 begin : Sat Oct 19 2002 4 begin : Sat Oct 19 2002
5 copyright : (C) 2002 by Joachim Eibl 5 copyright : (C) 2002-2004 by Joachim Eibl
6 email : joachim.eibl@gmx.de 6 email : joachim.eibl@gmx.de
7 ***************************************************************************/ 7 ***************************************************************************/
8 8
9 /*************************************************************************** 9 /***************************************************************************
10 * * 10 * *
345 } 345 }
346 for( QListViewItem* p = i->firstChild(); p!=0; p = p->nextSibling() ) 346 for( QListViewItem* p = i->firstChild(); p!=0; p = p->nextSibling() )
347 calcDirStatus( bThreeDirs, static_cast<DirMergeItem*>(p), nofFiles, nofDirs, nofEqualFiles, nofManualMerges ); 347 calcDirStatus( bThreeDirs, static_cast<DirMergeItem*>(p), nofFiles, nofDirs, nofEqualFiles, nofManualMerges );
348 } 348 }
349 349
350 static QString sortString(const QString& s)
351 {
352 #ifdef _WIN32
353 return s.upper();
354 #else
355 return s;
356 #endif
357 }
358
350 bool DirectoryMergeWindow::init 359 bool DirectoryMergeWindow::init
351 ( 360 (
352 FileAccess& dirA, 361 FileAccess& dirA,
353 FileAccess& dirB, 362 FileAccess& dirB,
354 FileAccess& dirC, 363 FileAccess& dirC,
437 m_pOptions->m_DmDirAntiPattern, m_pOptions->m_bDmFollowDirLinks, 446 m_pOptions->m_DmDirAntiPattern, m_pOptions->m_bDmFollowDirLinks,
438 m_pOptions->m_bDmUseCvsIgnore); 447 m_pOptions->m_bDmUseCvsIgnore);
439 448
440 for (i=dirListA.begin(); i!=dirListA.end();++i ) 449 for (i=dirListA.begin(); i!=dirListA.end();++i )
441 { 450 {
442 MergeFileInfos& mfi = m_fileMergeMap[i->filePath()]; 451 MergeFileInfos& mfi = m_fileMergeMap[sortString(i->filePath())];
443 //std::cout <<i->filePath()<<std::endl; 452 //std::cout <<i->filePath()<<std::endl;
444 mfi.m_bExistsInA = true; 453 mfi.m_bExistsInA = true;
445 mfi.m_fileInfoA = *i; 454 mfi.m_fileInfoA = *i;
446 } 455 }
447 } 456 }
459 m_pOptions->m_DmDirAntiPattern, m_pOptions->m_bDmFollowDirLinks, 468 m_pOptions->m_DmDirAntiPattern, m_pOptions->m_bDmFollowDirLinks,
460 m_pOptions->m_bDmUseCvsIgnore); 469 m_pOptions->m_bDmUseCvsIgnore);
461 470
462 for (i=dirListB.begin(); i!=dirListB.end();++i ) 471 for (i=dirListB.begin(); i!=dirListB.end();++i )
463 { 472 {
464 MergeFileInfos& mfi = m_fileMergeMap[i->filePath()]; 473 MergeFileInfos& mfi = m_fileMergeMap[sortString(i->filePath())];
465 mfi.m_bExistsInB = true; 474 mfi.m_bExistsInB = true;
466 mfi.m_fileInfoB = *i; 475 mfi.m_fileInfoB = *i;
467 } 476 }
468 } 477 }
469 478
481 m_pOptions->m_DmDirAntiPattern, m_pOptions->m_bDmFollowDirLinks, 490 m_pOptions->m_DmDirAntiPattern, m_pOptions->m_bDmFollowDirLinks,
482 m_pOptions->m_bDmUseCvsIgnore); 491 m_pOptions->m_bDmUseCvsIgnore);
483 492
484 for (i=dirListC.begin(); i!=dirListC.end();++i ) 493 for (i=dirListC.begin(); i!=dirListC.end();++i )
485 { 494 {
486 MergeFileInfos& mfi = m_fileMergeMap[i->filePath()]; 495 MergeFileInfos& mfi = m_fileMergeMap[sortString(i->filePath())];
487 mfi.m_bExistsInC = true; 496 mfi.m_bExistsInC = true;
488 mfi.m_fileInfoC = *i; 497 mfi.m_fileInfoC = *i;
489 } 498 }
490 499
491 eDefaultMergeOp = eMergeABCToDest; 500 eDefaultMergeOp = eMergeABCToDest;
947 int currentIdx = 1; 956 int currentIdx = 1;
948 QTime t; 957 QTime t;
949 t.start(); 958 t.start();
950 for( j=m_fileMergeMap.begin(); j!=m_fileMergeMap.end(); ++j ) 959 for( j=m_fileMergeMap.begin(); j!=m_fileMergeMap.end(); ++j )
951 { 960 {
952 const QString& fileName = j->first;
953 MergeFileInfos& mfi = j->second; 961 MergeFileInfos& mfi = j->second;
954 962
955 mfi.m_subPath = mfi.m_fileInfoA.exists() ? mfi.m_fileInfoA.filePath() : 963 mfi.m_subPath = mfi.m_fileInfoA.exists() ? mfi.m_fileInfoA.filePath() :
956 mfi.m_fileInfoB.exists() ? mfi.m_fileInfoB.filePath() : 964 mfi.m_fileInfoB.exists() ? mfi.m_fileInfoB.filePath() :
957 mfi.m_fileInfoC.exists() ? mfi.m_fileInfoC.filePath() : 965 mfi.m_fileInfoC.exists() ? mfi.m_fileInfoC.filePath() :
958 QString(""); 966 QString("");
967
968 // const QString& fileName = j->first;
969 const QString& fileName = mfi.m_subPath;
959 970
960 g_pProgressDialog->setInformation( 971 g_pProgressDialog->setInformation(
961 i18n("Processing ") + QString::number(currentIdx) +" / "+ QString::number(nrOfFiles) 972 i18n("Processing ") + QString::number(currentIdx) +" / "+ QString::number(nrOfFiles)
962 +"\n" + fileName, double(currentIdx) / nrOfFiles, false ); 973 +"\n" + fileName, double(currentIdx) / nrOfFiles, false );
963 if ( g_pProgressDialog->wasCancelled() ) break; 974 if ( g_pProgressDialog->wasCancelled() ) break;
992 { 1003 {
993 new DirMergeItem( this, filePart, &mfi ); 1004 new DirMergeItem( this, filePart, &mfi );
994 } 1005 }
995 else 1006 else
996 { 1007 {
997 MergeFileInfos& dirMfi = m_fileMergeMap[dirPart]; // parent 1008 MergeFileInfos& dirMfi = m_fileMergeMap[sortString(dirPart)]; // parent
998 assert(dirMfi.m_pDMI!=0); 1009 assert(dirMfi.m_pDMI!=0);
999 new DirMergeItem( dirMfi.m_pDMI, filePart, &mfi ); 1010 new DirMergeItem( dirMfi.m_pDMI, filePart, &mfi );
1000 mfi.m_pParent = &dirMfi; 1011 mfi.m_pParent = &dirMfi;
1001 1012
1002 if ( !bEqual ) // Set all parents to "not equal" 1013 if ( !bEqual ) // Set all parents to "not equal"