Skip to content

Commit 3f8332e

Browse files
committed
4.20 - Published 22/02/21
1 parent ac43360 commit 3f8332e

32 files changed

+352
-315
lines changed

build.bat

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ pwsh -Command "(gc -en UTF8NoBOM manifest.json) -replace 'pre%oldRev%', 'pre%qui
88
rem "C:\Program Files\7-Zip\7z" a -xr!.svn quickFolders.zip install.rdf chrome.manifest chrome defaults license.txt
99
"C:\Program Files\7-Zip\7z" a -xr!.svn QuickFoldersWeb.zip manifest.json install.rdf chrome.manifest chrome defaults license.txt
1010
echo %quickFoldersRev% > revision.txt
11-
move QuickFolders*.xpi "..\..\Release\_Test Versions\4.19\"
11+
move QuickFolders*.xpi "..\..\Release\_Test Versions\4.20\"
1212
pwsh -Command "Start-Sleep -m 150"
13-
rename QuickFoldersWeb.zip QuickFolders-wx-4.19.1pre%quickFoldersRev%.xpi
13+
rename QuickFoldersWeb.zip QuickFolders-wx-4.20pre%quickFoldersRev%.xpi

chrome-min.manifest

Lines changed: 0 additions & 120 deletions
This file was deleted.

chrome/content/options.js

Lines changed: 60 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ QuickFolders.Options = {
3232
QF_PREF_LAYOUT : 2,
3333
QF_PREF_ADVANCED : 1,
3434
QF_PREF_GENERAL : 0,
35+
prefMap : {},
3536

3637
// save space, for visually impaired
3738
collapseHead: function collapseHead() {
@@ -47,10 +48,8 @@ QuickFolders.Options = {
4748
rememberLastTab: function rememberLastTab() {
4849
let tabbox = document.getElementById("QuickFolders-Options-Tabbox");
4950
QuickFolders.Preferences.setIntPref('lastSelectedOptionsTab', tabbox.selectedIndex);
50-
let observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
51-
observerService.notifyObservers(null, "quickfolders-options-saved", null);
5251
} ,
53-
52+
5453
accept: function accept(evt) {
5554
const prefs = QuickFolders.Preferences;
5655

@@ -97,6 +96,7 @@ QuickFolders.Options = {
9796
Services.prompt.alert(null,"QuickFolders","Error in QuickFolders:\n" + e);
9897
};
9998
this.rememberLastTab();
99+
QuickFolders.Interface.updateObserver(); // update the main window layout
100100
return true;
101101
} ,
102102

@@ -208,17 +208,33 @@ QuickFolders.Options = {
208208
util.logDebug("Skipping loadPreferences - Preferences object not defined");
209209
return; // older versions of Thunderbird do not need this.
210210
}
211-
}
211+
}
212212
util.logDebug("loadPreferences - start:");
213+
214+
let myprefElements = document.querySelectorAll("[preference]");
215+
let foundElements = {};
216+
for (let myprefElement of myprefElements) {
217+
let legacyPrefId = myprefElement.getAttribute("preference");
218+
foundElements[legacyPrefId] = myprefElement;
219+
}
213220
let myprefs = document.getElementsByTagName("preference");
214221
if (myprefs.length) {
215222
let prefArray = [];
216223
for (let it of myprefs) {
217-
let p = new Object({ id: it.id,
218-
name: it.getAttribute('name'),
219-
type: it.getAttribute('type') });
220-
if (it.getAttribute('instantApply') == "true") p.instantApply = true;
224+
let p = new Object(
225+
{
226+
id: it.getAttribute('name'),
227+
name: it.getAttribute('name'),
228+
type: it.getAttribute('type')
229+
}
230+
);
231+
this.prefMap[it.getAttribute('name')] = it.getAttribute('id'); // store original Id!
232+
// not supported
233+
// if (it.getAttribute('instantApply') == "true") p.instantApply = true;
221234
prefArray.push(p);
235+
// manually change the shortname in the preference attribute to the actual
236+
// preference "id" (as in the preference manager)
237+
foundElements[it.id].setAttribute("preference", it.getAttribute("name"));
222238
}
223239
util.logDebug("Adding " + prefArray.length + " preferences to Preferences loader…")
224240
if (Preferences)
@@ -333,15 +349,7 @@ QuickFolders.Options = {
333349
break;
334350
}
335351

336-
// .0 private license, .1 domain license
337-
// these are only for testing, so normal users shouldn't need them, default to '' via code
338-
let EncryptionKey = prefs.getStringPref('premium.encryptionKey.' + QuickFolders.Crypto.key_type.toString());
339-
/*
340-
if (EncryptionKey) {
341-
getElement('boxKeyGenerator').collapsed = false;
342-
licenser.RSA_encryption = EncryptionKey;
343-
}
344-
*/
352+
345353

346354
if (earlyExit) return;
347355
if (licenser.isValidated)
@@ -414,14 +422,8 @@ QuickFolders.Options = {
414422
}
415423
);
416424
});
417-
try {
418-
let selectOptionsPane = prefs.getIntPref('lastSelectedOptionsTab');
419-
if (selectOptionsPane >=0) {
420-
panels.selectedIndex = selectOptionsPane; // for some reason the tab doesn't get selected
421-
panels.tabbox.selectedTab = panels.tabbox.tabs.childNodes[selectOptionsPane];
422-
}
423-
}
424-
catch(e) { ; }
425+
options.selectPane (prefs.getIntPref('lastSelectedOptionsTab'));
426+
425427
panels.addEventListener('select', function(evt) { QuickFolders.Options.onTabSelect(panels,evt); } );
426428
options.configExtra2Button();
427429

@@ -430,6 +432,18 @@ QuickFolders.Options = {
430432

431433
},
432434

435+
selectPane: function(selectOptionsPane) {
436+
try {
437+
let panels = document.getElementById('QuickFolders-Panels');
438+
if (selectOptionsPane >=0) {
439+
panels.selectedIndex = selectOptionsPane;
440+
let firstTabOffset = (panels.tabbox.tabs.children[0].tagName == 'tab') ? 0 : 1;
441+
panels.tabbox.selectedTab = panels.tabbox.tabs.children[selectOptionsPane + firstTabOffset];
442+
}
443+
}
444+
catch(e) { ; }
445+
} ,
446+
433447
initBling: function initBling (tabbox) {
434448
const util = QuickFolders.Util,
435449
prefs = QuickFolders.Preferences,
@@ -523,18 +537,16 @@ QuickFolders.Options = {
523537

524538
selectQuickMoveFormat: function selectQuickMoveFormat(menuList) {
525539
let prefString1 = menuList.getAttribute('preference'),
526-
prefName1 = document.getElementById(prefString1).getAttribute('name'),
527540
val = menuList.value;
528-
QuickFolders.Util.logDebug('Setting quick move format pref[' + prefName1 + ']: ' + val + '…');
529-
QuickFolders.Preferences.setIntPreference(prefName1, parseInt(val));
541+
QuickFolders.Util.logDebug('Setting quick move format pref[' + prefString1 + ']: ' + val + '…');
542+
QuickFolders.Preferences.setIntPreference(prefString1, parseInt(val));
530543
} ,
531544

532545
selectFolderCrossing: function selectFolderCrossing(menuList) {
533546
let prefString = menuList.getAttribute('preference'),
534-
prefName = document.getElementById(prefString).getAttribute('name'),
535547
val = menuList.value;
536-
QuickFolders.Util.logDebug('Setting folder crossing pref[' + prefName1 + ']: ' + val + '…');
537-
QuickFolders.Preferences.setIntPreference(prefName, parseInt(val));
548+
QuickFolders.Util.logDebug('Setting folder crossing pref[' + prefString + ']: ' + val + '…');
549+
QuickFolders.Preferences.setIntPreference(prefString, parseInt(val));
538550
} ,
539551

540552
enablePremiumConfig: function enablePremiumConfig(isEnabled) {
@@ -912,20 +924,6 @@ QuickFolders.Options = {
912924
lightweight: 4
913925
} ,
914926

915-
toggleMutexCheckbox: function toggleMutexCheckbox(cbox, cbox2Name) {
916-
const prefs = QuickFolders.Preferences;
917-
let prefString1 = cbox.getAttribute('preference'),
918-
prefName1 = document.getElementById(prefString1).getAttribute('name'),
919-
cbox2 = document.getElementById(cbox2Name);
920-
if(!prefs.getBoolPrefVerbose(prefName1)) { // not yet checked but will be after event is propagated.
921-
let prefString2 = cbox2.getAttribute('preference'),
922-
prefName2 = document.getElementById(prefString2).getAttribute('name');
923-
// uncheck the other checkbox
924-
if (prefs.getBoolPrefVerbose(prefName2))
925-
prefs.setBoolPrefVerbose(prefName2, false);
926-
}
927-
},
928-
929927
setDefaultButtonRadius: function setDefaultButtonRadius() {
930928
const prefs = QuickFolders.Preferences;
931929
document.getElementById('QuickFolders-Options-CustomTopRadius').value = "4";
@@ -1016,7 +1014,7 @@ QuickFolders.Options = {
10161014
prefs.setStringPref('currentFolderBar.background', styleValue);
10171015
prefs.setStringPref('currentFolderBar.background.selection', choice);
10181016
if (Preferences) {
1019-
Preferences.get('qfpa-CurrentFolder-Background')._value=styleValue;
1017+
Preferences.get('extensions.quickfolders.currentFolderBar.background')._value=styleValue;
10201018
}
10211019
//if (withUpdate)
10221020
// QuickFolders.Interface.updateMainWindow();
@@ -1222,36 +1220,32 @@ QuickFolders.Options = {
12221220
},
12231221

12241222
changeTextPreference: function changeTextPreference(txtBox) {
1225-
let prefString = txtBox.getAttribute("preference"),
1226-
pref = document.getElementById(prefString);
1223+
let prefString = txtBox.getAttribute("preference");
12271224

1228-
if (pref) {
1229-
let name = pref.getAttribute('name');
1230-
if(name)
1231-
QuickFolders.Preferences.setIntPreference(name, txtBox.value);
1232-
else
1233-
QuickFolders.Util.logToConsole('changeTextPreference could not find pref string: ' + prefString);
1234-
}
1225+
if (Preferences.get(prefString))
1226+
QuickFolders.Preferences.setIntPreference(prefString, txtBox.value);
1227+
else
1228+
QuickFolders.Util.logToConsole('changeTextPreference could not find pref string: ' + prefString);
12351229
return QuickFolders.Interface.updateMainWindow(false);
12361230
},
12371231

12381232
// doing what instantApply really should provide...
12391233
toggleBoolPreference: function toggleBoolPreference(cb, noUpdate) {
12401234
const util = QuickFolders.Util,
12411235
QI = util.getMail3PaneWindow().QuickFolders.Interface;
1242-
let prefString = cb.getAttribute("preference"),
1243-
pref = document.getElementById(prefString);
1236+
let prefString = cb.getAttribute("preference");
12441237

1245-
if (pref)
1246-
QuickFolders.Preferences.setBoolPrefVerbose(pref.getAttribute('name'), cb.checked);
1238+
if (prefString)
1239+
QuickFolders.Preferences.setBoolPrefVerbose(prefString, cb.checked);
12471240
if (noUpdate)
1248-
return true;
1249-
switch (pref) {
1241+
return false;
1242+
switch (prefString) {
12501243
case 'extensions.quickfolders.collapseCategories':
12511244
QI.updateCategoryLayout();
1252-
return;
1245+
return false;
12531246
}
1254-
return QI.updateMainWindow(false); // force full updated
1247+
QI.updateMainWindow(false); // force full updated
1248+
return false;
12551249
},
12561250

12571251
toggleColorTranslucent: function toggleColorTranslucent(cb, pickerId, label, userStyle) {
@@ -1261,12 +1255,9 @@ QuickFolders.Options = {
12611255
if (userStyle)
12621256
QuickFolders.Preferences.setUserStyle(userStyle, 'background-color', picker.value);
12631257

1264-
// problems with instantapply?
1265-
let prefString = cb.getAttribute("preference"),
1266-
pref = document.getElementById(prefString);
1267-
1268-
if (pref)
1269-
QuickFolders.Preferences.setBoolPrefVerbose(pref.getAttribute('name'), cb.checked);
1258+
let prefString = cb.getAttribute("preference");
1259+
if (prefString)
1260+
QuickFolders.Preferences.setBoolPrefVerbose(prefString, cb.checked);
12701261

12711262
return QuickFolders.Interface.updateMainWindow(true);
12721263
},

0 commit comments

Comments
 (0)