~ubuntu-branches/ubuntu/quantal/enigmail/quantal-security

« back to all changes in this revision

Viewing changes to extensions/enigmail/ui/content/enigmailConsole.js

  • Committer: Package Import Robot
  • Author(s): Chris Coulson
  • Date: 2013-09-13 16:02:15 UTC
  • mfrom: (0.12.16)
  • Revision ID: package-import@ubuntu.com-20130913160215-u3g8nmwa0pdwagwc
Tags: 2:1.5.2-0ubuntu0.12.10.1
* New upstream release v1.5.2 for Thunderbird 24

* Build enigmail using a stripped down Thunderbird 17 build system, as it's
  now quite difficult to build the way we were doing previously, with the
  latest Firefox build system
* Add debian/patches/no_libxpcom.patch - Don't link against libxpcom, as it
  doesn't exist anymore (but exists in the build system)
* Add debian/patches/use_sdk.patch - Use the SDK version of xpt.py and
  friends
* Drop debian/patches/ipc-pipe_rename.diff (not needed anymore)
* Drop debian/patches/makefile_depth.diff (not needed anymore)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* ***** BEGIN LICENSE BLOCK *****
2
 
 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
3
 
 *
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/
8
 
 *
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.
13
 
 *
14
 
 * The Original Code is Enigmail.
15
 
 *
16
 
 * The Initial Developer of the Original Code is Ramalingam Saravanan.
17
 
 * Portions created by Ramalingam Saravanan <svn@xmlterm.org> are
18
 
 * Copyright (C) 2001 Ramalingam Saravanan. All Rights Reserved.
19
 
 *
20
 
 * Contributor(s):
21
 
 *
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 ***** */
34
 
 
35
 
Components.utils.import("resource://enigmail/enigmailCommon.jsm");
36
 
Components.utils.import("resource://enigmail/pipeConsole.jsm");
37
 
 
38
 
const   Ec = EnigmailCommon;
39
 
 
40
 
function consoleLoad() {
41
 
  Ec.DEBUG_LOG("enigmailConsole.js: consoleLoad\n");
42
 
 
43
 
  top.controllers.insertControllerAt(0, CommandController);
44
 
 
45
 
  Ec.getService(window);
46
 
 
47
 
  // Refresh console every 2 seconds
48
 
  window.consoleIntervalId = window.setInterval(refreshConsole, 2000);
49
 
  updateData();
50
 
}
51
 
 
52
 
function consoleUnload() {
53
 
  Ec.DEBUG_LOG("enigmailConsole.js: consoleUnload\n");
54
 
 
55
 
  // Cancel console refresh
56
 
  if (window.consoleIntervalId) {
57
 
    window.clearInterval(window.consoleIntervalId);
58
 
    window.consoleIntervalId = null;
59
 
  }
60
 
}
61
 
 
62
 
window.onload = consoleLoad;
63
 
window.onunload = consoleUnload;
64
 
 
65
 
function refreshConsole() {
66
 
  //Ec.DEBUG_LOG("enigmailConsole.js: refreshConsole():\n");
67
 
 
68
 
  if (EnigmailConsole.hasNewData()) {
69
 
    Ec.DEBUG_LOG("enigmailConsole.js: refreshConsole(): hasNewData\n");
70
 
 
71
 
    updateData();
72
 
  }
73
 
 
74
 
  return false;
75
 
}
76
 
 
77
 
function updateData() {
78
 
  //Ec.DEBUG_LOG("enigmailConsole.js: updateData():\n");
79
 
 
80
 
    var contentFrame = Ec.getFrame(window, "contentFrame");
81
 
    if (!contentFrame)
82
 
      return;
83
 
 
84
 
    var consoleElement = contentFrame.document.getElementById('console');
85
 
 
86
 
    consoleElement.firstChild.data = Ec.convertToUnicode(EnigmailConsole.getData(), "utf-8");
87
 
 
88
 
    if (!contentFrame.mouseDownState)
89
 
       contentFrame.scrollTo(0,9999);
90
 
}
91
 
 
92
 
 
93
 
function enigmailConsoleCopy()
94
 
{
95
 
  var selText = getSelectionStr();
96
 
 
97
 
  Ec.DEBUG_LOG("enigmailConsole.js: enigmailConsoleCopy: selText='"+selText+"'\n");
98
 
 
99
 
  if (selText) {
100
 
    var clipHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"].createInstance(Components.interfaces.nsIClipboardHelper);
101
 
 
102
 
    clipHelper.copyString(selText);
103
 
  }
104
 
 
105
 
  return true;
106
 
}
107
 
 
108
 
function getSelectionStr()
109
 
{
110
 
  try {
111
 
    var contentFrame = Ec.getFrame(window, "contentFrame");
112
 
 
113
 
    var sel = contentFrame.getSelection();
114
 
    return sel.toString();
115
 
 
116
 
  } catch (ex) {
117
 
    return "";
118
 
  }
119
 
}
120
 
 
121
 
function isItemSelected()
122
 
{
123
 
  Ec.DEBUG_LOG("enigmailConsole.js: isItemSelected\n");
124
 
  return getSelectionStr() != "";
125
 
}
126
 
 
127
 
function UpdateCopyMenu()
128
 
{
129
 
  Ec.DEBUG_LOG("enigmailConsole.js: UpdateCopyMenu\n");
130
 
  goUpdateCommand("cmd_copy");
131
 
}
132
 
 
133
 
var CommandController =
134
 
{
135
 
  isCommandEnabled: function (aCommand)
136
 
  {
137
 
    switch (aCommand) {
138
 
      case "cmd_copy":
139
 
        return isItemSelected();
140
 
      default:
141
 
        return false;
142
 
    }
143
 
  },
144
 
 
145
 
  supportsCommand: function (aCommand)
146
 
  {
147
 
    switch (aCommand) {
148
 
      case "cmd_copy":
149
 
        return true;
150
 
      default:
151
 
        return false;
152
 
    }
153
 
  },
154
 
 
155
 
  doCommand: function (aCommand)
156
 
  {
157
 
    switch (aCommand) {
158
 
      case "cmd_copy":
159
 
        enigmailConsoleCopy();
160
 
        break;
161
 
      default:
162
 
        break;
163
 
    }
164
 
  },
165
 
 
166
 
  onEvent: function (aEvent)
167
 
  {
168
 
  }
169
 
};