Bug #261199 --> Start porting the saved search folder UI from thunderbird to seamonkey

sr=bienvenu


git-svn-id: svn://10.0.0.236/trunk@164006 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
scott%scott-macgregor.org 2004-10-19 03:08:12 +00:00
parent d371468847
commit 4f669368f2
4 changed files with 55 additions and 41 deletions

View File

@ -192,6 +192,47 @@ function MsgCompactFolder(isAll)
}
}
function openNewVirtualFolderDialogWithArgs(defaultViewName, aSearchTerms)
{
var folderURI = GetSelectedFolderURI();
var folderTree = GetFolderTree();
var name = GetFolderNameFromUri(folderURI, folderTree);
name += "-" + defaultViewName;
var dialog = window.openDialog("chrome://messenger/content/virtualFolderProperties.xul", "",
"chrome,titlebar,modal,centerscreen",
{preselectedURI:folderURI,
searchTerms:aSearchTerms,
newFolderName:name});
}
function MsgVirtualFolderProperties(aEditExistingVFolder)
{
var preselectedFolder = GetFirstSelectedMsgFolder();
var preselectedURI;
if(preselectedFolder)
{
var preselectedFolderResource = preselectedFolder.QueryInterface(Components.interfaces.nsIRDFResource);
if(preselectedFolderResource)
preselectedURI = preselectedFolderResource.Value;
}
var dialog = window.openDialog("chrome://messenger/content/virtualFolderProperties.xul", "",
"chrome,titlebar,modal,centerscreen",
{preselectedURI:preselectedURI,
editExistingFolder: aEditExistingVFolder,
onOKCallback:onEditVirtualFolderPropertiesCallback,
msgWindow:msgWindow});
}
function onEditVirtualFolderPropertiesCallback(aVirtualFolder)
{
// we need to reload the folder if it is the currently loaded folder...
FolderPaneSelectionChange();
}
function MsgFolderProperties()
{
var preselectedURI = GetSelectedFolderURI();

View File

@ -140,10 +140,7 @@ var nsSearchResultsController =
return true;
case "saveas_vf_button":
// prompt for view name - create virtual folder in ok callback.
getViewName("search");
saveAsVirtualFolder();
return true;
default:
return false;
@ -790,40 +787,23 @@ function BeginDragThreadPane(event)
return false;
}
function getViewName(defaultViewName)
function saveAsVirtualFolder()
{
var preselectedURI = gCurrentFolder.URI;
var name = gCurrentFolder.name;
name += defaultViewName + "-view";
dump("preselectedURI = " + preselectedURI + "\n");
searchFolderURIs = preselectedURI;
var searchSubfolders = document.getElementById("checkSearchSubFolders").checked;
if (gCurrentFolder && (searchSubfolders || gCurrentFolder.isServer || gCurrentFolder.noSelect))
{
var subFolderURIs = AddSubFoldersToURI(gCurrentFolder);
if (subFolderURIs.length > 0)
searchFolderURIs += '|' + subFolderURIs;
var subFolderURIs = AddSubFoldersToURI(gCurrentFolder);
if (subFolderURIs.length > 0)
searchFolderURIs += '|' + subFolderURIs;
}
dump("search folders = " + searchFolderURIs + "\n");
// need to calculate the uri string of all the folders
// to search over, folder1|folder2|folder3...
var dialog = window.openDialog(
"chrome://messenger/content/virtualFolderName.xul",
"newFolder",
"chrome,titlebar,modal",
{siblingFolderURI: preselectedURI, searchFolderURIs: searchFolderURIs,
okCallback: CreateSearchView, name: name});
var dialog = window.openDialog("chrome://messenger/content/virtualFolderProperties.xul", "",
"chrome,titlebar,modal,centerscreen",
{preselectedURI:preselectedURI,
searchTerms:gSearchSession.searchTerms,
searchFolderURIs: searchFolderURIs});
}
function CreateSearchView(newName, siblingFolderURI, foldersToSearch)
{
dump ("in create view, new name = " + newName + " orig uri = " + siblingFolderURI + "\n");
var siblingFolder = GetResourceFromUri(siblingFolderURI);
var siblingMsgFolder = siblingFolder.QueryInterface(Components.interfaces.nsIMsgFolder);
CreateVirtualFolder(newName, siblingMsgFolder.parent ? siblingMsgFolder.parent : siblingMsgFolder,
foldersToSearch, gSearchSession.searchTerms);
}

View File

@ -26,8 +26,8 @@
<!ENTITY fileButton.accesskey "i">
<!ENTITY goToFolderButton.label "Open Message Folder">
<!ENTITY goToFolderButton.accesskey "r">
<!ENTITY saveAsVFButton.label "Save as Virtual Folder">
<!ENTITY saveAsVFButton.accesskey "v">
<!ENTITY saveAsVFButton.label "Save as Search Folder">
<!ENTITY saveAsVFButton.accesskey "a">
<!-- for ABSearchDialog.xul -->
<!ENTITY abSearchHeading.label "Search in:">

View File

@ -85,9 +85,9 @@ function viewChange(aMenuList, val)
ViewLabel(parseInt(val) - kLabelOffset);
break;
case "7": // save view as virtual folder
getViewName(CreateVFFromView, gCurrentViewLabel);
val = oldViewValue;
aMenuList.value = val;
openNewVirtualFolderDialogWithArgs(gCurrentViewLabel, gSaveDefaultSVTerms);
break;
default:
LoadCustomMailView(parseInt(val) - kLastDefaultViewIndex);
@ -110,14 +110,6 @@ function viewChange(aMenuList, val)
}
}
function CreateVFFromView(newName, origFolderURI)
{
var selectedFolder = GetResourceFromUri(origFolderURI);
var folderToSearch = selectedFolder.QueryInterface(Components.interfaces.nsIMsgFolder);
CreateVirtualFolder(newName, folderToSearch.parent, origFolderURI, gSaveDefaultSVTerms);
}
const kLabelPrefs = "mailnews.labels.description.";
const gLabelPrefListener = {
@ -271,6 +263,7 @@ function ViewLabel(labelID)
// create an i supports array to store our search terms
var searchTermsArray = Components.classes["@mozilla.org/supports-array;1"].createInstance(Components.interfaces.nsISupportsArray);
var term = gSearchSession.createTerm();
var value = term.value;