fix 122006 expanding news server with keyboard should update group counts, patch by sgautherie.bz@free.fr, r/sr=bienvenu

This commit is contained in:
bienvenu%nventure.com 2006-11-21 17:14:51 +00:00
Родитель 0287b41cfe
Коммит 727ee2278e
1 изменённых файлов: 33 добавлений и 49 удалений

Просмотреть файл

@ -279,7 +279,7 @@ var folderListener = {
gDefaultSearchViewTerms = null;
viewDebug("searching gVirtualFolderTerms\n");
gDBView.viewFolder = gMsgFolderSelected;
loadVirtualFolder();
loadVirtualFolder();
}
else if (gMsgFolderSelected.flags & MSG_FOLDER_FLAG_VIRTUAL)
{
@ -310,7 +310,7 @@ var folderListener = {
}
}
}
}
}
}
else if (eventType == "ImapHdrDownloaded") {
if (folder) {
@ -362,8 +362,29 @@ var folderObserver = {
DropOnFolderTree(row, orientation);
},
onToggleOpenState: function()
onToggleOpenState: function(index)
{
var folderTree = GetFolderTree();
// Nothing to do when collapsing an item.
if (folderTree.view.isContainerOpen(index))
return;
var folderResource = GetFolderResource(folderTree, index);
if (folderTree.view.getLevel(index) == 0)
{
// (Imap/Nntp/Pop) Account item.
folderResource.QueryInterface(Components.interfaces.nsIMsgFolder)
.server.performExpand(msgWindow);
}
else if (folderResource instanceof Components.interfaces.nsIMsgImapMailFolder)
{
// Imap message folder item.
folderResource.performExpand(msgWindow);
}
},
onCycleHeader: function(colID, elt)
@ -767,7 +788,7 @@ function UpdateMailPaneConfig(aMsgWindowInitialized) {
messenger.SetWindow(window, msgWindow);
MsgReload();
}
// record the new configuration
gCurrentPaneConfig = paneConfig;
}
@ -1015,9 +1036,9 @@ function AddToSession()
var nsIFolderListener = Components.interfaces.nsIFolderListener;
var notifyFlags = nsIFolderListener.intPropertyChanged | nsIFolderListener.event;
mailSession.AddFolderListener(folderListener, notifyFlags);
} catch (ex) {
dump("Error adding to session\n");
}
} catch (ex) {
dump("Error adding to session\n");
}
}
function InitPanes()
@ -1381,7 +1402,7 @@ function ClearMessagePane()
gHaveLoadedMessage = false;
if (GetMessagePaneFrame().location.href != "about:blank")
GetMessagePaneFrame().location.href = "about:blank";
// hide the message header view AND the message pane...
HideMessageHeaderPane();
gMessageNotificationBar.clearMsgNotifications();
@ -1455,59 +1476,22 @@ function FolderPaneOnClick(event)
// clicking on the name column in the folder pane should not sort
event.stopPropagation();
}
return;
}
if (elt.value == "twisty")
{
if (!(folderTree.treeBoxObject.view.isContainerOpen(row.value)))
{
var folderResource = GetFolderResource(folderTree, row.value);
var isServer = GetFolderAttribute(folderTree, folderResource, "IsServer");
if (isServer == "true")
{
var msgFolder = folderResource.QueryInterface(Components.interfaces.nsIMsgFolder);
var server = msgFolder.server;
server.performExpand(msgWindow);
}
else
{
var serverType = GetFolderAttribute(folderTree, folderResource, "ServerType");
if (serverType == "imap")
{
var imapFolder = folderResource.QueryInterface(Components.interfaces.nsIMsgImapMailFolder);
imapFolder.performExpand(msgWindow);
}
}
}
}
else if ((event.originalTarget.localName == "slider") ||
(event.originalTarget.localName == "scrollbarbutton")) {
event.stopPropagation();
}
else if (event.detail == 2) {
else if ((event.detail == 2) && (elt.value != "twisty") &&
(folderTree.view.getLevel(row.value) != 0)) {
FolderPaneDoubleClick(row.value, event);
}
}
function FolderPaneDoubleClick(folderIndex, event)
{
var folderTree = GetFolderTree();
var folderResource = GetFolderResource(folderTree, folderIndex);
var isServer = GetFolderAttribute(folderTree, folderResource, "IsServer");
if (isServer == "true")
{
if (!(folderTree.treeBoxObject.view.isContainerOpen(folderIndex)))
{
var msgFolder = folderResource.QueryInterface(Components.interfaces.nsIMsgFolder);
var server = msgFolder.server;
server.performExpand(msgWindow);
}
}
else if (!pref.getBoolPref("mailnews.reuse_thread_window2"))
if (!pref.getBoolPref("mailnews.reuse_thread_window2"))
{
var folderResource = GetFolderResource(GetFolderTree(), folderIndex);
// Open a new msg window only if we are double clicking on
// folders or newsgroups.
MsgOpenNewWindowForFolder(folderResource.Value, -1 /* key */);