diff --git a/package.json b/package.json
index 07dcef4..7b0e020 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"title": "PrintingTools NG",
"name": "printing-tools-ng",
- "version": "2.1.1",
+ "version": "2.1.3",
"description": "Message Printing Tools NG",
"author": "Christopher Leidigh",
"engines": {
diff --git a/rep-resources/screenshots/2022-06-06-22-39-26 .png b/rep-resources/screenshots/2022-06-06-22-39-26 .png
new file mode 100644
index 0000000..73754d1
Binary files /dev/null and b/rep-resources/screenshots/2022-06-06-22-39-26 .png differ
diff --git a/rep-resources/screenshots/2022-06-06-22-39-49 .png b/rep-resources/screenshots/2022-06-06-22-39-49 .png
new file mode 100644
index 0000000..0a04ad3
Binary files /dev/null and b/rep-resources/screenshots/2022-06-06-22-39-49 .png differ
diff --git a/rep-resources/screenshots/2022-06-08-18-39-10 .png b/rep-resources/screenshots/2022-06-08-18-39-10 .png
new file mode 100644
index 0000000..6ea737a
Binary files /dev/null and b/rep-resources/screenshots/2022-06-08-18-39-10 .png differ
diff --git a/scripts/translate-gc.js b/scripts/translate-gc.js
index 670729d..dab854d 100644
--- a/scripts/translate-gc.js
+++ b/scripts/translate-gc.js
@@ -16,7 +16,7 @@ const translate = new Translate({ projectId, key });
// console.debug( translate );
var translationArray = [
// { key: "", text: "" },
- { key: "date_custom.label", text: "Custom"},
+ { key: "messageBody", text: "Message Body"},
];
@@ -407,7 +407,7 @@ function loadTranslationArray(inputFiles, options) {
}
// manifest files
-var options = {
+var optionsM = {
inputLocaleDir: `./src/_locales/en-US`,
outputLocaleDir: "./src/_locales",
outputLocaleDirSuffix: "",
@@ -416,7 +416,7 @@ var options = {
};
// files from array
-var options3 = {
+var options = {
inputLocaleDir: `./src/chrome/locale/en-US/`,
outputLocaleDir: "./src/chrome/locale",
outputLocaleDirSuffix: "",
@@ -450,7 +450,7 @@ let inputFiles = ["printingtoolsng.dtd"];
// 'el', 'pl', 'da', 'pt-PT'];
// printingtools
-var localeFolders = ['ca', 'da-DK', 'de', 'el', 'en-US', 'es-ES', 'fi', 'fr-FR', 'gl-ES', 'hu-HU',
+var localeFolders = ['ja', 'ca', 'da-DK', 'de-DE', 'el', 'en-US', 'es-ES', 'fi', 'fr-FR', 'gl-ES', 'hu-HU',
'hy-AM', 'it-IT', 'ko-KR', 'nl', 'nb-NO', 'pl', 'pt-PT', 'ru', 'sk-SK', 'sl-SI', 'sv-SE', 'uk', 'zh-CN', 'zh-TW'];
@@ -460,16 +460,16 @@ var localeFolders = ['ca', 'da-DK', 'de', 'el', 'en-US', 'es-ES', 'fi', 'fr-FR',
// var localeFolders = ['ca', 'gl-ES', 'hu-HU', 'hy-AM',
// 'sk-SK', 'sl-SI', 'sv-SE'];
-//localeFolders = ['zh-TW'];
+//localeFolders = ['de-DE'];
// localeFolders = ['ru', 'hu-HU', 'hy-AM', 'ko-KR', 'pl', 'da', 'pt-PT'];
//localeFile = "settings.json";
// t();
-translateHelpPage();
+//translateHelpPage();
//translatePage();
// translateAll("printingtoolsng.properties", translationArray, options);
-//translateAll(inputFiles, translationArray, options3);
+translateAll(inputFiles, translationArray, options);
//translateAll("mboximport.dtd", translationArray, options);
//loadTranslationArray(inputFiles, options);
// let inputFiles = ["settings.dtd"];
\ No newline at end of file
diff --git a/src/background.js b/src/background.js
index fd1d62c..33a1bc2 100644
--- a/src/background.js
+++ b/src/background.js
@@ -115,6 +115,21 @@ browser.runtime.onInstalled.addListener(async (info) => {
messenger.NotifyTools.onNotifyBackground.addListener(async (info) => {
switch (info.command) {
+ case "getCurrentURL":
+ //console.log("geturl")
+ // method one: via tabs in focused window
+ try {
+ var w = await browser.windows.getAll({populate: true})
+ } catch {
+ return "unknown";
+ }
+
+ let cw = w.find(fw => fw.focused)
+ //console.log(cw)
+ let url1 = cw.tabs.find(t => t.active).url;
+ //console.log(url1);
+
+ return url1;
case "getAttatchmentList":
let rv = await getAttatchmentList(info.messageId);
diff --git a/src/chrome/content/printingtoolsng-pengine.js b/src/chrome/content/printingtoolsng-pengine.js
index 71e1873..80543be 100644
--- a/src/chrome/content/printingtoolsng-pengine.js
+++ b/src/chrome/content/printingtoolsng-pengine.js
@@ -104,6 +104,7 @@ var printingtools = {
running: false,
extRunning: false,
externalQ: [],
+ msgRestoration: {},
/** Prints the messages selected in the thread pane. */
PrintSelectedMessages: async function (options) {
@@ -163,7 +164,7 @@ var printingtools = {
const br = printingtools.previewDoc.querySelector('br');
-
+ br.setAttribute("id", "sep1")
//console.log(t)
// Create new range for the page and main headers
const range = new Range();
@@ -239,6 +240,19 @@ var printingtools = {
printingtools.showAttatchmentBodyTable();
printingtools.restoreIMGstyle();
+ // restore msg fonts
+ if (printingtools.msgRestoration.msgFontFamilyOrig) {
+ printingtools.msgRestoration.msgDiv.style.fontFamily = printingtools.msgRestoration.msgFontFamilyOrig;
+ }
+
+ if (printingtools.msgRestoration.msgFontSizeOrig) {
+ printingtools.msgRestoration.msgDiv.style.fontSize = printingtools.msgRestoration.msgFontSizeOrig;
+ }
+
+ printingtools.doc.styleSheets[0].deleteRule(printingtools.msgRestoration.ruleIndex);
+
+
+
//console.log("after rest")
//console.log(printingtools.doc.documentElement.outerHTML);
@@ -454,7 +468,27 @@ var printingtools = {
cmd_printng: async function (options) {
- //console.log("cmd_printng start" + this.running);
+ console.log("cmd_printng start" + this.running);
+
+ // only process mail types else use TB print #119
+ let url = await window.ptngAddon.notifyTools.notifyBackground({ command: "getCurrentURL" });
+ //console.log(url)
+
+ let mailType = false;
+ if ((url.startsWith("imap") ||
+ url.startsWith("mailbox") ||
+ url.startsWith("unknown") ||
+ url.startsWith("file")) &&
+ !url.includes("&type=")) {
+ mailType = true;
+ } else {
+ mailType = false;
+ }
+
+ if (!mailType) {
+ goDoCommand("cmd_print");
+ return;
+ }
options = options || {};
@@ -1087,30 +1121,61 @@ var printingtools = {
// if (printingtools.prefs.getBoolPref("extensions.printingtoolsng.messages.black_text"))
// printingtools.doc.body.removeAttribute("text");
+ var hSize = printingtools.prefs.getIntPref("extensions.printingtoolsng.headers.size");
+
+ var mSize = printingtools.prefs.getIntPref("extensions.printingtoolsng.messages.size");
+
if (printingtools.prefs.getBoolPref("extensions.printingtoolsng.messages.style")) {
- var mSize = printingtools.prefs.getIntPref("extensions.printingtoolsng.messages.size");
var mFamily = printingtools.getComplexPref("extensions.printingtoolsng.messages.font_family");
- if (printingtools.prefs.getIntPref("extensions.printingtoolsng.messages.style_apply") == 0) {
- rule = '* {font-size: +' + mSize + 'px !important; font-family: ' + mFamily + ' !important;}';
- printingtools.doc.styleSheets[0].insertRule(rule, printingtools.doc.styleSheets[0].cssRules.length);
+
+ var rule;
+ let mozPlainTextDiv = printingtools.doc.querySelector("div.moz-text-plain");
+ let mozTextFlowedDiv = printingtools.doc.querySelector("div.moz-text-flowed");
+ let mozTextHtmlDiv = printingtools.doc.querySelector("div.moz-text-html");
+
+ if (mozPlainTextDiv) {
+ printingtools.msgRestoration.msgDiv = mozPlainTextDiv;
+ printingtools.msgRestoration.msgFontFamilyOrig = mozPlainTextDiv.style.fontFamily;
+ printingtools.msgRestoration.msgFontSizeOrig = mozPlainTextDiv.style.fontSize;
+ mozPlainTextDiv.style.fontFamily = mFamily;
+ mozPlainTextDiv.style.fontSize = mSize;
+ } else if (mozTextFlowedDiv) {
+ printingtools.msgRestoration.msgDiv = mozTextFlowedDiv;
+ printingtools.msgRestoration.msgFontFamilyOrig = mozTextFlowedDiv.style.fontFamily;
+ printingtools.msgRestoration.msgFontSizeOrig = mozTextFlowedDiv.style.fontSize;
+ mozTextFlowedDiv.style.fontFamily = mFamily;
+ mozTextFlowedDiv.style.fontSize = mSize;
+ } else {
+ printingtools.msgRestoration.msgDiv = mozTextHtmlDiv;
+ printingtools.msgRestoration.msgFontFamilyOrig = null;
+ printingtools.msgRestoration.msgFontSizeOrig = null;
}
- else {
- if (table1) {
- // table1.style.width = "75%";
- table1.style.fontFamily = mFamily;
- table1.style.fontSize = mSize;
- }
- if (table2) {
- table2.style.fontFamily = mFamily;
- table2.style.fontSize = mSize;
- }
- if (!noExtHeaders && hpref == 2 && table3) {
- table3.style.fontFamily = mFamily;
- table3.style.fontSize = mSize;
- }
+
+ rule = 'div.moz-text-html * {font-size: +' + mSize + 'px !important; font-family: ' + mFamily + ' !important;}';
+
+ //rule = '* {font-size: +' + mSize + 'px !important; font-family: ' + mFamily + ' !important;}';
+ printingtools.msgRestoration.ruleIndex = printingtools.doc.styleSheets[0].insertRule(rule, printingtools.doc.styleSheets[0].cssRules.length);
+
+ }
+
+ if (printingtools.prefs.getBoolPref("extensions.printingtoolsng.headers.style")) {
+ var hFamily = printingtools.getComplexPref("extensions.printingtoolsng.headers.font_family");
+ if (table1) {
+ // table1.style.width = "75%";
+ table1.style.fontFamily = hFamily;
+ table1.style.fontSize = hSize;
+ }
+ if (table2) {
+ table2.style.fontFamily = hFamily;
+ table2.style.fontSize = hSize;
+ }
+ if (!noExtHeaders && hpref == 2 && table3) {
+ table3.style.fontFamily = hFamily;
+ table3.style.fontSize = hSize;
}
}
+
if (printingtools.prefs.getBoolPref("extensions.printingtoolsng.cite.style")) {
var cSize = printingtools.prefs.getIntPref("extensions.printingtoolsng.cite.size");
var cColor = printingtools.prefs.getCharPref("extensions.printingtoolsng.cite.color");
@@ -1268,11 +1333,11 @@ var printingtools = {
tw.setAttribute("cellspacing", "0");
// md.document.body.appendChild(tw);
- if (printingtools.prefs.getBoolPref("extensions.printingtoolsng.messages.style")) {
- var mSize = printingtools.prefs.getIntPref("extensions.printingtoolsng.messages.size");
- var mFamily = printingtools.getComplexPref("extensions.printingtoolsng.messages.font_family");
- tw.style.fontFamily = mFamily;
- tw.style.fontSize = mSize;
+ if (printingtools.prefs.getBoolPref("extensions.printingtoolsng.headers.style")) {
+ var hSize = printingtools.prefs.getIntPref("extensions.printingtoolsng.headers.size");
+ var hFamily = printingtools.getComplexPref("extensions.printingtoolsng.headers.font_family");
+ tw.style.fontFamily = hFamily;
+ tw.style.fontSize = hSize;
}
if (!table3) {
@@ -1281,7 +1346,7 @@ var printingtools = {
} else {
printingtools.insertAfter(tw, table3);
- var maxHdrWidth = tw.getBoundingClientRect().width;
+ var maxHdrWidth = tw.getBoundingClientRect().width + 12;
//console.log(maxHdrWidth)
}
//console.log(printingtools.doc.documentElement.outerHTML);
@@ -1293,18 +1358,22 @@ var printingtools = {
} else {
let locale = Services.locale.appLocaleAsBCP47.split("-")[0];
let alwaysCcBcc = printingtools.prefs.getBoolPref("extensions.printingtoolsng.headers.useCcBcc_always");
+ var fs = window.getComputedStyle(table1).getPropertyValue('font-size');
+ var fsn = Number(fs.split("px")[0])
switch (locale) {
case "de":
if (!alwaysCcBcc) {
- maxHdrWidth = 130;
+ maxHdrWidth = 130 + 6*(fsn - 14);
+
} else {
- maxHdrWidth = 110;
+ maxHdrWidth = 110 + 6*(fsn - 14);
}
break;
default:
- maxHdrWidth = 110;
+
+ maxHdrWidth = 110 + 6*(fsn - 14);
break;
}
@@ -1576,12 +1645,12 @@ var printingtools = {
var imgs = printingtools.doc.getElementsByTagName("img");
for (i = 0; i < imgs.length; i++) {
if (imgs[i].getAttribute("class") != "attIcon") {
-
+
let display = imgs[i].getAttribute("_display");
-
+
if (display !== undefined && display !== null) {
if (display == "") {
-
+
imgs[i].style.display = null;
} else {
imgs[i].style.display = display;
@@ -1959,7 +2028,7 @@ var printingtools = {
let fileNames = [...printingtools.previewDoc.querySelectorAll(".moz-mime-attachment-table .moz-mime-attachment-file")].map(elm => elm.innerHTML)
let fileSizes = [...printingtools.previewDoc.querySelectorAll(".moz-mime-attachment-table .moz-mime-attachment-size")].map(elm => elm.innerHTML)
-
+
printingtoolsng.attList = fileNames.map((fn, i) => {
return { name: fn, size: fileSizes[i] };
});
@@ -2000,7 +2069,13 @@ var printingtools = {
attRowTR.appendChild(attTD);
attTD = printingtools.doc.createElement("TD");
- attTD.textContent = printingtools.formatBytes(attEntry.size);
+ // fix for #125 eml files have string sizes for attachments
+ if(isNaN(attEntry.size)) {
+ attTD.textContent = attEntry.size;
+ } else {
+ attTD.textContent = printingtools.formatBytes(attEntry.size);
+ }
+
attRowTR.appendChild(attTD);
attTable.appendChild(attRowTR);
diff --git a/src/chrome/content/ptng-options.js b/src/chrome/content/ptng-options.js
index fb2a1f8..ae211b6 100644
--- a/src/chrome/content/ptng-options.js
+++ b/src/chrome/content/ptng-options.js
@@ -1,654 +1,687 @@
-/* globals
-List,
-ListController,
-
-*/
-
-var { Services } = ChromeUtils.import('resource://gre/modules/Services.jsm');
-var { strftime } = ChromeUtils.import("chrome://printingtoolsng/content/strftime.js");
-var PMDstr = Cc["@mozilla.org/supports-string;1"]
- .createInstance(Ci.nsISupportsString);
-
-var strBundleService = Services.strings;
-
-var prefs = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch);
-var fullPanel;
-var fromPreview;
-var gheaderList;
-var abook = false;
-
-
-function getComplexPref(pref) {
- if (prefs.getStringPref)
- return prefs.getStringPref(pref);
- return prefs.getComplexValue(pref, Ci.nsISupportsString).data;
-}
-
-function setComplexPref(pref, value) {
- if (prefs.setStringPref)
- prefs.setStringPref(pref, value);
- else {
- PMDstr.data = value;
- prefs.setComplexValue(pref, Ci.nsISupportsString, PMDstr);
- }
-}
-
-async function loadHelp(bmark) {
- //console.log("help load")
- t = await window.opener.ptngAddon.notifyTools.notifyBackground({ command: "openHelp", locale: Services.locale.appLocaleAsBCP47});
-}
-
-async function initPMDpanel() {
-
- // cleidigh
- //console.debug('initialize panel');
-
- var win = Cc["@mozilla.org/appshell/window-mediator;1"]
- .getService(Ci.nsIWindowMediator)
- .getMostRecentWindow("mail:3pane");
-
-
- var PTNGVersion = win.printingtoolsng.extension.addonData.version;
-
- let title = document.getElementById("ptng-options").getAttribute("title");
-
- document.getElementById("ptng-options").setAttribute("title", `${title} - v${PTNGVersion}`);
-
- if (window.arguments) {
- if (typeof window.arguments[0] === 'object' || window.arguments[0] === false) {
- fromPreview = false;
- abook = window.arguments[1] || false;
-
- } else {
- fromPreview = window.arguments[0] || false;
- abook = window.arguments[1] || false;
- }
- } else {
- fromPreview = false;
- abook = false;
- }
- // console.debug(fromPreview);
- // console.debug(abook);
-
- var wm = Cc["@mozilla.org/appshell/window-mediator;1"]
- .getService(Ci.nsIWindowMediator);
- var awin = wm.getMostRecentWindow("mail:addressbook");
- if (awin) {
- abook = true;
- }
-
- if (abook) {
- document.getElementById("ptng-tbox").selectedIndex = 4;
- }
-
- fullPanel = true;
- initPMDabpanel();
-
- var bundle = strBundleService.createBundle("chrome://printingtoolsng/locale/printingtoolsng.properties");
-
-
- document.getElementById("useCcBccAlways").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.useCcBcc_always");
-
- if (Array.isArray) {
- document.getElementById("dateLoc").collapsed = true;
- document.getElementById("dateSpacer").collapsed = true;
- document.getElementById("dateShortRadio").label += (" " + bundle.GetStringFromName("dateformatTB5"));
- }
-
- if (prefs.getPrefType("extensions.printingtoolsng.headers.addname") > 0) {
- if (prefs.getBoolPref("extensions.printingtoolsng.headers.addname"))
- prefs.setIntPref("extensions.printingtoolsng.headers.add_name_type", 1);
- else
- prefs.setIntPref("extensions.printingtoolsng.headers.add_name_type", 0);
- prefs.deleteBranch("extensions.printingtoolsng.headers.addname");
- }
- document.getElementById("addRdate").checked = prefs.getBoolPref("extensions.printingtoolsng.add_received_date");
- document.getElementById("addNameRG").selectedIndex = prefs.getIntPref("extensions.printingtoolsng.headers.add_name_type");
- document.getElementById("addNameBox").value = getComplexPref("extensions.printingtoolsng.headers.custom_name_value");
- document.getElementById("PMDdate").checked = prefs.getBoolPref("extensions.printingtoolsng.process.date");
- document.getElementById("PMDattach").checked = prefs.getBoolPref("extensions.printingtoolsng.process.attachments");
- document.getElementById("PMDborders").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.setborders");
- document.getElementById("border_style").value = prefs.getCharPref("extensions.printingtoolsng.headers.border_style");
-
- document.getElementById("PMDhide").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.hide");
-
-
- document.getElementById("useHeadersBkColor").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.use_background_color");
- toggleUseBackgroundColor(document.getElementById("useHeadersBkColor"));
-
- document.getElementById("headersBkColor").value = prefs.getCharPref("extensions.printingtoolsng.headers.background.color");
-
-
- document.getElementById("PMDextHide").checked = prefs.getBoolPref("extensions.printingtoolsng.ext_headers.hide");
- document.getElementById("PMDhideImgs").checked = prefs.getBoolPref("extensions.printingtoolsng.images.hide");
- document.getElementById("resizeImgs").checked = prefs.getBoolPref("extensions.printingtoolsng.images.resize");
- document.getElementById("PMDtruncate").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.truncate");
- document.getElementById("PMDmaxchars").value = prefs.getIntPref("extensions.printingtoolsng.headers.maxchars");
- document.getElementById("PMDprogress").checked = !prefs.getBoolPref("print.show_print_progress");
- document.getElementById("PMDhideAtt").checked = prefs.getBoolPref("extensions.printingtoolsng.hide.inline_attachments");
- document.getElementById("InlineAttsListhide").checked = prefs.getBoolPref("extensions.printingtoolsng.hide.inline_attachments_list");
-
- document.getElementById("PMDselection").checked = prefs.getBoolPref("extensions.printingtoolsng.print.just_selection");
- document.getElementById("PMDattachIcon").checked = prefs.getBoolPref("extensions.printingtoolsng.process.attachments_with_icon");
- document.getElementById("num_atts_line").value = prefs.getIntPref("extensions.printingtoolsng.headers.attachments_per_line");
-
- //document.getElementById("showButtonPreview").checked = prefs.getBoolPref("extensions.printingtoolsng.show_options_button");
-
- document.getElementById("addP7M").checked = prefs.getBoolPref("extensions.printingtoolsng.process.add_p7m_vcf_attach");
- document.getElementById("radiostyle").selectedIndex = prefs.getIntPref("extensions.printingtoolsng.messages.style_apply");
- document.getElementById("messageStyle").checked = prefs.getBoolPref("extensions.printingtoolsng.messages.style");
- document.getElementById("addFolder").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.addfolder");
- document.getElementById("PMDblack").checked = prefs.getBoolPref("extensions.printingtoolsng.messages.black_text");
- document.getElementById("PMDtruncate").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.truncate");
- document.getElementById("alignHeaders").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.align");
- document.getElementById("dateLongRG").selectedIndex = prefs.getIntPref("extensions.printingtoolsng.date.long_format_type");
-
- document.getElementById("customDate").value = prefs.getStringPref("extensions.printingtoolsng.date.custom_format");
-
- var max_pre_len = prefs.getIntPref("extensions.printingtoolsng.pre_max_length");
- if (max_pre_len > 0) {
- document.getElementById("PREtruncate").checked = true;
- document.getElementById("PREmaxchars").value = max_pre_len;
- }
-
- document.getElementById("PMDsilent").checked = prefs.getBoolPref("extensions.printingtoolsng.print.silent");
- document.getElementById("PMDprogress").checked = prefs.getBoolPref("extensions.printingtoolsng.print.showprogress");
-
- var sID = "s" + prefs.getIntPref("extensions.printingtoolsng.cite.size");
- document.getElementById("citeSize").selectedItem = document.getElementById(sID);
- var xID = "x" + prefs.getIntPref("extensions.printingtoolsng.messages.size");
- document.getElementById("fontsize").selectedItem = document.getElementById(xID);
-
- // document.getElementById("citeColor").color = prefs.getCharPref("extensions.printingtoolsng.cite.color");
- document.getElementById("citeColor").value = prefs.getCharPref("extensions.printingtoolsng.cite.color");
- document.getElementById("citeCheck").checked = prefs.getBoolPref("extensions.printingtoolsng.cite.style");
-
- var fontlist = document.getElementById("fontlist");
- var fonten = Cc["@mozilla.org/gfx/fontenumerator;1"].createInstance(Ci.nsIFontEnumerator);
- var allfonts = fonten.EnumerateAllFonts({});
- var selindex = 0;
- var popup = document.createXULElement("menupopup");
-
- for (var j = 0; j < allfonts.length; j++) {
- var menuitem = document.createXULElement("menuitem");
- menuitem.setAttribute("value", allfonts[j]);
- menuitem.setAttribute("label", allfonts[j]);
- if (prefs.getPrefType("extensions.printingtoolsng.messages.font_family") > 0 &&
- allfonts[j] === getComplexPref("extensions.printingtoolsng.messages.font_family")) {
- selindex = j;
- }
- popup.appendChild(menuitem);
- }
- fontlist.appendChild(popup);
- fontlist.selectedIndex = selindex;
-
- toggleCiteStyle(document.getElementById("citeCheck"));
- toggleMessageStyle(document.getElementById("messageStyle"), false);
- toggleAtt();
-
- // cleidigh fix
-
- /* List.js is required to make this table work. */
-
- Document.prototype.createElement = function (e) {
- var element = document.createElementNS("http://www.w3.org/1999/xhtml", e);
- return element;
- };
-
- var options = {
- valueNames: ['headerName', { data: ['id', 'headerToken', 'show'] }],
- item: '
',
- };
-
- gheaderList = new List('headersListContainer', options);
- gheaderList.controller = new ListController(gheaderList, { onSelectedCB: this.onSelectListRow });
-
- // var list = document.getElementById("headersList");
- var order = prefs.getCharPref("extensions.printingtoolsng.headers.order");
- var u = order.split(",");
- if (u.length < 7)
- u[6] = "%r3";
-
- gheaderList.clear();
- for (var i = 0; i < u.length; i++) {
- var lab = getHeaderLabel(u[i].replace('!', ''));
- let show = !u[i].startsWith('!');
-
- gheaderList.add({ headerName: lab, headerToken: u[i], id: i + 1, show: show });
- }
- // console.debug(gheaderList.listElement.outerHTML);
- gheaderList.controller.selectRowByDataId('1');
-
- // Services.console.logStringMessage("printingtools: call printer setup");
- setPrinterList();
-
- document.getElementById("debug-options").value = prefs.getCharPref("extensions.printingtoolsng.debug.options");
-
- document.getElementById("useCcBccAlways").focus;
-}
-
-async function setPrinterList() {
- var outputPrinter = null;
- try {
- outputPrinter = prefs.getCharPref("print_printer");
- } catch (error) {
-
- }
- var printerListMenu = document.getElementById("OutputPrinter");
- var selindex = 0;
- var popup = document.createXULElement("menupopup");
-
- // change for 91
- var printerList = Cc["@mozilla.org/gfx/printerlist;1"]
- .getService(Ci.nsIPrinterList);
-
- // Services.console.logStringMessage("printingtools: print_printer " + outputPrinter);
- var printers = await printerList.printers;
- // var printers = [];
- var i = 0;
- // while(pe.hasMore()) {
- for (let printer of printers) {
- printer.QueryInterface(Ci.nsIPrinter);
- let printerName = printer.name;
- var menuitem = document.createXULElement("menuitem");
-
- // Services.console.logStringMessage("printingtools: printerName: " + printerName);
- // printers.push(printerName);
- menuitem.setAttribute("value", printerName);
- menuitem.setAttribute("label", printerName);
- popup.appendChild(menuitem);
- if (printerName === outputPrinter) {
- selindex = i;
- // Services.console.logStringMessage("printingtools: selected: " + outputPrinter);
- }
- i++;
- }
-
- var PSSVC = Cc["@mozilla.org/gfx/printsettings-service;1"]
- .getService(Ci.nsIPrintSettingsService);
-
-
- printerListMenu.appendChild(popup);
- printerListMenu.selectedIndex = selindex;
- // Services.console.logStringMessage("printingtools: printerName index: " + selindex);
-}
-
-function initPMDabpanel() {
-
- document.getElementById("multipleCards").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.print_multiple_cards");
- document.getElementById("PMDabmaxcompact").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.max_compact");
- document.getElementById("PMDabsmallfont").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.use_custom_font_size");
- document.getElementById("ABcustomFont").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.use_custom_font_family");
- if (String.trim)
- document.getElementById("PMDabnohead").collapsed = true;
- else
- document.getElementById("PMDabnohead").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.hide_header_card");
- document.getElementById("PMDabjustaddress").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.print_just_addresses");
- document.getElementById("PMDcutnotes").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.cut_notes");
- document.getElementById("PMDaddname").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.add_ab_name");
-
- var fontlist = document.getElementById("ABfontlist");
- var fonten = Cc["@mozilla.org/gfx/fontenumerator;1"].createInstance(Ci.nsIFontEnumerator);
- var allfonts = fonten.EnumerateAllFonts({});
- var selindex = 0;
- var popup = document.createXULElement("menupopup");
-
- for (var j = 0; j < allfonts.length; j++) {
- var menuitem = document.createXULElement("menuitem");
- menuitem.setAttribute("value", allfonts[j]);
- menuitem.setAttribute("label", allfonts[j]);
- if (prefs.getPrefType("extensions.printingtoolsng.addressbook.font_family") > 0 &&
- allfonts[j] === getComplexPref("extensions.printingtoolsng.addressbook.font_family")) {
- selindex = j;
- }
- popup.appendChild(menuitem);
- }
- fontlist.appendChild(popup);
- fontlist.selectedIndex = selindex;
-
-
- document.getElementById("ABcustomFont").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.use_custom_font_family");
- var fontsize = prefs.getIntPref("extensions.printingtoolsng.addressbook.custom_font_size");
- if (fontsize > 7 && fontsize < 19)
- document.getElementById("ABfontsize").selectedIndex = fontsize - 8;
- else
- document.getElementById("ABfontsize").selectedIndex = 2;
-
-}
-
-function onSelectListRow(event, data_id) {
- if (event.type === 'onclick') {
- // miczThunderStatsPrefPanel.onNBDItemClick(event, data_id);
-
- } else {
- // miczThunderStatsPrefPanel.updateNBDButtons(window);
- }
-}
-
-function getHeaderLabel(string) {
-
- var bundle;
- //console.log(Services.locale.appLocaleAsBCP47)
- if (Services.locale.appLocaleAsBCP47 === "ja") {
- bundle = strBundleService.createBundle("chrome://printingtoolsng/locale/headers-ja.properties");
- } else if (Services.locale.appLocaleAsBCP47 === "zh-CN") {
-
- bundle = strBundleService.createBundle("chrome://printingtoolsng/locale/headers-zh.properties");
-} else if (Services.locale.appLocaleAsBCP47 === "zh-TW") {
-
- bundle = strBundleService.createBundle("chrome://printingtoolsng/locale/headers-zh-tw.properties");
- } else {
- bundle = strBundleService.createBundle("chrome://messenger/locale/mime.properties");
- }
-
- var bundle2 = strBundleService.createBundle("chrome://printingtoolsng/locale/printingtoolsng.properties");
- switch (string) {
- case "%a":
- return bundle2.GetStringFromName("attachments");
- case "%s":
- return bundle.GetStringFromID(1000);
- case "%f":
- return bundle.GetStringFromID(1009);
- case "%r1":
- return bundle.GetStringFromID(1012);
- case "%r2":
- if (prefs.getBoolPref("extensions.printingtoolsng.headers.useCcBcc_always")) {
- return "Cc"
- }
- return bundle.GetStringFromID(1013);
- case "%r3":
- if (prefs.getBoolPref("extensions.printingtoolsng.headers.useCcBcc_always")) {
- return "Bcc"
- }
- return bundle.GetStringFromID(1023);
- case "%d":
- return bundle.GetStringFromID(1007);
- default:
- return null;
- }
-}
-
-function savePMDprefs() {
- //console.debug('save options');
-
- prefs.setCharPref("print_printer", document.getElementById("OutputPrinter").value);
- prefs.setCharPref("print_printer", "");
- prefs.setCharPref("print_printer", document.getElementById("OutputPrinter").value);
- //Services.console.logStringMessage("printingtools: print_printer " + document.getElementById("OutputPrinter").value);
-
- prefs.setBoolPref("extensions.printingtoolsng.headers.useCcBcc_always", document.getElementById("useCcBccAlways").checked);
-
- var max_pre_len;
- if (document.getElementById("PREtruncate").checked)
- max_pre_len = document.getElementById("PREmaxchars").value;
- else
- max_pre_len = -1;
-
- prefs.setIntPref("extensions.printingtoolsng.pre_max_length", max_pre_len);
- prefs.setIntPref("extensions.printingtoolsng.headers.add_name_type", document.getElementById("addNameRG").selectedIndex);
- prefs.setBoolPref("extensions.printingtoolsng.process.date", document.getElementById("PMDdate").checked);
- prefs.setBoolPref("extensions.printingtoolsng.process.attachments", document.getElementById("PMDattach").checked);
- prefs.setBoolPref("extensions.printingtoolsng.headers.setborders", document.getElementById("PMDborders").checked);
- prefs.setCharPref("extensions.printingtoolsng.headers.border_style", document.getElementById("border_style").value);
-
- prefs.setBoolPref("extensions.printingtoolsng.headers.hide", document.getElementById("PMDhide").checked);
- prefs.setCharPref("extensions.printingtoolsng.headers.background.color", document.getElementById("headersBkColor").value);
- prefs.setBoolPref("extensions.printingtoolsng.ext_headers.hide", document.getElementById("PMDextHide").checked);
- prefs.setBoolPref("extensions.printingtoolsng.images.hide", document.getElementById("PMDhideImgs").checked);
- prefs.setBoolPref("extensions.printingtoolsng.images.resize", document.getElementById("resizeImgs").checked);
- prefs.setBoolPref("extensions.printingtoolsng.headers.truncate", document.getElementById("PMDtruncate").checked);
- prefs.setIntPref("extensions.printingtoolsng.headers.maxchars", document.getElementById("PMDmaxchars").value);
- prefs.setBoolPref("extensions.printingtoolsng.print.silent", document.getElementById("PMDsilent").checked);
- prefs.setBoolPref("extensions.printingtoolsng.print.showprogress", !document.getElementById("PMDprogress").checked);
- prefs.setBoolPref("extensions.printingtoolsng.headers.truncate", document.getElementById("PMDtruncate").checked);
- prefs.setBoolPref("extensions.printingtoolsng.hide.inline_attachments", document.getElementById("PMDhideAtt").checked);
- prefs.setBoolPref("extensions.printingtoolsng.hide.inline_attachments_list", document.getElementById("InlineAttsListhide").checked);
- prefs.setBoolPref("extensions.printingtoolsng.print.just_selection", document.getElementById("PMDselection").checked);
- prefs.setBoolPref("extensions.printingtoolsng.headers.addfolder", document.getElementById("addFolder").checked);
- prefs.setBoolPref("extensions.printingtoolsng.messages.black_text", document.getElementById("PMDblack").checked);
- prefs.setBoolPref("extensions.printingtoolsng.headers.align", document.getElementById("alignHeaders").checked);
-
- //prefs.setBoolPref("extensions.printingtoolsng.show_options_button", document.getElementById("showButtonPreview").checked);
-
- prefs.setBoolPref("extensions.printingtoolsng.add_received_date", document.getElementById("addRdate").checked);
-
-
- prefs.setIntPref("extensions.printingtoolsng.date.long_format_type", document.getElementById("dateLongRG").selectedIndex);
-
- prefs.setStringPref("extensions.printingtoolsng.date.custom_format", document.getElementById("customDate").value);
- var size = document.getElementById("citeSize").selectedItem.id.replace("s", "");
- prefs.setIntPref("extensions.printingtoolsng.cite.size", size);
- prefs.setCharPref("extensions.printingtoolsng.cite.color", document.getElementById("citeColor").value);
- prefs.setBoolPref("extensions.printingtoolsng.cite.style", document.getElementById("citeCheck").checked);
- prefs.setBoolPref("extensions.printingtoolsng.process.attachments_with_icon", document.getElementById("PMDattachIcon").checked);
-
- prefs.setIntPref("extensions.printingtoolsng.headers.attachments_per_line", document.getElementById("num_atts_line").selectedItem.value);
-
- var fontlistchild = document.getElementById("fontlist").getElementsByTagName("menuitem");
- var selfont = fontlistchild[document.getElementById("fontlist").selectedIndex].getAttribute("value");
- setComplexPref("extensions.printingtoolsng.messages.font_family", selfont);
- setComplexPref("extensions.printingtoolsng.headers.custom_name_value", document.getElementById("addNameBox").value);
-
- prefs.setBoolPref("extensions.printingtoolsng.messages.style", document.getElementById("messageStyle").checked);
- size = document.getElementById("fontsize").selectedItem.id.replace("x", "");
- prefs.setIntPref("extensions.printingtoolsng.messages.size", size);
- prefs.setIntPref("extensions.printingtoolsng.messages.style_apply", document.getElementById("radiostyle").selectedIndex);
-
- let ubkc = document.getElementById("useHeadersBkColor").checked;
- prefs.setBoolPref("extensions.printingtoolsng.headers.use_background_color", ubkc);
-
- prefs.setCharPref("extensions.printingtoolsng.headers.background.color", document.getElementById("headersBkColor").value);
-
-
- var list = document.getElementById("headersList");
- var val = "";
- for (var i = 0; i < 6; i++) {
- var item = list.rows.item(i);
- val = val + item.getAttribute("data-headerToken") + ",";
- }
- val = val + list.rows.item(6).getAttribute("data-headerToken");
- prefs.setCharPref("extensions.printingtoolsng.headers.order", val);
- prefs.setBoolPref("extensions.printingtoolsng.process.add_p7m_vcf_attach", document.getElementById("addP7M").checked);
- if (fromPreview) {
- // console.debug('closing from preview');
- try {
- opener.close();
- var wm = Cc["@mozilla.org/appshell/window-mediator;1"]
- .getService(Ci.nsIWindowMediator);
- var win;
- if (abook) {
- win = wm.getMostRecentWindow("mail:addressbook");
- win.AbPrintPreviewAddressBook();
- } else {
- win = wm.getMostRecentWindow("mail:3pane");
- win.PrintEnginePrintPreview();
- }
- } catch (e) {
- console.debug(e);
- }
- }
-
- prefs.setCharPref("extensions.printingtoolsng.debug.options", document.getElementById("debug-options").value);
-
-}
-
-function savePMDabprefs(fullpanel) {
-
- prefs.setBoolPref("extensions.printingtoolsng.addressbook.max_compact", document.getElementById("PMDabmaxcompact").checked);
- prefs.setBoolPref("extensions.printingtoolsng.addressbook.use_custom_font_size", document.getElementById("PMDabsmallfont").checked);
- prefs.setBoolPref("extensions.printingtoolsng.addressbook.hide_header_card", document.getElementById("PMDabnohead").checked);
- prefs.setBoolPref("extensions.printingtoolsng.addressbook.print_just_addresses", document.getElementById("PMDabjustaddress").checked);
- prefs.setIntPref("extensions.printingtoolsng.addressbook.custom_font_size", document.getElementById("ABfontsize").selectedItem.label);
-
- var fontlistchild = document.getElementById("ABfontlist").getElementsByTagName("menuitem");
- var selfont = fontlistchild[document.getElementById("ABfontlist").selectedIndex].getAttribute("value");
- setComplexPref("extensions.printingtoolsng.addressbook.font_family", selfont);
-
- prefs.setBoolPref("extensions.printingtoolsng.addressbook.use_custom_font_family", document.getElementById("ABcustomFont").checked);
- prefs.setBoolPref("extensions.printingtoolsng.addressbook.cut_notes", document.getElementById("PMDcutnotes").checked);
- prefs.setBoolPref("extensions.printingtoolsng.addressbook.add_ab_name", document.getElementById("PMDaddname").checked);
- prefs.setBoolPref("extensions.printingtoolsng.addressbook.print_multiple_cards", document.getElementById("multipleCards").checked);
- if (document.getElementById("PMDabsmallfont") && opener.printingtools) {
- var isContact = opener.printingtools.isContact;
- opener.close();
- var wm = Cc["@mozilla.org/appshell/window-mediator;1"]
- .getService(Ci.nsIWindowMediator);
- var win = wm.getMostRecentWindow("mail:addressbook");
- if (!win)
- return;
- if (!isContact) {
- // console.debug('address.Preview');
- win.AbPrintPreviewAddressBook();
- }
- else
- win.AbPrintPreviewCard();
- }
-}
-
-
-function move2(offset) {
- var list = document.getElementById("headersList");
- var pos = list.selectedIndex;
- if ((pos === 0 && offset > 0) || (pos === (list.itemCount - 1) && offset < 0))
- return;
- var label = list.currentItem.label;
- var value = list.currentItem.value;
- var newpos = pos - offset;
- var item = list.removeItemAt(list.currentIndex);
- var newitem = list.insertItemAt(newpos, label, value);
- list.selectedIndex = newpos;
-}
-
-function dumpList() {
- var listElement = gheaderList.list;
- var selectedID = Number(gheaderList.controller.getSelectedRowDataId());
-
- [...listElement.rows].forEach(element => {
- let v = element.firstChild.textContent;
- let i = element.getAttribute("data-id")
- // Services.console.logStringMessage(`${v} ${i}`);
- });
-}
-
-function move(offset) {
- var listElement = gheaderList.list;
- var selectedID = Number(gheaderList.controller.getSelectedRowDataId());
- // Services.console.logStringMessage(`move ${offset} ${selectedID}`);
- // Services.console.logStringMessage(listElement.outerHTML);
- dumpList();
-
- if (selectedID === 1 && offset === 1 || selectedID === listElement.rows.length && offset === -1) {
- return;
- }
-
- var selectedElement = gheaderList.controller.getSelectedRowElement();
- var swapElement;
- if (offset === 1) {
- swapElement = selectedElement.previousElementSibling;
-
- } else {
- swapElement = selectedElement.nextElementSibling;
- }
-
- selectedElement.remove();
- if (offset === 1) {
- listElement.insertBefore(selectedElement, swapElement);
- } else {
- swapElement.parentNode.insertBefore(selectedElement, swapElement.nextSibling);
- }
-
- // Services.console.logStringMessage(listElement.outerHTML);
- dumpList();
-
- // Services.console.logStringMessage(`swap ${swapElement.getAttribute("data-id")}`);
- if (offset === 1) {
- selectedElement.setAttribute("data-id", selectedID - 1);
- swapElement.setAttribute("data-id", selectedID);
- gheaderList.controller.selectRowByDataId(selectedID - 1);
- } else {
- selectedElement.setAttribute("data-id", selectedID + 1);
- swapElement.setAttribute("data-id", selectedID);
-
- gheaderList.controller.selectRowByDataId(selectedID + 1);
- }
- gheaderList.reIndex();
- // Services.console.logStringMessage(listElement.outerHTML);
- dumpList();
-}
-
-function toggleHeaderShow() {
- // Services.console.logStringMessage("toggle show");
-
- // Services.console.logStringMessage(gheaderList.list.outerHTML);
- dumpList();
- var selectedElement = gheaderList.controller.getSelectedRowElement();
- var idx = Number(selectedElement.getAttribute("data-id")) - 1;
- var s = selectedElement.getAttribute("data-show");
- // Services.console.logStringMessage(`${selectedElement.outerHTML}\n${idx} ${s}`);
- s = ((s === "true") ? "false" : "true");
- // s = !s;
- // Services.console.logStringMessage(`${selectedElement.outerHTML}\n${idx} ${s}`);
- var t = gheaderList.items[idx].values().headerToken;
- t = ((s === "true") ? t.replace('!', '') : '!' + t);
- // Services.console.logStringMessage(`after just ${s} ${t}`);
- gheaderList.items[idx].values({ "show": s, "headerToken": t });
-
- // Services.console.logStringMessage(`${selectedElement.outerHTML}\n${idx} ${s} ${t}`);
- // Services.console.logStringMessage(gheaderList.list.outerHTML);
- dumpList();
- // if (s) {
-
- // } else {
-
- // }
-}
-
-function toggleUseBackgroundColor(el) {
- document.getElementById("headersBkColor").disabled = !el.checked;
-}
-
-function toggleCiteStyle(el) {
- document.getElementById("citeColor").disabled = !el.checked;
- document.getElementById("citeSize").disabled = !el.checked;
-}
-
-function toggleMessageStyle(el, notify) {
- document.getElementById("fontlist").disabled = !el.checked;
- document.getElementById("fontsize").disabled = !el.checked;
- document.getElementById("radiostyle").disabled = !el.checked;
- var strBundleService = Cc["@mozilla.org/intl/stringbundle;1"].getService(Ci.nsIStringBundleService);
- var bundle = strBundleService.createBundle("chrome://printingtoolsng/locale/printingtoolsng.properties");
- if (document.getElementById("messageStyle").checked && notify) {
- // alert("The system option:\n Allow messages to use other fonts\nhas been enabled");
- alert(bundle.GetStringFromName("allowFonts"));
- prefs.setIntPref("browser.display.use_document_fonts", 1);
- } else if (notify) {
- // alert("The system option:\n Allow messages to use other fonts\nhas been disabled");
- alert(bundle.GetStringFromName("disallowFonts"));
- prefs.setIntPref("browser.display.use_document_fonts", 0);
- }
-}
-
-function toggleAtt() {
- document.getElementById("PMDattachIcon").disabled = !document.getElementById("PMDattach").checked;
- document.getElementById("addP7M").disabled = !document.getElementById("PMDattach").checked;
- document.getElementById("num_atts_line").disabled = !document.getElementById("PMDattach").checked;
-}
-
-function toggleDate() {
- document.getElementById("dateLongRG").disabled = !document.getElementById("PMDdate").checked;
-}
-
-
-document.addEventListener("dialogaccept", function (event) {
- savePMDprefs();
-
-});
-
-window.addEventListener("load", function (event) {
- initPMDpanel();
- document.getElementById("useCcBccAlways").focus;
- document.getElementById("useCcBccAlways").selected;
-});
-
-
+/* globals
+List,
+ListController,
+
+*/
+
+var { Services } = ChromeUtils.import('resource://gre/modules/Services.jsm');
+var { strftime } = ChromeUtils.import("chrome://printingtoolsng/content/strftime.js");
+var PMDstr = Cc["@mozilla.org/supports-string;1"]
+ .createInstance(Ci.nsISupportsString);
+
+var strBundleService = Services.strings;
+
+var prefs = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch);
+var fullPanel;
+var fromPreview;
+var gheaderList;
+var abook = false;
+
+
+function getComplexPref(pref) {
+ if (prefs.getStringPref)
+ return prefs.getStringPref(pref);
+ return prefs.getComplexValue(pref, Ci.nsISupportsString).data;
+}
+
+function setComplexPref(pref, value) {
+ if (prefs.setStringPref)
+ prefs.setStringPref(pref, value);
+ else {
+ PMDstr.data = value;
+ prefs.setComplexValue(pref, Ci.nsISupportsString, PMDstr);
+ }
+}
+
+async function loadHelp(bmark) {
+ //console.log("help load")
+ t = await window.opener.ptngAddon.notifyTools.notifyBackground({ command: "openHelp", locale: Services.locale.appLocaleAsBCP47});
+}
+
+async function initPMDpanel() {
+
+ // cleidigh
+ //console.debug('initialize panel');
+
+ var win = Cc["@mozilla.org/appshell/window-mediator;1"]
+ .getService(Ci.nsIWindowMediator)
+ .getMostRecentWindow("mail:3pane");
+
+
+ var PTNGVersion = win.printingtoolsng.extension.addonData.version;
+
+ let title = document.getElementById("ptng-options").getAttribute("title");
+
+ document.getElementById("ptng-options").setAttribute("title", `${title} - v${PTNGVersion}`);
+
+ if (window.arguments) {
+ if (typeof window.arguments[0] === 'object' || window.arguments[0] === false) {
+ fromPreview = false;
+ abook = window.arguments[1] || false;
+
+ } else {
+ fromPreview = window.arguments[0] || false;
+ abook = window.arguments[1] || false;
+ }
+ } else {
+ fromPreview = false;
+ abook = false;
+ }
+ // console.debug(fromPreview);
+ // console.debug(abook);
+
+ var wm = Cc["@mozilla.org/appshell/window-mediator;1"]
+ .getService(Ci.nsIWindowMediator);
+ var awin = wm.getMostRecentWindow("mail:addressbook");
+ if (awin) {
+ abook = true;
+ }
+
+ if (abook) {
+ document.getElementById("ptng-tbox").selectedIndex = 4;
+ }
+
+ fullPanel = true;
+ initPMDabpanel();
+
+ var bundle = strBundleService.createBundle("chrome://printingtoolsng/locale/printingtoolsng.properties");
+
+
+ document.getElementById("useCcBccAlways").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.useCcBcc_always");
+
+ if (Array.isArray) {
+ document.getElementById("dateLoc").collapsed = true;
+ document.getElementById("dateSpacer").collapsed = true;
+ document.getElementById("dateShortRadio").label += (" " + bundle.GetStringFromName("dateformatTB5"));
+ }
+
+ if (prefs.getPrefType("extensions.printingtoolsng.headers.addname") > 0) {
+ if (prefs.getBoolPref("extensions.printingtoolsng.headers.addname"))
+ prefs.setIntPref("extensions.printingtoolsng.headers.add_name_type", 1);
+ else
+ prefs.setIntPref("extensions.printingtoolsng.headers.add_name_type", 0);
+ prefs.deleteBranch("extensions.printingtoolsng.headers.addname");
+ }
+ document.getElementById("addRdate").checked = prefs.getBoolPref("extensions.printingtoolsng.add_received_date");
+ document.getElementById("addNameRG").selectedIndex = prefs.getIntPref("extensions.printingtoolsng.headers.add_name_type");
+ document.getElementById("addNameBox").value = getComplexPref("extensions.printingtoolsng.headers.custom_name_value");
+ document.getElementById("PMDdate").checked = prefs.getBoolPref("extensions.printingtoolsng.process.date");
+ document.getElementById("PMDattach").checked = prefs.getBoolPref("extensions.printingtoolsng.process.attachments");
+ document.getElementById("PMDborders").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.setborders");
+ document.getElementById("border_style").value = prefs.getCharPref("extensions.printingtoolsng.headers.border_style");
+
+ document.getElementById("PMDhide").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.hide");
+
+
+ document.getElementById("useHeadersBkColor").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.use_background_color");
+ toggleUseBackgroundColor(document.getElementById("useHeadersBkColor"));
+
+ document.getElementById("headersBkColor").value = prefs.getCharPref("extensions.printingtoolsng.headers.background.color");
+
+
+ document.getElementById("PMDextHide").checked = prefs.getBoolPref("extensions.printingtoolsng.ext_headers.hide");
+ document.getElementById("PMDhideImgs").checked = prefs.getBoolPref("extensions.printingtoolsng.images.hide");
+ document.getElementById("resizeImgs").checked = prefs.getBoolPref("extensions.printingtoolsng.images.resize");
+ document.getElementById("PMDtruncate").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.truncate");
+ document.getElementById("PMDmaxchars").value = prefs.getIntPref("extensions.printingtoolsng.headers.maxchars");
+
+ document.getElementById("PMDhideAtt").checked = prefs.getBoolPref("extensions.printingtoolsng.hide.inline_attachments");
+ document.getElementById("InlineAttsListhide").checked = prefs.getBoolPref("extensions.printingtoolsng.hide.inline_attachments_list");
+
+ document.getElementById("PMDselection").checked = prefs.getBoolPref("extensions.printingtoolsng.print.just_selection");
+ document.getElementById("PMDattachIcon").checked = prefs.getBoolPref("extensions.printingtoolsng.process.attachments_with_icon");
+ document.getElementById("num_atts_line").value = prefs.getIntPref("extensions.printingtoolsng.headers.attachments_per_line");
+
+ document.getElementById("addP7M").checked = prefs.getBoolPref("extensions.printingtoolsng.process.add_p7m_vcf_attach");
+ document.getElementById("headersStyle").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.style");
+ document.getElementById("messageStyle").checked = prefs.getBoolPref("extensions.printingtoolsng.messages.style");
+ document.getElementById("addFolder").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.addfolder");
+ document.getElementById("PMDtruncate").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.truncate");
+ document.getElementById("alignHeaders").checked = prefs.getBoolPref("extensions.printingtoolsng.headers.align");
+ document.getElementById("dateLongRG").selectedIndex = prefs.getIntPref("extensions.printingtoolsng.date.long_format_type");
+
+ document.getElementById("customDate").value = prefs.getStringPref("extensions.printingtoolsng.date.custom_format");
+
+ var max_pre_len = prefs.getIntPref("extensions.printingtoolsng.pre_max_length");
+ if (max_pre_len > 0) {
+ document.getElementById("PREtruncate").checked = true;
+ document.getElementById("PREmaxchars").value = max_pre_len;
+ }
+
+ document.getElementById("PMDsilent").checked = prefs.getBoolPref("extensions.printingtoolsng.print.silent");
+
+ var sID = "s" + prefs.getIntPref("extensions.printingtoolsng.cite.size");
+ document.getElementById("citeSize").selectedItem = document.getElementById(sID);
+ var hID = "h" + prefs.getIntPref("extensions.printingtoolsng.headers.size");
+ document.getElementById("hdrfontsize").selectedItem = document.getElementById(hID);
+
+
+ var xID = "x" + prefs.getIntPref("extensions.printingtoolsng.messages.size");
+ document.getElementById("fontsize").selectedItem = document.getElementById(xID);
+
+ // document.getElementById("citeColor").color = prefs.getCharPref("extensions.printingtoolsng.cite.color");
+ document.getElementById("citeColor").value = prefs.getCharPref("extensions.printingtoolsng.cite.color");
+ document.getElementById("citeCheck").checked = prefs.getBoolPref("extensions.printingtoolsng.cite.style");
+
+ var hdrfontlist = document.getElementById("hdrfontlist");
+ var fontlist = document.getElementById("fontlist");
+ var fonten = Cc["@mozilla.org/gfx/fontenumerator;1"].createInstance(Ci.nsIFontEnumerator);
+ var allfonts = fonten.EnumerateAllFonts({});
+ var selindex = 0;
+ var popup = document.createXULElement("menupopup");
+
+ for (var j = 0; j < allfonts.length; j++) {
+ var menuitem = document.createXULElement("menuitem");
+ menuitem.setAttribute("value", allfonts[j]);
+ menuitem.setAttribute("label", allfonts[j]);
+ if (prefs.getPrefType("extensions.printingtoolsng.messages.font_family") > 0 &&
+ allfonts[j] === getComplexPref("extensions.printingtoolsng.messages.font_family")) {
+ selindex = j;
+ }
+ popup.appendChild(menuitem);
+ }
+ fontlist.appendChild(popup);
+ fontlist.selectedIndex = selindex;
+
+ var hdrselindex = 0;
+ var hdrpopup = document.createXULElement("menupopup");
+
+ for (var j = 0; j < allfonts.length; j++) {
+ let menuitem = document.createXULElement("menuitem");
+ menuitem.setAttribute("value", allfonts[j]);
+ menuitem.setAttribute("label", allfonts[j]);
+ if (prefs.getPrefType("extensions.printingtoolsng.headers.font_family") > 0 &&
+ allfonts[j] === getComplexPref("extensions.printingtoolsng.headers.font_family")) {
+ hdrselindex = j;
+ }
+ hdrpopup.appendChild(menuitem);
+ }
+ hdrfontlist.appendChild(hdrpopup);
+ hdrfontlist.selectedIndex = hdrselindex;
+
+
+ toggleCiteStyle(document.getElementById("citeCheck"));
+ toggleHeadersStyle(document.getElementById("headersStyle"), false);
+ toggleMessageStyle(document.getElementById("messageStyle"), false);
+ toggleAtt();
+
+ // cleidigh fix
+
+ /* List.js is required to make this table work. */
+
+ Document.prototype.createElement = function (e) {
+ var element = document.createElementNS("http://www.w3.org/1999/xhtml", e);
+ return element;
+ };
+
+ var options = {
+ valueNames: ['headerName', { data: ['id', 'headerToken', 'show'] }],
+ item: ' ',
+ };
+
+ gheaderList = new List('headersListContainer', options);
+ gheaderList.controller = new ListController(gheaderList, { onSelectedCB: this.onSelectListRow });
+
+ // var list = document.getElementById("headersList");
+ var order = prefs.getCharPref("extensions.printingtoolsng.headers.order");
+ var u = order.split(",");
+ if (u.length < 7)
+ u[6] = "%r3";
+
+ gheaderList.clear();
+ for (var i = 0; i < u.length; i++) {
+ var lab = getHeaderLabel(u[i].replace('!', ''));
+ let show = !u[i].startsWith('!');
+
+ gheaderList.add({ headerName: lab, headerToken: u[i], id: i + 1, show: show });
+ }
+ // console.debug(gheaderList.listElement.outerHTML);
+ gheaderList.controller.selectRowByDataId('1');
+
+ // Services.console.logStringMessage("printingtools: call printer setup");
+ setPrinterList();
+
+ document.getElementById("debug-options").value = prefs.getCharPref("extensions.printingtoolsng.debug.options");
+
+ document.getElementById("useCcBccAlways").focus;
+}
+
+async function setPrinterList() {
+ var outputPrinter = null;
+ try {
+ outputPrinter = prefs.getCharPref("print_printer");
+ } catch (error) {
+
+ }
+ var printerListMenu = document.getElementById("OutputPrinter");
+ var selindex = 0;
+ var popup = document.createXULElement("menupopup");
+
+ // change for 91
+ var printerList = Cc["@mozilla.org/gfx/printerlist;1"]
+ .getService(Ci.nsIPrinterList);
+
+ // Services.console.logStringMessage("printingtools: print_printer " + outputPrinter);
+ var printers = await printerList.printers;
+ // var printers = [];
+ var i = 0;
+ // while(pe.hasMore()) {
+ for (let printer of printers) {
+ printer.QueryInterface(Ci.nsIPrinter);
+ let printerName = printer.name;
+ var menuitem = document.createXULElement("menuitem");
+
+ // Services.console.logStringMessage("printingtools: printerName: " + printerName);
+ // printers.push(printerName);
+ menuitem.setAttribute("value", printerName);
+ menuitem.setAttribute("label", printerName);
+ popup.appendChild(menuitem);
+ if (printerName === outputPrinter) {
+ selindex = i;
+ // Services.console.logStringMessage("printingtools: selected: " + outputPrinter);
+ }
+ i++;
+ }
+
+ var PSSVC = Cc["@mozilla.org/gfx/printsettings-service;1"]
+ .getService(Ci.nsIPrintSettingsService);
+
+
+ printerListMenu.appendChild(popup);
+ printerListMenu.selectedIndex = selindex;
+ // Services.console.logStringMessage("printingtools: printerName index: " + selindex);
+}
+
+function initPMDabpanel() {
+
+ document.getElementById("multipleCards").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.print_multiple_cards");
+ document.getElementById("PMDabmaxcompact").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.max_compact");
+ document.getElementById("PMDabsmallfont").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.use_custom_font_size");
+ document.getElementById("ABcustomFont").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.use_custom_font_family");
+ if (String.trim)
+ document.getElementById("PMDabnohead").collapsed = true;
+ else
+ document.getElementById("PMDabnohead").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.hide_header_card");
+ document.getElementById("PMDabjustaddress").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.print_just_addresses");
+ document.getElementById("PMDcutnotes").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.cut_notes");
+ document.getElementById("PMDaddname").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.add_ab_name");
+
+ var fontlist = document.getElementById("ABfontlist");
+ var fonten = Cc["@mozilla.org/gfx/fontenumerator;1"].createInstance(Ci.nsIFontEnumerator);
+ var allfonts = fonten.EnumerateAllFonts({});
+ var selindex = 0;
+ var popup = document.createXULElement("menupopup");
+
+ for (var j = 0; j < allfonts.length; j++) {
+ var menuitem = document.createXULElement("menuitem");
+ menuitem.setAttribute("value", allfonts[j]);
+ menuitem.setAttribute("label", allfonts[j]);
+ if (prefs.getPrefType("extensions.printingtoolsng.addressbook.font_family") > 0 &&
+ allfonts[j] === getComplexPref("extensions.printingtoolsng.addressbook.font_family")) {
+ selindex = j;
+ }
+ popup.appendChild(menuitem);
+ }
+ fontlist.appendChild(popup);
+ fontlist.selectedIndex = selindex;
+
+
+ document.getElementById("ABcustomFont").checked = prefs.getBoolPref("extensions.printingtoolsng.addressbook.use_custom_font_family");
+ var fontsize = prefs.getIntPref("extensions.printingtoolsng.addressbook.custom_font_size");
+ if (fontsize > 7 && fontsize < 19)
+ document.getElementById("ABfontsize").selectedIndex = fontsize - 8;
+ else
+ document.getElementById("ABfontsize").selectedIndex = 2;
+
+}
+
+function onSelectListRow(event, data_id) {
+ if (event.type === 'onclick') {
+ // miczThunderStatsPrefPanel.onNBDItemClick(event, data_id);
+
+ } else {
+ // miczThunderStatsPrefPanel.updateNBDButtons(window);
+ }
+}
+
+function getHeaderLabel(string) {
+
+ var bundle;
+ //console.log(Services.locale.appLocaleAsBCP47)
+ if (Services.locale.appLocaleAsBCP47 === "ja") {
+ bundle = strBundleService.createBundle("chrome://printingtoolsng/locale/headers-ja.properties");
+ } else if (Services.locale.appLocaleAsBCP47 === "zh-CN") {
+
+ bundle = strBundleService.createBundle("chrome://printingtoolsng/locale/headers-zh.properties");
+} else if (Services.locale.appLocaleAsBCP47 === "zh-TW") {
+
+ bundle = strBundleService.createBundle("chrome://printingtoolsng/locale/headers-zh-tw.properties");
+ } else {
+ bundle = strBundleService.createBundle("chrome://messenger/locale/mime.properties");
+ }
+
+ var bundle2 = strBundleService.createBundle("chrome://printingtoolsng/locale/printingtoolsng.properties");
+ switch (string) {
+ case "%a":
+ return bundle2.GetStringFromName("attachments");
+ case "%s":
+ return bundle.GetStringFromID(1000);
+ case "%f":
+ return bundle.GetStringFromID(1009);
+ case "%r1":
+ return bundle.GetStringFromID(1012);
+ case "%r2":
+ if (prefs.getBoolPref("extensions.printingtoolsng.headers.useCcBcc_always")) {
+ return "Cc"
+ }
+ return bundle.GetStringFromID(1013);
+ case "%r3":
+ if (prefs.getBoolPref("extensions.printingtoolsng.headers.useCcBcc_always")) {
+ return "Bcc"
+ }
+ return bundle.GetStringFromID(1023);
+ case "%d":
+ return bundle.GetStringFromID(1007);
+ default:
+ return null;
+ }
+}
+
+function savePMDprefs() {
+ //console.debug('save options');
+
+ prefs.setCharPref("print_printer", document.getElementById("OutputPrinter").value);
+ prefs.setCharPref("print_printer", "");
+ prefs.setCharPref("print_printer", document.getElementById("OutputPrinter").value);
+ //Services.console.logStringMessage("printingtools: print_printer " + document.getElementById("OutputPrinter").value);
+
+ prefs.setBoolPref("extensions.printingtoolsng.headers.useCcBcc_always", document.getElementById("useCcBccAlways").checked);
+
+ var max_pre_len;
+ if (document.getElementById("PREtruncate").checked)
+ max_pre_len = document.getElementById("PREmaxchars").value;
+ else
+ max_pre_len = -1;
+
+ prefs.setIntPref("extensions.printingtoolsng.pre_max_length", max_pre_len);
+ prefs.setIntPref("extensions.printingtoolsng.headers.add_name_type", document.getElementById("addNameRG").selectedIndex);
+ prefs.setBoolPref("extensions.printingtoolsng.process.date", document.getElementById("PMDdate").checked);
+ prefs.setBoolPref("extensions.printingtoolsng.process.attachments", document.getElementById("PMDattach").checked);
+ prefs.setBoolPref("extensions.printingtoolsng.headers.setborders", document.getElementById("PMDborders").checked);
+ prefs.setCharPref("extensions.printingtoolsng.headers.border_style", document.getElementById("border_style").value);
+
+ prefs.setBoolPref("extensions.printingtoolsng.headers.hide", document.getElementById("PMDhide").checked);
+ prefs.setCharPref("extensions.printingtoolsng.headers.background.color", document.getElementById("headersBkColor").value);
+ prefs.setBoolPref("extensions.printingtoolsng.ext_headers.hide", document.getElementById("PMDextHide").checked);
+ prefs.setBoolPref("extensions.printingtoolsng.images.hide", document.getElementById("PMDhideImgs").checked);
+ prefs.setBoolPref("extensions.printingtoolsng.images.resize", document.getElementById("resizeImgs").checked);
+ prefs.setBoolPref("extensions.printingtoolsng.headers.truncate", document.getElementById("PMDtruncate").checked);
+ prefs.setIntPref("extensions.printingtoolsng.headers.maxchars", document.getElementById("PMDmaxchars").value);
+ prefs.setBoolPref("extensions.printingtoolsng.print.silent", document.getElementById("PMDsilent").checked);
+ prefs.setBoolPref("extensions.printingtoolsng.headers.truncate", document.getElementById("PMDtruncate").checked);
+ prefs.setBoolPref("extensions.printingtoolsng.hide.inline_attachments", document.getElementById("PMDhideAtt").checked);
+ prefs.setBoolPref("extensions.printingtoolsng.hide.inline_attachments_list", document.getElementById("InlineAttsListhide").checked);
+ prefs.setBoolPref("extensions.printingtoolsng.print.just_selection", document.getElementById("PMDselection").checked);
+ prefs.setBoolPref("extensions.printingtoolsng.headers.addfolder", document.getElementById("addFolder").checked);
+ prefs.setBoolPref("extensions.printingtoolsng.headers.align", document.getElementById("alignHeaders").checked);
+
+ //prefs.setBoolPref("extensions.printingtoolsng.show_options_button", document.getElementById("showButtonPreview").checked);
+
+ prefs.setBoolPref("extensions.printingtoolsng.add_received_date", document.getElementById("addRdate").checked);
+
+
+ prefs.setIntPref("extensions.printingtoolsng.date.long_format_type", document.getElementById("dateLongRG").selectedIndex);
+
+ prefs.setStringPref("extensions.printingtoolsng.date.custom_format", document.getElementById("customDate").value);
+ var size = document.getElementById("citeSize").selectedItem.id.replace("s", "");
+ prefs.setIntPref("extensions.printingtoolsng.cite.size", size);
+ prefs.setCharPref("extensions.printingtoolsng.cite.color", document.getElementById("citeColor").value);
+ prefs.setBoolPref("extensions.printingtoolsng.cite.style", document.getElementById("citeCheck").checked);
+ prefs.setBoolPref("extensions.printingtoolsng.process.attachments_with_icon", document.getElementById("PMDattachIcon").checked);
+
+ prefs.setIntPref("extensions.printingtoolsng.headers.attachments_per_line", document.getElementById("num_atts_line").selectedItem.value);
+
+ var hdrfontlistchild = document.getElementById("hdrfontlist").getElementsByTagName("menuitem");
+ var hdrselfont = hdrfontlistchild[document.getElementById("hdrfontlist").selectedIndex].getAttribute("value");
+ console.log(hdrselfont)
+ setComplexPref("extensions.printingtoolsng.headers.font_family", hdrselfont);
+
+ var fontlistchild = document.getElementById("fontlist").getElementsByTagName("menuitem");
+ var selfont = fontlistchild[document.getElementById("fontlist").selectedIndex].getAttribute("value");
+ setComplexPref("extensions.printingtoolsng.messages.font_family", selfont);
+
+ setComplexPref("extensions.printingtoolsng.headers.custom_name_value", document.getElementById("addNameBox").value);
+
+ prefs.setBoolPref("extensions.printingtoolsng.headers.style", document.getElementById("headersStyle").checked);
+ size = document.getElementById("hdrfontsize").selectedItem.id.replace("h", "");
+ prefs.setIntPref("extensions.printingtoolsng.headers.size", size);
+
+ prefs.setBoolPref("extensions.printingtoolsng.messages.style", document.getElementById("messageStyle").checked);
+ size = document.getElementById("fontsize").selectedItem.id.replace("x", "");
+ prefs.setIntPref("extensions.printingtoolsng.messages.size", size);
+
+
+ let ubkc = document.getElementById("useHeadersBkColor").checked;
+ prefs.setBoolPref("extensions.printingtoolsng.headers.use_background_color", ubkc);
+
+ prefs.setCharPref("extensions.printingtoolsng.headers.background.color", document.getElementById("headersBkColor").value);
+
+
+ var list = document.getElementById("headersList");
+ var val = "";
+ for (var i = 0; i < 6; i++) {
+ var item = list.rows.item(i);
+ val = val + item.getAttribute("data-headerToken") + ",";
+ }
+ val = val + list.rows.item(6).getAttribute("data-headerToken");
+ prefs.setCharPref("extensions.printingtoolsng.headers.order", val);
+ prefs.setBoolPref("extensions.printingtoolsng.process.add_p7m_vcf_attach", document.getElementById("addP7M").checked);
+ if (fromPreview) {
+ // console.debug('closing from preview');
+ try {
+ opener.close();
+ var wm = Cc["@mozilla.org/appshell/window-mediator;1"]
+ .getService(Ci.nsIWindowMediator);
+ var win;
+ if (abook) {
+ win = wm.getMostRecentWindow("mail:addressbook");
+ win.AbPrintPreviewAddressBook();
+ } else {
+ win = wm.getMostRecentWindow("mail:3pane");
+ win.PrintEnginePrintPreview();
+ }
+ } catch (e) {
+ console.debug(e);
+ }
+ }
+
+ prefs.setCharPref("extensions.printingtoolsng.debug.options", document.getElementById("debug-options").value);
+
+}
+
+function savePMDabprefs(fullpanel) {
+
+ prefs.setBoolPref("extensions.printingtoolsng.addressbook.max_compact", document.getElementById("PMDabmaxcompact").checked);
+ prefs.setBoolPref("extensions.printingtoolsng.addressbook.use_custom_font_size", document.getElementById("PMDabsmallfont").checked);
+ prefs.setBoolPref("extensions.printingtoolsng.addressbook.hide_header_card", document.getElementById("PMDabnohead").checked);
+ prefs.setBoolPref("extensions.printingtoolsng.addressbook.print_just_addresses", document.getElementById("PMDabjustaddress").checked);
+ prefs.setIntPref("extensions.printingtoolsng.addressbook.custom_font_size", document.getElementById("ABfontsize").selectedItem.label);
+
+ var fontlistchild = document.getElementById("ABfontlist").getElementsByTagName("menuitem");
+ var selfont = fontlistchild[document.getElementById("ABfontlist").selectedIndex].getAttribute("value");
+ setComplexPref("extensions.printingtoolsng.addressbook.font_family", selfont);
+
+ prefs.setBoolPref("extensions.printingtoolsng.addressbook.use_custom_font_family", document.getElementById("ABcustomFont").checked);
+ prefs.setBoolPref("extensions.printingtoolsng.addressbook.cut_notes", document.getElementById("PMDcutnotes").checked);
+ prefs.setBoolPref("extensions.printingtoolsng.addressbook.add_ab_name", document.getElementById("PMDaddname").checked);
+ prefs.setBoolPref("extensions.printingtoolsng.addressbook.print_multiple_cards", document.getElementById("multipleCards").checked);
+ if (document.getElementById("PMDabsmallfont") && opener.printingtools) {
+ var isContact = opener.printingtools.isContact;
+ opener.close();
+ var wm = Cc["@mozilla.org/appshell/window-mediator;1"]
+ .getService(Ci.nsIWindowMediator);
+ var win = wm.getMostRecentWindow("mail:addressbook");
+ if (!win)
+ return;
+ if (!isContact) {
+ // console.debug('address.Preview');
+ win.AbPrintPreviewAddressBook();
+ }
+ else
+ win.AbPrintPreviewCard();
+ }
+}
+
+
+function move2(offset) {
+ var list = document.getElementById("headersList");
+ var pos = list.selectedIndex;
+ if ((pos === 0 && offset > 0) || (pos === (list.itemCount - 1) && offset < 0))
+ return;
+ var label = list.currentItem.label;
+ var value = list.currentItem.value;
+ var newpos = pos - offset;
+ var item = list.removeItemAt(list.currentIndex);
+ var newitem = list.insertItemAt(newpos, label, value);
+ list.selectedIndex = newpos;
+}
+
+function dumpList() {
+ var listElement = gheaderList.list;
+ var selectedID = Number(gheaderList.controller.getSelectedRowDataId());
+
+ [...listElement.rows].forEach(element => {
+ let v = element.firstChild.textContent;
+ let i = element.getAttribute("data-id")
+ // Services.console.logStringMessage(`${v} ${i}`);
+ });
+}
+
+function move(offset) {
+ var listElement = gheaderList.list;
+ var selectedID = Number(gheaderList.controller.getSelectedRowDataId());
+ // Services.console.logStringMessage(`move ${offset} ${selectedID}`);
+ // Services.console.logStringMessage(listElement.outerHTML);
+ dumpList();
+
+ if (selectedID === 1 && offset === 1 || selectedID === listElement.rows.length && offset === -1) {
+ return;
+ }
+
+ var selectedElement = gheaderList.controller.getSelectedRowElement();
+ var swapElement;
+ if (offset === 1) {
+ swapElement = selectedElement.previousElementSibling;
+
+ } else {
+ swapElement = selectedElement.nextElementSibling;
+ }
+
+ selectedElement.remove();
+ if (offset === 1) {
+ listElement.insertBefore(selectedElement, swapElement);
+ } else {
+ swapElement.parentNode.insertBefore(selectedElement, swapElement.nextSibling);
+ }
+
+ // Services.console.logStringMessage(listElement.outerHTML);
+ dumpList();
+
+ // Services.console.logStringMessage(`swap ${swapElement.getAttribute("data-id")}`);
+ if (offset === 1) {
+ selectedElement.setAttribute("data-id", selectedID - 1);
+ swapElement.setAttribute("data-id", selectedID);
+ gheaderList.controller.selectRowByDataId(selectedID - 1);
+ } else {
+ selectedElement.setAttribute("data-id", selectedID + 1);
+ swapElement.setAttribute("data-id", selectedID);
+
+ gheaderList.controller.selectRowByDataId(selectedID + 1);
+ }
+ gheaderList.reIndex();
+ // Services.console.logStringMessage(listElement.outerHTML);
+ dumpList();
+}
+
+function toggleHeaderShow() {
+ // Services.console.logStringMessage("toggle show");
+
+ // Services.console.logStringMessage(gheaderList.list.outerHTML);
+ dumpList();
+ var selectedElement = gheaderList.controller.getSelectedRowElement();
+ var idx = Number(selectedElement.getAttribute("data-id")) - 1;
+ var s = selectedElement.getAttribute("data-show");
+ // Services.console.logStringMessage(`${selectedElement.outerHTML}\n${idx} ${s}`);
+ s = ((s === "true") ? "false" : "true");
+ // s = !s;
+ // Services.console.logStringMessage(`${selectedElement.outerHTML}\n${idx} ${s}`);
+ var t = gheaderList.items[idx].values().headerToken;
+ t = ((s === "true") ? t.replace('!', '') : '!' + t);
+ // Services.console.logStringMessage(`after just ${s} ${t}`);
+ gheaderList.items[idx].values({ "show": s, "headerToken": t });
+
+ // Services.console.logStringMessage(`${selectedElement.outerHTML}\n${idx} ${s} ${t}`);
+ // Services.console.logStringMessage(gheaderList.list.outerHTML);
+ dumpList();
+ // if (s) {
+
+ // } else {
+
+ // }
+}
+
+function toggleUseBackgroundColor(el) {
+ document.getElementById("headersBkColor").disabled = !el.checked;
+}
+
+function toggleCiteStyle(el) {
+ document.getElementById("citeColor").disabled = !el.checked;
+ document.getElementById("citeSize").disabled = !el.checked;
+}
+
+
+function toggleHeadersStyle(el) {
+ document.getElementById("hdrfontlist").disabled = !el.checked;
+ document.getElementById("hdrfontsize").disabled = !el.checked;
+}
+
+function toggleMessageStyle(el, notify) {
+ document.getElementById("fontlist").disabled = !el.checked;
+ document.getElementById("fontsize").disabled = !el.checked;
+ //document.getElementById("radiostyle").disabled = !el.checked;
+ var strBundleService = Cc["@mozilla.org/intl/stringbundle;1"].getService(Ci.nsIStringBundleService);
+ var bundle = strBundleService.createBundle("chrome://printingtoolsng/locale/printingtoolsng.properties");
+ if (document.getElementById("messageStyle").checked && notify) {
+ // alert("The system option:\n Allow messages to use other fonts\nhas been enabled");
+ alert(bundle.GetStringFromName("allowFonts"));
+ prefs.setIntPref("browser.display.use_document_fonts", 1);
+ } else if (notify) {
+ // alert("The system option:\n Allow messages to use other fonts\nhas been disabled");
+ alert(bundle.GetStringFromName("disallowFonts"));
+ prefs.setIntPref("browser.display.use_document_fonts", 0);
+ }
+}
+
+function toggleAtt() {
+ document.getElementById("PMDattachIcon").disabled = !document.getElementById("PMDattach").checked;
+ document.getElementById("addP7M").disabled = !document.getElementById("PMDattach").checked;
+ document.getElementById("num_atts_line").disabled = !document.getElementById("PMDattach").checked;
+}
+
+function toggleDate() {
+ document.getElementById("dateLongRG").disabled = !document.getElementById("PMDdate").checked;
+}
+
+
+document.addEventListener("dialogaccept", function (event) {
+ savePMDprefs();
+
+});
+
+window.addEventListener("load", function (event) {
+ initPMDpanel();
+ document.getElementById("useCcBccAlways").focus;
+ document.getElementById("useCcBccAlways").selected;
+});
+
+
diff --git a/src/chrome/content/ptng-options.xhtml b/src/chrome/content/ptng-options.xhtml
index f2658e3..05b01fb 100644
--- a/src/chrome/content/ptng-options.xhtml
+++ b/src/chrome/content/ptng-options.xhtml
@@ -3,7 +3,6 @@
%mainDTD;
]>
-
@@ -25,48 +24,31 @@
-
-
+
-
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -80,7 +62,7 @@
-
+
@@ -88,17 +70,16 @@
-
+
-
-
+
-
+
@@ -123,26 +104,22 @@
-
+
-
+
-
+
-
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ &messageBody;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -237,22 +264,9 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
@@ -289,9 +303,6 @@
-
-
-
diff --git a/src/chrome/content/ptng-optionsK.xhtml b/src/chrome/content/ptng-optionsK.xhtml
new file mode 100644
index 0000000..62623f2
--- /dev/null
+++ b/src/chrome/content/ptng-optionsK.xhtml
@@ -0,0 +1,366 @@
+
+
+%mainDTD;
+]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ &headers;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ &messageBody;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ &defaultPrinter;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/chrome/locale/ca/printingtoolsng.dtd b/src/chrome/locale/ca/printingtoolsng.dtd
index 32d671e..8fd8438 100644
--- a/src/chrome/locale/ca/printingtoolsng.dtd
+++ b/src/chrome/locale/ca/printingtoolsng.dtd
@@ -68,4 +68,5 @@
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/src/chrome/locale/da-DK/printingtoolsng.dtd b/src/chrome/locale/da-DK/printingtoolsng.dtd
index e71c779..bb73b66 100644
--- a/src/chrome/locale/da-DK/printingtoolsng.dtd
+++ b/src/chrome/locale/da-DK/printingtoolsng.dtd
@@ -68,4 +68,5 @@
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/src/chrome/locale/de-DE/printingtoolsng.dtd b/src/chrome/locale/de-DE/printingtoolsng.dtd
index 07f0940..95f7d36 100644
--- a/src/chrome/locale/de-DE/printingtoolsng.dtd
+++ b/src/chrome/locale/de-DE/printingtoolsng.dtd
@@ -68,4 +68,5 @@
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/src/chrome/locale/el/printingtoolsng.dtd b/src/chrome/locale/el/printingtoolsng.dtd
index f7e0223..1d22c3b 100644
--- a/src/chrome/locale/el/printingtoolsng.dtd
+++ b/src/chrome/locale/el/printingtoolsng.dtd
@@ -67,4 +67,5 @@
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/src/chrome/locale/en-US/printingtoolsng.dtd b/src/chrome/locale/en-US/printingtoolsng.dtd
index d31dca9..605570f 100644
--- a/src/chrome/locale/en-US/printingtoolsng.dtd
+++ b/src/chrome/locale/en-US/printingtoolsng.dtd
@@ -28,7 +28,7 @@
-
+
@@ -59,7 +59,7 @@
-
+
diff --git a/src/chrome/locale/es-ES/printingtoolsng.dtd b/src/chrome/locale/es-ES/printingtoolsng.dtd
index 7b7474d..a0b99c1 100644
--- a/src/chrome/locale/es-ES/printingtoolsng.dtd
+++ b/src/chrome/locale/es-ES/printingtoolsng.dtd
@@ -67,4 +67,5 @@
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/src/chrome/locale/fi/printingtoolsng.dtd b/src/chrome/locale/fi/printingtoolsng.dtd
index e579d23..ab7e2c8 100644
--- a/src/chrome/locale/fi/printingtoolsng.dtd
+++ b/src/chrome/locale/fi/printingtoolsng.dtd
@@ -67,4 +67,5 @@
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/src/chrome/locale/fr-FR/printingtoolsng.dtd b/src/chrome/locale/fr-FR/printingtoolsng.dtd
index fba6fbd..d1eb195 100644
--- a/src/chrome/locale/fr-FR/printingtoolsng.dtd
+++ b/src/chrome/locale/fr-FR/printingtoolsng.dtd
@@ -68,4 +68,5 @@
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/src/chrome/locale/gl-ES/printingtoolsng.dtd b/src/chrome/locale/gl-ES/printingtoolsng.dtd
index b2fecc1..9f3d1c8 100644
--- a/src/chrome/locale/gl-ES/printingtoolsng.dtd
+++ b/src/chrome/locale/gl-ES/printingtoolsng.dtd
@@ -67,4 +67,5 @@
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/src/chrome/locale/hu-HU/printingtoolsng.dtd b/src/chrome/locale/hu-HU/printingtoolsng.dtd
index 05b5a10..87150c5 100644
--- a/src/chrome/locale/hu-HU/printingtoolsng.dtd
+++ b/src/chrome/locale/hu-HU/printingtoolsng.dtd
@@ -67,4 +67,5 @@
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/src/chrome/locale/hy-AM/printingtoolsng.dtd b/src/chrome/locale/hy-AM/printingtoolsng.dtd
index 39aa217..ea68222 100644
--- a/src/chrome/locale/hy-AM/printingtoolsng.dtd
+++ b/src/chrome/locale/hy-AM/printingtoolsng.dtd
@@ -67,4 +67,5 @@
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/src/chrome/locale/it-IT/printingtoolsng.dtd b/src/chrome/locale/it-IT/printingtoolsng.dtd
index 617695d..767fd21 100644
--- a/src/chrome/locale/it-IT/printingtoolsng.dtd
+++ b/src/chrome/locale/it-IT/printingtoolsng.dtd
@@ -67,4 +67,5 @@
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/src/chrome/locale/ja/printingtoolsng.dtd b/src/chrome/locale/ja/printingtoolsng.dtd
index 036db8a..ba126b5 100644
--- a/src/chrome/locale/ja/printingtoolsng.dtd
+++ b/src/chrome/locale/ja/printingtoolsng.dtd
@@ -28,7 +28,7 @@
-
+
@@ -68,4 +68,4 @@
-
\ No newline at end of file
+
diff --git a/src/chrome/locale/ko-KR/printingtoolsng.dtd b/src/chrome/locale/ko-KR/printingtoolsng.dtd
index 434af09..74a101b 100644
--- a/src/chrome/locale/ko-KR/printingtoolsng.dtd
+++ b/src/chrome/locale/ko-KR/printingtoolsng.dtd
@@ -67,4 +67,5 @@
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/src/chrome/locale/nb-NO/printingtoolsng.dtd b/src/chrome/locale/nb-NO/printingtoolsng.dtd
index 72039f4..8151c5d 100644
--- a/src/chrome/locale/nb-NO/printingtoolsng.dtd
+++ b/src/chrome/locale/nb-NO/printingtoolsng.dtd
@@ -68,4 +68,5 @@
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/src/chrome/locale/nl/printingtoolsng.dtd b/src/chrome/locale/nl/printingtoolsng.dtd
index f7503ae..6d24d5c 100644
--- a/src/chrome/locale/nl/printingtoolsng.dtd
+++ b/src/chrome/locale/nl/printingtoolsng.dtd
@@ -68,4 +68,5 @@
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/src/chrome/locale/pl/printingtoolsng.dtd b/src/chrome/locale/pl/printingtoolsng.dtd
index 16ecf47..7e53d32 100644
--- a/src/chrome/locale/pl/printingtoolsng.dtd
+++ b/src/chrome/locale/pl/printingtoolsng.dtd
@@ -68,4 +68,5 @@
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/src/chrome/locale/pt-PT/printingtoolsng.dtd b/src/chrome/locale/pt-PT/printingtoolsng.dtd
index 5a48e3c..f4ed550 100644
--- a/src/chrome/locale/pt-PT/printingtoolsng.dtd
+++ b/src/chrome/locale/pt-PT/printingtoolsng.dtd
@@ -68,4 +68,5 @@
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/src/chrome/locale/ru/printingtoolsng.dtd b/src/chrome/locale/ru/printingtoolsng.dtd
index 1a98dda..702fb29 100644
--- a/src/chrome/locale/ru/printingtoolsng.dtd
+++ b/src/chrome/locale/ru/printingtoolsng.dtd
@@ -67,4 +67,5 @@
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/src/chrome/locale/sk-SK/printingtoolsng.dtd b/src/chrome/locale/sk-SK/printingtoolsng.dtd
index 569072e..f72b714 100644
--- a/src/chrome/locale/sk-SK/printingtoolsng.dtd
+++ b/src/chrome/locale/sk-SK/printingtoolsng.dtd
@@ -68,4 +68,5 @@
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/src/chrome/locale/sl-SI/printingtoolsng.dtd b/src/chrome/locale/sl-SI/printingtoolsng.dtd
index 2f88b62..8c9aff2 100644
--- a/src/chrome/locale/sl-SI/printingtoolsng.dtd
+++ b/src/chrome/locale/sl-SI/printingtoolsng.dtd
@@ -67,4 +67,5 @@
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/src/chrome/locale/sv-SE/printingtoolsng.dtd b/src/chrome/locale/sv-SE/printingtoolsng.dtd
index dceb5d3..bcbe7f3 100644
--- a/src/chrome/locale/sv-SE/printingtoolsng.dtd
+++ b/src/chrome/locale/sv-SE/printingtoolsng.dtd
@@ -67,4 +67,5 @@
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/src/chrome/locale/uk/printingtoolsng.dtd b/src/chrome/locale/uk/printingtoolsng.dtd
index 7187ae8..6976751 100644
--- a/src/chrome/locale/uk/printingtoolsng.dtd
+++ b/src/chrome/locale/uk/printingtoolsng.dtd
@@ -67,4 +67,5 @@
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/src/chrome/locale/zh-CN/printingtoolsng.dtd b/src/chrome/locale/zh-CN/printingtoolsng.dtd
index b5bde1c..be84e19 100644
--- a/src/chrome/locale/zh-CN/printingtoolsng.dtd
+++ b/src/chrome/locale/zh-CN/printingtoolsng.dtd
@@ -67,4 +67,5 @@
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/src/chrome/locale/zh-TW/printingtoolsng.dtd b/src/chrome/locale/zh-TW/printingtoolsng.dtd
index 17fb55f..4d43de9 100644
--- a/src/chrome/locale/zh-TW/printingtoolsng.dtd
+++ b/src/chrome/locale/zh-TW/printingtoolsng.dtd
@@ -67,4 +67,5 @@
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/src/defaults/preferences/prefs.js b/src/defaults/preferences/prefs.js
index 4f4ab2b..5f473b1 100644
--- a/src/defaults/preferences/prefs.js
+++ b/src/defaults/preferences/prefs.js
@@ -6,6 +6,9 @@ pref("extensions.printingtoolsng.headers.hide", false);
pref("extensions.printingtoolsng.headers.truncate", false);
pref("extensions.printingtoolsng.headers.maxchars", 80);
pref("extensions.printingtoolsng.headers.useCcBcc_always", true);
+pref("extensions.printingtoolsng.headers.style", false);
+pref("extensions.printingtoolsng.headers.size", 10);
+
pref("extensions.printingtoolsng.hide.inline_attachments", false);
pref("extensions.printingtoolsng.hide.inline_attachments_list", false);
pref("extensions.printingtoolsng.images.hide", false);
diff --git a/src/manifest.json b/src/manifest.json
index c7924cd..02695fb 100644
--- a/src/manifest.json
+++ b/src/manifest.json
@@ -1,14 +1,14 @@
{
"manifest_version": 2,
"name": "PrintingTools NG",
- "version": "2.1.1",
+ "version": "2.1.3",
"description": "__MSG_extensionDescription__",
"author": "Christopher Leidigh",
"applications": {
"gecko": {
"id": "PrintingToolsNG@cleidigh.kokkini.net",
"strict_min_version": "91.0",
- "strict_max_version": "102.0"
+ "strict_max_version": "102.*"
}
},
"experiment_apis": {
diff --git a/xpi/printing-tools-ng-2.1.2-b1-tb.xpi b/xpi/printing-tools-ng-2.1.2-b1-tb.xpi
new file mode 100644
index 0000000..9a9baba
Binary files /dev/null and b/xpi/printing-tools-ng-2.1.2-b1-tb.xpi differ
diff --git a/xpi/printing-tools-ng-2.1.2-b2-tb.xpi b/xpi/printing-tools-ng-2.1.2-b2-tb.xpi
new file mode 100644
index 0000000..a3b8f6f
Binary files /dev/null and b/xpi/printing-tools-ng-2.1.2-b2-tb.xpi differ
diff --git a/xpi/printing-tools-ng-2.1.2-b3-tb.xpi b/xpi/printing-tools-ng-2.1.2-b3-tb.xpi
new file mode 100644
index 0000000..96d2336
Binary files /dev/null and b/xpi/printing-tools-ng-2.1.2-b3-tb.xpi differ
diff --git a/xpi/printing-tools-ng-2.1.2-b4-tb.xpi b/xpi/printing-tools-ng-2.1.2-b4-tb.xpi
new file mode 100644
index 0000000..42747f5
Binary files /dev/null and b/xpi/printing-tools-ng-2.1.2-b4-tb.xpi differ
diff --git a/xpi/printing-tools-ng-2.1.2-b5-tb.xpi b/xpi/printing-tools-ng-2.1.2-b5-tb.xpi
new file mode 100644
index 0000000..725170f
Binary files /dev/null and b/xpi/printing-tools-ng-2.1.2-b5-tb.xpi differ
diff --git a/xpi/printing-tools-ng-2.1.2-b6-tb.xpi b/xpi/printing-tools-ng-2.1.2-b6-tb.xpi
new file mode 100644
index 0000000..27d7795
Binary files /dev/null and b/xpi/printing-tools-ng-2.1.2-b6-tb.xpi differ
diff --git a/xpi/printing-tools-ng-2.1.2-b7-tb.xpi b/xpi/printing-tools-ng-2.1.2-b7-tb.xpi
new file mode 100644
index 0000000..8c8231e
Binary files /dev/null and b/xpi/printing-tools-ng-2.1.2-b7-tb.xpi differ
diff --git a/xpi/printing-tools-ng-2.1.2-b8-tb.xpi b/xpi/printing-tools-ng-2.1.2-b8-tb.xpi
new file mode 100644
index 0000000..240831e
Binary files /dev/null and b/xpi/printing-tools-ng-2.1.2-b8-tb.xpi differ
diff --git a/xpi/printing-tools-ng-2.1.2-tb.xpi b/xpi/printing-tools-ng-2.1.2-tb.xpi
new file mode 100644
index 0000000..0997cd6
Binary files /dev/null and b/xpi/printing-tools-ng-2.1.2-tb.xpi differ
diff --git a/xpi/printing-tools-ng-2.1.3-b1-tb.xpi b/xpi/printing-tools-ng-2.1.3-b1-tb.xpi
new file mode 100644
index 0000000..0bfcbcb
Binary files /dev/null and b/xpi/printing-tools-ng-2.1.3-b1-tb.xpi differ
diff --git a/xpi/printing-tools-ng-2.1.3-tb.xpi b/xpi/printing-tools-ng-2.1.3-tb.xpi
new file mode 100644
index 0000000..1b8709a
Binary files /dev/null and b/xpi/printing-tools-ng-2.1.3-tb.xpi differ