Changes In Branch tbnext Through [617b4e1348] Excluding Merge-Ins
This is equivalent to a diff from 94e2e47aea to 617b4e1348
2018-03-14
| ||
19:49 | [tb] new API: fix dictionary loading + remove obsolete echo function check-in: 1dd9310e28 user: olr tags: tb, tbnext | |
15:37 | [tb] remove dialog for bundled options > common dialog box check-in: 617b4e1348 user: olr tags: tb, tbnext | |
2018-03-12
| ||
13:58 | [fr] pt: chaque fois check-in: 066a99dfc3 user: olr tags: trunk, fr | |
2018-03-10
| ||
15:18 | [tb] fix conjugueur initialization… (again, and again, and again, and again, thanks to the endless JS pile of shit) check-in: 8253dcac97 user: olr tags: tb, tbnext | |
2018-03-09
| ||
08:28 | [tb] new TB API: x-javascript > javascript check-in: 0e232d6b0f user: olr tags: tb, tbnext | |
2018-03-07
| ||
17:32 | merge trunk check-in: a693df4168 user: olr tags: multid | |
16:10 | [fx] hide useless panel about dictionaries for now check-in: 94e2e47aea user: olr tags: trunk, fx | |
16:01 | [fx] new version for WebExtension check-in: 23d108bf86 user: olr tags: trunk, fx | |
Modified gc_lang/fr/build.py from [9ca6336e46] to [a54b2ffcfb].
︙ | ︙ | |||
89 90 91 92 93 94 95 96 97 98 99 100 101 102 | for sp in os.listdir(spDict): if os.path.isdir(spDict+"/"+sp): hZip.write(spDict+"/"+sp+"/"+sp+".dic", "content/dictionaries/"+sp+"/"+sp+".dic") hZip.write(spDict+"/"+sp+"/"+sp+".aff", "content/dictionaries/"+sp+"/"+sp+".aff") hZip.close() spfDebugProfile = dVars['win_tb_debug_extension_path'] if platform.system() == "Windows" else dVars['linux_tb_debug_extension_path'] helpers.unzip(spfZip, spfDebugProfile) def _createOptionsForThunderbird (dVars): dVars['sXULTabs'] = "" dVars['sXULTabPanels'] = "" # dialog options for sSection, lOpt in dVars['lStructOpt']: | > > | 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | for sp in os.listdir(spDict): if os.path.isdir(spDict+"/"+sp): hZip.write(spDict+"/"+sp+"/"+sp+".dic", "content/dictionaries/"+sp+"/"+sp+".dic") hZip.write(spDict+"/"+sp+"/"+sp+".aff", "content/dictionaries/"+sp+"/"+sp+".aff") hZip.close() spfDebugProfile = dVars['win_tb_debug_extension_path'] if platform.system() == "Windows" else dVars['linux_tb_debug_extension_path'] helpers.unzip(spfZip, spfDebugProfile) spfBetaProfile = dVars['win_tb_beta_extension_path'] if platform.system() == "Windows" else dVars['linux_tb_beta_extension_path'] helpers.unzip(spfZip, spfBetaProfile) def _createOptionsForThunderbird (dVars): dVars['sXULTabs'] = "" dVars['sXULTabPanels'] = "" # dialog options for sSection, lOpt in dVars['lStructOpt']: |
︙ | ︙ |
Modified gc_lang/fr/config.ini from [eb081b50e5] to [c5bda27e4c].
︙ | ︙ | |||
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | win_fx_nightly_path = C:\Program Files\Nightly\firefox.exe linux_fx_dev_path = /usr/bin/firefox linux_fx_nightly_path = /usr/bin/firefox # Thunderbird tb_identifier = French-GC-TB@grammalecte.net tb_name = Grammalecte [fr] win_tb_debug_extension_path = D:\_temp\tb-debug.profile\extensions\French-GC-TB@grammalecte.net linux_tb_debug_extension_path = ~/tb-debug.profile/extensions/French-GC-TB@grammalecte.net # Set Thunderbird folder in your PATH variable # Create a local profile: # thunderbird -CreateProfile "debug _build\tb-debug.profile" # Or you can use the GUI with: # thunderbird -P # To launch Thunderbird with the profile debug, type: # thunderbird -P debug | > > > > > > | 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | win_fx_nightly_path = C:\Program Files\Nightly\firefox.exe linux_fx_dev_path = /usr/bin/firefox linux_fx_nightly_path = /usr/bin/firefox # Thunderbird tb_identifier = French-GC-TB@grammalecte.net tb_name = Grammalecte [fr] win_tb_path = C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe win_tb_beta_path = C:\Program Files (x86)\Mozilla Thunderbird (Beta)\thunderbird.exe linux_tb_path = /usr/bin/thunderbird linux_tb_beta_path = /usr/bin/thunderbird win_tb_debug_extension_path = D:\_temp\tb-debug.profile\extensions\French-GC-TB@grammalecte.net linux_tb_debug_extension_path = ~/tb-debug.profile/extensions/French-GC-TB@grammalecte.net win_tb_beta_extension_path = D:\_temp\tb-beta.profile\extensions\French-GC-TB@grammalecte.net linux_tb_beta_extension_path = ~/tb-beta.profile/extensions/French-GC-TB@grammalecte.net # Set Thunderbird folder in your PATH variable # Create a local profile: # thunderbird -CreateProfile "debug _build\tb-debug.profile" # Or you can use the GUI with: # thunderbird -P # To launch Thunderbird with the profile debug, type: # thunderbird -P debug |
︙ | ︙ |
Modified gc_lang/fr/tb/chrome.manifest from [39608040f5] to [a8f859a2c4].
1 2 3 4 5 6 7 8 | # https://developer.mozilla.org/en-US/docs/Chrome_Registration content grammarchecker content/ content promiseworker ./worker/ resource grammalecte ./grammalecte-js/ locale grammarchecker fr locale/fr/ locale grammarchecker en locale/en/ skin grammarchecker classic/1.0 skin/ overlay chrome://messenger/content/messengercompose/messengercompose.xul chrome://grammarchecker/content/overlay.xul | | | 1 2 3 4 5 6 7 8 9 | # https://developer.mozilla.org/en-US/docs/Chrome_Registration content grammarchecker content/ content promiseworker ./worker/ resource grammalecte ./grammalecte-js/ locale grammarchecker fr locale/fr/ locale grammarchecker en locale/en/ skin grammarchecker classic/1.0 skin/ overlay chrome://messenger/content/messengercompose/messengercompose.xul chrome://grammarchecker/content/overlay.xul style chrome://messenger/content/customizeToolbar.xul chrome://grammarchecker/content/overlay.css |
Modified gc_lang/fr/tb/content/about.js from [2bc9ad5ee7] to [c5c1006b2d].
1 2 3 4 5 | // JavaScript const Cc = Components.classes; const Ci = Components.interfaces; const Cu = Components.utils; | < < < < < | 1 2 3 4 5 6 7 8 9 10 11 12 | // JavaScript const Cc = Components.classes; const Ci = Components.interfaces; const Cu = Components.utils; function openInBrowserURL (sURL) { // method found in S3.Google.Translator try { openURL(sURL); // Works in overlay.js, but not here… Seems there is no documentation available about this feature on Mozilla.org |
︙ | ︙ |
Modified gc_lang/fr/tb/content/about.xul from [fc21852913] to [9407ba6c78].
︙ | ︙ | |||
30 31 32 33 34 35 36 | onclick="openInTabURL('http://lamouette.org/?from=grammalecte-tb');" /> <label class="stdlabel" value="&" /> <image src="chrome://grammarchecker/skin/Algoo_logo.png" style="cursor: pointer;" onclick="openInTabURL('https://www.algoo.fr/?from=grammalecte-tb');" /> <label id="contrib" value="&contrib;" onclick="openInTabURL('https://www.dicollecte.org/#thanks');" /> | | | 30 31 32 33 34 35 36 37 38 | onclick="openInTabURL('http://lamouette.org/?from=grammalecte-tb');" /> <label class="stdlabel" value="&" /> <image src="chrome://grammarchecker/skin/Algoo_logo.png" style="cursor: pointer;" onclick="openInTabURL('https://www.algoo.fr/?from=grammalecte-tb');" /> <label id="contrib" value="&contrib;" onclick="openInTabURL('https://www.dicollecte.org/#thanks');" /> <script type="application/javascript" src="about.js"/> </dialog> |
Modified gc_lang/fr/tb/content/conjugueur.js from [52fcb1616a] to [e2b39bc09c].
1 2 3 | // JavaScript const Cu = Components.utils; | | | < < < < < | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | // JavaScript const Cu = Components.utils; //const { require } = Cu.import("resource://gre/modules/commonjs/toolkit/require.js", {}); //const conj = require("resource://grammalecte/fr/conj.js"); let oConj = { init: function () { console.log("Init conjugueur"); try { // button document.getElementById('conjugate').addEventListener("click", (xEvent) => { this.getVerbAndConjugate(); }); // text field document.getElementById('verb').addEventListener("change", (xEvent) => { this.getVerbAndConjugate(); }); // options document.getElementById('oneg').addEventListener("click", (xEvent) => { this._displayResults(); }); document.getElementById('opro').addEventListener("click", (xEvent) => { this._displayResults(); }); document.getElementById('oint').addEventListener("click", (xEvent) => { this._displayResults(); }); document.getElementById('ofem').addEventListener("click", (xEvent) => { this._displayResults(); }); document.getElementById('otco').addEventListener("click", (xEvent) => { this._displayResults(); }); } catch (e) { Cu.reportError(e); } this.conjugate("être"); }, |
︙ | ︙ | |||
81 82 83 84 85 86 87 | if (!conj.isVerb(sVerb)) { document.getElementById('verb').style = "color: #BB4411;"; } else { document.getElementById('verb_title').textContent = sVerb; document.getElementById('verb').style = "color: #999999;"; document.getElementById('verb').value = ""; | | | 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | if (!conj.isVerb(sVerb)) { document.getElementById('verb').style = "color: #BB4411;"; } else { document.getElementById('verb_title').textContent = sVerb; document.getElementById('verb').style = "color: #999999;"; document.getElementById('verb').value = ""; this.oVerb = new Verb(sVerb); let sRawInfo = this.oVerb._sRawInfo; document.getElementById('info').textContent = this.oVerb.sInfo; document.getElementById('opro').textContent = "pronominal"; if (sRawInfo.endsWith("zz")) { document.getElementById('opro').checked = false; document.getElementById('opro').disabled = true; document.getElementById('opro').style = "color: #CCC;"; |
︙ | ︙ | |||
269 270 271 272 273 274 275 276 | } catch (e) { Cu.reportError(e); } } }; oConj.init(); | > < | 264 265 266 267 268 269 270 271 272 | } catch (e) { Cu.reportError(e); } } }; conj.init(helpers.loadFile("resource://grammalecte/fr/conj_data.json")); oConj.init(); |
Modified gc_lang/fr/tb/content/conjugueur.xul from [ee8b63b554] to [a9e15bac00].
︙ | ︙ | |||
150 151 152 153 154 155 156 | <label id="condb4" class="cj">.</label> <label id="condb5" class="cj">.</label> <label id="condb6" class="cj">.</label> </groupbox> </column> </columns> | > > | | 150 151 152 153 154 155 156 157 158 159 160 | <label id="condb4" class="cj">.</label> <label id="condb5" class="cj">.</label> <label id="condb6" class="cj">.</label> </groupbox> </column> </columns> <script type="application/javascript" src="resource://grammalecte/graphspell/helpers.js"/> <script type="application/javascript" src="resource://grammalecte/fr/conj.js"/> <script type="application/javascript" src="conjugueur.js"/> </dialog> |
Modified gc_lang/fr/tb/content/editor.js from [71421bf6bc] to [8eea7833f2].
︙ | ︙ | |||
17 18 19 20 21 22 23 | } }; * _getParsableNodes (xRootNode=this.xEditor.rootElement) { // recursive function try { for (let xNode of xRootNode.childNodes) { | < < | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | } }; * _getParsableNodes (xRootNode=this.xEditor.rootElement) { // recursive function try { for (let xNode of xRootNode.childNodes) { if (xNode.className !== "moz-cite-prefix" && xNode.tagName !== "BLOCKQUOTE" && (xNode.nodeType == Node.TEXT_NODE || (xNode.nodeType == Node.ELEMENT_NODE && !xNode.textContent.startsWith(">"))) && xNode.textContent !== "") { if (xNode.tagName === undefined) { if (!prefs.getBoolPref("bCheckSignature") && xNode.textContent.startsWith("-- ")) { break; } yield xNode; } else if (this.lParsableNodes.includes(xNode.tagName)) { yield xNode; |
︙ | ︙ |
Modified gc_lang/fr/tb/content/gc_options.js from [f85fde1089] to [aee78a8d90].
1 2 3 4 5 6 | // JavaScript const Cc = Components.classes; const Ci = Components.interfaces; const Cu = Components.utils; const prefs = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefService).getBranch("extensions.grammarchecker."); | < < < < < < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | // JavaScript const Cc = Components.classes; const Ci = Components.interfaces; const Cu = Components.utils; const prefs = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefService).getBranch("extensions.grammarchecker."); var oOptControl = { oOptions: null, load: function () { this._setDialogOptions(false); }, _setDialogOptions: function (bDefaultOptions=false) { try { sOptions = bDefaultOptions ? prefs.getCharPref("sGCDefaultOptions") : prefs.getCharPref("sGCOptions"); this.oOptions = JSON.parse(sOptions); for (let sParam in this.oOptions) { if (document.getElementById("option_"+sParam) !== null) { document.getElementById("option_"+sParam).checked = this.oOptions[sParam]; } } } catch (e) { Cu.reportError(e); } }, save: function () { try { for (let xNode of document.getElementsByClassName("option")) { this.oOptions[xNode.id.slice(7)] = xNode.checked; } prefs.setCharPref("sGCOptions", JSON.stringify(this.oOptions)); } catch (e) { Cu.reportError(e); } }, reset: function () { this._setDialogOptions(true); } } oOptControl.load(); |
Modified gc_lang/fr/tb/content/gc_options.xul from [8e6b4a963d] to [65926a1200].
︙ | ︙ | |||
27 28 29 30 31 32 33 | ${sXULTabs} </tabs> <tabpanels> ${sXULTabPanels} </tabpanels> </tabbox> | | | 27 28 29 30 31 32 33 34 35 36 | ${sXULTabs} </tabs> <tabpanels> ${sXULTabPanels} </tabpanels> </tabbox> <script type="application/javascript" src="gc_options.js" /> </dialog> |
Added gc_lang/fr/tb/content/options.css version [9480df93df].
> > | 1 2 | /* CSS */ |
Added gc_lang/fr/tb/content/options.js version [239a6bffa5].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | // JavaScript "use strict"; console.log("1"); const Cc = Components.classes; const Ci = Components.interfaces; const Cu = Components.utils; const prefs = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefService).getBranch("extensions.grammarchecker."); var oOptControl = { load: function () { console.log("load"); try { document.getElementById('check_signature').checked = prefs.getBoolPref('bCheckSignature'); } catch (e) { Cu.reportError(e); } }, save: function () { console.log("save"); try { prefs.setBoolPref('bCheckSignature', document.getElementById('check_signature').checked); } catch (e) { Cu.reportError(e); } } } console.log("2"); oOptControl.load(); console.log("3"); |
Modified gc_lang/fr/tb/content/options.xul from [4546c76788] to [b4b7f2b7c3].
|
| | > | > | | > > > > > > > > | | | < < < < < | | < < | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <?xml-stylesheet href="chrome://grammarchecker/content/options.css" type="text/css"?> <!DOCTYPE dialog SYSTEM "chrome://grammarchecker/locale/options.dtd"> <dialog id="grammalecte-options-window" title="&window.title;" orient="vertical" buttons="accept, cancel" ondialogaccept="oOptControl.save();" ondialogcancel="return;" defaultButton="accept" width="400" onload="document.getElementById('grammalecte-options-window').centerWindowOnScreen();" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <!-- Other elements go here --> <dialogheader id="grammalecte-title" title="&dialogheader.label;" description="" /> <checkbox id="check_signature" label="&check_signature.label;" accesskey="&check_signature.accesskey;" /> <script type="application/javascript" src="options.js" /> </dialog> |
Modified gc_lang/fr/tb/content/overlay.js from [0f3db968a0] to [fcc7e4e2d6].
1 2 3 4 5 6 7 8 | // JavaScript "use strict"; const Cc = Components.classes; const Ci = Components.interfaces; const Cu = Components.utils; | | < < < | | < < < < < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | // JavaScript "use strict"; const Cc = Components.classes; const Ci = Components.interfaces; const Cu = Components.utils; //const { require } = Cu.import("resource://gre/modules/commonjs/toolkit/require.js", {}); const { BasePromiseWorker } = Cu.import('resource://gre/modules/PromiseWorker.jsm', {}); const Task = Cu.import("resource://gre/modules/Task.jsm").Task; const prefs = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefService).getBranch("extensions.grammarchecker."); //const text = require("resource://grammalecte/text.js"); //const tf = require("resource://grammalecte/fr/textformatter.js"); const oConverterToExponent = { dNumbers: new Map ([ ["1", "¹"], ["2", "²"], ["3", "³"], ["4", "⁴"], ["5", "⁵"], ["6", "⁶"], ["7", "⁷"], ["8", "⁸"], ["9", "⁹"], ["0", "⁰"] ]), |
︙ | ︙ | |||
43 44 45 46 47 48 49 | var oGrammarChecker = { // you must use var to be able to call this object from elsewhere xGCEWorker: null, bDictActive: null, loadGC: function () { if (this.xGCEWorker === null) { // Grammar checker | | | | | | | | | | | | | | | | | | | | | | | 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | var oGrammarChecker = { // you must use var to be able to call this object from elsewhere xGCEWorker: null, bDictActive: null, loadGC: function () { if (this.xGCEWorker === null) { // Grammar checker console.log('Loading Grammalecte'); this.xGCEWorker = new BasePromiseWorker('chrome://promiseworker/content/gce_worker.js'); let xPromise = this.xGCEWorker.post('loadGrammarChecker', [prefs.getCharPref("sGCOptions"), "Thunderbird"]); xPromise.then( function (aVal) { console.log(aVal); prefs.setCharPref("sGCOptions", aVal); }, function (aReason) { console.log('Promise rejected - ', aReason); } ).catch( function (aCaught) { console.log('Promise Error - ', aCaught); } ); } }, fullTests: function () { console.log('Performing tests... Wait...'); let xPromise = this.xGCEWorker.post('fullTests', ['{"nbsp":true, "esp":true, "unit":true, "num":true}']); xPromise.then( function (aVal) { console.log('Done.'); console.log(aVal); }, function (aReason) { console.log('Promise rejected', aReason); } ).catch( function (aCaught) { console.log('Promise Error', aCaught); } ); }, test: function (sText) { console.log("Test..."); let xPromise = this.xGCEWorker.post('parse', [sText, "FR", true]); xPromise.then( function (aVal) { let lErr = JSON.parse(aVal); if (lErr.length > 0) { for (let dErr of lErr) { console.log(text.getReadableError(dErr)); } } else { console.log("no error found"); } }, function (aReason) { console.log('Promise rejected', aReason); } ).catch( function (aCaught) { console.log('Promise Error', aCaught); } ); }, setOptions: function () { console.log('Set options'); let xPromise = this.xGCEWorker.post('setOptions', [prefs.getCharPref("sGCOptions")]); xPromise.then( function (aVal) { console.log(aVal); prefs.setCharPref("sGCOptions", aVal); }, function (aReason) { console.log('Promise rejected', aReason); } ).catch( function (aCaught) { console.log('Promise Error', aCaught); } ); }, resetOptions: function () { let xPromise = this.xGCEWorker.post('resetOptions'); xPromise.then( function (aVal) { console.log(aVal); prefs.setCharPref("sGCOptions", aVal); }, function (aReason) { console.log('Promise rejected', aReason); } ).catch( function (aCaught) { console.log('Promise Error', aCaught); } ); }, _getGCResultPromise: function (sParagraph, sLang, bDebug, bContext) { // For some reason, you can’t use result of PromiseWorker within a Task, // you have to wrap it in a common Promise. Task and yield can be replaced with async / await when it is available. let that = this; return new Promise(function (resolve, reject) { |
︙ | ︙ | |||
184 185 186 187 188 189 190 | try { let that = this; let xResultNode = document.getElementById("resnode"+iParagraph); xResultNode.textContent = "…………… réanalyse en cours ……………"; let sParagraph = xEditor.getParagraph(iParagraph); let xPromise = this._getGCResultPromise(sParagraph, "FR", false, false); xPromise.then(function (res) { | | | 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 | try { let that = this; let xResultNode = document.getElementById("resnode"+iParagraph); xResultNode.textContent = "…………… réanalyse en cours ……………"; let sParagraph = xEditor.getParagraph(iParagraph); let xPromise = this._getGCResultPromise(sParagraph, "FR", false, false); xPromise.then(function (res) { //console.log("res: " + res); xResultNode.textContent = ""; let oRes = JSON.parse(res); if (oRes.aGrammErr.length > 0 || oRes.aSpellErr.length > 0) { that.fillResultNode(xResultNode, xEditor, sParagraph, iParagraph, oRes.aGrammErr, oRes.aSpellErr); } }, function (res) { xResultNode.textContent = "Erreur: " + res; |
︙ | ︙ | |||
367 368 369 370 371 372 373 | } }); xNodeSuggLine.appendChild(xNodeSuggButton); xNodeDiv.appendChild(xNodeSuggLine); return xNodeDiv; }, loadUI: function() { | | | 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 | } }); xNodeSuggLine.appendChild(xNodeSuggButton); xNodeDiv.appendChild(xNodeSuggLine); return xNodeDiv; }, loadUI: function() { console.log("loadUI"); this._strings = document.getElementById("grammarchecker-strings"); let that = this; let nsGrammarCommand = { isCommandEnabled: function (aCommand, dummy) { return (IsDocumentEditable() && !IsInHTMLSourceMode()); }, getCommandStateParams: function (aCommand, aParams, aRefCon) {}, |
︙ | ︙ | |||
470 471 472 473 474 475 476 | this.closePanel(); }, onOpenGCOptions: function (e) { let that = this; let xPromise = this.xGCEWorker.post('getDefaultOptions'); xPromise.then( function (aVal) { | | | | | | | 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 | this.closePanel(); }, onOpenGCOptions: function (e) { let that = this; let xPromise = this.xGCEWorker.post('getDefaultOptions'); xPromise.then( function (aVal) { console.log(aVal); prefs.setCharPref("sGCDefaultOptions", aVal); }, function (aReason) { console.log('Promise rejected', aReason); } ).catch( function (aCaught) { console.log('Promise Error', aCaught); } ).then( function () { that.openDialog("chrome://grammarchecker/content/gc_options.xul", "", "chrome, dialog, modal, resizable=no"); that.setOptions(); }, function (aReason) { console.log('Error options dialog', aReason); } ).catch( function (aCaught) { console.log('Error', aCaught); } ); }, onOpenSpellOptions: function (e) { this.openDialog("chrome://grammarchecker/content/spell_options.xul", "", "chrome, dialog, modal, resizable=no"); }, onOpenOptions: function (e) { this.openDialog("chrome://grammarchecker/content/options.xul", "", "chrome, dialog, modal, resizable=no"); |
︙ | ︙ | |||
564 565 566 567 568 569 570 | } }, saveOptions: function () { let oOptions = {}; for (let xNode of document.getElementsByClassName("option")) { oOptions[xNode.id] = xNode.checked; } | | | 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 | } }, saveOptions: function () { let oOptions = {}; for (let xNode of document.getElementsByClassName("option")) { oOptions[xNode.id] = xNode.checked; } //console.log("save options: " + JSON.stringify(oOptions)); prefs.setCharPref("sTFOptions", JSON.stringify(oOptions)); }, setOptionsInPanel: function (oOptions) { for (let sOptName in oOptions) { //console.log(sOptName + ":" + oOptions[sOptName]); if (document.getElementById(sOptName) !== null) { document.getElementById(sOptName).checked = oOptions[sOptName]; |
︙ | ︙ | |||
878 879 880 881 882 883 884 | Cu.reportError(e); } return sText; }, formatText: function (sText, sOptName) { let nCount = 0; try { | | | | | 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 | Cu.reportError(e); } return sText; }, formatText: function (sText, sOptName) { let nCount = 0; try { if (!oReplTable.hasOwnProperty(sOptName)) { console.log("# Error. TF: there is no option “" + sOptName+ "”."); return [sText, nCount]; } for (let [zRgx, sRep] of oReplTable[sOptName]) { nCount += (sText.match(zRgx) || []).length; sText = sText.replace(zRgx, sRep); } } catch (e) { Cu.reportError(e); } |
︙ | ︙ |
Modified gc_lang/fr/tb/content/overlay.xul from [f4f8642995] to [32fb17e890].
1 2 3 4 5 6 7 8 | <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet href="chrome://grammarchecker/content/overlay.css" type="text/css"?> <!DOCTYPE overlay SYSTEM "chrome://grammarchecker/locale/overlay.dtd"> <overlay id="grammarchecker-overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> | | > > | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet href="chrome://grammarchecker/content/overlay.css" type="text/css"?> <!DOCTYPE overlay SYSTEM "chrome://grammarchecker/locale/overlay.dtd"> <overlay id="grammarchecker-overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script type="application/javascript" src="chrome://global/content/globalOverlay.js"/> <script type="application/javascript" src="resource://grammalecte/text.js"/> <script type="application/javascript" src="resource://grammalecte/fr/textformatter.js"/> <script type="application/javascript" src="overlay.js"/> <script type="application/javascript" src="spellchecker.js"/> <script type="application/javascript" src="editor.js"/> <stringbundleset id="stringbundleset"> <stringbundle id="grammarchecker-strings" src="chrome://grammarchecker/locale/grammarchecker.properties"/> </stringbundleset> <commandset id="composerEditMenuItems" commandupdater="true" events="focus" |
︙ | ︙ |
Modified gc_lang/fr/tb/content/spell_options.js from [9ebffece09] to [4444b40148].
1 2 3 4 5 6 7 8 9 | // JavaScript "use strict"; const Cc = Components.classes; const Ci = Components.interfaces; const Cu = Components.utils; const prefs = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefService).getBranch("extensions.grammarchecker."); | < < < < < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | // JavaScript "use strict"; const Cc = Components.classes; const Ci = Components.interfaces; const Cu = Components.utils; const prefs = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefService).getBranch("extensions.grammarchecker."); var oDialogControl = { load: function () { try { document.getElementById('fr-FR-modern').checked = prefs.getBoolPref('bDictModern'); document.getElementById('fr-FR-classic').checked = prefs.getBoolPref('bDictClassic'); |
︙ | ︙ |
Modified gc_lang/fr/tb/content/spell_options.xul from [5453a7e2cc] to [e6c1baec4c].
︙ | ︙ | |||
30 31 32 33 34 35 36 | <description class="dicdescr">&option.classic.descr;</description> <checkbox id="fr-FR-reform" class="option" label="&option.reform.label;" /> <description class="dicdescr">&option.reform.descr;</description> <checkbox id="fr-FR-classic-reform" class="option" label="&option.allvar.label;" /> <description class="dicdescr">&option.allvar.descr;</description> </groupbox> | | | | 30 31 32 33 34 35 36 37 38 39 40 | <description class="dicdescr">&option.classic.descr;</description> <checkbox id="fr-FR-reform" class="option" label="&option.reform.label;" /> <description class="dicdescr">&option.reform.descr;</description> <checkbox id="fr-FR-classic-reform" class="option" label="&option.allvar.label;" /> <description class="dicdescr">&option.allvar.descr;</description> </groupbox> <script type="application/javascript" src="spell_options.js"/> <script type="application/javascript" src="spellchecker.js"/> </dialog> |
Modified gc_lang/fr/tb/content/spellchecker.js from [3be1484aff] to [225bd1d02e].
︙ | ︙ | |||
28 29 30 31 32 33 34 | const AddonManager = Cu.import("resource://gre/modules/AddonManager.jsm").AddonManager; /* const parser = Cc["@mozilla.org/parserutils;1"].getService(Ci.nsIParserUtils); const persodict = Cc["@mozilla.org/spellchecker/personaldictionary;1"].getService(Ci.mozIPersonalDictionary); */ | | | 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | const AddonManager = Cu.import("resource://gre/modules/AddonManager.jsm").AddonManager; /* const parser = Cc["@mozilla.org/parserutils;1"].getService(Ci.nsIParserUtils); const persodict = Cc["@mozilla.org/spellchecker/personaldictionary;1"].getService(Ci.mozIPersonalDictionary); */ //const system = require("sdk/system"); var oSpellControl = { xSCEngine: null, init: function () { if (this.xSCEngine === null) { try { |
︙ | ︙ | |||
129 130 131 132 133 134 135 | }, setExtensionDictFolder: function (sDictName, bActivate) { try { let that = this; let sPath = "/content/dictionaries/" + sDictName; AddonManager.getAddonByID("French-GC-TB@grammalecte.net", function (addon) { let xURI = addon.getResourceURI(sPath); | | | > | | 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 | }, setExtensionDictFolder: function (sDictName, bActivate) { try { let that = this; let sPath = "/content/dictionaries/" + sDictName; AddonManager.getAddonByID("French-GC-TB@grammalecte.net", function (addon) { let xURI = addon.getResourceURI(sPath); console.log("> " + xURI.path); let sFolder = xURI.path; //if (system.platform === "winnt") { if (sFolder) { sFolder = sFolder.slice(1).replace(/\//g, "\\\\"); } console.log("> " + sFolder); if (bActivate) { that.addDirectory(sFolder); } else { that.removeDirectory(sFolder); } }); } catch (e) { echo("Unable to add extension folder"); Cu.reportError(e); } } }; |
Modified gc_lang/fr/tb/install.rdf from [c98ee16b92] to [95227f9159].
1 2 3 4 5 6 7 8 9 10 11 | <?xml version="1.0" encoding="UTF-8"?> <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <Description about="urn:mozilla:install-manifest"> <em:id>${tb_identifier}</em:id> <em:name>${tb_name}</em:name> <em:type>2</em:type> <em:version>${version}</em:version> <em:creator>${author}</em:creator> <em:description>${description}</em:description> <em:homepageURL>${link}</em:homepageURL> | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?xml version="1.0" encoding="UTF-8"?> <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <Description about="urn:mozilla:install-manifest"> <em:id>${tb_identifier}</em:id> <em:name>${tb_name}</em:name> <em:type>2</em:type> <em:version>${version}</em:version> <em:creator>${author}</em:creator> <em:description>${description}</em:description> <em:homepageURL>${link}</em:homepageURL> <!--<em:optionsURL>chrome://grammarchecker/content/options.xul</em:optionsURL>--> <em:unpack>true</em:unpack> <em:targetApplication> <Description> <em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id> <!-- thunderbird --> <em:minVersion>45.8.0</em:minVersion> <em:maxVersion>55.*</em:maxVersion> |
︙ | ︙ |
Modified gc_lang/fr/tb/locale/en/options.dtd from [071253db94] to [5fe56718ba].
|
| | | < < < > > | 1 2 3 4 5 6 | <!ENTITY window.title "Grammalecte · Options"> <!ENTITY dialogheader.label "Other options"> <!ENTITY check_signature.label "Check signature text (in text mode)"> <!ENTITY check_signature.accesskey "C"> |
Modified gc_lang/fr/tb/locale/fr/options.dtd from [a50c0f39f8] to [37a043f079].
|
| | | < < < | 1 2 3 4 | <!ENTITY window.title "Grammalecte · Options"> <!ENTITY dialogheader.label "Autres options"> <!ENTITY check_signature.label "Vérifier le texte de la signature (en mode texte)"> <!ENTITY check_signature.accesskey "V"> |
Modified graphspell-js/helpers.js from [b70dea39e2] to [d93f7e0941].
︙ | ︙ | |||
49 50 51 52 53 54 55 | loadFile: function (spf) { // load ressources in workers (suggested by Mozilla extensions reviewers) // for more options have a look here: https://gist.github.com/Noitidart/ec1e6b9a593ec7e3efed // if not in workers, use sdk/data.load() instead try { let xRequest; | < | < < < < < < | 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | loadFile: function (spf) { // load ressources in workers (suggested by Mozilla extensions reviewers) // for more options have a look here: https://gist.github.com/Noitidart/ec1e6b9a593ec7e3efed // if not in workers, use sdk/data.load() instead try { let xRequest; xRequest = new XMLHttpRequest(); xRequest.open('GET', spf, false); // 3rd arg is false for synchronous, sync is acceptable in workers xRequest.overrideMimeType('text/json'); xRequest.send(); return xRequest.responseText; } catch (e) { this.logerror(e); |
︙ | ︙ |
Modified make.py from [dbe9299caf] to [4008460ad6].
︙ | ︙ | |||
361 362 363 364 365 366 367 368 369 370 371 372 373 374 | xParser.add_argument("-pm", "--perf_memo", help="run performance tests and store results in perf_memo.txt", action="store_true") xParser.add_argument("-js", "--javascript", help="JavaScript build for Firefox", action="store_true") xParser.add_argument("-aed", "--add_extended_dictionary", help="add extended dictionary to the build", action="store_true") xParser.add_argument("-apd", "--add_personal_dictionary", help="add personal dictionary to the build", action="store_true") xParser.add_argument("-fx", "--firefox", help="Launch Firefox Developper for WebExtension testing", action="store_true") xParser.add_argument("-we", "--web_ext", help="Launch Firefox Nightly for WebExtension testing", action="store_true") xParser.add_argument("-tb", "--thunderbird", help="Launch Thunderbird", action="store_true") xParser.add_argument("-i", "--install", help="install the extension in Writer (path of unopkg must be set in config.ini)", action="store_true") xArgs = xParser.parse_args() if xArgs.build_data: xArgs.build_data_before = True xArgs.build_data_after = True | > | 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 | xParser.add_argument("-pm", "--perf_memo", help="run performance tests and store results in perf_memo.txt", action="store_true") xParser.add_argument("-js", "--javascript", help="JavaScript build for Firefox", action="store_true") xParser.add_argument("-aed", "--add_extended_dictionary", help="add extended dictionary to the build", action="store_true") xParser.add_argument("-apd", "--add_personal_dictionary", help="add personal dictionary to the build", action="store_true") xParser.add_argument("-fx", "--firefox", help="Launch Firefox Developper for WebExtension testing", action="store_true") xParser.add_argument("-we", "--web_ext", help="Launch Firefox Nightly for WebExtension testing", action="store_true") xParser.add_argument("-tb", "--thunderbird", help="Launch Thunderbird", action="store_true") xParser.add_argument("-tbb", "--thunderbird_beta", help="Launch Thunderbird Beta", action="store_true") xParser.add_argument("-i", "--install", help="install the extension in Writer (path of unopkg must be set in config.ini)", action="store_true") xArgs = xParser.parse_args() if xArgs.build_data: xArgs.build_data_before = True xArgs.build_data_after = True |
︙ | ︙ | |||
446 447 448 449 450 451 452 | else: # Firefox Nightly edition spfFirefox = dVars['win_fx_nightly_path'] if platform.system() == "Windows" else dVars['linux_fx_nightly_path'] os.system(r'web-ext run --firefox="' + spfFirefox + '" --browser-console --firefox-profile=debug') # Thunderbird if xArgs.thunderbird: | > > | > > > > | 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 | else: # Firefox Nightly edition spfFirefox = dVars['win_fx_nightly_path'] if platform.system() == "Windows" else dVars['linux_fx_nightly_path'] os.system(r'web-ext run --firefox="' + spfFirefox + '" --browser-console --firefox-profile=debug') # Thunderbird if xArgs.thunderbird: spfThunderbird = '"'+dVars['win_tb_path']+'"' if platform.system() == "Windows" else dVars['linux_tb_path'] print(spfThunderbird) os.system(spfThunderbird + ' -jsconsole -P debug') if xArgs.thunderbird_beta: spfThunderbird = '"'+dVars['win_tb_beta_path']+'"' if platform.system() == "Windows" else dVars['linux_tb_beta_path'] print(spfThunderbird) os.system(spfThunderbird + ' -jsconsole -P beta') else: print("Folder not found: gc_lang/"+sLang) oNow = datetime.datetime.now() print("============== MAKE GRAMMALECTE [finished] at {0.hour:>2} h {0.minute:>2} min {0.second:>2} s ==============".format(oNow)) if __name__ == '__main__': main() |