@@ -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