Bug 414038 (preliminary patch) Remove GetFolderAttribute function, r/sr=bienvenu
git-svn-id: svn://10.0.0.236/trunk@252423 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
a4318d4c9e
commit
9108c47b4d
@ -85,9 +85,10 @@ var FolderPaneController =
|
||||
var serverType = null;
|
||||
try {
|
||||
var folderResource = GetFolderResource(folderTree, startIndex.value);
|
||||
specialFolder = GetFolderAttribute(folderTree, folderResource, "SpecialFolder");
|
||||
isServer = GetFolderAttribute(folderTree, folderResource, "IsServer") == "true";
|
||||
serverType = GetFolderAttribute(folderTree, folderResource, "ServerType");
|
||||
var folder = folderResource.QueryInterface(Components.interfaces.nsIMsgFolder);
|
||||
specialFolder = getSpecialFolderString(folder);
|
||||
isServer = folder.isServer;
|
||||
serverType = folder.server.type;
|
||||
if (serverType == "nntp") {
|
||||
if ( command == "cmd_delete" ) {
|
||||
goSetMenuValue(command, 'valueNewsgroup');
|
||||
@ -845,8 +846,8 @@ function IsRenameFolderEnabled()
|
||||
var endIndex = {};
|
||||
selection.getRangeAt(0, startIndex, endIndex);
|
||||
var folderResource = GetFolderResource(folderTree, startIndex.value);
|
||||
var canRename = GetFolderAttribute(folderTree, folderResource, "CanRename") == "true";
|
||||
return canRename && isCommandEnabled("cmd_renameFolder");
|
||||
var folder = folderResource.QueryInterface(Components.interfaces.nsIMsgFolder);
|
||||
return folder.canRename && isCommandEnabled("cmd_renameFolder");
|
||||
}
|
||||
else
|
||||
return false;
|
||||
@ -871,10 +872,11 @@ function IsPropertiesEnabled(command)
|
||||
{
|
||||
var folderTree = GetFolderTree();
|
||||
var folderResource = GetSelectedFolderResource();
|
||||
var folder = folderResource.QueryInterface(Components.interfaces.nsIMsgFolder);
|
||||
|
||||
// when servers are selected
|
||||
// it should be "Edit | Properties..."
|
||||
if (GetFolderAttribute(folderTree, folderResource, "IsServer") == "true")
|
||||
if (folder.isServer)
|
||||
goSetMenuValue(command, "valueGeneric");
|
||||
else
|
||||
goSetMenuValue(command, isNewsURI(folderResource.Value) ? "valueNewsgroup" : "valueFolder");
|
||||
@ -903,7 +905,8 @@ function IsFolderSelected()
|
||||
var endIndex = {};
|
||||
selection.getRangeAt(0, startIndex, endIndex);
|
||||
var folderResource = GetFolderResource(folderTree, startIndex.value);
|
||||
return GetFolderAttribute(folderTree, folderResource, "IsServer") != "true";
|
||||
var folder = folderResource.QueryInterface(Components.interfaces.nsIMsgFolder);
|
||||
return folder.isServer;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
@ -922,7 +925,7 @@ function MsgDeleteFolder()
|
||||
{
|
||||
var selectedFolder = selectedFolders[i];
|
||||
var folderResource = selectedFolder.QueryInterface(Components.interfaces.nsIRDFResource);
|
||||
var specialFolder = GetFolderAttribute(folderTree, folderResource, "SpecialFolder");
|
||||
var specialFolder = getSpecialFolderString(selectedFolder);
|
||||
if (specialFolder != "Inbox" && specialFolder != "Trash")
|
||||
{
|
||||
var folder = selectedFolder.QueryInterface(Components.interfaces.nsIMsgFolder);
|
||||
|
||||
@ -517,9 +517,9 @@ function fillFolderPaneContextMenu()
|
||||
var folder = GetMsgFolderFromUri(folderResource.Value, false);
|
||||
var isVirtualFolder = folder ? folder.flags & MSG_FOLDER_FLAG_VIRTUAL : false;
|
||||
|
||||
var isServer = GetFolderAttribute(folderTree, folderResource, "IsServer") == 'true';
|
||||
var serverType = GetFolderAttribute(folderTree, folderResource, "ServerType");
|
||||
var specialFolder = GetFolderAttribute(folderTree, folderResource, "SpecialFolder");
|
||||
var isServer = folder.isServer;
|
||||
var serverType = folder.server.type;
|
||||
var specialFolder = getSpecialFolderString(folder);
|
||||
var canSubscribeToFolder = (serverType == "nntp") || (serverType == "imap");
|
||||
var isNewsgroup = !isServer && serverType == 'nntp';
|
||||
var isMailFolder = !isServer && serverType != 'nntp';
|
||||
@ -576,11 +576,10 @@ function fillFolderPaneContextMenu()
|
||||
|
||||
function SetupNewMenuItem(folderResource, numSelected, isServer, serverType,specialFolder)
|
||||
{
|
||||
var folderTree = GetFolderTree();
|
||||
var canCreateNew = GetFolderAttribute(folderTree, folderResource, "CanCreateSubfolders") == "true";
|
||||
var folder = folderResource.QueryInterface(Components.interfaces.nsIMsgFolder);
|
||||
var canCreateNew = folder.canCreateSubfolders;
|
||||
var isInbox = specialFolder == "Inbox";
|
||||
var isIMAPFolder = GetFolderAttribute(folderTree, folderResource,
|
||||
"ServerType") == "imap";
|
||||
var isIMAPFolder = (folder.server.type == "imap");
|
||||
|
||||
var ioService = Components.classes["@mozilla.org/network/io-service;1"]
|
||||
.getService(Components.interfaces.nsIIOService);
|
||||
@ -602,11 +601,9 @@ function SetupNewMenuItem(folderResource, numSelected, isServer, serverType,spec
|
||||
function SetupRenameMenuItem(folderResource, numSelected, isServer, serverType, specialFolder)
|
||||
{
|
||||
var msgFolder = folderResource.QueryInterface(Components.interfaces.nsIMsgFolder);
|
||||
var folderTree = GetFolderTree();
|
||||
var isSpecialFolder = !(specialFolder == "none" || (specialFolder == "Junk" && CanRenameDeleteJunkMail(msgFolder.URI))
|
||||
|| (specialFolder == "Virtual") );
|
||||
var canRename = GetFolderAttribute(folderTree, folderResource, "CanRename") == "true";
|
||||
|
||||
var canRename = msgFolder.canRename;
|
||||
ShowMenuItem("folderPaneContext-rename", (numSelected <= 1) && !isServer && !isSpecialFolder && canRename);
|
||||
var folder = GetMsgFolderFromResource(folderResource);
|
||||
EnableMenuItem("folderPaneContext-rename", !isServer && folder.isCommandEnabled("cmd_renameFolder"));
|
||||
@ -631,16 +628,14 @@ function SetupRemoveMenuItem(folderResource, numSelected, isServer, serverType,
|
||||
|
||||
function SetupCompactMenuItem(folderResource, numSelected)
|
||||
{
|
||||
var folderTree = GetFolderTree();
|
||||
var canCompact = GetFolderAttribute(folderTree, folderResource, "CanCompact") == "true";
|
||||
var folder = GetMsgFolderFromResource(folderResource);
|
||||
ShowMenuItem("folderPaneContext-compact", (numSelected <=1) && canCompact && !(folder.flags & MSG_FOLDER_FLAG_VIRTUAL));
|
||||
|
||||
ShowMenuItem("folderPaneContext-compact", (numSelected <=1) && folder.canCompact && !(folder.flags & MSG_FOLDER_FLAG_VIRTUAL));
|
||||
EnableMenuItem("folderPaneContext-compact", folder.isCommandEnabled("cmd_compactFolder") && !(folder.flags & MSG_FOLDER_FLAG_VIRTUAL));
|
||||
}
|
||||
|
||||
function SetupFavoritesMenuItem(folderResource, numSelected, isServer, menuItemId)
|
||||
{
|
||||
var folderTree = GetFolderTree();
|
||||
var folder = GetMsgFolderFromResource(folderResource);
|
||||
var showItem = !isServer && (numSelected <=1);
|
||||
ShowMenuItem(menuItemId, showItem);
|
||||
|
||||
@ -147,8 +147,8 @@ function InitEditMessagesMenu()
|
||||
{
|
||||
var numSelected = endIndex.value - startIndex.value + 1;
|
||||
var folderResource = GetFolderResource(folderTree, startIndex.value);
|
||||
var isServer = GetFolderAttribute(folderTree, folderResource, "IsServer") == 'true';
|
||||
SetupFavoritesMenuItem(folderResource, numSelected, isServer, 'menu_favoriteFolder');
|
||||
var folder = folderResource.QueryInterface(Components.interfaces.nsIMsgFolder);
|
||||
SetupFavoritesMenuItem(folderResource, numSelected, folder.isServer, 'menu_favoriteFolder');
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1492,8 +1492,8 @@ folderTabOwner.prototype =
|
||||
{
|
||||
// the user may have changed folders, triggering our onTitleChanged callback.
|
||||
// update the appropriate attributes on the tab.
|
||||
aTab.setAttribute('SpecialFolder', GetFolderAttribute(GetFolderTree(), gMsgFolderSelected, 'SpecialFolder'));
|
||||
aTab.setAttribute('ServerType', GetFolderAttribute(GetFolderTree(), gMsgFolderSelected, 'ServerType'));
|
||||
aTab.setAttribute('SpecialFolder', getSpecialFolderString(gMsgFolderSelected));
|
||||
aTab.setAttribute('ServerType', gMsgFolderSelected.server.type);
|
||||
return;
|
||||
},
|
||||
|
||||
|
||||
@ -1239,8 +1239,19 @@ function UpdateFolderLocationPicker(resource)
|
||||
var folders = document.getElementById('locationFolders');
|
||||
var properties = ['BiffState', 'NewMessages', 'HasUnreadMessages',
|
||||
'SpecialFolder', 'IsServer', 'IsSecure', 'ServerType', 'NoSelect'];
|
||||
var label = GetFolderAttribute(tree, resource, 'FolderTreeName');
|
||||
var folder = resource.QueryInterface(Components.interfaces.nsIMsgFolder);
|
||||
var label = folder.prettyName;
|
||||
folders.setAttribute("label", label);
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"]
|
||||
.getService(Components.interfaces.nsIRDFService);
|
||||
function GetFolderAttribute(tree, source, attribute) {
|
||||
var property = rdfService.GetResource("http://home.netscape.com/NC-rdf#" + attribute);
|
||||
var target = tree.database.GetTarget(source, property, true);
|
||||
if (target)
|
||||
target = target.QueryInterface(Components.interfaces.nsIRDFLiteral).Value;
|
||||
return target;
|
||||
}
|
||||
for (var i in properties)
|
||||
{
|
||||
var property = properties[i];
|
||||
@ -1658,15 +1669,6 @@ function GetFolderResource(tree, index)
|
||||
return tree.builderView.getResourceAtIndex(index);
|
||||
}
|
||||
|
||||
function GetFolderAttribute(tree, source, attribute)
|
||||
{
|
||||
var property = RDF.GetResource("http://home.netscape.com/NC-rdf#" + attribute);
|
||||
var target = tree.database.GetTarget(source, property, true);
|
||||
if (target)
|
||||
target = target.QueryInterface(Components.interfaces.nsIRDFLiteral).Value;
|
||||
return target;
|
||||
}
|
||||
|
||||
function LoadNavigatedToMessage(msgHdr, folder, folderUri)
|
||||
{
|
||||
if (IsCurrentLoadedFolder(folder))
|
||||
@ -1755,3 +1757,30 @@ function MigrateAttachmentDownloadStore()
|
||||
gPrefBranch.setIntPref("mail.attachment.store.version", 1);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a string representation of a folder's specialFolder attribute.
|
||||
*
|
||||
* @param aFolder the folder whose specialFolder attribute to return
|
||||
*/
|
||||
function getSpecialFolderString(aFolder) {
|
||||
if (aFolder.flags & 0x1000) // MSG_FOLDER_FLAG_INBOX
|
||||
return "Inbox";
|
||||
else if (aFolder.flags & 0x0100) // MSG_FOLDER_FLAG_TRASH
|
||||
return "Trash";
|
||||
else if (aFolder.flags & 0x0800) // MSG_FOLDER_FLAG_QUEUE
|
||||
return "Unsent Messages";
|
||||
else if (aFolder.flags & 0x0200) // MSG_FOLDER_FLAG_SENTMAIL
|
||||
return "Sent";
|
||||
else if (aFolder.flags & 0x0400) // MSG_FOLDER_FLAG_DRAFTS
|
||||
return "Drafts";
|
||||
else if (aFolder.flags & 0x400000) // MSG_FOLDER_FLAG_TEMPLATES
|
||||
return "Templates";
|
||||
else if (aFolder.flags & 0x40000000) // MSG_FOLDER_FLAG_JUNK
|
||||
return "Junk";
|
||||
else if (aFolder.flags & 0x0020) // MSG_FOLDER_FLAG_VIRTUAL
|
||||
return "Virtual";
|
||||
else
|
||||
return "none";
|
||||
}
|
||||
|
||||
|
||||
@ -108,15 +108,14 @@ function CanDropOnFolderTree(index, orientation)
|
||||
if (orientation != Components.interfaces.nsITreeView.DROP_ON)
|
||||
return false;
|
||||
|
||||
var isServer = GetFolderAttribute(folderTree, targetResource, "IsServer");
|
||||
if (isServer == "true")
|
||||
var folder = targetResource.QueryInterface(Components.interfaces.nsIMsgFolder);
|
||||
if (folder.isServer)
|
||||
{
|
||||
debugDump("***isServer == true\n");
|
||||
return false;
|
||||
}
|
||||
// canFileMessages checks no select, and acl, for imap.
|
||||
var canFileMessages = GetFolderAttribute(folderTree, targetResource, "CanFileMessages");
|
||||
if (canFileMessages != "true")
|
||||
if (!folder.canFileMessages)
|
||||
{
|
||||
debugDump("***canFileMessages == false\n");
|
||||
return false;
|
||||
@ -208,22 +207,22 @@ function CanDropOnFolderTree(index, orientation)
|
||||
if (dragSession.dragAction == nsIDragService.DRAGDROP_ACTION_COPY && sourceServer == targetServer)
|
||||
return false;
|
||||
|
||||
var canCreateSubfolders = GetFolderAttribute(folderTree, targetResource, "CanCreateSubfolders");
|
||||
var targetFolder = targetResource.QueryInterface(Components.interfaces.nsIMsgFolder);
|
||||
// if cannot create subfolders then a folder cannot be dropped here
|
||||
if (canCreateSubfolders == "false")
|
||||
if (targetFolder.canCreateSubfolders)
|
||||
{
|
||||
debugDump("***canCreateSubfolders == false \n");
|
||||
return false;
|
||||
}
|
||||
|
||||
var serverType = GetFolderAttribute(folderTree, targetResource, "ServerType");
|
||||
var serverType = targetFolder.server.type;
|
||||
|
||||
// if we've got a folder that can't be renamed
|
||||
// allow us to drop it if we plan on dropping it on "Local Folders"
|
||||
// (but not within the same server, to prevent renaming folders on "Local Folders" that
|
||||
// should not be renamed)
|
||||
var srcCanRename = GetFolderAttribute(folderTree, sourceResource, "CanRename");
|
||||
if (srcCanRename == "false") {
|
||||
var srcFolder = sourceResource.QueryInterface(Components.interfaces.nsIMsgFolder);
|
||||
if (!srcFolder.canRename) {
|
||||
if (sourceServer == targetServer)
|
||||
return false;
|
||||
if (serverType != "none")
|
||||
@ -425,15 +424,16 @@ function BeginDragFolderTree(event)
|
||||
return false;
|
||||
|
||||
var folderResource = GetFolderResource(folderTree, row);
|
||||
var folder = folderResource.QueryInterface(Components.interfaces.nsIMsgFolder);
|
||||
|
||||
if (GetFolderAttribute(folderTree, folderResource, "IsServer") == "true")
|
||||
if (folder.isServer)
|
||||
{
|
||||
debugDump("***IsServer == true\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
var flavor;
|
||||
if (GetFolderAttribute(folderTree, folderResource, "ServerType") == "nntp")
|
||||
if (folder.server.type == "nntp")
|
||||
{ // news folder (newsgroup)
|
||||
flavor = "text/x-moz-newsfolder";
|
||||
}
|
||||
|
||||
@ -47,9 +47,6 @@ var gMsgWindow;
|
||||
|
||||
var gInitialFolderStates = {};
|
||||
|
||||
// RDF needs to be defined for GetFolderAttribute in msgMail3PaneWindow.js
|
||||
var RDF = Components.classes['@mozilla.org/rdf/rdf-service;1'].getService().QueryInterface(Components.interfaces.nsIRDFService);
|
||||
|
||||
const MSG_FOLDER_FLAG_OFFLINE = 0x8000000;
|
||||
|
||||
function OnLoad()
|
||||
@ -184,11 +181,11 @@ function onSynchronizeClick(event)
|
||||
var msgFolder = folderResource.QueryInterface(Components.interfaces.nsIMsgFolder);
|
||||
|
||||
if (!(gSynchronizeTree.treeBoxObject.view.isContainerOpen(row.value))) {
|
||||
var serverType = GetFolderAttribute(gSynchronizeTree, folderResource, "ServerType");
|
||||
var serverType = msgFolder.server.type;
|
||||
// imap is the only server type that does folder discovery
|
||||
if (serverType != "imap") return;
|
||||
|
||||
if (GetFolderAttribute(gSynchronizeTree, folderResource, "IsServer") == "true") {
|
||||
if (folder.isServer) {
|
||||
var server = msgFolder.server;
|
||||
server.performExpand(gMsgWindow);
|
||||
}
|
||||
@ -239,13 +236,3 @@ function UpdateNode(resource, row)
|
||||
function GetFolderResource(aTree, aIndex) {
|
||||
return aTree.builderView.getResourceAtIndex(aIndex);
|
||||
}
|
||||
|
||||
function GetFolderAttribute(aTree, aResource, aName) {
|
||||
var rdfService = Components.classes['@mozilla.org/rdf/rdf-service;1']
|
||||
.getService(Components.interfaces.nsIRDFService);
|
||||
var property = rdfService.GetResource("http://home.netscape.com/NC-rdf#" + aName);
|
||||
var target = aTree.database.GetTarget(aResource, property, true);
|
||||
if (target)
|
||||
target = target.QueryInterface(Components.interfaces.nsIRDFLiteral).Value;
|
||||
return target;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user