[Winmerge-svn] SF.net SVN: winmerge:[5648] trunk/Src
Windows visual diff and merge for files and directories
Brought to you by:
christianlist,
grimmdp
From: <ki...@us...> - 2008-07-21 11:27:00
|
Revision: 5648 http://winmerge.svn.sourceforge.net/winmerge/?rev=5648&view=rev Author: kimmov Date: 2008-07-21 11:25:40 +0000 (Mon, 21 Jul 2008) Log Message: ----------- PATCH: [ 2017426 ] Rescan after filter change Rescan all file- and folder-compares, instead of current ones. Modified Paths: -------------- trunk/Src/Languages/English.pot trunk/Src/MainFrm.cpp trunk/Src/Merge.rc Modified: trunk/Src/Languages/English.pot =================================================================== --- trunk/Src/Languages/English.pot 2008-07-21 09:41:45 UTC (rev 5647) +++ trunk/Src/Languages/English.pot 2008-07-21 11:25:40 UTC (rev 5648) @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: WinMerge\n" "Report-Msgid-Bugs-To: http://sourceforge.net/tracker/?group_id=13216&atid=113216\n" -"POT-Creation-Date: 2008-07-19 14:03+0000\n" +"POT-Creation-Date: 2008-07-21 14:20+0000\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: English <win...@li...>\n" @@ -3222,7 +3222,7 @@ #: Merge.rc:2035 #, c-format -msgid "Filters were updated.\n\nDo you want to rescan current folders?" +msgid "Filters were updated. Do you want to refresh all open folder compares?\n\nIf you do not want to refresh all compares now you can select No and refresh compares later." msgstr "" #: Merge.rc:2041 Modified: trunk/Src/MainFrm.cpp =================================================================== --- trunk/Src/MainFrm.cpp 2008-07-21 09:41:45 UTC (rev 5647) +++ trunk/Src/MainFrm.cpp 2008-07-21 11:25:40 UTC (rev 5648) @@ -2477,7 +2477,8 @@ theApp.m_globalFileFilter.GetFileFilters(&fileFilters, selectedFilter); fileFiltersDlg.SetFilterArray(&fileFilters); fileFiltersDlg.SetSelected(selectedFilter); - lineFiltersDlg.m_bIgnoreRegExp = GetOptionsMgr()->GetBool(OPT_LINEFILTER_ENABLED); + const BOOL lineFiltersEnabledOrig = GetOptionsMgr()->GetBool(OPT_LINEFILTER_ENABLED); + lineFiltersDlg.m_bIgnoreRegExp = lineFiltersEnabledOrig; lineFilters->CloneFrom(m_pLineFilters); lineFiltersDlg.SetList(lineFilters); @@ -2513,13 +2514,17 @@ FRAMETYPE frame = GetFrameType(pFrame); if (frame == FRAME_FILE) { - if (!m_pLineFilters->Compare(lineFilters)) + if (lineFiltersEnabledOrig != linefiltersEnabled || + !m_pLineFilters->Compare(lineFilters)) + { bFileCompareRescan = TRUE; + } } else if (frame == FRAME_FOLDER) { const CString newFilter = theApp.m_globalFileFilter.GetFilterNameOrMask(); - if (!m_pLineFilters->Compare(lineFilters) || origFilter != newFilter) + if (lineFiltersEnabledOrig != linefiltersEnabled || + !m_pLineFilters->Compare(lineFilters) || origFilter != newFilter) { int res = LangMessageBox(IDS_FILTERCHANGED, MB_ICONWARNING | MB_YESNO); if (res == IDYES) @@ -2533,13 +2538,23 @@ if (bFileCompareRescan) { - CMergeDoc *pDoc = (CMergeDoc *)pFrame->GetActiveDocument(); - pDoc->FlushAndRescan(TRUE); + const MergeDocList &docs = GetAllMergeDocs(); + POSITION pos = docs.GetHeadPosition(); + while (pos) + { + CMergeDoc * pMergeDoc = docs.GetNext(pos); + pMergeDoc->FlushAndRescan(TRUE); + } } else if (bFolderCompareRescan) { - CDirDoc * pDoc = (CDirDoc *)pFrame->GetActiveDocument(); - pDoc->Rescan(); + const DirDocList &dirDocs = GetAllDirDocs(); + POSITION pos = dirDocs.GetHeadPosition(); + while (pos) + { + CDirDoc * pDirDoc = dirDocs.GetNext(pos); + pDirDoc->Rescan(); + } } } delete lineFilters; Modified: trunk/Src/Merge.rc =================================================================== --- trunk/Src/Merge.rc 2008-07-21 09:41:45 UTC (rev 5647) +++ trunk/Src/Merge.rc 2008-07-21 11:25:40 UTC (rev 5648) @@ -2032,7 +2032,7 @@ // GENERAL FILTER STRINGS STRINGTABLE BEGIN - IDS_FILTERCHANGED "Filters were updated.\n\nDo you want to rescan current folders?" + IDS_FILTERCHANGED "Filters were updated. Do you want to refresh all open folder compares?\n\nIf you do not want to refresh all compares now you can select No and refresh compares later." END // VERSION CONTROL OPTIONS This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |