1
/* ***** BEGIN LICENSE BLOCK *****
2
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
4
* The contents of this file are subject to the Mozilla Public
5
* License Version 1.1 (the "MPL"); you may not use this file
6
* except in compliance with the MPL. You may obtain a copy of
7
* the MPL at http://www.mozilla.org/MPL/
9
* Software distributed under the MPL is distributed on an "AS
10
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
11
* implied. See the MPL for the specific language governing
12
* rights and limitations under the MPL.
14
* The Original Code is Enigmail.
16
* The Initial Developer of the Original Code is Patrick Brunschwig.
17
* Portions created by Patrick Brunschwig <patrick@mozilla-enigmail.org> are
18
* Copyright (C) 2010 Patrick Brunschwig. All Rights Reserved.
22
* Alternatively, the contents of this file may be used under the terms of
23
* either the GNU General Public License Version 2 or later (the "GPL"), or
24
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
25
* in which case the provisions of the GPL or the LGPL are applicable instead
26
* of those above. If you wish to allow use of your version of this file only
27
* under the terms of either the GPL or the LGPL, and not to allow others to
28
* use your version of this file under the terms of the MPL, indicate your
29
* decision by deleting the provisions above and replace them with the notice
30
* and other provisions required by the GPL or the LGPL. If you do not delete
31
* the provisions above, a recipient may use your version of this file under
32
* the terms of any one of the MPL, the GPL or the LGPL.
33
* ***** END LICENSE BLOCK ***** */
35
if (! Enigmail) var Enigmail = {};
37
Enigmail.columnHandler = {
38
nsIEnigmail: Components.interfaces.nsIEnigmail,
39
getCellText: function(row, col) {
42
getSortStringForRow: function(hdr) { return ""; },
43
isString: function() { return false; },
44
getCellProperties: function(row, col, props){
45
let key = gDBView.getKeyAt(row);
46
let hdr = gDBView.db.GetMsgHdrForKey(key);
47
let statusFlags = hdr.getUint32Property("enigmail");
49
if ((statusFlags & this.nsIEnigmail.GOOD_SIGNATURE) &&
50
(statusFlags & this.nsIEnigmail.DECRYPTION_OKAY))
51
newProp = "enigSignedEncrypted";
52
else if (statusFlags & this.nsIEnigmail.GOOD_SIGNATURE)
53
newProp = "enigSigned";
54
else if (statusFlags & this.nsIEnigmail.DECRYPTION_OKAY)
55
newProp = "enigEncrypted";
58
let atomService = Components.classes["@mozilla.org/atom-service;1"].
59
getService(Components.interfaces.nsIAtomService);
60
var atom = atomService.getAtom(newProp);
61
if (typeof(props) == "undefined") {
67
props.AppendElement(atom);
71
getRowProperties: function(row, props){},
72
getImageSrc: function(row, col) {},
73
getSortLongForRow: function(hdr) {
74
var statusFlags = hdr.getUint32Property("enigmail");
75
if ((statusFlags & this.nsIEnigmail.GOOD_SIGNATURE) &&
76
(statusFlags & this.nsIEnigmail.DECRYPTION_OKAY))
78
else if (statusFlags & this.nsIEnigmail.GOOD_SIGNATURE)
80
else if (statusFlags & this.nsIEnigmail.DECRYPTION_OKAY)
89
// Components.interfaces.nsIObserver
90
observe: function(aMsgFolder, aTopic, aData)
92
gDBView.addColumnHandler("enigmailStatusCol", Enigmail.columnHandler);
97
window.addEventListener("load",
99
var ObserverService = Components.classes["@mozilla.org/observer-service;1"].
100
getService(Components.interfaces.nsIObserverService);
101
ObserverService.addObserver(Enigmail.columnHandler.createDbObserver, "MsgCreateDBView", false);