?? mailwindowoverlay.js
字號:
}function MsgCreateFilter(){ // retrieve Sender direct from selected message's headers var msgHdr = gDBView.hdrForFirstSelectedMessage; var headerParser = Components.classes["@mozilla.org/messenger/headerparser;1"].getService(Components.interfaces.nsIMsgHeaderParser); var emailAddress = headerParser.extractHeaderAddressMailboxes(null, msgHdr.author); if (emailAddress) top.MsgFilters(emailAddress, null);}function MsgHome(url){ window.open(url, "_blank", "chrome,dependent=yes,all");}function MsgNewFolder(callBackFunctionName){ var preselectedFolder = GetFirstSelectedMsgFolder(); var dualUseFolders = true; var server = null; var destinationFolder = null; if (preselectedFolder) { try { server = preselectedFolder.server; if (server) { destinationFolder = getDestinationFolder(preselectedFolder, server); var imapServer = server.QueryInterface(Components.interfaces.nsIImapIncomingServer); if (imapServer) dualUseFolders = imapServer.dualUseFolders; } } catch (e) { dump ("Exception: dualUseFolders = true\n"); } } CreateNewSubfolder("chrome://messenger/content/newFolderDialog.xul", destinationFolder, dualUseFolders, callBackFunctionName);}function getDestinationFolder(preselectedFolder, server){ var destinationFolder = null; var isCreateSubfolders = preselectedFolder.canCreateSubfolders; if (!isCreateSubfolders) { destinationFolder = server.rootMsgFolder; var verifyCreateSubfolders = null; if (destinationFolder) verifyCreateSubfolders = destinationFolder.canCreateSubfolders; // in case the server cannot have subfolders, // get default account and set its incoming server as parent folder if (!verifyCreateSubfolders) { try { var defaultFolder = GetDefaultAccountRootFolder(); var checkCreateSubfolders = null; if (defaultFolder) checkCreateSubfolders = defaultFolder.canCreateSubfolders; if (checkCreateSubfolders) destinationFolder = defaultFolder; } catch (e) { dump ("Exception: defaultAccount Not Available\n"); } } } else destinationFolder = preselectedFolder; return destinationFolder;}function MsgSubscribe(){ var preselectedFolder = GetFirstSelectedMsgFolder(); Subscribe(preselectedFolder);}function ConfirmUnsubscribe(folder){ if (!gMessengerBundle) gMessengerBundle = document.getElementById("bundle_messenger"); var titleMsg = gMessengerBundle.getString("confirmUnsubscribeTitle"); var dialogMsg = gMessengerBundle.getFormattedString("confirmUnsubscribeText", [folder.name], 1); var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService); return promptService.confirm(window, titleMsg, dialogMsg);}function MsgUnsubscribe(){ var folder = GetFirstSelectedMsgFolder(); if (ConfirmUnsubscribe(folder)) { UnSubscribe(folder); }}function ToggleFavoriteFolderFlag(){ var folder = GetFirstSelectedMsgFolder(); folder.toggleFlag(MSG_FOLDER_FLAG_FAVORITE);}function MsgAddToFavorites(){ var folder = GetFirstSelectedMsgFolder(); folder.setFlag(MSG_FOLDER_FLAG_FAVORITE);}function MsgRemoveFromFavorites(){ var folder = GetFirstSelectedMsgFolder(); folder.clearFlag(MSG_FOLDER_FLAG_FAVORITE);}function MsgSaveAsFile(){ if (GetNumSelectedMessages() == 1) SaveAsFile(GetFirstSelectedMessage());}function MsgSaveAsTemplate(){ var folder = GetLoadedMsgFolder(); if (GetNumSelectedMessages() == 1) SaveAsTemplate(GetFirstSelectedMessage(), folder);}function MsgOpenNewWindowForMsgHdr(hdr){ MsgOpenNewWindowForFolder(hdr.folder.URI, hdr.messageKey);}function MsgOpenNewWindowForFolder(uri, key){ var uriToOpen = uri; var keyToSelect = key; if (!uriToOpen) // use GetSelectedFolderURI() to find out which message to open instead of // GetLoadedMsgFolder().QueryIntervace(Components.interfaces.nsIRDFResource).value. // This is required because on a right-click, the currentIndex value will be // different from the actual row that is highlighted. GetSelectedFolderURI() // will return the message that is highlighted. uriToOpen = GetSelectedFolderURI(); if (uriToOpen) window.openDialog("chrome://messenger/content/", "_blank", "chrome,all,dialog=no", uriToOpen, keyToSelect);}// passing in the view, so this will work for search and the thread panefunction MsgOpenSelectedMessages(){ var dbView = GetDBView(); var indices = GetSelectedIndices(dbView); var numMessages = indices.length; gWindowReuse = gPrefBranch.getBoolPref("mailnews.reuse_message_window"); // This is a radio type button pref, currently with only 2 buttons. // We need to keep the pref type as 'bool' for backwards compatibility // with 4.x migrated prefs. For future radio button(s), please use another // pref (either 'bool' or 'int' type) to describe it. // // gWindowReuse values: false, true // false: open new standalone message window for each message // true : reuse existing standalone message window for each message if (gWindowReuse && numMessages == 1 && MsgOpenSelectedMessageInExistingWindow()) return; var openWindowWarning = gPrefBranch.getIntPref("mailnews.open_window_warning"); if ((openWindowWarning > 1) && (numMessages >= openWindowWarning)) { if (!gMessengerBundle) gMessengerBundle = document.getElementById("bundle_messenger"); var title = gMessengerBundle.getString("openWindowWarningTitle"); var text = gMessengerBundle.getFormattedString("openWindowWarningText", [numMessages]); var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"] .getService(Components.interfaces.nsIPromptService); if (!promptService.confirm(window, title, text)) return; } for (var i = 0; i < numMessages; i++) { MsgOpenNewWindowForMessage(dbView.getURIForViewIndex(indices[i]), dbView.getFolderForViewIndex(indices[i]).URI); }}function MsgOpenSelectedMessageInExistingWindow(){ var windowID = GetWindowByWindowType("mail:messageWindow"); if (!windowID) return false; try { var messageURI = gDBView.URIForFirstSelectedMessage; var msgHdr = gDBView.hdrForFirstSelectedMessage; // Reset the window's message uri and folder uri vars, and // update the command handlers to what's going to be used. // This has to be done before the call to CreateView(). windowID.gCurrentMessageUri = messageURI; windowID.gCurrentFolderUri = msgHdr.folder.URI; windowID.UpdateMailToolbar('MsgOpenExistingWindowForMessage'); // even if the folder uri's match, we can't use the existing view // (msgHdr.folder.URI == windowID.gCurrentFolderUri) // the reason is quick search and mail views. // see bug #187673 // // for the sake of simplicity, // let's always call CreateView(gDBView) // which will clone gDBView windowID.CreateView(gDBView); windowID.LoadMessageByMsgKey(msgHdr.messageKey); // bring existing window to front windowID.focus(); return true; } catch (ex) { dump("reusing existing standalone message window failed: " + ex + "\n"); } return false;}const nsIFilePicker = Components.interfaces.nsIFilePicker;function MsgOpenFromFile(){ var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker); var strBundleService = Components.classes["@mozilla.org/intl/stringbundle;1"].getService(); strBundleService = strBundleService.QueryInterface(Components.interfaces.nsIStringBundleService); var extbundle = strBundleService.createBundle("chrome://messenger/locale/messenger.properties"); var filterLabel = extbundle.GetStringFromName("EMLFiles"); var windowTitle = extbundle.GetStringFromName("OpenEMLFiles"); fp.init(window, windowTitle, nsIFilePicker.modeOpen); fp.appendFilter(filterLabel, "*.eml"); // Default or last filter is "All Files" fp.appendFilters(nsIFilePicker.filterAll); try { var ret = fp.show(); if (ret == nsIFilePicker.returnCancel) return; } catch (ex) { dump("filePicker.chooseInputFile threw an exception\n"); return; } var uri = fp.fileURL; uri.query = "type=application/x-message-display"; window.openDialog( "chrome://messenger/content/messageWindow.xul", "_blank", "all,chrome,dialog=no,status,toolbar", uri, null, null );}function MsgOpenNewWindowForMessage(messageUri, folderUri){ if (!messageUri) // use GetFirstSelectedMessage() to find out which message to open // instead of gDBView.getURIForViewIndex(currentIndex). This is // required because on a right-click, the currentIndex value will be // different from the actual row that is highlighted. // GetFirstSelectedMessage() will return the message that is // highlighted. messageUri = GetFirstSelectedMessage(); if (!folderUri) // use GetSelectedFolderURI() to find out which message to open // instead of gDBView.getURIForViewIndex(currentIndex). This is // required because on a right-click, the currentIndex value will be // different from the actual row that is highlighted. // GetSelectedFolderURI() will return the message that is // highlighted. folderUri = GetSelectedFolderURI(); // be sure to pass in the current view.... if (messageUri && folderUri) { window.openDialog( "chrome://messenger/content/messageWindow.xul", "_blank", "all,chrome,dialog=no,status,toolbar", messageUri, folderUri, gDBView ); }}function CloseMailWindow(){ //dump("\nClose from XUL\nDo something...\n"); window.close();}function MsgJunk(){ MsgJunkMailInfo(true); JunkSelectedMessages(!SelectedMessagesAreJunk());}function MsgMarkMsgAsRead(markRead){ if (!markRead) { markRead = !SelectedMessagesAreRead(); } MarkSelectedMessagesRead(markRead);}function MsgMarkAsFlagged(markFlagged){ if (!markFlagged) { markFlagged = !SelectedMessagesAreFlagged(); } MarkSelectedMessagesFlagged(markFlagged);}function MsgMarkReadByDate(){ window.openDialog( "chrome://messenger/content/markByDate.xul","", "chrome,modal,titlebar,centerscreen", GetLoadedMsgFolder() );}function MsgMarkAllRead(){ var compositeDataSource = GetCompositeDataSource("MarkAllMessagesRead"); var folder = GetMsgFolderFromUri(GetSelectedFolderURI(), true); if(folder) MarkAllMessagesRead(compositeDataSource, folder);}function MsgDownloadFlagged(){ gDBView.doCommand(nsMsgViewCommandType.downloadFlaggedForOffline);}function MsgDownloadSelected(){ gDBView.doCommand(nsMsgViewCommandType.downloadSelectedForOffline);}function MsgMarkThreadAsRead(){ ClearPendingReadTimer(); gDBView.doCommand(nsMsgViewCommandType.markThreadRead);}function MsgViewPageSource(){ var messages = GetSelectedMessages(); ViewPageSource(messages);}function MsgFind(){ gFindBar.onFindCmd();}function MsgFindAgain(reverse){ if (reverse) gFindBar.onFindPreviousCmd(); else gFindBar.onFindAgainCmd();}function MsgFilters(emailAddress, folder){ if (!folder) { // try to determine the folder from the selected message. if (gDBView) { try { var msgHdr = gDBView.hdrForFirstSelectedMessage; var accountKey = msgHdr.accountKey; if (accountKey.length > 0) { var account = accountManager.getAccount(accountKey); if (account) { server = account.incomingServer;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -