?? mail3panewindowcommands.js
字號:
return (gDBView.viewFlags & nsMsgViewFlagsType.kThreadedDisplay); case "cmd_nextFlaggedMsg": case "cmd_previousFlaggedMsg": return IsViewNavigationItemEnabled(); case "cmd_viewAllMsgs": case "cmd_viewUnreadMsgs": case "cmd_viewThreadsWithUnread": case "cmd_viewWatchedThreadsWithUnread": case "cmd_viewIgnoredThreads": return gDBView; case "cmd_stop": return true; case "cmd_undo": case "cmd_redo": return SetupUndoRedoCommand(command); case "cmd_renameFolder": return IsRenameFolderEnabled(); case "cmd_sendUnsentMsgs": return IsSendUnsentMsgsEnabled(null); case "cmd_properties": return IsPropertiesEnabled(command); case "button_getNewMessages": case "cmd_getNewMessages": case "cmd_getMsgsForAuthAccounts": return IsGetNewMessagesEnabled(); case "cmd_getNextNMessages": return IsGetNextNMessagesEnabled(); case "cmd_emptyTrash": return IsEmptyTrashEnabled(); case "cmd_compactFolder": return IsCompactFolderEnabled(); case "cmd_setFolderCharset": return IsFolderCharsetEnabled(); case "cmd_close": return true; case "cmd_downloadFlagged": return(IsFolderSelected() && MailOfflineMgr.isOnline()); case "cmd_downloadSelected": return (IsFolderSelected() && MailOfflineMgr.isOnline() && GetNumSelectedMessages() > 0); case "cmd_synchronizeOffline": return MailOfflineMgr.isOnline() && IsAccountOfflineEnabled(); case "cmd_settingsOffline": return IsAccountOfflineEnabled(); case "cmd_moveToFolderAgain": return (pref.getCharPref("mail.last_msg_movecopy_target_uri") && GetNumSelectedMessages() > 0); default: return false; } return false; }, doCommand: function(command) { // if the user invoked a key short cut then it is possible that we got here for a command which is // really disabled. kick out if the command should be disabled. if (!this.isCommandEnabled(command)) return; switch ( command ) { case "cmd_close": CloseMailWindow(); break; case "button_getNewMessages": case "cmd_getNewMessages": MsgGetMessage(); break; case "cmd_getMsgsForAuthAccounts": MsgGetMessagesForAllAuthenticatedAccounts(); break; case "cmd_getNextNMessages": MsgGetNextNMessages(); break; case "cmd_reply": MsgReplyMessage(null); break; case "cmd_replySender": MsgReplySender(null); break; case "cmd_replyGroup": MsgReplyGroup(null); break; case "cmd_replyall": MsgReplyToAllMessage(null); break; case "cmd_forward": MsgForwardMessage(null); break; case "cmd_forwardInline": MsgForwardAsInline(null); break; case "cmd_forwardAttachment": MsgForwardAsAttachment(null); break; case "cmd_editAsNew": MsgEditMessageAsNew(); break; case "cmd_createFilterFromMenu": MsgCreateFilter(); break; case "cmd_createFilterFromPopup": break;// This does nothing because the createfilter is invoked from the popupnode oncommand. case "button_delete": case "cmd_delete": // if the user deletes a message before its mark as read timer goes off, we should mark it as read // this ensures that we clear the biff indicator from the system tray when the user deletes the new message if (gMarkViewedMessageAsReadTimer) MarkCurrentMessageAsRead(); SetNextMessageAfterDelete(); gDBView.doCommand(nsMsgViewCommandType.deleteMsg); break; case "cmd_shiftDelete": if (gMarkViewedMessageAsReadTimer) MarkCurrentMessageAsRead(); SetNextMessageAfterDelete(); gDBView.doCommand(nsMsgViewCommandType.deleteNoTrash); break; case "cmd_killThread": /* kill thread kills the thread and then does a next unread */ GoNextMessage(nsMsgNavigationType.toggleThreadKilled, true); break; case "cmd_watchThread": gDBView.doCommand(nsMsgViewCommandType.toggleThreadWatched); break; case "button_next": case "cmd_nextUnreadMsg": MsgNextUnreadMessage(); break; case "cmd_nextUnreadThread": MsgNextUnreadThread(); break; case "cmd_nextMsg": MsgNextMessage(); break; case "cmd_nextFlaggedMsg": MsgNextFlaggedMessage(); break; case "cmd_previousMsg": MsgPreviousMessage(); break; case "button_previous": case "cmd_previousUnreadMsg": MsgPreviousUnreadMessage(); break; case "cmd_previousFlaggedMsg": MsgPreviousFlaggedMessage(); break; case "button_goForward": case "cmd_goForward": MsgGoForward(); break; case "button_goBack": case "cmd_goBack": MsgGoBack(); break; case "cmd_goStartPage": HideMessageHeaderPane(); loadStartPage(); break; case "cmd_viewAllMsgs": case "cmd_viewThreadsWithUnread": case "cmd_viewWatchedThreadsWithUnread": case "cmd_viewUnreadMsgs": case "cmd_viewIgnoredThreads": SwitchView(command); break; case "cmd_undo": messenger.Undo(msgWindow); break; case "cmd_redo": messenger.Redo(msgWindow); break; case "cmd_expandAllThreads": gDBView.doCommand(nsMsgViewCommandType.expandAll); break; case "cmd_collapseAllThreads": gDBView.doCommand(nsMsgViewCommandType.collapseAll); break; case "cmd_renameFolder": MsgRenameFolder(); return; case "cmd_sendUnsentMsgs": MsgSendUnsentMsgs(); return; case "cmd_openMessage": MsgOpenSelectedMessages(); return; case "cmd_printSetup": NSPrintSetup(); return; case "cmd_print": PrintEnginePrint(); return; case "cmd_printpreview": PrintEnginePrintPreview(); return; case "cmd_saveAsFile": MsgSaveAsFile(); return; case "cmd_saveAsTemplate": MsgSaveAsTemplate(); return; case "cmd_viewPageSource": MsgViewPageSource(); return; case "cmd_setFolderCharset": MsgSetFolderCharset(); return; case "cmd_reload": MsgReload(); return; case "cmd_find": // make sure the message pane has focus before we start a find since we only support searching // within the message body. Do it here and not in MsgFind() which can be called from standalone where we don't want to set focus SetFocusMessagePane(); MsgFind(); return; case "cmd_findAgain": // make sure the message pane has focus before we start a find since we only support searching // within the message body. Do it here and not in MsgFind() which can be called from standalone where we don't want to set focus SetFocusMessagePane(); MsgFindAgain(false); return; case "cmd_findPrevious": // make sure the message pane has focus before we start a find since we only support searching // within the message body. Do it here and not in MsgFind() which can be called from standalone where we don't want to set focus SetFocusMessagePane(); MsgFindAgain(true); return; case "cmd_markReadByDate": MsgMarkReadByDate(); return; case "cmd_properties": MsgFolderProperties(); return; case "cmd_search": MsgSearchMessages(); return; case "button_mark": case "cmd_markAsRead": MsgMarkMsgAsRead(null); return; case "cmd_markThreadAsRead": MsgMarkThreadAsRead(); return; case "cmd_markAllRead": gDBView.doCommand(nsMsgViewCommandType.markAllRead); return; case "button_junk": MsgJunk(); return; case "cmd_stop": MsgStop(); return; case "cmd_markAsFlagged": MsgMarkAsFlagged(null); return; case "cmd_markAsJunk": JunkSelectedMessages(true); return; case "cmd_markAsNotJunk": JunkSelectedMessages(false); return; case "cmd_recalculateJunkScore": analyzeMessagesForJunk(); return; case "cmd_applyFilters": MsgApplyFilters(null); return; case "cmd_runJunkControls": analyzeFolderForJunk(); return; case "cmd_deleteJunk": deleteJunkInFolder(); return; case "cmd_emptyTrash": MsgEmptyTrash(); return; case "cmd_compactFolder": MsgCompactFolder(true); return; case "cmd_downloadFlagged": MsgDownloadFlagged(); break; case "cmd_downloadSelected": MsgDownloadSelected(); break; case "cmd_synchronizeOffline": MsgSynchronizeOffline(); break; case "cmd_settingsOffline": MailOfflineMgr.openOfflineAccountSettings(); break; case "cmd_moveToFolderAgain": var folderId = pref.getCharPref("mail.last_msg_movecopy_target_uri"); if (pref.getBoolPref("mail.last_msg_movecopy_was_move")) MsgMoveMessage(folderId); else MsgCopyMessage(folderId); break; case "cmd_selectAll": // move the focus so the user can delete the newly selected messages, not the folder SetFocusThreadPane(); // if in threaded mode, the view will expand all before selecting all gDBView.doCommand(nsMsgViewCommandType.selectAll) if (gDBView.numSelected != 1) { setTitleFromFolder(gDBView.msgFolder,null); ClearMessagePane(); } break; case "cmd_selectThread": gDBView.doCommand(nsMsgViewCommandType.selectThread); break; } }, onEvent: function(event) { // on blur events set the menu item texts back to the normal values if ( event == 'blur' ) { goSetMenuValue('cmd_undo', 'valueDefault'); goSetMenuValue('cmd_redo', 'valueDefault'); } }};function GetNumSelectedMessages(){ try { return gDBView.numSelected; } catch (ex) { return 0; }}var gLastFocusedElement=null;function FocusRingUpdate_Mail(){ // WhichPaneHasFocus() uses on top.document.commandDispatcher.focusedElement // to determine which pane has focus // if the focusedElement is null, we're here on a blur. // nsFocusController::Blur() calls nsFocusController::SetFocusedElement(null), // which will update any commands listening for "focus". // we really only care about nsFocusController::Focus() happens, // which calls nsFocusController::SetFocusedElement(element) var currentFocusedElement = WhichPaneHasFocus(); if (currentFocusedElement != gLastFocusedElement) { if (currentFocusedElement) currentFocusedElement.setAttribute("focusring", "true"); if (gLastFocusedElement) gLastFocusedElement.removeAttribute("focusring"); gLastFocusedElement = currentFocusedElement; // since we just changed the pane with focus we need to update the toolbar to reflect this // XXX TODO // can we optimize // and just update cmd_delete and button_delete? UpdateMailToolbar("focus"); }}function WhichPaneHasFocus(){ var threadTree = GetThreadTree(); var folderTree = GetFolderTree(); var messagePane = GetMessagePane(); if (top.document.commandDispatcher.focusedWindow == GetMessagePaneFrame()) return messagePane; var currentNode = top.document.commandDispatcher.focusedElement; while (currentNode) { if (currentNode === threadTree || currentNode === folderTree || currentNode === messagePane) return currentNode; currentNode = currentNode.parentNode; }
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -