From 8623874b59542cd07e38dcf1825db65549c29afe Mon Sep 17 00:00:00 2001 From: "bienvenu%netscape.com" Date: Fri, 1 Sep 2000 01:27:48 +0000 Subject: [PATCH] fix search to search sub-sub folders r=alecf 50936 git-svn-id: svn://10.0.0.236/trunk@77824 18797224-902f-48f8-a5cc-f745e15eee43 --- .../search/resources/content/SearchDialog.js | 54 +++++++++++-------- 1 file changed, 32 insertions(+), 22 deletions(-) diff --git a/mozilla/mailnews/base/search/resources/content/SearchDialog.js b/mozilla/mailnews/base/search/resources/content/SearchDialog.js index 8a5e3a90b4c..8d054d6e5f6 100644 --- a/mozilla/mailnews/base/search/resources/content/SearchDialog.js +++ b/mozilla/mailnews/base/search/resources/content/SearchDialog.js @@ -138,32 +138,14 @@ function onSearch(event) dump("setting up search..\n"); gSearchSession.clearScopes(); // tell the search session what the new scope is - gSearchSession.addScopeTerm(GetScopeForFolder(gCurrentFolder), + if (!gCurrentFolder.isServer) + gSearchSession.addScopeTerm(GetScopeForFolder(gCurrentFolder), gCurrentFolder); var searchSubfolders = document.getElementById("checkSearchSubFolders").checked; - if (gCurrentFolder && (searchSubfolders || gCurrentFolder.isServer) && gCurrentFolder.hasSubFolders) + if (gCurrentFolder && (searchSubfolders || gCurrentFolder.isServer)) { - var subFolderEnumerator = gCurrentFolder.GetSubFolders(); - var done = false; - while (!done) - { - var next = subFolderEnumerator.currentItem(); - if (next) - { - var nextFolder = next.QueryInterface(Components.interfaces.nsIMsgFolder); - if (nextFolder) - gSearchSession.addScopeTerm(GetScopeForFolder(nextFolder), nextFolder); - } - try - { - subFolderEnumerator.next(); - } - catch (ex) - { - done = true; - } - } + AddSubFolders(gCurrentFolder); } // reflect the search widgets back into the search session saveSearchTerms(gSearchSession.searchTerms, gSearchSession); @@ -175,6 +157,34 @@ function onSearch(event) dump("Kicking it off with " + gThreadTree.getAttribute("ref") + "\n"); } +function AddSubFolders(folder) { + if (folder.hasSubFolders) + { + var subFolderEnumerator = folder.GetSubFolders(); + var done = false; + while (!done) + { + var next = subFolderEnumerator.currentItem(); + if (next) + { + var nextFolder = next.QueryInterface(Components.interfaces.nsIMsgFolder); + if (nextFolder) + { + gSearchSession.addScopeTerm(GetScopeForFolder(nextFolder), nextFolder); + AddSubFolders(nextFolder); + } + } + try + { + subFolderEnumerator.next(); + } + catch (ex) + { + done = true; + } + } + } +} function GetScopeForFolder(folder) { if (folder.server.type == "nntp")