зеркало из https://github.com/mozilla/gecko-dev.git
Родитель
299f3c3b27
Коммит
44f4744642
|
@ -109,6 +109,7 @@ pref("update.severity", 0);
|
||||||
pref("xpinstall.whitelist.add", "update.mozilla.org,addons.mozilla.org");
|
pref("xpinstall.whitelist.add", "update.mozilla.org,addons.mozilla.org");
|
||||||
|
|
||||||
pref("mail.phishing.detection.enabled", true); // enable / disable phishing detection for link clicks
|
pref("mail.phishing.detection.enabled", true); // enable / disable phishing detection for link clicks
|
||||||
|
pref("mail.spellcheck.inline", false);
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////
|
||||||
// Overrides of the seamonkey suite mailnews.js prefs
|
// Overrides of the seamonkey suite mailnews.js prefs
|
||||||
|
|
|
@ -571,7 +571,6 @@ function GetSelectedMessages()
|
||||||
|
|
||||||
function SetupCommandUpdateHandlers()
|
function SetupCommandUpdateHandlers()
|
||||||
{
|
{
|
||||||
// dump("SetupCommandUpdateHandlers\n");
|
|
||||||
top.controllers.insertControllerAt(0, defaultController);
|
top.controllers.insertControllerAt(0, defaultController);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -592,37 +591,57 @@ function CommandUpdate_MsgCompose()
|
||||||
updateComposeItems();
|
updateComposeItems();
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateComposeItems() {
|
function updateComposeItems()
|
||||||
try {
|
{
|
||||||
|
try
|
||||||
//Edit Menu
|
|
||||||
goUpdateCommand("cmd_rewrap");
|
|
||||||
|
|
||||||
//Insert Menu
|
|
||||||
if (gMsgCompose && gMsgCompose.composeHTML)
|
|
||||||
{
|
{
|
||||||
goUpdateCommand("cmd_renderedHTMLEnabler");
|
//Edit Menu
|
||||||
goUpdateCommand("cmd_decreaseFont");
|
goUpdateCommand("cmd_rewrap");
|
||||||
goUpdateCommand("cmd_increaseFont");
|
|
||||||
goUpdateCommand("cmd_bold");
|
|
||||||
goUpdateCommand("cmd_italic");
|
|
||||||
goUpdateCommand("cmd_underline");
|
|
||||||
goUpdateCommand("cmd_ul");
|
|
||||||
goUpdateCommand("cmd_ol");
|
|
||||||
goUpdateCommand("cmd_indent");
|
|
||||||
goUpdateCommand("cmd_outdent");
|
|
||||||
goUpdateCommand("cmd_align");
|
|
||||||
goUpdateCommand("cmd_smiley");
|
|
||||||
}
|
|
||||||
|
|
||||||
//Options Menu
|
//Insert Menu
|
||||||
goUpdateCommand("cmd_spelling");
|
if (gMsgCompose && gMsgCompose.composeHTML)
|
||||||
goUpdateCommand("cmd_quoteMessage");
|
{
|
||||||
|
goUpdateCommand("cmd_renderedHTMLEnabler");
|
||||||
|
goUpdateCommand("cmd_decreaseFont");
|
||||||
|
goUpdateCommand("cmd_increaseFont");
|
||||||
|
goUpdateCommand("cmd_bold");
|
||||||
|
goUpdateCommand("cmd_italic");
|
||||||
|
goUpdateCommand("cmd_underline");
|
||||||
|
goUpdateCommand("cmd_ul");
|
||||||
|
goUpdateCommand("cmd_ol");
|
||||||
|
goUpdateCommand("cmd_indent");
|
||||||
|
goUpdateCommand("cmd_outdent");
|
||||||
|
goUpdateCommand("cmd_align");
|
||||||
|
goUpdateCommand("cmd_smiley");
|
||||||
|
}
|
||||||
|
|
||||||
|
//Options Menu
|
||||||
|
goUpdateCommand("cmd_spelling");
|
||||||
|
goUpdateCommand("cmd_quoteMessage");
|
||||||
|
|
||||||
} catch(e) {}
|
} catch(e) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateEditItems() {
|
function openEditorContextMenu()
|
||||||
|
{
|
||||||
|
// if we have a mispelled word, do one thing, otherwise show the usual context menu
|
||||||
|
var spellCheckNoSuggestionsItem = document.getElementById('spellCheckNoSuggestions');
|
||||||
|
var word;
|
||||||
|
var misspelledWordStatus = InlineSpellChecker.updateSuggestionsMenu(document.getElementById('msgComposeContext'), spellCheckNoSuggestionsItem,
|
||||||
|
word);
|
||||||
|
|
||||||
|
var hideSpellingItems = (misspelledWordStatus == kSpellNoMispelling);
|
||||||
|
spellCheckNoSuggestionsItem.hidden = hideSpellingItems || misspelledWordStatus != kSpellNoSuggestionsFound;
|
||||||
|
document.getElementById('spellCheckAddToDictionary').hidden = hideSpellingItems;
|
||||||
|
document.getElementById('spellCheckIgnoreWord').hidden = hideSpellingItems;
|
||||||
|
document.getElementById('spellCheckAddSep').hidden = hideSpellingItems;
|
||||||
|
document.getElementById('spellCheckSuggestionsSeparator').hidden = hideSpellingItems;
|
||||||
|
|
||||||
|
updateEditItems();
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateEditItems()
|
||||||
|
{
|
||||||
goUpdateCommand("cmd_pasteNoFormatting");
|
goUpdateCommand("cmd_pasteNoFormatting");
|
||||||
goUpdateCommand("cmd_pasteQuote");
|
goUpdateCommand("cmd_pasteQuote");
|
||||||
goUpdateCommand("cmd_delete");
|
goUpdateCommand("cmd_delete");
|
||||||
|
@ -633,8 +652,10 @@ function updateEditItems() {
|
||||||
goUpdateCommand("cmd_findPrev");
|
goUpdateCommand("cmd_findPrev");
|
||||||
}
|
}
|
||||||
|
|
||||||
var messageComposeOfflineObserver = {
|
var messageComposeOfflineObserver =
|
||||||
observe: function(subject, topic, state) {
|
{
|
||||||
|
observe: function(subject, topic, state)
|
||||||
|
{
|
||||||
// sanity checks
|
// sanity checks
|
||||||
if (topic != "network:offline-status-changed") return;
|
if (topic != "network:offline-status-changed") return;
|
||||||
if (state == "offline")
|
if (state == "offline")
|
||||||
|
@ -1289,6 +1310,7 @@ function ComposeStartup(recycled, aParams)
|
||||||
gMsgCompose.compFields.returnReceipt);
|
gMsgCompose.compFields.returnReceipt);
|
||||||
document.getElementById("cmd_attachVCard").setAttribute('checked',
|
document.getElementById("cmd_attachVCard").setAttribute('checked',
|
||||||
gMsgCompose.compFields.attachVCard);
|
gMsgCompose.compFields.attachVCard);
|
||||||
|
document.getElementById("menu_inlineSpellCheck").setAttribute('checked', sPrefs.getBoolPref("mail.spellcheck.inline"));
|
||||||
|
|
||||||
// If recycle, editor is already created
|
// If recycle, editor is already created
|
||||||
if (!recycled)
|
if (!recycled)
|
||||||
|
@ -1357,8 +1379,7 @@ function ComposeStartup(recycled, aParams)
|
||||||
|
|
||||||
if (recycled)
|
if (recycled)
|
||||||
{
|
{
|
||||||
// This sets charset and does reply quote insertion
|
InitEditor();
|
||||||
gMsgCompose.initEditor(GetCurrentEditor(), window.content);
|
|
||||||
|
|
||||||
if (gMsgCompose.composeHTML)
|
if (gMsgCompose.composeHTML)
|
||||||
{
|
{
|
||||||
|
@ -1419,7 +1440,7 @@ var gMsgEditorCreationObserver =
|
||||||
{
|
{
|
||||||
var editorStyle = editor.QueryInterface(Components.interfaces.nsIEditorStyleSheets);
|
var editorStyle = editor.QueryInterface(Components.interfaces.nsIEditorStyleSheets);
|
||||||
editorStyle.addStyleSheet("chrome://messenger/skin/messageQuotes.css");
|
editorStyle.addStyleSheet("chrome://messenger/skin/messageQuotes.css");
|
||||||
gMsgCompose.initEditor(editor, window.content);
|
InitEditor();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2020,7 +2041,6 @@ function SelectAddress()
|
||||||
var ccAddress = msgCompFields.cc;
|
var ccAddress = msgCompFields.cc;
|
||||||
var bccAddress = msgCompFields.bcc;
|
var bccAddress = msgCompFields.bcc;
|
||||||
|
|
||||||
dump("toAddress: " + toAddress + "\n");
|
|
||||||
window.openDialog("chrome://messenger/content/addressbook/abSelectAddressesDialog.xul",
|
window.openDialog("chrome://messenger/content/addressbook/abSelectAddressesDialog.xul",
|
||||||
"",
|
"",
|
||||||
"chrome,resizable,titlebar,modal",
|
"chrome,resizable,titlebar,modal",
|
||||||
|
@ -2034,6 +2054,18 @@ function SelectAddress()
|
||||||
AdjustFocus();
|
AdjustFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function ToggleInlineSpellChecker(target)
|
||||||
|
{
|
||||||
|
if (InlineSpellChecker.inlineSpellChecker)
|
||||||
|
{
|
||||||
|
InlineSpellChecker.inlineSpellChecker.enableRealTimeSpell = !InlineSpellChecker.inlineSpellChecker.enableRealTimeSpell;
|
||||||
|
target.setAttribute('checked', InlineSpellChecker.inlineSpellChecker.enableRealTimeSpell);
|
||||||
|
|
||||||
|
if (InlineSpellChecker.inlineSpellChecker.enableRealTimeSpell)
|
||||||
|
InlineSpellChecker.checkDocument(window.content.document);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function ToggleReturnReceipt(target)
|
function ToggleReturnReceipt(target)
|
||||||
{
|
{
|
||||||
var msgCompFields = gMsgCompose.compFields;
|
var msgCompFields = gMsgCompose.compFields;
|
||||||
|
@ -2047,13 +2079,13 @@ function ToggleReturnReceipt(target)
|
||||||
|
|
||||||
function ToggleAttachVCard(target)
|
function ToggleAttachVCard(target)
|
||||||
{
|
{
|
||||||
var msgCompFields = gMsgCompose.compFields;
|
var msgCompFields = gMsgCompose.compFields;
|
||||||
if (msgCompFields)
|
if (msgCompFields)
|
||||||
{
|
{
|
||||||
msgCompFields.attachVCard = ! msgCompFields.attachVCard;
|
msgCompFields.attachVCard = ! msgCompFields.attachVCard;
|
||||||
target.setAttribute('checked', msgCompFields.attachVCard);
|
target.setAttribute('checked', msgCompFields.attachVCard);
|
||||||
gAttachVCardOptionChanged = true;
|
gAttachVCardOptionChanged = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function queryISupportsArray(supportsArray, iid) {
|
function queryISupportsArray(supportsArray, iid) {
|
||||||
|
@ -3302,3 +3334,10 @@ function AutoSave()
|
||||||
gAutoSaveTimeout = setTimeout("AutoSave()", gAutoSaveInterval);
|
gAutoSaveTimeout = setTimeout("AutoSave()", gAutoSaveInterval);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function InitEditor()
|
||||||
|
{
|
||||||
|
var editor = GetCurrentEditor();
|
||||||
|
gMsgCompose.initEditor(editor, window.content);
|
||||||
|
InlineSpellChecker.Init(editor, sPrefs.getBoolPref("mail.spellcheck.inline"));
|
||||||
|
InlineSpellChecker.checkDocument(window.content.document);
|
||||||
|
}
|
||||||
|
|
|
@ -70,6 +70,7 @@
|
||||||
</stringbundleset>
|
</stringbundleset>
|
||||||
|
|
||||||
<script type="application/x-javascript" src="chrome://communicator/content/printing.js"/>
|
<script type="application/x-javascript" src="chrome://communicator/content/printing.js"/>
|
||||||
|
<script type="application/x-javascript" src="chrome://editor/content/editorInlineSpellCheck.js"/>
|
||||||
<script type="application/x-javascript" src="chrome://messenger/content/accountUtils.js"/>
|
<script type="application/x-javascript" src="chrome://messenger/content/accountUtils.js"/>
|
||||||
<script type="application/x-javascript" src="chrome://messenger/content/widgetglue.js"/>
|
<script type="application/x-javascript" src="chrome://messenger/content/widgetglue.js"/>
|
||||||
<script type="application/x-javascript" src="chrome://messenger/content/mailCore.js"/>
|
<script type="application/x-javascript" src="chrome://messenger/content/mailCore.js"/>
|
||||||
|
@ -234,9 +235,18 @@
|
||||||
|
|
||||||
<keyset id="editorKeys"/>
|
<keyset id="editorKeys"/>
|
||||||
|
|
||||||
<popup id="msgComposeContext" onpopupshowing="updateEditItems();">
|
<popup id="msgComposeContext"
|
||||||
|
onpopupshowing="openEditorContextMenu();">
|
||||||
|
|
||||||
|
<menuitem id="spellCheckNoSuggestions" label="&spellCheckNoSuggestions.label;" disabled="true"/>
|
||||||
|
<menuseparator id="spellCheckAddSep"/>
|
||||||
|
<menuitem id="spellCheckAddToDictionary" label="&spellCheckAddToDictionary.label;" accesskey="&spellCheckAddToDictionary.accesskey;"
|
||||||
|
oncommand="InlineSpellChecker.addToDictionary(null,null);"/>
|
||||||
|
<menuitem id="spellCheckIgnoreWord" label="&spellCheckIgnoreWord.label;" accesskey="&spellCheckIgnoreWord.accesskey;"
|
||||||
|
oncommand="InlineSpellChecker.ignoreWord(null, null)"/>
|
||||||
|
<menuseparator id="spellCheckSuggestionsSeparator"/>
|
||||||
|
|
||||||
<menuitem label="&undo.label;" accesskey="&undo.accesskey;" command="cmd_undo"/>
|
<menuitem label="&undo.label;" accesskey="&undo.accesskey;" command="cmd_undo"/>
|
||||||
<menuseparator/>
|
|
||||||
<menuitem label="&cut.label;" accesskey="&cut.accesskey;" command="cmd_cut"/>
|
<menuitem label="&cut.label;" accesskey="&cut.accesskey;" command="cmd_cut"/>
|
||||||
<menuitem label="©.label;" accesskey="©.accesskey;" command="cmd_copy"/>
|
<menuitem label="©.label;" accesskey="©.accesskey;" command="cmd_copy"/>
|
||||||
<menuitem label="&paste.label;" accesskey="&paste.accesskey;" command="cmd_paste"/>
|
<menuitem label="&paste.label;" accesskey="&paste.accesskey;" command="cmd_paste"/>
|
||||||
|
@ -394,6 +404,9 @@
|
||||||
<menu id="optionsMenu" label="&optionsMenu.label;" accesskey="&optionsMenu.accesskey;">
|
<menu id="optionsMenu" label="&optionsMenu.label;" accesskey="&optionsMenu.accesskey;">
|
||||||
<menupopup id="optionsMenuPopup">
|
<menupopup id="optionsMenuPopup">
|
||||||
<menuitem label="&checkSpellingCmd.label;" id="menu_checkspelling" accesskey="&checkSpellingCmd.accesskey;" key="key_checkspelling" command="cmd_spelling"/>
|
<menuitem label="&checkSpellingCmd.label;" id="menu_checkspelling" accesskey="&checkSpellingCmd.accesskey;" key="key_checkspelling" command="cmd_spelling"/>
|
||||||
|
<menuitem label="&enableInlineSpellChecker.label;" id="menu_inlineSpellCheck"
|
||||||
|
accesskey="&enableInlineSpellChecker.accesskey;" checked="false"
|
||||||
|
type="checkbox" oncommand="ToggleInlineSpellChecker(event.target)"/>
|
||||||
<menuitem label=""eCmd.label;" accesskey=""eCmd.accesskey;" command="cmd_quoteMessage"/>
|
<menuitem label=""eCmd.label;" accesskey=""eCmd.accesskey;" command="cmd_quoteMessage"/>
|
||||||
<menuseparator/>
|
<menuseparator/>
|
||||||
<menuitem id="returnReceiptMenu" type="checkbox" label="&returnReceiptMenu.label;" accesskey="&returnReceiptMenu.accesskey;" checked="false" oncommand="ToggleReturnReceipt(event.target)"/>
|
<menuitem id="returnReceiptMenu" type="checkbox" label="&returnReceiptMenu.label;" accesskey="&returnReceiptMenu.accesskey;" checked="false" oncommand="ToggleReturnReceipt(event.target)"/>
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
|
|
||||||
<script type="application/x-javascript">
|
<script type="application/x-javascript">
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
var _elementIDs = ["forwardMessageMode", "spellCheckBeforeSend", "strictlyMime",
|
var _elementIDs = ["forwardMessageMode", "spellCheckBeforeSend", "inlineSpellCheck", "strictlyMime",
|
||||||
"wrapLength", "mailWarnOnSendAccelKey", "autoSave",
|
"wrapLength", "mailWarnOnSendAccelKey", "autoSave",
|
||||||
"autoSaveInterval",
|
"autoSaveInterval",
|
||||||
// auto complete prefs
|
// auto complete prefs
|
||||||
|
@ -28,6 +28,7 @@
|
||||||
function Startup()
|
function Startup()
|
||||||
{
|
{
|
||||||
document.getElementById("spellCheckBeforeSend").hidden =! ("@mozilla.org/spellchecker;1" in Components.classes);
|
document.getElementById("spellCheckBeforeSend").hidden =! ("@mozilla.org/spellchecker;1" in Components.classes);
|
||||||
|
document.getElementById("inlineSpellCheck").hidden =! ("@mozilla.org/spellchecker;1" in Components.classes);
|
||||||
|
|
||||||
// autocomplete
|
// autocomplete
|
||||||
enableAutocomplete();
|
enableAutocomplete();
|
||||||
|
@ -72,6 +73,10 @@
|
||||||
prefstring="mail.SpellCheckBeforeSend"
|
prefstring="mail.SpellCheckBeforeSend"
|
||||||
accesskey="&spellCheck.accesskey;"/>
|
accesskey="&spellCheck.accesskey;"/>
|
||||||
|
|
||||||
|
<checkbox id="inlineSpellCheck" label="&spellCheckInline.label;"
|
||||||
|
prefstring="mail.spellcheck.inline"
|
||||||
|
accesskey="&spellCheckInline.accesskey;"/>
|
||||||
|
|
||||||
<checkbox id="strictlyMime" label="&useMIME.label;"
|
<checkbox id="strictlyMime" label="&useMIME.label;"
|
||||||
prefstring="mail.strictly_mime"
|
prefstring="mail.strictly_mime"
|
||||||
accesskey="&useMIME.accesskey;"/>
|
accesskey="&useMIME.accesskey;"/>
|
||||||
|
|
|
@ -119,7 +119,9 @@
|
||||||
<!ENTITY checkSpellingCmd.label "Check Spelling...">
|
<!ENTITY checkSpellingCmd.label "Check Spelling...">
|
||||||
<!ENTITY checkSpellingCmd.key "K">
|
<!ENTITY checkSpellingCmd.key "K">
|
||||||
<!ENTITY checkSpellingCmd.key2 "VK_F7">
|
<!ENTITY checkSpellingCmd.key2 "VK_F7">
|
||||||
<!ENTITY checkSpellingCmd.accesskey "S">
|
<!ENTITY checkSpellingCmd.accesskey "h">
|
||||||
|
<!ENTITY enableInlineSpellChecker.label "Spell As You Type">
|
||||||
|
<!ENTITY enableInlineSpellChecker.accesskey "S">
|
||||||
<!ENTITY quoteCmd.label "Quote Message">
|
<!ENTITY quoteCmd.label "Quote Message">
|
||||||
<!ENTITY quoteCmd.accesskey "Q">
|
<!ENTITY quoteCmd.accesskey "Q">
|
||||||
|
|
||||||
|
@ -251,6 +253,11 @@
|
||||||
<!ENTITY smiley16Cmd.label "Lips-are-Sealed">
|
<!ENTITY smiley16Cmd.label "Lips-are-Sealed">
|
||||||
|
|
||||||
<!-- Message Pane Context Menu -->
|
<!-- Message Pane Context Menu -->
|
||||||
|
<!ENTITY spellCheckNoSuggestions.label "No Suggestions Found">
|
||||||
|
<!ENTITY spellCheckIgnoreWord.label "Ignore Word">
|
||||||
|
<!ENTITY spellCheckIgnoreWord.accesskey "I">
|
||||||
|
<!ENTITY spellCheckAddToDictionary.label "Add to Dictionary">
|
||||||
|
<!ENTITY spellCheckAddToDictionary.accesskey "n">
|
||||||
<!ENTITY undo.label "Undo">
|
<!ENTITY undo.label "Undo">
|
||||||
<!ENTITY undo.accesskey "U">
|
<!ENTITY undo.accesskey "U">
|
||||||
<!ENTITY cut.label "Cut">
|
<!ENTITY cut.label "Cut">
|
||||||
|
@ -275,3 +282,4 @@
|
||||||
|
|
||||||
<!-- Title for the address picker panel -->
|
<!-- Title for the address picker panel -->
|
||||||
<!ENTITY addressesSidebarTitle.label "Contacts">
|
<!ENTITY addressesSidebarTitle.label "Contacts">
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,8 @@
|
||||||
<!ENTITY sendingMessagesHeader.label "Composing Messages">
|
<!ENTITY sendingMessagesHeader.label "Composing Messages">
|
||||||
<!ENTITY spellCheck.label "Check spelling before sending">
|
<!ENTITY spellCheck.label "Check spelling before sending">
|
||||||
<!ENTITY spellCheck.accesskey "c">
|
<!ENTITY spellCheck.accesskey "c">
|
||||||
|
<!ENTITY spellCheckInline.label "Enable spell as you type">
|
||||||
|
<!ENTITY spellCheckInline.accesskey "n">
|
||||||
<!ENTITY useMIME.label "For messages that contain 8-bit characters, use 'quoted printable' MIME encoding. Leave unchecked to send the messages as is.">
|
<!ENTITY useMIME.label "For messages that contain 8-bit characters, use 'quoted printable' MIME encoding. Leave unchecked to send the messages as is.">
|
||||||
<!ENTITY useMIME.accesskey "o">
|
<!ENTITY useMIME.accesskey "o">
|
||||||
<!ENTITY warnOnSendAccelKey.label "Confirm when using keyboard shortcut to send message">
|
<!ENTITY warnOnSendAccelKey.label "Confirm when using keyboard shortcut to send message">
|
||||||
|
|
Загрузка…
Ссылка в новой задаче