Changeset 11bc96d


Ignore:
Timestamp:
Apr 28, 2013, 6:30:38 PM (9 years ago)
Author:
rene <rene@…>
Branches:
ng_0.9
Children:
8dc2b9
Parents:
f2dbe4
Message:

adaptions for new seamonkey (not finished)

Files:
1 added
8 edited

Legend:

Unmodified
Added
Removed
  • content/bindings/vI_rdfAccountMismatchDialog.xml

    rf2dbe4 r11bc96d  
    156156        <body><![CDATA[
    157157        virtualIdentityExtension.Log.debug("rdfAccountMismatchDialog.xml mismatchID-menupopup: _addIdentities.");
    158         var AccountManager = Components.classes["@mozilla.org/messenger/account-manager;1"]
    159             .getService(Components.interfaces.nsIMsgAccountManager);
    160         for (let i = 0; i < AccountManager.accounts.Count(); i++) {
    161             var account = AccountManager.accounts.QueryElementAt(i, Components.interfaces.nsIMsgAccount);
    162             for (let j = 0; j < account.identities.Count(); j++) {
    163                 var identity = account.identities.QueryElementAt(j, Components.interfaces.nsIMsgIdentity);
     158        var accounts = virtualIdentityExtension.getAccountsArray();
     159        for (let acc = 0; acc < accounts.length; acc++) {
     160            let account = accounts[acc];
     161            let identities = virtualIdentityExtension.getIdentitiesArray(account);
     162            for (let i = 0; i < identities.length; i++) {
     163                let identity = identities[i];
    164164                const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
    165165                var menuitem = document.createElementNS(XUL_NS, "menuitem"); // create a new XUL menuitem
  • content/bindings/v_identity.xml

    rf2dbe4 r11bc96d  
    384384        for (var index = 0; index < MenuItems.length; index++) {
    385385            var identity = this._AccountManager.getIdentity(MenuItems[index].getAttribute("value"));
    386            
    387386            var description;
    388             var server = this._AccountManager.GetServersForIdentity(identity).QueryElementAt(0, Components.interfaces.nsIMsgIncomingServer);
     387            if (typeof(this._AccountManager.getServersForIdentity) == 'function') { // new style
     388                var server = this._AccountManager.getServersForIdentity(identity).queryElementAt(0, Components.interfaces.nsIMsgIncomingServer);
     389            } else {
     390                var server = this._AccountManager.GetServersForIdentity(identity).QueryElementAt(0, Components.interfaces.nsIMsgIncomingServer);
     391            }
    389392            // if (server.type == "nntp")
    390393                description = server.prettyName
  • content/prefDialog/vI_prefDialog.xml

    rf2dbe4 r11bc96d  
    3939        var debugNotes = vI.prefDialog.preferences.getBoolPref("debug_notification");
    4040
    41         for (let i = AccountManager.accounts.Count() - 1; i >= 0 ; i--) {
    42             var account = AccountManager.accounts.QueryElementAt(i, Components.interfaces.nsIMsgAccount);
    43             for (let j = account.identities.Count() - 1; j >= 0 ; j--) {
    44                 var identity = account.identities.QueryElementAt(j, Components.interfaces.nsIMsgIdentity);
     41        var accounts = virtualIdentityExtension.getAccountsArray();
     42        for (let acc = 0; acc < accounts.length; acc++) {
     43            let account = accounts[acc];
     44            let identities = virtualIdentityExtension.getIdentitiesArray(account);
     45            for (let i = 0; i < identities.length; i++) {
     46                let identity = identities[i];
    4547                const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
    4648                var listitem = document.createElementNS(XUL_NS, "listitem"); // create a new XUL listitem
  • content/v_identity.js

    rf2dbe4 r11bc96d  
    3030Components.utils.import("resource://v_identity/vI_prefs.js", virtualIdentityExtension);
    3131Components.utils.import("resource://v_identity/vI_replyToSelf.js", virtualIdentityExtension);
     32Components.utils.import("resource://v_identity/vI_accountUtils.js", virtualIdentityExtension);
    3233Components.utils.import("resource://v_identity/plugins/signatureSwitch.js", virtualIdentityExtension);
    3334
     
    8485    },
    8586   
    86   // copy/pasted from MsgComposeCommands.js
    87   queryISupportsArray: function(supportsArray, iid) {
    88     var result = new Array;
    89     let count = supportsArray.Count();
    90     for (let i = 0; i < count; i++)
    91       result[i] = supportsArray.QueryElementAt(i, iid);
    92     return result;
    93   },
    94 
    9587    replacement_functions : {
    9688        FillIdentityList: function(menulist) {
    9789            Log.debug("mod. FillIdentityList");
    98             var accounts = main.queryISupportsArray(main.accountManager.accounts,
    99                                      Components.interfaces.nsIMsgAccount);
    100 
    101             // Ugly hack to work around bug 41133. :-(
    102             accounts = accounts.filter(function isNonSuckyAccount(a) { return !!a.incomingServer; });
    103             function sortAccounts(a, b) {
    104                 if (a.key == main.accountManager.defaultAccount.key)
    105                 return -1;
    106                 if (b.key == main.accountManager.defaultAccount.key)
    107                 return 1;
    108                 var aIsNews = a.incomingServer.type == "nntp";
    109                 var bIsNews = b.incomingServer.type == "nntp";
    110                 if (aIsNews && !bIsNews)
    111                 return 1;
    112                 if (bIsNews && !aIsNews)
    113                 return -1;
    114 
    115                 var aIsLocal = a.incomingServer.type == "none";
    116                 var bIsLocal = b.incomingServer.type == "none";
    117                 if (aIsLocal && !bIsLocal)
    118                 return 1;
    119                 if (bIsLocal && !aIsLocal)
    120                 return -1;
    121                 return 0;
    122             }
    123             accounts.sort(sortAccounts);
    124            
    125             for (var i in accounts) {
    126                 var server = accounts[i].incomingServer;
    127                 if (!server) continue;
    128                 // check for VirtualIdentity Account
    129                 try {   vI.prefroot.getBoolPref("mail.account." + accounts[i].key + ".vIdentity");
    130                     continue; } catch (e) { };
    131 
    132                 var identities = main.queryISupportsArray(accounts[i].identities, Components.interfaces.nsIMsgIdentity);
    133                 for (var j in identities) {
    134                     var identity = identities[j];
    135                     var item = menulist.appendItem(identity.identityName, identity.key, server.prettyName);
    136                     item.setAttribute("accountkey", accounts[i].key);
    137                 }
    138             }
     90            var accounts = virtualIdentityExtension.getAccountsArray();
     91            for (let acc = 0; acc < accounts.length; acc++) {
     92                let server = accounts[acc].incomingServer;
     93                if (!server)
     94                    continue;
     95               
     96                // check for VirtualIdentity Account
     97                try {   vI.prefroot.getBoolPref("mail.account." + accounts[acc].key + ".vIdentity"); continue; } catch (e) { };
     98                let account = accounts[acc];
     99                let identities = virtualIdentityExtension.getIdentitiesArray(account);
     100
     101                if (identities.length == 0)
     102                    continue;
     103
     104                for (let i = 0; i < identities.length; i++) {
     105                    let identity = identities[i];
     106                    let item = menulist.appendItem(identity.identityName, identity.key,
     107                                                    account.incomingServer.prettyName);
     108                    item.setAttribute("accountkey", account.key);
     109                    if (i == 0) {
     110                        // Mark the first identity as default.
     111                        item.setAttribute("default", "true");
     112                    }
     113                }
     114            }
    139115        },
    140116       
  • modules/plugins/conversations.js

    rf2dbe4 r11bc96d  
    7777    let identity = aComposeSession.params.identity;
    7878   
    79     let server = AccountManager.GetServersForIdentity(identity).QueryElementAt(0, Components.interfaces.nsIMsgIncomingServer);
     79    if (typeof(this._AccountManager.getServersForIdentity) == 'function') { // new style
     80        let server = this._AccountManager.getServersForIdentity(identity).queryElementAt(0, Components.interfaces.nsIMsgIncomingServer);
     81    } else {
     82        let server = this._AccountManager.GetServersForIdentity(identity).QueryElementAt(0, Components.interfaces.nsIMsgIncomingServer);
     83    }
     84
    8085    currentIdentityData = new identityData(identity.email, identity.fullName, identity.key,
    8186                                                                    identity.smtpServerKey, null, server.prettyName, true)
  • modules/vI_account.js

    rf2dbe4 r11bc96d  
    3434Cu.import("resource://v_identity/vI_rdfDatasource.js");
    3535Cu.import("resource://v_identity/vI_prefs.js");
     36Cu.import("resource://v_identity/vI_accountUtils.js");
    3637
    3738let Log = setupLogging("virtualIdentity.account");
     
    212213    cleanupSystem : function() {
    213214        Log.debug("checking for leftover VirtualIdentity accounts ...")
    214         for (var i=0; i < account._AccountManager.accounts.Count(); i++) {
    215             var checkAccount = account._AccountManager.accounts.QueryElementAt(i, Ci.nsIMsgAccount);
     215        var accounts = getAccountsArray();
     216        for (let acc = 0; acc < accounts.length; acc++) {
     217            let checkAccount = accounts[acc];
    216218            if (account.__isVIdentityAccount(checkAccount)) {
    217219                account.__removeAccount(checkAccount);
     
    298300        // by pointing to the same incomingServer stored passwords can be reused
    299301        // the incomingServer has to be replaced before the account is removed, else it get removed ether
    300         var servers = account._AccountManager.GetServersForIdentity(baseIdentity);
    301         try {
    302       var server = servers.QueryElementAt(0, Ci.nsIMsgIncomingServer);
     302        if (typeof(this._AccountManager.getServersForIdentity) == 'function') { // new style
     303            var servers = this._AccountManager.getServersForIdentity(identity);
     304        } else {
     305            var servers = this._AccountManager.GetServersForIdentity(identity);
     306        }
     307    try {
     308      if (typeof(this._AccountManager.getServersForIdentity) == 'function') { // new style
     309          var server = servers.queryElementAt(0, Ci.nsIMsgIncomingServer);
     310      } else {
     311          var server = servers.QueryElementAt(0, Ci.nsIMsgIncomingServer);
     312      }
    303313    } catch (NS_ERROR_FAILURE) {
    304314      Log.debug("createAccount missing incomingServer for baseIdentity, using default one");
  • modules/vI_identityData.js

    rf2dbe4 r11bc96d  
    3131let Log = setupLogging("virtualIdentity.identityData");
    3232Components.utils.import("resource://v_identity/vI_prefs.js");
     33Components.utils.import("resource://v_identity/vI_accountUtils.js");
    3334
    3435Components.utils.import("resource://v_identity/vI_identityDataExtras.js");
     
    147148
    148149        var ignoreFullNameMatchKey = null;
    149         var AccountManager = Components.classes["@mozilla.org/messenger/account-manager;1"]
    150             .getService(Components.interfaces.nsIMsgAccountManager);
    151         for (let i = 0; i < AccountManager.accounts.Count(); i++) {
    152             var account = AccountManager.accounts.QueryElementAt(i, Components.interfaces.nsIMsgAccount);
    153             try { prefroot.getBoolPref("mail.account."+account.key+".vIdentity"); continue; } catch (e) { };
    154             for (let j = 0; j < account.identities.Count(); j++) {
    155                 var identity = account.identities.QueryElementAt(j, Components.interfaces.nsIMsgIdentity);
     150        var accounts = getAccountsArray();
     151        for (let acc = 0; acc < accounts.length; acc++) {
     152            let account = accounts[acc];
     153            try { prefroot.getBoolPref("mail.account."+account.key+".vIdentity"); continue; } catch (e) { };
     154            let identities = getIdentitiesArray(account);
     155            for (let i = 0; i < identities.length; i++) {
     156                let identity = identities[i];
    156157//              Log.debug("comp: fullName.toLowerCase()='" + identity.fullName.toLowerCase() + "' email.toLowerCase()='" + identity.email.toLowerCase() + "' smtp='" + identity.smtpServerKey + "'");
    157158                var email = this.email?this.email:"";               // might be null if no identity is set
     
    360361        if (this._value == null) {
    361362            this._value = "";
    362             if (this._key) {
    363                 var accountManager = Components.classes["@mozilla.org/messenger/account-manager;1"]
    364                     .getService(Components.interfaces.nsIMsgAccountManager);
    365                 for (var i = 0; i < accountManager.accounts.Count(); i++) {
    366                     var account = accountManager.accounts.GetElementAt(i)
    367                         .QueryInterface(Components.interfaces.nsIMsgAccount);
    368                     for (var j = 0; j < account.identities.Count(); j++) {
    369                         var identity = account.identities.GetElementAt(j)
    370                             .QueryInterface(Components.interfaces.nsIMsgIdentity);
    371                         if (this._key == identity.key) {
    372                             this._value = identity.identityName;
    373                             break;
    374                         }
    375                     }
    376                 }
    377                 if (!this._value) this._key = null;
    378             }
     363            // if this worked we are having at least seamonkey 1.17
     364            accounts = getAccountsArray();
     365            for (let acc = 0; acc < accounts.length; acc++) {
     366                let account = accounts[acc];
     367                let identities = getIdentitiesArray(account);
     368                if (identities.length == 0)
     369                    continue;
     370                for (let i = 0; i < identities.length; i++) {
     371                    let identity = identities[i];
     372                    if (this._key == identity.key) {
     373                        this._value = identity.identityName;
     374                        break;
     375                    }
     376                }
     377            }
     378            if (!this._value) this._key = null;
    379379        }
    380380        return this._value;
  • modules/vI_rdfDatasource.js

    rf2dbe4 r11bc96d  
    2828let Log = setupLogging("virtualIdentity.rdfDatasource");
    2929
     30Components.utils.import("resource://v_identity/vI_accountUtils.js");
    3031Components.utils.import("resource://v_identity/vI_prefs.js");
    3132Components.utils.import("resource://v_identity/vI_identityData.js");
     
    396397        var mismatchIDs = [];
    397398       
    398         var AccountManager = Components.classes["@mozilla.org/messenger/account-manager;1"]
    399             .getService(Components.interfaces.nsIMsgAccountManager);
    400399        for (var id in relevantIDs) {
    401400            var found = false;
    402             for (var i = 0; i < AccountManager.accounts.Count(); i++) {
    403                 var account = AccountManager.accounts.GetElementAt(i)
    404                     .QueryInterface(Components.interfaces.nsIMsgAccount);
    405                 for (var j = 0; j < account.identities.Count(); j++) {
    406                     var identity = account.identities.GetElementAt(j).QueryInterface(Components.interfaces.nsIMsgIdentity);
     401            var accounts = getAccountsArray();
     402            for (let acc = 0; acc < accounts.length; acc++) {
     403                let account = accounts[acc];
     404                let identities = getIdentitiesArray(account);
     405                for (let i = 0; i < identities.length; i++) {
     406                    let identity = identities[i];
    407407                    if (id == identity.key) { found = true; break; }
    408408                }
     
    505505    storeAccountInfo : function() {
    506506        Log.debug("storeAccounts");
    507 
    508         var AccountManager = Components.classes["@mozilla.org/messenger/account-manager;1"]
    509             .getService(Components.interfaces.nsIMsgAccountManager);
    510         for (let i = 0; i < AccountManager.accounts.Count(); i++) {
    511             var account = AccountManager.accounts.QueryElementAt(i, Components.interfaces.nsIMsgAccount);
    512             for (let j = 0; j < account.identities.Count(); j++) {
    513                 var identity = account.identities.QueryElementAt(j, Components.interfaces.nsIMsgIdentity);
     507        var accounts = getAccountsArray();
     508        for (let acc = 0; acc < accounts.length; acc++) {
     509            let account = accounts[acc];
     510            let identities = getIdentitiesArray(account);
     511            for (let i = 0; i < identities.length; i++) {
     512                let identity = identities[i];
    514513//                 Log.debug("storeAccounts identity store id " + identity.key);
    515514
     
    10131012
    10141013    _getMatchingIdentity : function(name, email, fullName) {
    1015         var AccountManager = Components.classes["@mozilla.org/messenger/account-manager;1"]
    1016             .getService(Components.interfaces.nsIMsgAccountManager);
    1017         for (let i = 0; i < AccountManager.accounts.Count(); i++) {
    1018             var account = AccountManager.accounts.QueryElementAt(i, Components.interfaces.nsIMsgAccount);
    1019             for (let j = 0; j < account.identities.Count(); j++) {
    1020                 var identity = account.identities.QueryElementAt(j, Components.interfaces.nsIMsgIdentity);
     1014        var accounts = getAccountsArray();
     1015        for (let acc = 0; acc < accounts.length; acc++) {
     1016            let account = accounts[acc];
     1017            let identities = getIdentitiesArray(account);
     1018            for (let i = 0; i < identities.length; i++) {
     1019                let identity = identities[i];
    10211020                if (name == identity.identityName || (fullName == identity.fullName && email == identity.email)) return identity.key;
    10221021            }
Note: See TracChangeset for help on using the changeset viewer.