diff --git a/build.bat b/build.bat
index 22fb3e894..fe6d8a347 100644
--- a/build.bat
+++ b/build.bat
@@ -4,9 +4,8 @@ set /a oldRev=%quickFoldersRev%
set /a quickFoldersRev+=1
REM replace previous rev with new
pwsh -Command "(gc -en UTF8NoBOM manifest.json) -replace 'pre%oldRev%', 'pre%quickFoldersRev%' | Out-File manifest.json"
-rem "C:\Program Files\7-Zip\7z" a -xr!.svn quickFolders.zip install.rdf chrome.manifest chrome defaults license.txt
"C:\Program Files\7-Zip\7z" a -xr!.svn QuickFoldersWeb.zip manifest.json _locales chrome popup license.txt *.js release-notes.html
echo %quickFoldersRev% > revision.txt
-move QuickFolders*.xpi "..\..\..\Release\_Test Versions\5.0\"
+move QuickFolders*.xpi "..\..\..\Release\_Test Versions\5.1\"
pwsh -Command "Start-Sleep -m 150"
-rename QuickFoldersWeb.zip QuickFolders-wx-5.0pre%quickFoldersRev%.xpi
\ No newline at end of file
+rename QuickFoldersWeb.zip QuickFolders-wx-5.1pre%quickFoldersRev%.xpi
\ No newline at end of file
diff --git a/chrome.manifest b/chrome.manifest
deleted file mode 100644
index 66d964691..000000000
--- a/chrome.manifest
+++ /dev/null
@@ -1,65 +0,0 @@
-content quickfolders chrome/content/
-
-locale quickfolders en-US chrome/locale/en-US/
-locale quickfolders ca chrome/locale/ca/
-locale quickfolders de chrome/locale/de/
-locale quickfolders es-MX chrome/locale/es-MX/
-locale quickfolders es chrome/locale/es/
-locale quickfolders fr chrome/locale/fr/
-locale quickfolders hu-HU chrome/locale/hu-HU/
-locale quickfolders it chrome/locale/it/
-locale quickfolders ja-JP chrome/locale/ja-JP/
-locale quickfolders nl chrome/locale/nl/
-locale quickfolders pl chrome/locale/pl/
-locale quickfolders pt-BR chrome/locale/pt-BR/
-locale quickfolders ru chrome/locale/ru/
-locale quickfolders sl-SI chrome/locale/sl-SI/
-locale quickfolders sr chrome/locale/sr/
-locale quickfolders sv-SE chrome/locale/sv-SE/
-locale quickfolders vi chrome/locale/vi/
-locale quickfolders zh-CN chrome/locale/zh-CN/
-locale quickfolders zh-CHS chrome/locale/zh-CN/
-locale quickfolders zh chrome/locale/zh/
-locale quickfolders zh-CHT chrome/locale/zh/
-locale quickfolders zh-TW chrome/locale/zh/
-
-#ALL
-#overlay chrome://messenger/content/messenger.xul chrome://quickfolders/content/overlayCurrentfolder.xul
-#overlay chrome://messenger/content/messageWindow.xul chrome://quickfolders/content/currentFolderSingleMessage.xul
-#overlay chrome://messenger/content/SearchDialog.xul chrome://quickfolders/content/overlaySearchDialog.xul
-#overlay chrome://messenger/content/FilterListDialog.xul chrome://quickfolders/content/overlayFilterList.xul
-
-# messengercompose.xul (MailCompose Window)
-#overlay chrome://messenger/content/messengercompose/messengercompose.xul chrome://quickfolders/content/overlayComposer.xul
-
-# replace mailWindowOverlay.xul with messenger.xul!
-#TB3+
-overlay chrome://messenger/content/mailWindowOverlay.xul chrome://quickfolders/content/scrollPatch/scrollMenus.xul application={3550f703-e582-4d05-9a08-453d09bdfdc6}
-#overlay chrome://messenger/content/messenger.xul chrome://quickfolders/content/overlay.xul
-
-
-#Toolbox - moved to separate file to re-implement quickmove in Tb70+
-# TB 68:
-#overlay chrome://quickfolders/content/overlay.xul chrome://quickfolders/content/qf-tools.xul
-// TB 78:
-#overlay chrome://quickfolders/content/overlay.xul chrome://quickfolders/content/qf-tools69.xul platformversion>=69.0
-
-##Style Tweaks
-#All
-#style chrome://messenger/content/customizeToolbar.xul chrome://quickfolders/content/quickfolders-layout.css
-#style chrome://messenger/content/messenger.xul chrome://quickfolders/content/quickfolders-68.css
-
-# hidden option for revealing small icons checkbox:
-#overlay chrome://messenger/content/customizeToolbar.xul chrome://quickfolders/content/overlayCustomizeToolbar.xul
-
-
-## modern styles - new monochrome icons for Thunderbird 60
-style chrome://messenger/content/customizeToolbar.xul chrome://quickfolders/content/quickfolders-mods.css
-
-style chrome://global/content/alerts/alert.xul chrome://quickfolders/content/quickfolders-alert.css
-style chrome://quickfolders/content/register.xhtml chrome://quickfolders/content/skin/quickfolders-widgets.css
-#style chrome://quickfolders/content/overlay.xul chrome://quickfolders/content/skin/quickfolders-widgets.css
-#style chrome://quickfolders/content/overlay.xul chrome://quickfolders/content/quickfolders-filters.css
-#style chrome://messenger/content/messenger.xul chrome://quickfolders/content/qf-foldertree.css
-
-
diff --git a/chrome/content/api/Utilities/implementation.js b/chrome/content/api/Utilities/implementation.js
index 751d850d4..65c179fd1 100644
--- a/chrome/content/api/Utilities/implementation.js
+++ b/chrome/content/api/Utilities/implementation.js
@@ -42,6 +42,13 @@ var Utilities = class extends ExtensionCommon.ExtensionAPI {
return win.QuickFolders.Util.hasPremiumLicense(false);
},
+ LicensedDaysLeft() {
+ let today = new Date(),
+ licensedDate = new Date(win.QuickFolders.Licenser.DecryptedDate),
+ daysLeft = parseInt((licensedDate - today) / (1000 * 60 * 60 * 24));
+ return daysLeft;
+ },
+
getAddonVersion: function() {
return win.QuickFolders.Util.Version;
},
diff --git a/chrome/content/api/Utilities/schema.json b/chrome/content/api/Utilities/schema.json
index 1a47c4f8f..8307816f2 100644
--- a/chrome/content/api/Utilities/schema.json
+++ b/chrome/content/api/Utilities/schema.json
@@ -29,6 +29,13 @@
"parameters": []
},
+ {
+ "name": "LicensedDaysLeft",
+ "type": "function",
+ "async": true,
+ "parameters": []
+ },
+
{
"name": "isLicensed",
"type": "function",
diff --git a/chrome/content/change-order.css b/chrome/content/change-order.css
index b8204f415..952c5d5a9 100644
--- a/chrome/content/change-order.css
+++ b/chrome/content/change-order.css
@@ -1,6 +1,6 @@
hbox#qf-header:before {
- content: url("chrome://quickfolders/content/skin/ico/quickfolders-Icon.png");
+ content: url("chrome://quickfolders/content/skin/ico/QuickFolders_32.svg");
margin: 0.2em 0.5em 0em 0.2em;
}
hbox#qf-header {
@@ -9,7 +9,7 @@ hbox#qf-header {
background-color: rgb(154,201,244);
color: #fff;
padding: 5px 8px;
- border-radius: 0.8em;
+ border-radius: 0.1em;
border: 1px solid #aaa;
box-shadow: inset 0px 0px 10px #666;
}
@@ -19,6 +19,7 @@ description#Explain-Drag {
}
#qf-options-header {
+ display: inline-block;
vertical-align: top;
margin-top: 0.5em;
}
@@ -30,9 +31,6 @@ description#Explain-Drag {
color: none;
}
-
-
-
vbox#myscrollbox {
overflow: auto;
max-height:650px;
@@ -51,20 +49,32 @@ hbox.drag-image {
margin-bottom: 20px;
}
+#QuickFolders-change-order-grid button {
+ -moz-appearance: none;
+ border: 1px solid darkgray !important;
+ border-radius: 3px;
+ padding-left: 1.5em;
+ padding-bottom: 0.1em;
+}
+#QuickFolders-change-order-grid button:hover {
+ color: -moz-dialogtext;
+}
+button * {
+ margin: auto;
+ text-align: center;
+}
+
button.order-button-up {
-/* -moz-appearance: button-small; */
- max-height: 1.9em !important;
- list-style-image: url("chrome://quickfolders/content/skin/ico/dropUp.gif") !important;
+ max-height: 1.9em !important;
+ list-style-image: url("chrome://quickfolders/content/skin/ico/dropUp.gif") !important;
}
button.order-button-down {
-/* -moz-appearance: button-small; */
- max-height: 1.9em !important;
- list-style-image: url("chrome://quickfolders/content/skin/ico/dropDown.gif") !important;
+ max-height: 1.9em !important;
+ list-style-image: url("chrome://quickfolders/content/skin/ico/dropDown.gif") !important;
}
rows#QuickFolders-change-order-grid-rows row
{
line-height: 1.8em !important;
- /*overflow: auto;*/
}
diff --git a/chrome/content/change-order.xhtml b/chrome/content/change-order.xhtml
index b5c6d9a6e..522f9d55b 100644
--- a/chrome/content/change-order.xhtml
+++ b/chrome/content/change-order.xhtml
@@ -1,7 +1,15 @@
-
+
+
+
+
+
+
+
+
+
@@ -16,18 +24,19 @@
var QuickFolders = window.arguments[0];
-
-
-
+
+
+
+
+
+
+
-
-
-
- &qf.description.dragexplain;
-
+ &qf.description.dragexplain;
+
@@ -54,5 +63,5 @@
-
+
\ No newline at end of file
diff --git a/chrome/content/currentFolderSingleMessage.xul b/chrome/content/currentFolderSingleMessage.xul
deleted file mode 100644
index ff8aa5836..000000000
--- a/chrome/content/currentFolderSingleMessage.xul
+++ /dev/null
@@ -1,115 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/chrome/content/options.js b/chrome/content/options.js
index aee2039dd..b617d44ff 100644
--- a/chrome/content/options.js
+++ b/chrome/content/options.js
@@ -362,8 +362,8 @@ QuickFolders.Options = {
// .0 private license, .1 domain license
// these are only for testing, so normal users shouldn't need them, default to '' via code
- let EncryptionKey = prefs.getStringPref('premium.encryptionKey.' + QuickFolders.Crypto.key_type.toString());
/*
+ let EncryptionKey = prefs.getStringPref('premium.encryptionKey.' + QuickFolders.Crypto.key_type.toString());
if (EncryptionKey) {
getElement('boxKeyGenerator').collapsed = false;
licenser.RSA_encryption = EncryptionKey;
diff --git a/chrome/content/options.xhtml b/chrome/content/options.xhtml
index 1a626c280..c2f1ea643 100644
--- a/chrome/content/options.xhtml
+++ b/chrome/content/options.xhtml
@@ -251,6 +251,7 @@
tooltiptext="&qf.label.goNextUnread.tip;"
/>
diff --git a/chrome/content/overlay.xul b/chrome/content/overlay.xul
deleted file mode 100644
index 015288f29..000000000
--- a/chrome/content/overlay.xul
+++ /dev/null
@@ -1,302 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/chrome/content/overlayComposer.xul b/chrome/content/overlayComposer.xul
deleted file mode 100644
index 4e5adfe8f..000000000
--- a/chrome/content/overlayComposer.xul
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/chrome/content/overlayCurrentfolder.xul b/chrome/content/overlayCurrentfolder.xul
deleted file mode 100644
index 773a78e02..000000000
--- a/chrome/content/overlayCurrentfolder.xul
+++ /dev/null
@@ -1,147 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chrome/content/overlayCustomizeToolbar.xul b/chrome/content/overlayCustomizeToolbar.xul
deleted file mode 100644
index c7e1c2be7..000000000
--- a/chrome/content/overlayCustomizeToolbar.xul
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chrome/content/overlayFilterList.xul b/chrome/content/overlayFilterList.xul
deleted file mode 100644
index 4aa336cb2..000000000
--- a/chrome/content/overlayFilterList.xul
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chrome/content/qf-tools69.xul b/chrome/content/qf-tools69.xul
deleted file mode 100644
index 51a26be15..000000000
--- a/chrome/content/qf-tools69.xul
+++ /dev/null
@@ -1,76 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chrome/content/quickfolders-change-order.js b/chrome/content/quickfolders-change-order.js
index 201ff67ce..0bf0836b7 100644
--- a/chrome/content/quickfolders-change-order.js
+++ b/chrome/content/quickfolders-change-order.js
@@ -59,22 +59,26 @@ QuickFolders.ChangeOrder = {
this.downString = this.getUIstring("qfDown","Down");
let rows = this.$('QuickFolders-change-order-grid-rows'),
- row = document.createXULElement ? document.createXULElement("row") : document.createElement("row"),
+ row = document.createXULElement("row"),
folderLabel = document.createXULElement("label");
folderLabel.appendChild(document.createTextNode(label));
row.appendChild(folderLabel);
- let buttonUp = document.createXULElement ? document.createXULElement("button") : document.createElement("button");
+ let buttonUp = document.createXULElement("button");
buttonUp.className = "order-button-up";
- buttonUp.setAttribute("label",this.upString);
+ buttonUp.setAttribute("label", this.upString);
+ buttonUp.textContent = this.upString; // ugly hack for borked Tb78, no idea why no label shows...
+
buttonUp.linkedFolder = folder;
QuickFolders.Interface.setEventAttribute(buttonUp, "oncommand","QuickFolders.ChangeOrder.onButtonClick(event.target, 'up','"+folder.URI+"');");
row.appendChild(buttonUp);
- let buttonDown = document.createXULElement ? document.createXULElement("button") : document.createElement("button");
+ let buttonDown = document.createXULElement("button");
buttonDown.className = "order-button-down";
- buttonDown.setAttribute("label",this.downString);
+ buttonDown.setAttribute("label", this.downString);
+ buttonDown.textContent = this.downString; // ugly hack for borked Tb78, no idea why no label shows...
+
buttonDown.linkedFolder = folder;
QuickFolders.Interface.setEventAttribute(buttonDown, "oncommand","QuickFolders.ChangeOrder.onButtonClick(event.target, 'down','"+folder.URI+"');");
row.appendChild(buttonDown);
diff --git a/chrome/content/quickfolders-filterList.js b/chrome/content/quickfolders-filterList.js
index 8afc132db..a8d24c564 100644
--- a/chrome/content/quickfolders-filterList.js
+++ b/chrome/content/quickfolders-filterList.js
@@ -411,37 +411,7 @@ QuickFolders.FilterList = {
if (focusSearchBox)
searchBox.focus();
- } ,
-
- validateFilterTargets: function(sourceURI, targetURI) {
- // fix any filters that might still point to the moved folder.
- // 1. nsIMsgAccountManager loop through list of servers
- try {
- const Ci = Components.interfaces,
- util = QuickFolders.Util;
- let Accounts = util.Accounts,
- acctMgr = Components.classes["@mozilla.org/messenger/account-manager;1"]
- .getService(Ci.nsIMsgAccountManager);
- for (let a=0; a button.removeChild(el))
button.appendChild(menupopup);
@@ -911,11 +912,17 @@ QuickFolders.Interface = {
}
cat.style.display = (showToolIcon || isCustomCat) ? '-moz-inline-box' : 'none';
cat.collapsed = (!isCustomCat);
- if (this.currentActiveCategories && !catArray.includes(this.currentActiveCategories)) {
- // make sure all tabs are visible in case we delete the last category!
- this.selectCategory(FCat.ALL);
- }
-
+
+ if (this.currentActiveCategories) {
+ if (this.currentActiveCategories == FCat.UNCATEGORIZED) // [issue 72] Category "_Uncategorized" will show all categories after moving a folder to another
+ this.selectCategory(FCat.UNCATEGORIZED);
+ else {
+ if (!catArray.includes(this.currentActiveCategories)) {
+ // make sure all tabs are visible in case we delete the last category!
+ this.selectCategory(FCat.ALL);
+ }
+ }
+ }
if (prefs.getBoolPref('collapseCategories'))
cat.classList.add('autocollapse');
@@ -929,8 +936,7 @@ QuickFolders.Interface = {
const util = QuickFolders.Util,
model = QuickFolders.Model,
prefs = QuickFolders.Preferences,
- FCat = QuickFolders.FolderCategory,
- isPostbox = (util.Application=='Postbox') ? true : false;
+ FCat = QuickFolders.FolderCategory;
util.logDebugOptional("interface", "updateCategories()");
@@ -945,7 +951,8 @@ QuickFolders.Interface = {
try {
if (lCatCount > 0 && menuList && menuPopup) {
let activeCatsList = this.currentActiveCategories,
- cats = activeCatsList ? activeCatsList.split('|') : [];
+ cats = activeCatsList ? activeCatsList.split('|') : [],
+ isMultiCategories = prefs.getBoolPref('premium.categories.multiSelect')
util.clearChildren(menuPopup,true);
menuPopup.appendChild(this.createMenuItem(
@@ -955,15 +962,12 @@ QuickFolders.Interface = {
for (let i = 0; i < lCatCount; i++) {
let category = bookmarkCategories[i];
if (category!=FCat.ALWAYS && category!=FCat.NEVER) {
- let menuItem = this.createMenuItem(category, category, 'menuitem-iconic'),
- isMultiCategories = prefs.getBoolPref('premium.categories.multiSelect');
+ let menuItem = this.createMenuItem(category, category, 'menuitem-iconic');
// add checkbox for multiple category selection
if (isMultiCategories) {
// multi selection
if (cats.includes(category))
menuItem.setAttribute("checked", true);
- if (isPostbox)
- menuItem.setAttribute("type","checkbox");
}
menuPopup.appendChild(menuItem);
}
@@ -985,8 +989,11 @@ QuickFolders.Interface = {
menuPopup.appendChild(this.createIconicElement('menuseparator','*'));
}
if (isUncat) {
- let s = this.getUIstring("qfUncategorized","(Uncategorized)");
- menuPopup.appendChild(this.createMenuItem(FCat.UNCATEGORIZED , s, 'menuitem-iconic'));
+ let s = this.getUIstring("qfUncategorized","(Uncategorized)"),
+ itemUncat = this.createMenuItem(FCat.UNCATEGORIZED , s, 'menuitem-iconic');
+ menuPopup.appendChild(itemUncat);
+ if (cats.includes(FCat.UNCATEGORIZED) && isMultiCategories)
+ itemUncat.setAttribute("checked", true);
}
if (isNever) {
let s = this.getUIstring("qfShowNever","Never Show (Folder Alias)");
@@ -2209,8 +2216,7 @@ QuickFolders.Interface = {
}, false);
button.hasClickEventListener = true;
this.setEventAttribute(button, "ondragstart","QuickFolders.buttonDragObserver.startDrag(event, true)");
- // this.setEventAttribute(button, "ondragexit","nsDragAndDrop.dragExit(event,QuickFolders.buttonDragObserver)");
- this.setEventAttribute(button, "ondragend","QuickFolders.buttonDragObserver.dragExit(event)");
+ this.setEventAttribute(button, "ondragleave","QuickFolders.buttonDragObserver.dragExit(event, true)");
}
}
}
@@ -2234,6 +2240,7 @@ QuickFolders.Interface = {
this.setEventAttribute(button, "ondragenter", "QuickFolders.buttonDragObserver.dragEnter(event);");
this.setEventAttribute(button, "ondragover", "QuickFolders.buttonDragObserver.dragOver(event);");
this.setEventAttribute(button, "ondrop", "QuickFolders.buttonDragObserver.drop(event);");
+ this.setEventAttribute(button, "ondragleave", "QuickFolders.buttonDragObserver.dragExit(event);");
}
// button.setAttribute("flex",100);
}
@@ -2249,7 +2256,7 @@ QuickFolders.Interface = {
// AG add dragging of buttons
this.setEventAttribute(button, "ondragstart","QuickFolders.buttonDragObserver.startDrag(event, true)");
// this.setEventAttribute(button, "ondragexit","nsDragAndDrop.dragExit(event,QuickFolders.buttonDragObserver)");
- this.setEventAttribute(button, "ondragend","QuickFolders.buttonDragObserver.dragExit(event)");
+ this.setEventAttribute(button, "ondragleave","QuickFolders.buttonDragObserver.dragExit(event)");
util.logDebugOptional("folders","Folder [" + label + "] added.\n===================================");
}
@@ -2416,6 +2423,7 @@ QuickFolders.Interface = {
this.setEventAttribute(button, "ondragenter","QuickFolders.buttonDragObserver.dragEnter(event);");
this.setEventAttribute(button, "ondragover","QuickFolders.buttonDragObserver.dragOver(event);");
+ this.setEventAttribute(button, "ondragleave","QuickFolders.buttonDragObserver.dragExit(event);");
this.setEventAttribute(button, "ondrop","QuickFolders.buttonDragObserver.drop(event);");
this.SpecialToolbar.appendChild(button);
} ,
@@ -4593,7 +4601,7 @@ QuickFolders.Interface = {
this.setEventAttribute(menuitem, "ondragenter","event.preventDefault();"); // fix layout issues...
this.setEventAttribute(menuitem, "ondragover","QuickFolders.popupDragObserver.dragOver(event)"); // okay
this.setEventAttribute(menuitem, "ondrop","QuickFolders.buttonDragObserver.drop(event);"); // use same as buttondragobserver for mail drop!
- this.setEventAttribute(menuitem, "ondragend","QuickFolders.popupDragObserver.dragExit(event);");
+ this.setEventAttribute(menuitem, "ondragleave","QuickFolders.popupDragObserver.dragExit(event);");
if (forceAlphaSort) {
// alpha sorting by starting from end of menu up to separator!
@@ -4651,8 +4659,7 @@ QuickFolders.Interface = {
this.setEventAttribute(subMenu, "ondragenter","QuickFolders.popupDragObserver.dragEnter(event);");
this.setEventAttribute(subMenu, "ondrop","QuickFolders.buttonDragObserver.drop(event);"); // use same as buttondragobserver for mail drop!
- // this.setEventAttribute(subMenu, "ondragexit","nsDragAndDrop.dragExit(event,QuickFolders.popupDragObserver);");
- this.setEventAttribute(subMenu, "ondragend","QuickFolders.popupDragObserver.dragExit(event);");
+ this.setEventAttribute(subMenu, "ondragleave","QuickFolders.popupDragObserver.dragExit(event);");
// 11/08/2010 - had forgotten the possibility of _opening_ the folder popup node's folder!! :)
//subMenu.allowEvents=true;
@@ -5537,7 +5544,7 @@ QuickFolders.Interface = {
viewChangeOrder: function viewChangeOrder() {
window.openDialog('chrome://quickfolders/content/change-order.xhtml','quickfolders-change-order',
- 'chrome,titlebar,toolbar,centerscreen,resizable,dependent', QuickFolders); // dependent = modeless
+ 'chrome,titlebar,centerscreen,resizable,dependent', QuickFolders); // dependent = modeless
} ,
lastTabSelected: null,
@@ -6195,7 +6202,8 @@ QuickFolders.Interface = {
// default hover colors: (not sure if we even need them during paint mode)
engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton:hover','background-color', hoverBackColor,true);
engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton.' + noColorClass + ':hover','background-color', hoverBackColor,true);
- engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton.' + noColorClass + ':hover','color', hoverColor, true);
+ engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton.' + noColorClass + ':hover .toolbarbutton-text','color', hoverColor, true); // [issue 81] - add selector for label
+ engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton.' + noColorClass + ':hover .toolbarbutton-icon','color', hoverColor, true); // [issue 81] - add selector for icon
let paintButton = isPaintMode ? this.PaintButton : null;
@@ -6249,9 +6257,9 @@ QuickFolders.Interface = {
prefs = QuickFolders.Preferences,
// let dragOverColor = engine.getElementStyle(ssPalettes, ruleName, 'color');
dragOverColor = prefs.getUserStyle("DragTab","color","White");
- engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton:-moz-drag-over','background-color', prefs.getUserStyle("DragTab","background-color","#E93903"),true);
+ engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton.dragover','background-color', prefs.getUserStyle("DragTab","background-color","#E93903"),true);
let noColorClass = 'col0'; // ####
- engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton.' + noColorClass + ':-moz-drag-over','color', dragOverColor, true); // ####
+ engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton.' + noColorClass + '.dragover','color', dragOverColor, true); // ####
if (prefs.getIntPref('style.DragOver.paletteType')) {
let paletteClass = this.getPaletteClassCss('DragOver'),
@@ -6259,13 +6267,13 @@ QuickFolders.Interface = {
ruleName = '.quickfolders-flat ' + paletteClass + '.col' + paletteEntry,
dragOverGradient = engine.getElementStyle(ssPalettes, ruleName, 'background-image');
// for some reason this one is completely ignored by SeaMonkey and Postbox
- engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton:-moz-drag-over', 'background-image', dragOverGradient, true);
- engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton' + paletteClass + ':-moz-drag-over','color', dragOverColor, true);
+ engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton.dragover', 'background-image', dragOverGradient, true);
+ engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton' + paletteClass + '.dragover','color', dragOverColor, true);
engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton' + paletteClass + '[buttonover="true"]','color', dragOverColor, true);
}
else {
- engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton:-moz-drag-over', 'background-image', 'none', true);
- engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton:-moz-drag-over','color', dragOverColor,true);
+ engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton.dragover', 'background-image', 'none', true);
+ engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton.dragover','color', dragOverColor,true);
}
} ,
@@ -6282,7 +6290,6 @@ QuickFolders.Interface = {
if (exclude !== 'night')
className = className.replace(/\s*night/,'')
return className;
-
} ,
getPaletteClass: function getPaletteClass(tabStateId) {
@@ -6342,8 +6349,9 @@ QuickFolders.Interface = {
engine.setElementStyle(ss, '.quickfolders-flat ' + '.selected-folder', 'background-image', 'none', true);
engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton.selected-folder','background-color', colActiveBG, true);
}
- engine.removeElementStyle(ss, '.quickfolders-flat .selected-folder', 'color');
- engine.setElementStyle(ss, '.quickfolders-flat .selected-folder', 'color', selectedColor,true);
+ // style label and image (to also overwrite theme color for svg icons)
+ engine.removeElementStyle(ss, '.quickfolders-flat .selected-folder > *:not(menupopup)', 'color');
+ engine.setElementStyle(ss, '.quickfolders-flat .selected-folder > *:not(menupopup)', 'color', selectedColor,true);
} ,
// INACTIVE STATE (DEFAULT)
@@ -6378,40 +6386,37 @@ QuickFolders.Interface = {
paletteEntry += 'striped';
let ruleName = (!isTabsStriped ? '.quickfolders-flat ' : '') + paletteClass + '.col' + paletteEntry;
let inactiveGradient = engine.getElementStyle(ssPalettes, ruleName, 'background-image');
- engine.removeElementStyle(ss, '.quickfolders-flat toolbarbutton.' + noColorClass + ':not(:-moz-drag-over)', 'background-image'); // remove 'none'
+ engine.removeElementStyle(ss, '.quickfolders-flat toolbarbutton.' + noColorClass + ':not(.dragover)', 'background-image'); // remove 'none'
// removed 'toolbarbutton'. qualifier
- engine.setElementStyle(ss, '.quickfolders-flat .' + noColorClass + ':not(:-moz-drag-over)', 'background-image', inactiveGradient, false);
- engine.setElementStyle(ss, '.quickfolders-flat .' + noColorClass + ':not(:-moz-drag-over)#QuickFoldersCurrentFolder', 'background-image', inactiveGradient, false);
+ engine.setElementStyle(ss, '.quickfolders-flat .' + noColorClass + ':not(.dragover)', 'background-image', inactiveGradient, false);
+ engine.setElementStyle(ss, '.quickfolders-flat .' + noColorClass + ':not(.dragover)#QuickFoldersCurrentFolder', 'background-image', inactiveGradient, false);
inactiveGradientColor = (inactiveColor=='black') ? engine.getElementStyle(ssPalettes, ruleName, 'color') : inactiveColor;
}
else {
- engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton.' + noColorClass + ':not(:-moz-drag-over)', 'background-image', 'none', false);
+ engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton.' + noColorClass + ':not(.dragover)', 'background-image', 'none', false);
}
// tb + avoidCurrentFolder
- engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton' + '.' + noColorClass,'color', inactiveColor, false);
+ engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton' + '.' + noColorClass + ' .toolbarbutton-text', 'color', inactiveColor, false); // [issue 81] - add selector for label
+ engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton' + '.' + noColorClass + ' .toolbarbutton-icon', 'color', inactiveColor, false); // [issue 81] - add selector for icon
if (inactiveGradientColor!=null)
- engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton' + paletteClass + '.' + noColorClass,'color', inactiveGradientColor, false);
+ engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton' + paletteClass + '.' + noColorClass, 'color', inactiveGradientColor, false);
// Coloring all striped tabbed buttons that have individual colors
let coloredPaletteClass = this.getPaletteClassCss('ColoredTab');
if (isTabsStriped) { // paletteClass = plastic, pastel, "", apple
// fallback for uncolored current folder (striped style)
engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton#QuickFoldersCurrentFolder.col0' + paletteClass,'color', inactiveColor, false);
- // throws 'An invalid or illegal string was specified' in Postbox:
- if (util.Application != 'Postbox' || util.Appversion > 5.4) {
- // avoid for current folder button as it always will be completely colored
- // #issue 7 these rules didn't work due to a syntax error
- engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton:not(#QuickFoldersCurrentFolder)' + coloredPaletteClass,'color', inactiveColor, false);
- engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton:not(#QuickFoldersCurrentFolder)' + paletteClass,'color', inactiveColor, false);
- }
+ // avoid for current folder button as it always will be completely colored
+ // #issue 7 these rules didn't work due to a syntax error
+ engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton:not(#QuickFoldersCurrentFolder)' + coloredPaletteClass,'color', inactiveColor, false);
+ engine.setElementStyle(ss, '.quickfolders-flat toolbarbutton:not(#QuickFoldersCurrentFolder)' + paletteClass,'color', inactiveColor, false);
}
else {
engine.removeElementStyle(ss, '.quickfolders-flat toolbarbutton' + paletteClass,'color');
engine.removeElementStyle(ss, '.quickfolders-flat toolbarbutton' + coloredPaletteClass,'color');
}
-
} ,
// Get all blingable elements and make them look user defined.
@@ -7008,7 +7013,7 @@ QuickFolders.Interface = {
this.updateFolders(true, true);
// Filter Validation!
- setTimeout(function() { QuickFolders.FilterList.validateFilterTargets(fromURI, newURI); });
+ setTimeout(function() { QuickFolders.Util.validateFilterTargets(fromURI, newURI); });
}
}
catch(ex) {
diff --git a/chrome/content/quickfolders-layout.css b/chrome/content/quickfolders-layout.css
index 10b75420e..eb1b7099f 100644
--- a/chrome/content/quickfolders-layout.css
+++ b/chrome/content/quickfolders-layout.css
@@ -88,7 +88,7 @@
text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.96), 0px 0px 3px rgba(0, 0, 0, 0.8), 0px 0px 4px rgba(0, 0, 0, 0.5);
}
-#QuickFolders-readingList:-moz-drag-over > label {
+#QuickFolders-readingList.dragover > label {
background-color: rgba(0, 140, 20, 0.75) !important;
text-shadow: none;
}
@@ -105,7 +105,7 @@
text-shadow: none;
}
-#QuickFolders-quickMove:not([label='']):-moz-drag-over > label {
+#QuickFolders-quickMove:not([label='']).dragover > label {
background-color: yellow;
border: 1px solid rgb(120, 0, 0);
box-shadow:inset 0px 0px 1px 1px rgba(120, 0, 0, 0.7); /* simulate fat border without object growing */
@@ -418,9 +418,9 @@ menupopup.widerMenu menucaption {
border-color: rgba(120, 120, 120, 0.5);
border-width: 1px !important;
border-style: solid !important;
- box-shadow: 1px -1px 1px threedshadow inset;
- background-color: #fff;
- color: black;
+ box-shadow: 1px -1px 1px threedshadow inset;
+/* background-color: #fff;
+ color: black; */
padding: 0 0.5em;
vertical-align: top;
-moz-appearance: none !important;
@@ -540,7 +540,7 @@ toolbar.quickfolders-flat #QuickFolders-Folders-Pane {
text-shadow: none;
}
-.quickfolders-flat toolbarbutton:-moz-drag-over {
+.quickfolders-flat toolbarbutton.dragover {
background-image: none !important;
}
@@ -566,17 +566,17 @@ toolbar.quickfolders-flat #QuickFolders-Folders-Pane {
/** DRAG TOOLBARBUTTONS **/
-#QuickFolders-FoldersBox.folderBarContainer toolbarbutton.dragRIGHT:-moz-drag-over,
-#QuickFolders-FoldersBox.folderBarContainer toolbarbutton.dragRIGHT.pastel:-moz-drag-over,
-#QuickFolders-FoldersBox.folderBarContainer toolbarbutton[label].dragRIGHT:-moz-drag-over,
-#QuickFolders-FoldersBox.folderBarContainer toolbarbutton[label].dragRIGHT.pastel:-moz-drag-over
+#QuickFolders-FoldersBox.folderBarContainer toolbarbutton.dragRIGHT.dragover,
+#QuickFolders-FoldersBox.folderBarContainer toolbarbutton.dragRIGHT.pastel.dragover,
+#QuickFolders-FoldersBox.folderBarContainer toolbarbutton[label].dragRIGHT.dragover,
+#QuickFolders-FoldersBox.folderBarContainer toolbarbutton[label].dragRIGHT.pastel.dragover
{
background-image: url("chrome://quickfolders/content/skin/ico/dropRight.gif") !important;
background-position: right center !important;
background-repeat: no-repeat !important;
}
-#QuickFolders-FoldersBox toolbarbutton.dragLEFT:-moz-drag-over {
+#QuickFolders-FoldersBox toolbarbutton.dragLEFT.dragover {
list-style-image: url("chrome://quickfolders/content/skin/ico/dropLeft.gif") !important;
}
@@ -818,15 +818,15 @@ menuitem.color
-moz-appearance: none !important;
}
-menupopup.QuickFolders-folder-popup menuitem:-moz-drag-over,
-menupopup.QuickFolders-folder-popup menu:-moz-drag-over
+menupopup.QuickFolders-folder-popup menuitem.dragover,
+menupopup.QuickFolders-folder-popup menu.dragover
{
/* -moz-appearance: none !important; */
background-repeat: repeat-x;
}
-menupopup.QuickFolders-folder-popup menu.QuickFolders-folder-popup:-moz-drag-over,
-menupopup.QuickFolders-folder-popup menuitem:-moz-drag-over {
+menupopup.QuickFolders-folder-popup menu.QuickFolders-folder-popup.dragover,
+menupopup.QuickFolders-folder-popup menuitem.dragover {
list-style-image : url('chrome://quickfolders/content/skin/ico/tb-anchor.png') !important;
text-decoration: underline;
}
@@ -842,8 +842,8 @@ menupopup.QuickFolders-folder-popup menuitem:-moz-drag-over {
}
menupopup.QuickFolders-folder-popup menuitem#folderPaneContext-new ,
-menuitem#folderPaneContext-new:-moz-drag-over,
-menupopup.QuickFolders-folder-popup menuitem#folderPaneContext-new:-moz-drag-over {
+menuitem#folderPaneContext-new.dragover,
+menupopup.QuickFolders-folder-popup menuitem#folderPaneContext-new.dragover {
list-style-image: url('chrome://quickfolders/content/skin/ico/folder-add.svg') !important;
-moz-context-properties: fill, fill-opacity, stroke;
fill: currentColor;
diff --git a/chrome/content/quickfolders-listener.js b/chrome/content/quickfolders-listener.js
index ea6842141..95d4d06a7 100644
--- a/chrome/content/quickfolders-listener.js
+++ b/chrome/content/quickfolders-listener.js
@@ -1,8 +1,5 @@
"use strict";
+// this will be initialized in qf-messenger.js
// now register myself as a listener on every mail folder
var QuickFolders_mailSession = Components.classes["@mozilla.org/messenger/services/session;1"].getService(Components.interfaces.nsIMsgMailSession);
-// QuickFolders_mailSession.AddFolderListener(QuickFolders.FolderListener, Components.interfaces.nsIFolderListener.all);
-// QuickFolders.addLoadEventListener();
-
-// note: addTabEventListener() is called during QuickFolders.init()
\ No newline at end of file
diff --git a/chrome/content/quickfolders-util.js b/chrome/content/quickfolders-util.js
index 37f8cdff8..83ec2f0fa 100644
--- a/chrome/content/quickfolders-util.js
+++ b/chrome/content/quickfolders-util.js
@@ -66,7 +66,7 @@ QuickFolders.Util = {
_isCSSGradients: -1,
_isCSSRadius: -1,
_isCSSShadow: true,
- HARDCODED_CURRENTVERSION : "5.0", // will later be overriden call to AddonManager
+ HARDCODED_CURRENTVERSION : "5.1", // will later be overriden call to AddonManager
HARDCODED_EXTENSION_TOKEN : ".hc",
ADDON_ID: "quickfolders@curious.be",
ADDON_NAME: "QuickFolders",
@@ -855,8 +855,13 @@ QuickFolders.Util = {
// Set the MRU time for a folder to make it appear in recent folders list
touch: function touch(folder) {
- const util = QuickFolders.Util;
+ const util = QuickFolders.Util,
+ FLAGS = util.FolderFlags;
try {
+ // special folders we do not want / need in recent history:
+ if (folder.flags &
+ (FLAGS.MSG_FOLDER_FLAG_TRASH | FLAGS.MSG_FOLDER_FLAG_SENTMAIL | FLAGS.MSG_FOLDER_FLAG_QUEUE |
+ FLAGS.MSG_FOLDER_FLAG_JUNK | FLAGS.MSG_FOLDER_FLAG_ARCHIVES | FLAGS.MSG_FOLDER_FLAG_DRAFTS)) return;
if (folder.SetMRUTime)
folder.SetMRUTime();
else {
@@ -1222,6 +1227,7 @@ QuickFolders.Util = {
findMailTab: function findMailTab(tabmail, URL) {
const util = QuickFolders.Util;
+ var { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
// mail: tabmail.tabInfo[n].browser
let baseURL = util.getBaseURI(URL),
numTabs = util.getTabInfoLength(tabmail);
@@ -1232,7 +1238,15 @@ QuickFolders.Util = {
let tabUri = util.getBaseURI(info.browser.currentURI.spec);
if (tabUri == baseURL) {
tabmail.switchToTab(i);
- info.browser.loadURI(URL);
+ try {
+ let params = {
+ triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal()
+ }
+ info.browser.loadURI(URL, params);
+ }
+ catch(ex) {
+ util.logException(ex);
+ }
return true;
}
}
@@ -1654,6 +1668,36 @@ QuickFolders.Util = {
const ellipsis = "\u2026".toString();
let slash = uri.lastIndexOf("/");
return slash>0 ? ellipsis + uri.substr(slash) : ellipsis + uri.substr(-16);
+ },
+
+ // moved from FilterList!
+ validateFilterTargets: function(sourceURI, targetURI) {
+ // fix any filters that might still point to the moved folder.
+ // 1. nsIMsgAccountManager loop through list of servers
+ try {
+ const Ci = Components.interfaces,
+ util = QuickFolders.Util;
+ let Accounts = util.Accounts,
+ acctMgr = Components.classes["@mozilla.org/messenger/account-manager;1"]
+ .getService(Ci.nsIMsgAccountManager);
+ for (let a=0; a 40 days left on their license
+ ## removed Encryption test code from options.js
+ ## validateFilterTargets moved to other module to avoid console errors
+
TODOs
=========
@@ -990,8 +1004,6 @@ var QuickFolders = {
dragEnter: function qftoolbar_dragEnter(evt) {
if (!evt)
debugger;
-// dragEnter: function dragEnter(evt, dragSession) {
- // session = nsIDragSession
let t = evt.currentTarget,
dTxt = "target: " + t.nodeName + " '" + t.id + "'",
ot = evt.originalTarget;
@@ -1027,7 +1039,6 @@ var QuickFolders = {
dragSession.canDrop = true;
}
else {
- this.util.logDebugOptional("dnd","toolbarDragObserver.dragOver - can not drop " + contentType);
dragSession.canDrop = false;
}
},
@@ -1138,7 +1149,9 @@ var QuickFolders = {
flavours.appendFlavour("text/x-moz-folder"); // folder tree items
return flavours;
},
+
dragOverTimer: null,
+
dragEnter: function menuObs_dragEnter(evt, dragSession) {
if (!evt) debugger;
if (!dragSession) dragSession = Cc["@mozilla.org/widget/dragservice;1"].getService(Ci.nsIDragService).getCurrentSession();
@@ -1453,10 +1466,7 @@ var QuickFolders = {
startDrag: function msgObs_startDrag(event, transferData, action) {
if (!event || !transferData) debugger;
-
- let button = event.target;
- transferData.data = new TransferData();
-
+ // transferData.data = new TransferData(); // legacy code
// check event.originalTarget and event.target
QuickFolders.Util.threadPaneOnDragStart(event);
}
@@ -1506,6 +1516,11 @@ var QuickFolders = {
}
let button = evt.target;
+ // [issue 79] dragover colors not working to deprecated -moz-drag-over pseudoclass
+ if (button) {
+ button.classList.add("dragover");
+ }
+
// somehow, this creates a duplication in linux
// delete previous drag folders popup!
if (button.id && button.id =="QuickFolders-quickMove" || button.id =="QuickFolders-readingList") {
@@ -1536,16 +1551,24 @@ var QuickFolders = {
// find out whether drop target button is right or left from source button:
if (node.hasAttributes()) {
- let box = node.boxObject;
- if (box) {
- let dx = (box.x - button.boxObject.x);
- if (dx !== 0) {
- let sDirection=(dx>0 ? "dragLEFT" : "dragRIGHT"),
- sOther=(dx>0 ? "dragRIGHT" : "dragLEFT");
- button.classList.add(sDirection); // add style for drop arrow (remove onDragEnd)
- button.classList.remove(sOther);
+ // check previous siblings to see if target button is found - then it's to the left. otherwise it's to the right
+ let i = null,
+ sib = node;
+ let sDirection="",
+ sOther="";
+ while( (sib = sib.previousSibling) != null ) {
+ if (sib == button) {
+ sDirection = "dragLEFT";
+ sOther = "dragRIGHT";
+ break;
}
}
+ if(!sDirection) {
+ sDirection = "dragRIGHT";
+ sOther = "dragLEFT";
+ }
+ button.classList.add(sDirection); // add style for drop arrow (remove onDragEnd)
+ button.classList.remove(sOther);
}
}
}
@@ -1714,6 +1737,13 @@ var QuickFolders = {
util.logDebugOptional("dnd", "buttonDragObserver.dragExit\n" +
"sourceNode=" + (dragSession ? dragSession.sourceNode : "[no dragSession]\n") +
"event.target=" + event.target || "[none]");
+ let button = event.target;
+
+ // [issue 79] dragover colors not working to deprecated -moz-drag-over pseudoclass
+ if (button) {
+ button.classList.remove("dragover");
+ }
+
if (!dragSession.sourceNode) {
util.logDebugOptional("dnd", "buttonDragObserver.dragExit - session without sourceNode! exiting dragExit handler...");
if (!dragSession.dataTransfer)
@@ -1724,12 +1754,12 @@ var QuickFolders = {
let src = dragSession.sourceNode.nodeName || "unnamed node";
util.logDebugOptional("dnd", "buttonDragObserver.dragExit - sourceNode = " + src);
} catch(e) { util.logDebugOptional("dnd", "buttonDragObserver.dragExit - " + e); }
+
if (dragSession.sourceNode.nodeName === 'toolbarpaletteitem') {
util.logDebugOptional("dnd", "trying to drag a toolbar palette item - ignored.");
dragSession.canDrop=false;
return;
}
- let button = event.target;
if (dragSession.isDataFlavorSupported("text/unicode") || dragSession.isDataFlavorSupported("text/plain")) { // drag buttons
// remove dragdrop marker:
button.classList.remove("dragLEFT");
@@ -1761,6 +1791,17 @@ var QuickFolders = {
window.dump("Cannot setup for delete: popup \n" + ex);
}
} ,
+
+ dragLeave: function btnObs_dragLeave(event) {
+ let button = event.target;
+ const util = QuickFolders.Util;
+ // [issue 79] dragover colors not working to deprecated -moz-drag-over pseudoclass
+ if (button) {
+ util.logDebugOptional("dnd", "dragLeave event!");
+ button.classList.remove("dragover");
+ }
+ } ,
+
dragOver: function btnObs_dragOver(evt, flavour, dragSession){
if (!evt) debugger;
@@ -1798,6 +1839,11 @@ var QuickFolders = {
lastAction = "",
types = Array.from(evt.dataTransfer.mozTypesAt(0)),
contentType = types[0];
+
+ // [issue 79] dragover colors not working to deprecated -moz-drag-over pseudoclass
+ if (DropTarget) {
+ DropTarget.classList.remove("dragover");
+ }
if (prefs.isDebugOption("dnd")) debugger;
@@ -2579,18 +2625,29 @@ QuickFolders.FolderListener = {
try {
if (typeof QuickFolders === 'undefined')
return;
+ const util = QuickFolders.Util;
let prop = property ? property.toString() : '',
- log = QuickFolders.Util.logDebugOptional.bind(QuickFolders.Util);
+ log = util.logDebugOptional.bind(util),
+ isTouch = false;
log("listeners.folder", "OnItemIntPropertyChanged - property = " + prop);
if (prop === "TotalUnreadMessages" ||
- (QuickFolders.Preferences.isShowTotalCount
- && prop === "TotalMessages")) {
+ (QuickFolders.Preferences.isShowTotalCount && prop === "TotalMessages")) {
QuickFolders.Interface.setFolderUpdateTimer(item);
let cF = QuickFolders.Interface.CurrentFolderTab;
if (cF && cF.folder && cF.folder==item) { // quick update of CurrentFolder tab:
QuickFolders.Interface.initCurrentFolderTab(cF, item);
}
+ if (newValue > oldValue)
+ isTouch = true;
}
+ if (prop === "TotalMessages" && (newValue > oldValue)) {
+ isTouch = true;
+ }
+ // [issue 80] add folder to recent list if item was added (via d+d)
+ if (isTouch) {
+ util.touch(item);
+ }
+
if (QuickFolders.compactReportFolderCompacted && prop === "FolderSize") {
try
{
@@ -2606,15 +2663,15 @@ QuickFolders.FolderListener = {
// describe the action that caused the compacting
switch (QuickFolders.compactReportCommandType) {
case 'compactFolder':
- message = QuickFolders.Util.getBundleString("qfCompactedFolder", "Compacted folder") + " '" + item.prettyName + "'";
+ message = util.getBundleString("qfCompactedFolder", "Compacted folder") + " '" + item.prettyName + "'";
break;
case 'emptyJunk':
- message = QuickFolders.Util.getBundleString("qfEmptiedJunk", "Emptied junk and compacted folder")+ " '" + item.prettyName + "'";
+ message = util.getBundleString("qfEmptiedJunk", "Emptied junk and compacted folder")+ " '" + item.prettyName + "'";
if (!item.URI)
size2 = 0;
break;
case 'emptyTrash':
- message = QuickFolders.Util.getBundleString("qfEmptiedTrash", "Emptied trash.");
+ message = util.getBundleString("qfEmptiedTrash", "Emptied trash.");
if (!item.URI)
size2 = 0;
break;
@@ -2622,9 +2679,9 @@ QuickFolders.FolderListener = {
message = "unknown compactReportCommandType: [" + compactReportCommandType + "]";
break;
}
- let originalSize= QuickFolders.Util.getBundleString("qfCompactedOriginalFolderSize","Original size"),
- newSize = QuickFolders.Util.getBundleString("qfCompactedNewFolderSize","New Size"),
- expunged = QuickFolders.Util.getBundleString("qfCompactedBytesFreed","Bytes expunged"),
+ let originalSize= util.getBundleString("qfCompactedOriginalFolderSize","Original size"),
+ newSize = util.getBundleString("qfCompactedNewFolderSize","New Size"),
+ expunged = util.getBundleString("qfCompactedBytesFreed","Bytes expunged"),
out = message + " :: "
+ (size1 ? (originalSize + ": " + add1000Separators(size1.toString()) + " :: "
+ expunged + ":" + add1000Separators((size1-size2).toString()) + " :: ")
@@ -2632,10 +2689,13 @@ QuickFolders.FolderListener = {
+ newSize + ": " + add1000Separators(size2.toString()) ;
//make sure it displays straight away and overwrite the compacting done message as well.
- setTimeout(function() { QuickFolders.Util.slideAlert("QuickFolders",out); QuickFolders.Util.logDebug(out); }, 250); // display "after compacting"
+ setTimeout(function() {
+ QuickFolders.Util.slideAlert("QuickFolders",out); QuickFolders.Util.logDebug(out);
+ }, 250); // display "after compacting"
QuickFolders.compactLastFolderUri = null;
QuickFolders.compactLastFolderSize = 0;
+
} catch(e) {;};
}
}
diff --git a/chrome/content/scripts/qf-composer.js b/chrome/content/scripts/qf-composer.js
index 3de518fc5..68b7228a4 100644
--- a/chrome/content/scripts/qf-composer.js
+++ b/chrome/content/scripts/qf-composer.js
@@ -4,8 +4,7 @@ Services.scriptloader.loadSubScript("chrome://quickfolders/content/quickfolders.
Services.scriptloader.loadSubScript("chrome://quickfolders/content/quickfolders-composer.js", window, "UTF-8");
function onLoad(activatedWhileWindowOpen) {
-
- window.QuickFolders.Util.logDebug('Adding Compose xul...');
+ // window.QuickFolders.Util.logDebug('Adding Compose xul...');
}
function onUnload(isAddOnShutDown) {
diff --git a/chrome/content/scripts/qf-messenger.js b/chrome/content/scripts/qf-messenger.js
index ee9c134f2..7d2b96ac0 100644
--- a/chrome/content/scripts/qf-messenger.js
+++ b/chrome/content/scripts/qf-messenger.js
@@ -311,7 +311,7 @@ WL.injectElements(`
@@ -522,6 +522,7 @@ function onUnload(isAddOnShutDown) {
// remove all listeners
try {
window.QuickFolders.Interface.removeToolbarHiding();
+ window.QuickFolders_mailSession.RemoveFolderListener(window.QuickFolders.FolderListener);
window.QuickFolders.removeTabEventListener();
window.QuickFolders.removeFolderPaneListener();
}
diff --git a/chrome/content/scripts/quickfoldersDefaults.js b/chrome/content/scripts/quickfoldersDefaults.js
index 354f78bf1..00e399322 100644
--- a/chrome/content/scripts/quickfoldersDefaults.js
+++ b/chrome/content/scripts/quickfoldersDefaults.js
@@ -36,7 +36,6 @@ pref("extensions.quickfolders.quickMove.Hotkey", 'M');
pref("extensions.quickfolders.quickMove.Hotkey.Shift", true);
pref("extensions.quickfolders.quickMove.lastFolderName","");
pref("extensions.quickfolders.quickMove.autoFill",true);
-pref("extensions.quickfolders.quickMove.premium.silentMode", false);
pref("extensions.quickfolders.quickCopy.useHotkey", false);
pref("extensions.quickfolders.quickCopy.Hotkey", 'T');
pref("extensions.quickfolders.quickCopy.Hotkey.Shift", true);
@@ -244,6 +243,7 @@ pref("extensions.quickfolders.premium.categories.multiSelect",false);
pref("extensions.quickfolders.premium.findFolder.maxParentLevel", 2); // Bug 26088
pref("extensions.quickfolders.premium.findFolder.maxPathItems", 3); // Bug 25991
pref("extensions.quickfolders.premium.findFolder.folderPathDetail", 2); // Bug 25991
+pref("extensions.quickfolders.quickMove.premium.silentMode", false);
/* popupProFeature( ) counts how often these features are used */
pref("extensions.quickfolders.premium.advancedTabProperties.usage", 0);
pref("extensions.quickfolders.premium.bookmarks.usage", 0);
diff --git a/chrome/content/scrollPatch/contents.rdf b/chrome/content/scrollPatch/contents.rdf
index 5f5b9c1b5..070d67b70 100644
--- a/chrome/content/scrollPatch/contents.rdf
+++ b/chrome/content/scrollPatch/contents.rdf
@@ -1,4 +1,7 @@
+
diff --git a/chrome/content/skin/quickfolders-options.css b/chrome/content/skin/quickfolders-options.css
index e1457b436..d265f32a0 100644
--- a/chrome/content/skin/quickfolders-options.css
+++ b/chrome/content/skin/quickfolders-options.css
@@ -35,6 +35,13 @@ fieldset[orient="horizontal"] > vbox,
fieldset[orient="horizontal"] > checkbox {
display: inline-block;
}
+
+menulist#folderCrossing,
+menulist[preference^="extensions.quickfolders"] ,
+menulist#QuickFolders-CurrentFolder-Background-Select
+{
+ color: var(--field-text-color) !important; //
+}
/* scale down the overly larger number textboxes / spinner controls */
tabpanel html|input[type="number"] {
min-height: 22px;
diff --git a/defaults/preferences/quickfolders.js b/defaults/preferences/quickfolders.js
deleted file mode 100644
index 0ed18cc0a..000000000
--- a/defaults/preferences/quickfolders.js
+++ /dev/null
@@ -1,262 +0,0 @@
-pref("extensions.quickfolders@curious.be.description", "chrome://quickfolders/locale/quickfolders.properties");
-// Model
-pref("extensions.quickfolders.lastSelectedOptionsTab",0);
-pref("extensions.quickfolders.lastActiveCategories","");
-// General Prefs
-pref("extensions.quickfolders.showShortcutNumber", false);
-pref("extensions.quickfolders.showUnreadOnButtons", true);
-pref("extensions.quickfolders.showQuickfoldersLabel", true);
-pref("extensions.quickfolders.textQuickfoldersLabel","QuickFolders");
-pref("extensions.quickfolders.showUnreadFoldersBold", true);
-pref("extensions.quickfolders.useNavigateShortcuts", true);
-pref("extensions.quickfolders.useKeyboardShortcuts", true);
-pref("extensions.quickfolders.useKeyboardShortcutCTRL", false);
-pref("extensions.quickfolders.showTotalNumber", false);
-pref("extensions.quickfolders.showFoldersWithMessagesItalic", false);
-pref("extensions.quickfolders.showFoldersWithNewMailItalic", true); // Bug 25864
-pref("extensions.quickfolders.showCategoryCounts", false);
-pref("extensions.quickfolders.showNewMailHighlight", true); // better visibility of new mail
-pref("extensions.quickfolders.showRecentTab", false);
-pref("extensions.quickfolders.showQuickMove", true);
-pref("extensions.quickfolders.collapseCategories", false);
-pref("extensions.quickfolders.autoFocusPreview", true);
-pref("extensions.quickfolders.showSubfolders", true);
-pref("extensions.quickfolders.disableFolderSwitching", false);
-pref("extensions.quickfolders.showCountInSubFolders", true); // Bug 25864
-pref("extensions.quickfolders.enableMenuAlphaSorting", false);
-pref("extensions.quickfolders.markAsReadOnMove", false);
-pref("extensions.quickfolders.useRebuildShortcut", false);
-pref("extensions.quickfolders.rebuildShortcutKey", 'F');
-pref("extensions.quickfolders.quickJump.useHotkey", true);
-pref("extensions.quickfolders.quickJump.Hotkey", 'J');
-pref("extensions.quickfolders.quickJump.Hotkey.Shift", true);
-pref("extensions.quickfolders.quickMove.createFolderOnTop", false);
-pref("extensions.quickfolders.quickMove.useHotkey", true);
-pref("extensions.quickfolders.quickMove.Hotkey", 'M');
-pref("extensions.quickfolders.quickMove.Hotkey.Shift", true);
-pref("extensions.quickfolders.quickMove.lastFolderName","");
-pref("extensions.quickfolders.quickMove.autoFill",true);
-pref("extensions.quickfolders.quickMove.premium.silentMode", false);
-pref("extensions.quickfolders.quickCopy.useHotkey", false);
-pref("extensions.quickfolders.quickCopy.Hotkey", 'T');
-pref("extensions.quickfolders.quickCopy.Hotkey.Shift", true);
-pref("extensions.quickfolders.skipFolder.useHotkey", false);
-pref("extensions.quickfolders.skipFolder.Hotkey", 'S');
-pref("extensions.quickfolders.skipFolder.Hotkey.Shift", true);
-pref("extensions.quickfolders.quickMove.folderLabel", true);
-pref("extensions.quickfolders.showToolIcon", true);
-pref("extensions.quickfolders.bookmarks.folderLabel", true);
-pref("extensions.quickfolders.bookmarks.showButton", true);
-pref("extensions.quickfolders.bookmarks.maxEntries", 100);
-pref("extensions.quickfolders.bookmarks.searchUri", "");
-pref("extensions.quickfolders.bookmarks.openMethod", "currentTab");
-pref("extensions.quickfolders.toolbar.minHeight", "24");
-pref("extensions.quickfolders.toolbar.onlyShowInMailWindows", false);
-pref("extensions.quickfolders.toolbar.hideInSingleMessage", true);
-pref("extensions.quickfolders.toolbar.ordinalPosition", 100);
-pref("extensions.quickfolders.behavior.nonFolderView.openNewTab", true);
-pref("extensions.quickfolders.style.transitions", true); // changing to true because of wobbly bug
-pref("extensions.quickfolders.tooltips.parentFolder", false);
-pref("extensions.quickfolders.tooltips.baseFolder", true);
-pref("extensions.quickfolders.tooltips.serverName", true);
-pref("extensions.quickfolders.tooltips.virtualFlag", true);
-pref("extensions.quickfolders.tooltips.msgFolderFlags", false);
-pref("extensions.quickfolders.autoValidateFolders", true); // check if folder exists when clicking a tab
-pref("extensions.quickfolders.treeIconsDelay", 7500); // repair icons [Bug 26566]
-// Current Folder Toolbar
-pref("extensions.quickfolders.showCurrentFolderToolbar", true);
-pref("extensions.quickfolders.showCurrentFolderToolbar.messageWindow", false);
-pref("extensions.quickfolders.showCurrentFolderToolbar.singleMailTab", true);
-pref("extensions.quickfolders.currentFolderBar.showClose", false);
-pref("extensions.quickfolders.currentFolderBar.showRecentButton", true);
-pref("extensions.quickfolders.currentFolderBar.showFilterButton", true);
-pref("extensions.quickfolders.currentFolderBar.showFolderMenuButton", false);
-pref("extensions.quickfolders.currentFolderBar.showIconButtons", true);
-pref("extensions.quickfolders.currentFolderBar.showRepairFolderButton", false);
-pref("extensions.quickfolders.currentFolderBar.navigation.showButtons", true);
-pref("extensions.quickfolders.currentFolderBar.folderNavigation.showButtons", false);
-pref("extensions.quickfolders.currentFolderBar.background","linear-gradient(to top, #FFF 7%, rgb(189,185,189) 88%, #EEE 100%)");
-pref("extensions.quickfolders.currentFolderBar.background.selection","default");
-pref("extensions.quickfolders.currentFolderBar.background.lightweight", true);
-pref("extensions.quickfolders.currentFolderBar.folderTreeIcon", true);
-pref("extensions.quickfolders.currentFolderBar.flexLeft", 3);
-pref("extensions.quickfolders.currentFolderBar.flexRight", 6);
-// off the wall German flag style:
-pref("extensions.quickfolders.currentFolderBar.background.custom","linear-gradient(140deg, rgba(0,0,0,0) 0%,rgba(0,0,0,0) 12%,rgba(0,0,0,1) 14%,rgba(214,40,40,1) 24%,rgba(255,231,50,1) 32%,rgba(255,231,50,0.0) 34%,rgba(0,0,0,0) 100%)");
-// backup / restore
-pref("extensions.quickfolders.files.path", "");
-pref("extensions.quickfolders.restoreConfig.general", true);
-pref("extensions.quickfolders.restoreConfig.tabs", true);
-pref("extensions.quickfolders.restoreConfig.layout", true);
-// note: in old Gecko versions it would be -moz-linear-gradient(-30deg, rgba(0,0,0,0) 0%,rgba(0,0,0,0) 12%,rgba(0,0,0,1) 14%,rgba(214,40,40,1) 24%,rgba(255,231,50,1) 32%,rgba(255,231,50,0.0) 34%,rgba(0,0,0,0) 100%)
-// Layout
-pref("extensions.quickfolders.style.theme", "flatTabs");
-pref("extensions.quickfolders.buttonFontSizeN", 0);
-pref("extensions.quickfolders.showIcons", true);
-pref("extensions.quickfolders.debug", false);
-pref("extensions.quickfolders.initDelay", 2500);
-pref("extensions.quickfolders.colorTabStyle",0);
-pref("extensions.quickfolders.queuedFolderUpdateDelay",500);
-pref("extensions.quickfolders.transparentButtons", false);
-pref("extensions.quickfolders.transparentToolbar", true);
-pref("extensions.quickfolders.buttonShadows", false);
-pref("extensions.quickfolders.pastelColors", true); // legacy, now obsolete
-pref("extensions.quickfolders.style.corners.customizedRadius", false);
-pref("extensions.quickfolders.style.corners.customizedTopRadiusN", 4);
-pref("extensions.quickfolders.style.corners.customizedBottomRadiusN", 0);
-pref("extensions.quickfolders.style.button.minHeight", 20);
-pref("extensions.quickfolders.style.button.paddingTop", 1);
-pref("extensions.quickfolders.style.borders", true);
-// Special State colors
-pref("extensions.quickfolders.style.Toolbar.bottomLineWidth", 3);
-pref("extensions.quickfolders.style.Toolbar.background-color", "transparent");
-pref("extensions.quickfolders.style.ActiveTab.color", "#FFFFFF");
-pref("extensions.quickfolders.style.ActiveTab.background-color", "#000090");
-pref("extensions.quickfolders.style.ActiveTab.paletteEntry", 5);
-pref("extensions.quickfolders.style.ActiveTab.paletteType", 1);
-pref("extensions.quickfolders.style.palette.version", 0);
-
-pref("extensions.quickfolders.style.DragOver.color", "#E93903");
-pref("extensions.quickfolders.style.DragOver.background-color", "#FFFFFF");
-pref("extensions.quickfolders.style.DragOver.paletteEntry", 10);
-pref("extensions.quickfolders.style.DragOver.paletteType", 1);
-
-pref("extensions.quickfolders.style.DragTab.color", "#FFFFFF");
-pref("extensions.quickfolders.style.DragTab.background-color", "#E93903");
-
-pref("extensions.quickfolders.style.HoveredTab.color", "#FFFFFF");
-pref("extensions.quickfolders.style.HoveredTab.background-color", "orange");
-pref("extensions.quickfolders.style.HoveredTab.paletteEntry", 3);
-pref("extensions.quickfolders.style.HoveredTab.paletteType", 1);
-
-pref("extensions.quickfolders.style.InactiveTab.color", "buttontext");
-pref("extensions.quickfolders.style.InactiveTab.background-color", "buttonface");
-pref("extensions.quickfolders.style.InactiveTab.paletteEntry", 20);
-pref("extensions.quickfolders.style.InactiveTab.paletteType", 0); // InactiveTab = "uncolored tab" default to none, but is set on upgradePalette
-pref("extensions.quickfolders.style.ColoredTab.paletteType", 1); // default to none, but is set on upgradePalette
-
-// Debugging Options
-pref("extensions.quickfolders.debug.firstrun", false);
-pref("extensions.quickfolders.debug.buttonStyle", false);
-pref("extensions.quickfolders.debug.bookmarks", false);
-pref("extensions.quickfolders.debug.categories", false);
-pref("extensions.quickfolders.debug.composer", false);
-pref("extensions.quickfolders.debug.css", false);
-pref("extensions.quickfolders.debug.css.Detail", false);
-pref("extensions.quickfolders.debug.css.AddRule", false);
-pref("extensions.quickfolders.debug.css.styleSheets", false);
-pref("extensions.quickfolders.debug.css.palette.styleSheets", false);
-pref("extensions.quickfolders.debug.css.palette", false);
-pref("extensions.quickfolders.debug.dnd", false);
-pref("extensions.quickfolders.debug.dragToNew", false);
-pref("extensions.quickfolders.debug.events", false);
-pref("extensions.quickfolders.debug.events.keyboard", false);
-pref("extensions.quickfolders.debug.filters", false);
-pref("extensions.quickfolders.debug.folderTree", false);
-pref("extensions.quickfolders.debug.folderTree.icons", false);
-pref("extensions.quickfolders.debug.folders", false);
-pref("extensions.quickfolders.debug.folders.select", false);
-pref("extensions.quickfolders.debug.getOrCreateFolder", false);
-pref("extensions.quickfolders.debug.identities", false);
-pref("extensions.quickfolders.debug.interface", false);
-pref("extensions.quickfolders.debug.interface.tabs", false);
-pref("extensions.quickfolders.debug.interface.buttonStyles", false);
-pref("extensions.quickfolders.debug.interface.findFolder", false);
-pref("extensions.quickfolders.debug.interface.currentFolderBar", false);
-pref("extensions.quickfolders.debug.interface.update",false);
-pref("extensions.quickfolders.debug.listeners.tabmail", false);
-pref("extensions.quickfolders.debug.listeners.folder", false);
-pref("extensions.quickfolders.debug.mailTabs", false);
-pref("extensions.quickfolders.debug.mouseclicks", false);
-pref("extensions.quickfolders.debug.navigation", false);
-pref("extensions.quickfolders.debug.options", false);
-pref("extensions.quickfolders.debug.popupmenus", false);
-pref("extensions.quickfolders.debug.popupmenus.verticalOffset",0);
-pref("extensions.quickfolders.debug.popupmenus.isCommandListeners", false);
-pref("extensions.quickfolders.debug.popupmenus.isOnCommandAttr", false);
-pref("extensions.quickfolders.debug.popupmenus.folderEventType", "onclick");
-pref("extensions.quickfolders.debug.popupmenus.subfolders", false);
-pref("extensions.quickfolders.debug.popupmenus.items", false);
-pref("extensions.quickfolders.debug.popupmenus.collapse", false);
-pref("extensions.quickfolders.debug.popupmenus.drag", false);
-pref("extensions.quickfolders.debug.premium", false);
-pref("extensions.quickfolders.debug.premium.quickJump", false);
-pref("extensions.quickfolders.debug.premium.licenser", false);
-pref("extensions.quickfolders.debug.premium.forceShowExtend", false);
-pref("extensions.quickfolders.debug.premium.rsa", false);
-pref("extensions.quickfolders.debug.quickMove", false);
-pref("extensions.quickfolders.debug.recentFolders", false);
-pref("extensions.quickfolders.debug.recentFolders.detail", false);
-pref("extensions.quickfolders.debug.toolbarHiding", false);
-
-pref("extensions.quickfolders.toolbarpalette.showSmallIcons", false); // unhide "small icons" in toolbar palette
-
-// New Folder Item
-pref("extensions.quickfolders.dragToCreateFolder.pop3", true);
-pref("extensions.quickfolders.dragToCreateFolder.imap", true);
-pref("extensions.quickfolders.dragToCreateFolder.imap.delay", 400); // only relevant to Postbox
-pref("extensions.quickfolders.dragToCreateFolder.local", true);
-pref("extensions.quickfolders.dragToCreateFolder.menutop", false);
-pref("extensions.quickfolders.newFolderCallback.encodeURI",false);
-
-// Recent Folder Item
-pref("extensions.quickfolders.recentfolders.itemCount", 12);
-pref("extensions.quickfolders.recentfolders.showLabel", true);
-pref("extensions.quickfolders.recentfolders.sortAlphabetical", false);
-pref("extensions.quickfolders.recentfolders.color", 10);
-pref("extensions.quickfolders.recentfolders.showIcon", true);
-pref("extensions.quickfolders.recentfolders.folderPathDetail", 3); /* fld path only */
-pref("extensions.quickfolders.recentfolders.maxPathItems", 3);
-pref("extensions.quickfolders.recentfolders.showTimeStamp", false);
-// new Folder Optimization
-pref("extensions.quickfolders.update.disableMinimal", false);
-// Tab Context Menu items
-pref("extensions.quickfolders.folderMenu.CTRL", false); // Bug 26703
-pref("extensions.quickfolders.folderMenu.getMessagesForInbox", true);
-pref("extensions.quickfolders.folderMenu.getMessagesForNews", true);
-pref("extensions.quickfolders.folderMenu.markAllRead", true);
-pref("extensions.quickfolders.folderMenu.markAllReadRecursive", false);
-pref("extensions.quickfolders.folderMenu.emptyJunk", true);
-pref("extensions.quickfolders.folderMenu.emptyTrash", true);
-pref("extensions.quickfolders.folderMenu.dragToNew", true);
-pref("extensions.quickfolders.folderMenu.openNewTab", false);
-pref("extensions.quickfolders.folderMenu.realignMinTabs", 25);
-pref("extensions.quickfolders.commandMenu.options", true);
-pref("extensions.quickfolders.commandMenu.separator", true);
-pref("extensions.quickfolders.commandMenu.CTRL", false); // Bug 26571
-pref("extensions.quickfolders.commandMenu.lineBreak", true);
-pref("extensions.quickfolders.commandMenu.icon", false);
-pref("extensions.quickfolders.tabIcons.defaultPath","");
-pref("extensions.quickfolders.commandMenu.support", true);
-pref("extensions.quickfolders.commandMenu.help", true);
-
-pref("extensions.quickfolders.hideVersionOnUpdate", false);
-pref("extensions.quickfolders.folderTree.icons", true);
-pref("extensions.quickfolders.folderTree.icons.injectCSS", true);
-
-// Filter Template
-pref("extensions.quickfolders.filters.currentTemplate", "from");
-pref("extensions.quickfolders.filters.showMessage", true);
-pref("extensions.quickfolders.contextMenu.hideFilterMode", false);
-// Pro Features
-pref("extensions.quickfolders.licenseType", 0); // private license, 1-domain
-pref("extensions.quickfolders.premium.categories.multiSelect",false);
-pref("extensions.quickfolders.premium.findFolder.maxParentLevel", 2); // Bug 26088
-pref("extensions.quickfolders.premium.findFolder.maxPathItems", 3); // Bug 25991
-pref("extensions.quickfolders.premium.findFolder.folderPathDetail", 2); // Bug 25991
-/* popupProFeature( ) counts how often these features are used */
-pref("extensions.quickfolders.premium.advancedTabProperties.usage", 0);
-pref("extensions.quickfolders.premium.bookmarks.usage", 0);
-pref("extensions.quickfolders.premium.findFolder.usage", 0);
-pref("extensions.quickfolders.premium.lineBreaks.usage", 0);
-pref("extensions.quickfolders.premium.pasteFolderEntries.usage", 0);
-pref("extensions.quickfolders.premium.quickMove.usage", 0);
-pref("extensions.quickfolders.premium.skipUnreadFolder.usage", 0);
-pref("extensions.quickfolders.premium.tabIcons.usage", 0);
-pref("extensions.quickfolders.premium.tabSeparator.usage", 0);
-pref("extensions.quickfolders.licenser.forceSecondaryIdentity",false);
-pref("extensions.quickfolders.LicenseKey", "");
-pref("extensions.quickfolders.premium.encryptionKey", ""); /* use for generating new keys */
-pref("extensions.quickfolders.menuMessageList.maxSubjectLength", 40);
-/** obsolete **/
-
diff --git a/manifest.json b/manifest.json
index 4d5bf4144..994c35d03 100644
--- a/manifest.json
+++ b/manifest.json
@@ -2,7 +2,7 @@
"manifest_version" : 2,
"name" : "QuickFolders",
"description" : "__MSG_extensionDescription__",
- "version" : "5.0",
+ "version" : "5.1",
"default_locale": "en",
"author": "Axel Grude, Klaus Buecher/opto",
"developer" : {
diff --git a/popup/installed.js b/popup/installed.js
index dc9e3894d..93067f427 100644
--- a/popup/installed.js
+++ b/popup/installed.js
@@ -30,11 +30,14 @@ addEventListener("click", async (event) => {
addEventListener("load", async (event) => {
- const addonName = await browser.runtime.getManifest().name, // or mxUtilties.getAddonName()); == 'quickFilters'
- hoursWorked = 250;
+ const manifest = await messenger.runtime.getManifest(),
+ browserInfo = await messenger.runtime.getBrowserInfo(),
+ addonName = manifest.name,
+ addonVer = manifest.version,
+ appVer = browserInfo.version,
+ hoursWorked = 290;
const mxUtilties = messenger.Utilities;
- console.log("load event install case.");
// force replacement for __MSG_xx__ entities
// using John's helper method (which calls i18n API)
i18n.updateDocument();
@@ -47,15 +50,11 @@ addEventListener("load", async (event) => {
let thanksInfo = document.getElementById('thanks-for-installing-intro');
if (thanksInfo) {
- console.log("thanksInfo = v v v ");
- console.log(thanksInfo);
thanksInfo.innerText = messenger.i18n.getMessage("thanks-for-installing-intro", addonName);
}
let verInfo = document.getElementById('active-version-info');
if (verInfo) {
- let addonVer = await mxUtilties.getAddonVersion(),
- appVer = await mxUtilties.getTBVersion();
// use the i18n API
// You are now running version {version} on Thunderbird {appver}.
diff --git a/popup/popup.css b/popup/popup.css
index 64e86e02b..d0f7eab2b 100644
--- a/popup/popup.css
+++ b/popup/popup.css
@@ -79,7 +79,8 @@ ul.actions {
}
ul.actions *[collapsed=true],
-.actionlinks a[collapsed=true] {
+.actionlinks a[collapsed=true],
+p[collapsed=true]{
visibility: collapse;
display :none;
}
diff --git a/popup/popup.js b/popup/popup.js
index 4ff8db1b4..ce6be22fb 100644
--- a/popup/popup.js
+++ b/popup/popup.js
@@ -15,10 +15,10 @@ async function updateActions(addonName) {
let isLicensed = await mxUtilties.isLicensed(true),
isExpired = await mxUtilties.LicenseIsExpired();
- console.log("Addon " + addonName + "\n" +
- "isLicensed = " + isLicensed + "\n" +
- "isExpired = " + isExpired + "\n"
- );
+ //console.log("Addon " + addonName + "\n" +
+ // "isLicensed = " + isLicensed + "\n" +
+ // "isExpired = " + isExpired + "\n"
+ //);
function hide(id) {
document.getElementById(id).setAttribute('collapsed',true);
@@ -29,6 +29,8 @@ async function updateActions(addonName) {
// renew-your-license - already collapsed
// renewLicenseListItem - already collapsed
// purchaseLicenseListItem - not collapsed
+ hide('licenseExtended');
+
if (isLicensed) {
hide('purchaseLicenseListItem');
hide('register');
@@ -41,8 +43,16 @@ async function updateActions(addonName) {
else { // License Extension
hide('renewLicenseListItem');
hide('renew');
+ let gpdays = await mxUtilties.LicensedDaysLeft();
+ if (gpdays<365) { // they may have seen this popup. Only show extend License section if it is < 1 year away
show('extendLicenseListItem');
show('extend');
+ }
+ else {
+ show('licenseExtended');
+ hide('extendLicenseListItem');
+ hide('extend');
+ }
}
}
diff --git a/popup/update.html b/popup/update.html
index fc6f04ea3..a4c7993b0 100644
--- a/popup/update.html
+++ b/popup/update.html
@@ -19,6 +19,10 @@
__MSG_heading-updated__
__MSG_active-version-info__
+
+ __MSG_license-is-extended__
+
+
__MSG_time-and-effort__
diff --git a/popup/update.js b/popup/update.js
index 4cc9fa31f..b3485ac75 100644
--- a/popup/update.js
+++ b/popup/update.js
@@ -24,10 +24,13 @@ addEventListener("click", async (event) => {
addEventListener("load", async (event) => {
- const addonName = await browser.runtime.getManifest().name, // or mxUtilties.getAddonName()); == 'quickFilters'
- hoursWorked = 250,
+ const manifest = await messenger.runtime.getManifest(),
+ browserInfo = await messenger.runtime.getBrowserInfo(),
+ addonName = manifest.name,
+ addonVer = manifest.version,
+ appVer = browserInfo.version,
+ hoursWorked = 300,
remindInDays = 10;
- const mxUtilties = messenger.Utilities;
// force replacement for __MSG_xx__ entities
// using John's helper method (which calls i18n API)
@@ -48,8 +51,6 @@ addEventListener("load", async (event) => {
let verInfo = document.getElementById('active-version-info');
if (verInfo) {
- let addonVer = await mxUtilties.getAddonVersion(),
- appVer = await mxUtilties.getTBVersion();
// use the i18n API
// You are now running version {version} on Thunderbird {appver}.
diff --git a/qf-background.js b/qf-background.js
index b0521722e..32a31c8db 100644
--- a/qf-background.js
+++ b/qf-background.js
@@ -20,11 +20,24 @@ async function main() {
// see below
case "update":
{
+ const mxUtilties = messenger.Utilities;
+ let isLicensed = await mxUtilties.isLicensed(true);
+ if (isLicensed) {
+ // suppress update popup for users with licenses that have been recently renewed
+ let gpdays = await mxUtilties.LicensedDaysLeft();
+ console.log("Licensed - " + gpdays + " Days left.");
+ if (gpdays>40) {
+ console.log("Omitting update popup!");
+ return;
+ }
+ }
+
+
let url = browser.runtime.getURL("popup/update.html");
//await browser.tabs.create({ url });
let screenH = window.screen.height,
- windowHeight = (screenH > 825) ? 825 : screenH;
- await browser.windows.create({ url, type: "popup", width: 940, height: windowHeight, });
+ windowHeight = (screenH > 870) ? 870 : screenH;
+ await browser.windows.create({ url, type: "popup", width: 950, height: windowHeight, });
}
break;
// see below
diff --git a/release-notes.html b/release-notes.html
index 5f31e66fe..9af990a20 100644
--- a/release-notes.html
+++ b/release-notes.html
@@ -1,4 +1,4 @@
-Release 5.0
+Release 5.1
In order to maintain full functionality, this Add-on had to be rewritten as a mail extension with experiment API, which will require full permissions on installation. As regards being allowed to do stuff, it is actually not different with any classic Add-on: they always had full access to all functions within Thunderbird. The modern mail extensions will have much more tightly managed permissions - eventually QuickFolders will also use this more modern approach - but the APIs for this have to be created and accepted by Mozilla first. This means a lot of ongoing work for the nexty 12 months forward - please support this with a license or donation:
You can buy a license here. This is the preferred way of funding all the ongoing work and improvements.
@@ -6,17 +6,21 @@
Changes / Items worked
-
Removed backwards compatible (shim) code and all code implementing cross-compatibiliy for SeaMonkey and Postbox. The code base had to be forked into a new branch, so if I backport bugfixes this will double my work for the legacy Thunderbird users.
-
[issue 35] "Skip Unread Folder" hides "Add star" function... the Shortcut for skipping unread folders works even without pressing the Shift key
rewrote preference bindings in all dialogs - jumping to a moved mail brings up a search dialog. Unfortunately this was not populated with meaningful search conditions
-
Added new Thunderbird 78 compatible Icons (svg)
-
rewrote search algorithm for missing mails in reading list
-
Klaus Buecher (@Opto) did the initial conversion of all XUL interface and fixed some bugs. John Bieling (from the Thunderbird team) helped with the WindowLoader implementation and fixing the broken preferences. Many thanks to both of themn for their fantastic work!
+
[issue 72] Category "_Uncategorized" will show all categories after moving a folder to another category
+
+
[issue 76]Recent Folders List is not updated until Thunderbird is restarted.
+
+
[issue 80] Recent Folders list not updated when moving email using drag and drop to the folder tree. I have made the updating of this folder time stamp somewhat more aggressive, but avoiding to add folders like Inbox, Sent, Archives, Drafts, Junk, Trash and Templates because they would always end up on top.
+
[issue 79] Drag over color + Dropmarkers when reordering Tabs not working
+
+
[issue 81] Current Folder Toolbar display - text is always black
+
+
[issue 84] Can't drag envelope icon in Navigation bar (a.k.a. Current Folder) to a folder / QuickFolder drop target. Also the Navigation Bar is hidden if multiple mails or a thread is selected.
+
Hide option to extend license if it is already more than 1 year into the future.
+
Hide popup screen for licensed users who have > 40 days left on their license
+
removed Encryption test code from options.js
+
validateFilterTargets moved to other module to avoid console errors.
+
Improve legibility of dropdown items in themed QuickFolders options dialog. Especially affects users of dark themes
+
In the dialog "change order of tabs" the Up and Down labels on the buttons were not rendered for some yet unknown reason - this is now worked around by removing the button styling from these elements
-Known issues
-
-
Any dragover styling (special color, dropmarkers when moving tabs around) is currently broken - this is caused by an experimental style selector which has been now removed by Mozilla due to little take-up of the HTML community. We will need to recode these parts using JavaScript.