зеркало из https://github.com/mozilla/gecko-dev.git
fix for #61651: subfolders of special folders have those special folder properties.
thanks to elrod@liquidmetal.com for the initial patch. fix for #72791: the INBOX flag trumps all other special folder flags. so if a user sets their INBOX to be their Sent folder, we still treat it like an inbox. r=mscott, r=sspitzer, sr=bienvenu
This commit is contained in:
Родитель
be9a0cb37a
Коммит
f4bd6796d7
|
@ -35,6 +35,7 @@ var MSG_FOLDER_FLAG_TRASH = 0x0100;
|
|||
var MSG_FOLDER_FLAG_SENTMAIL = 0x0200;
|
||||
var MSG_FOLDER_FLAG_DRAFTS = 0x0400;
|
||||
var MSG_FOLDER_FLAG_QUEUE = 0x0800;
|
||||
var MSG_FOLDER_FLAG_INBOX = 0x1000;
|
||||
var MSG_FOLDER_FLAG_TEMPLATES = 0x400000;
|
||||
|
||||
var gPrefs;
|
||||
|
@ -776,11 +777,35 @@ function OpenToFolder(item, folderURI)
|
|||
|
||||
function IsSpecialFolder(msgFolder, flags)
|
||||
{
|
||||
if (!msgFolder || ((msgFolder.flags & flags) == 0)) {
|
||||
if (!msgFolder) {
|
||||
return false;
|
||||
}
|
||||
else if ((msgFolder.flags & flags) == 0) {
|
||||
var folder = msgFolder.QueryInterface(Components.interfaces.nsIFolder);
|
||||
|
||||
if (folder && folder.parent) {
|
||||
var parentMsgFolder = folder.parent.QueryInterface(Components.interfaces.nsIMsgFolder);
|
||||
|
||||
if(!parentMsgFolder) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return IsSpecialFolder(parentMsgFolder, flags);
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return true;
|
||||
// the user can set their INBOX to be their SENT folder.
|
||||
// in that case, we want this folder to act like an INBOX,
|
||||
// and not a SENT folder
|
||||
if ((flags & MSG_FOLDER_FLAG_SENTMAIL) && (msgFolder.flags & MSG_FOLDER_FLAG_INBOX)) {
|
||||
return false;
|
||||
}
|
||||
else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -268,13 +268,8 @@ function UpdateSortIndicators(sortType, sortOrder)
|
|||
|
||||
function IsSpecialFolderSelected(flags)
|
||||
{
|
||||
var selectedFolder = GetThreadPaneFolder();
|
||||
if (!selectedFolder || ((selectedFolder.flags & flags) == 0)) {
|
||||
return false;
|
||||
}
|
||||
else {
|
||||
return true;
|
||||
}
|
||||
var selectedFolder = GetThreadPaneFolder();
|
||||
return IsSpecialFolder(selectedFolder, flags);
|
||||
}
|
||||
|
||||
function GetThreadOutliner()
|
||||
|
|
Загрузка…
Ссылка в новой задаче