[Pkg-mozext-commits] [nostalgy] 01/252: Initial revision

David Prévot taffit at moszumanska.debian.org
Tue Jun 14 15:24:36 UTC 2016


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository nostalgy.

commit 0265b0ecd852fe580096e88a5f75ea4e8d0c58b2
Author: frisch <frisch at 56b81dcf-5a2f-0410-9db0-014be2e416ff>
Date:   Mon May 1 19:40:47 2006 +0000

    Initial revision
---
 Makefile                         |   5 +
 build.sh                         | 132 ++++++++++++++++++++++++++
 chrome.manifest                  |   4 +
 chrome.manifest.pack             |   3 +
 config_build.sh                  |   9 ++
 content/overlay.js               | 199 +++++++++++++++++++++++++++++++++++++++
 content/thunderbirdOverlay.xul   |  27 ++++++
 defaults/preferences/nostalgy.js |   2 +
 files                            |   7 ++
 install.rdf                      |  19 ++++
 locale/en-US/nostalgy.dtd        |   4 +
 locale/en-US/nostalgy.properties |   4 +
 readme.txt                       |  21 +++++
 13 files changed, 436 insertions(+)

diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..20cf675
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,5 @@
+pack:
+	./build.sh
+
+clean:
+	rm -f nostalgy.jar nostalgy.xpi
diff --git a/build.sh b/build.sh
new file mode 100755
index 0000000..3b1e96e
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,132 @@
+#!/bin/bash
+# build.sh -- builds JAR and XPI files for mozilla extensions
+#   by Nickolay Ponomarev <asqueella at gmail.com>
+#   (original version based on Nathan Yergler's build script)
+# Most recent version is at <http://kb.mozillazine.org/Bash_build_script>
+
+# This script assumes the following directory structure:
+# ./
+#   chrome.manifest (optional - for newer extensions)
+#   install.rdf
+#   (other files listed in $ROOT_FILES)
+#
+#   content/    |
+#   locale/     |} these can be named arbitrary and listed in $CHROME_PROVIDERS
+#   skin/       |
+#
+#   defaults/   |
+#   components/ |} these must be listed in $ROOT_DIRS in order to be packaged
+#   ...         |
+#
+# It uses a temporary directory ./build when building; don't use that!
+# Script's output is:
+# ./$APP_NAME.xpi
+# ./$APP_NAME.jar  (only if $KEEP_JAR=1)
+# ./files -- the list of packaged files
+#
+# Note: It modifies chrome.manifest when packaging so that it points to 
+#       chrome/$APP_NAME.jar!/*
+
+#
+# default configuration file is ./config_build.sh, unless another file is 
+# specified in command-line. Available config variables:
+APP_NAME=          # short-name, jar and xpi files name. Must be lowercase with no spaces
+CHROME_PROVIDERS=  # which chrome providers we have (space-separated list)
+CLEAN_UP=          # delete the jar / "files" when done?       (1/0)
+ROOT_FILES=        # put these files in root of xpi (space separated list of leaf filenames)
+ROOT_DIRS=         # ...and these directories       (space separated list)
+BEFORE_BUILD=      # run this before building       (bash command)
+AFTER_BUILD=       # ...and this after the build    (bash command)
+
+if [ -z $1 ]; then
+  . ./config_build.sh
+else
+  . $1
+fi
+
+if [ -z $APP_NAME ]; then
+  echo "You need to create build config file first!"
+  echo "Read comments at the beginning of this script for more info."
+  exit;
+fi
+
+ROOT_DIR=`pwd`
+TMP_DIR=build
+
+#uncomment to debug
+#set -x
+
+# remove any left-over files from previous build
+rm -f $APP_NAME.jar $APP_NAME.xpi files
+rm -rf $TMP_DIR
+
+$BEFORE_BUILD
+
+mkdir --parents --verbose $TMP_DIR/chrome
+
+# generate the JAR file, excluding CVS and temporary files
+JAR_FILE=$TMP_DIR/chrome/$APP_NAME.jar
+echo "Generating $JAR_FILE..."
+touch files
+find content -path '*CVS*' -prune -o -type f -print | grep -v \~ >> files
+find locale -path '*CVS*' -prune -o -type f -print | grep -v \~ >> files
+
+
+cat files | zip -0 $JAR_FILE -@
+# The following statement should be used instead if you don't wish to use the JAR file
+#cp --verbose --parents `cat files` $TMP_DIR/chrome
+
+# prepare components and defaults
+echo "Copying various files to $TMP_DIR folder..."
+for DIR in $ROOT_DIRS; do
+  mkdir $TMP_DIR/$DIR
+  FILES="`find $DIR -path '*CVS*' -prune -o -type f -print | grep -v \~`"
+  echo $FILES >> files
+  cp --verbose --parents $FILES $TMP_DIR
+done
+
+# Copy other files to the root of future XPI.
+for ROOT_FILE in $ROOT_FILES install.rdf chrome.manifest; do
+  cp --verbose $ROOT_FILE $TMP_DIR
+  if [ -f $ROOT_FILE ]; then
+    echo $ROOT_FILE >> files
+  fi
+done
+
+rm -f $TMP_DIR/chrome.manifest
+cp chrome.manifest.pack $TMP_DIR/chrome.manifest
+
+cd $TMP_DIR
+
+if [ -f "chrome.manifest" ]; then
+  echo "Preprocessing chrome.manifest..."
+  # You think this is scary?
+  #s/^(content\s+\S*\s+)(\S*\/)$/\1jar:chrome\/$APP_NAME\.jar!\/\2/
+  #s/^(skin|locale)(\s+\S*\s+\S*\s+)(.*\/)$/\1\2jar:chrome\/$APP_NAME\.jar!\/\3/
+  #
+  # Then try this! (Same, but with characters escaped for bash :)
+  sed -i -r "s/^\(content\\s+\\S*\\s+\)\(\\S*\\/\)$/\\1jar:chrome\\/$APP_NAME\\.jar!\\/\\2/" chrome.manifest
+  sed -i -r s/^\(skin\|locale\)\(\\s+\\S*\\s+\\S*\\s+\)\(.*\\/\)$/\\1\\2jar:chrome\\/$APP_NAME\\.jar!\\/\\3/ chrome.manifest
+
+  # (it simply adds jar:chrome/whatever.jar!/ at appropriate positions of chrome.manifest)
+fi
+
+# generate the XPI file
+echo "Generating $APP_NAME.xpi..."
+zip -r ../$APP_NAME.xpi *
+
+cd "$ROOT_DIR"
+
+echo "Cleanup..."
+if [ $CLEAN_UP = 0 ]; then
+  # save the jar file
+  mv $TMP_DIR/chrome/$APP_NAME.jar .
+else
+  rm ./files
+fi
+
+# remove the working files
+rm -rf $TMP_DIR
+echo "Done!"
+
+$AFTER_BUILD
diff --git a/chrome.manifest b/chrome.manifest
new file mode 100644
index 0000000..0c6743e
--- /dev/null
+++ b/chrome.manifest
@@ -0,0 +1,4 @@
+content	nostalgy	content/
+locale	nostalgy	en-US	locale/en-US/
+skin	nostalgy	classic/1.0	skin/
+overlay	chrome://messenger/content/messenger.xul	chrome://nostalgy/content/thunderbirdOverlay.xul
diff --git a/chrome.manifest.pack b/chrome.manifest.pack
new file mode 100644
index 0000000..838e2b5
--- /dev/null
+++ b/chrome.manifest.pack
@@ -0,0 +1,3 @@
+content	nostalgy	jar:chrome/nostalgy.jar!/content/
+locale	nostalgy	en-US	jar:chrome/nostalgy.jar!/locale/en-US/
+overlay	chrome://messenger/content/messenger.xul	chrome://nostalgy/content/thunderbirdOverlay.xul
diff --git a/config_build.sh b/config_build.sh
new file mode 100644
index 0000000..8d40480
--- /dev/null
+++ b/config_build.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+# Build config for build.sh
+APP_NAME=nostalgy
+CHROME_PROVIDERS="content locale"
+CLEAN_UP=0
+ROOT_FILES=
+ROOT_DIRS="defaults"
+BEFORE_BUILD=
+AFTER_BUILD=
diff --git a/content/overlay.js b/content/overlay.js
new file mode 100644
index 0000000..c0653f4
--- /dev/null
+++ b/content/overlay.js
@@ -0,0 +1,199 @@
+function folder_name(folder) {
+  var uri = folder.URI;
+  var server_uri = folder.rootFolder.URI;
+  var server_name = folder.rootFolder.prettyName;
+  return (server_name + uri.substring(server_uri.length, uri.length));
+}
+
+/** Autocompletion of folders **/
+
+function myautocomplete() {
+ this.xresults = 
+  Components.classes[
+   "@mozilla.org/autocomplete/results;1"
+  ].getService(Components.interfaces.nsIAutoCompleteResults);
+}
+
+myautocomplete.prototype.onStartLookup = function(text, results, listener) {
+ var items = this.xresults.items;
+ items.Clear();
+ var ltext = text.toLowerCase();
+
+ var addItem = function (folder) {
+  var fname = folder_name(folder);
+  if (fname.toLowerCase().indexOf(ltext) < 0) { return; }
+  var newitem = 
+   Components.classes[
+    "@mozilla.org/autocomplete/item;1"
+   ].createInstance(Components.interfaces.nsIAutoCompleteItem);
+  newitem.value = fname;
+  items.AppendElement(newitem);
+ };
+ IterateFolders(addItem);
+ this.xresults.searchString = text;
+ this.xresults.defaultItemIndex = 0;
+ listener.onAutoComplete(this.xresults, 1);
+}
+
+myautocomplete.prototype.onStopLookup = function() {}
+myautocomplete.prototype.onAutoComplete = 
+  function(text, results, listener){ NostalgyRunCommand(); }
+
+
+myautocomplete.prototype.QueryInterface = function(iid) {
+ if (iid.equals(Components.interfaces.nsIAutoCompleteSession)) return this;
+ throw Components.results.NS_NOINTERFACE;
+}
+
+/** Driver **/
+
+var default_label = "";
+var focus_saved = null;
+var command = null;
+
+function onNostalgyLoad() {
+ var nostalgyBox = document.getElementById("statusbar-nostalgy");
+ nostalgyBox.addSession(new myautocomplete());
+ var label = document.getElementById("statusbar-nostalgy-label");
+ default_label = label.value;
+ NostalgyHide();
+}
+
+function NostalgyCmd(lab,cmd) {
+ var nostalgyBox = document.getElementById("statusbar-nostalgy");
+ focus_saved = document.commandDispatcher.focusedElement;
+ if (!focus_saved) {
+  focus_saved = document.getElementById("messagepane").contentWindow;
+ }
+ nostalgyBox.value = "";
+ nostalgyBox.hidden = false;
+ setTimeout(function() { nostalgyBox.focus(); }, 50);
+   // For some unknown reason, doing nostalgyBox.focus immediatly
+   // sometimes does not work...
+
+ var label = document.getElementById("statusbar-nostalgy-label");
+ label.value = lab;
+ command = cmd;
+}
+
+function NostalgyHide() {
+ var nostalgyBox = document.getElementById("statusbar-nostalgy");
+ nostalgyBox.hidden = true;
+ if (focus_saved) {
+  focus_saved.focus ();
+  focus_saved = null;
+ }
+ var label = document.getElementById("statusbar-nostalgy-label");
+ label.value = default_label;
+}
+
+function NostalgyRunCommand() {
+  var nostalgyBox = document.getElementById("statusbar-nostalgy");
+  var folder = FindFolder(nostalgyBox.value);
+  if (folder) {
+   command(folder);
+  } else {
+   alert("No folder found");
+  }
+  NostalgyHide();
+}
+
+function NostalgyKeyPress(event) {
+ if (event.keyCode == 13) {
+  NostalgyRunCommand();
+  event.preventDefault();
+  return;
+ }
+ if (event.keyCode == 9) 
+ {
+   NostalgyHide();
+   event.preventDefault();
+ }
+ if (event.keyCode == 27) 
+ {
+   NostalgyHide();
+   event.preventDefault();
+ }
+}
+
+/**  Folder traversal **/
+
+function FindFolder(uri)
+{
+ var ret = null;
+ uri = uri.toLowerCase();
+ try {
+  IterateFolders(function (folder) {
+   if (folder_name(folder).toLowerCase() == uri) { ret = folder; throw(0); }
+  });
+  IterateFolders(function (folder) {
+   if (folder_name(folder).toLowerCase().indexOf(uri) >= 0) { ret = folder; throw(0); }
+  });
+ } catch (ex) { }
+ return ret;
+}
+
+function IterateFolders(f) {
+ var amService = 
+    Components.classes["@mozilla.org/messenger/account-manager;1"]
+              .getService(Components.interfaces.nsIMsgAccountManager);
+ var servers= amService.allServers;
+ for (i = 0; i < servers.Count(); i++) {
+  var server = servers.GetElementAt(i).
+               QueryInterface(Components.interfaces.nsIMsgIncomingServer);
+  var root = server.rootMsgFolder;
+  IterateSubfolders(root,f);
+ }
+}
+
+function IterateSubfolders(folder,f) {
+ if (!folder.isServer) { f(folder); }
+ if (folder.hasSubFolders) {
+  var subfolders = folder.GetSubFolders();
+  var done = false;
+  while (!done) {
+   var subfolder = subfolders.currentItem().
+                   QueryInterface(Components.interfaces.nsIMsgFolder);
+   IterateSubfolders(subfolder,f);
+   try {subfolders.next();}
+   catch(e) {done = true;}
+  }
+ }
+}  
+
+/**  Commands **/
+
+function ShowFolder(folder) {
+ SelectFolder(folder.URI);
+}
+
+function MoveToFolder(folder) {
+ gDBView.doCommandWithFolder(nsMsgViewCommandType.moveMessages,folder);
+ SetNextMessageAfterDelete();
+}
+
+function CopyToFolder(folder) {
+ gDBView.doCommandWithFolder(nsMsgViewCommandType.copyMessages,folder);
+}
+
+
+/** Marking **/
+
+function NostalgyMark() {
+ var tree = window.parent.GetThreadTree();			  
+// var dbview = tree.builderView;
+// alert("Focus = " + tree.currentIndex);
+ var sel = tree.view.selection;
+ //alert("Sel = " + sel);
+ // sel.toggleSelect(1);
+// var i = sel.currentIndex;
+// sel.rangedSelect(i,i,true);
+ sel.currentIndex++;
+// var i = sel.currentIndex;
+// sel.rangedSelect(i,i,true);
+ tree.treeBoxObject.ensureRowIsVisible(sel.currentIndex);
+ treeView.selectionChanged();
+}
+
+
+window.addEventListener("load", onNostalgyLoad, false);
diff --git a/content/thunderbirdOverlay.xul b/content/thunderbirdOverlay.xul
new file mode 100644
index 0000000..a794560
--- /dev/null
+++ b/content/thunderbirdOverlay.xul
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE overlay SYSTEM "chrome://nostalgy/locale/nostalgy.dtd">
+<overlay id="nostalgy-overlay"
+         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+  <script src="overlay.js"/>
+
+ <keyset id="mailKeys">
+  <key key="G" oncommand="NostalgyCmd('&nostalgy.go-memo;', ShowFolder);"/>
+  <key key="S" oncommand="NostalgyCmd('&nostalgy.move-memo;', MoveToFolder);"/>
+  <key key="C" oncommand="NostalgyCmd('&nostalgy.copy-memo;', CopyToFolder);"/>
+  <key key="X" oncommand="NostalgyMark();"/>
+ </keyset>
+
+
+ <textbox id="nostalgy-suggest" style="width: 300px;"/>
+      
+ <statusbar id="status-bar">
+  <label id="statusbar-nostalgy-label" 
+         position="1"
+         value="&nostalgy.memo;"/>
+  <textbox id="statusbar-nostalgy" type="autocomplete" tabScrolling="true"
+           position="2"
+	   maxlength="160" flex="3"
+	   maxrows="15" crop="end"
+           onkeypress="NostalgyKeyPress(event);" style="width: 300px;"/>
+ </statusbar>
+</overlay>
diff --git a/defaults/preferences/nostalgy.js b/defaults/preferences/nostalgy.js
new file mode 100644
index 0000000..378d88d
--- /dev/null
+++ b/defaults/preferences/nostalgy.js
@@ -0,0 +1,2 @@
+// See http://kb.mozillazine.org/Localize_extension_descriptions
+pref("extensions.nostalgy at alain.frisch.description", "chrome://nostalgy/locale/nostalgy.properties");
diff --git a/files b/files
new file mode 100644
index 0000000..37c80e1
--- /dev/null
+++ b/files
@@ -0,0 +1,7 @@
+content/thunderbirdOverlay.xul
+content/overlay.js
+locale/en-US/nostalgy.dtd
+locale/en-US/nostalgy.properties
+defaults/preferences/nostalgy.js
+install.rdf
+chrome.manifest
diff --git a/install.rdf b/install.rdf
new file mode 100644
index 0000000..3063cdf
--- /dev/null
+++ b/install.rdf
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
+ xmlns:em="http://www.mozilla.org/2004/em-rdf#">
+  <Description about="urn:mozilla:install-manifest">
+    <em:id>nostalgy at alain.frisch</em:id>
+    <em:name>Nostalgy</em:name>
+    <em:version>0.1.2</em:version>
+    <em:creator>Alain Frisch</em:creator>
+    <em:description>Adds shortcuts to change folder, move message, with folder completion</em:description>
+    <em:homepageURL>http://www.eleves.ens.fr/home/frisch/soft_mozilla.html</em:homepageURL>
+    <em:targetApplication>
+      <Description>
+        <em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id> <!-- thunderbird -->
+        <em:minVersion>1.5</em:minVersion>
+        <em:maxVersion>1.5.0.*</em:maxVersion>
+      </Description>
+    </em:targetApplication>
+  </Description>
+</RDF>
diff --git a/locale/en-US/nostalgy.dtd b/locale/en-US/nostalgy.dtd
new file mode 100644
index 0000000..39919e8
--- /dev/null
+++ b/locale/en-US/nostalgy.dtd
@@ -0,0 +1,4 @@
+<!ENTITY nostalgy.move-memo     "Move messages to:">
+<!ENTITY nostalgy.copy-memo     "Copy messages to:">
+<!ENTITY nostalgy.go-memo       "Go to folder:">
+<!ENTITY nostalgy.memo          "(G)o (S)ave (C)opy">
diff --git a/locale/en-US/nostalgy.properties b/locale/en-US/nostalgy.properties
new file mode 100644
index 0000000..2d594ba
--- /dev/null
+++ b/locale/en-US/nostalgy.properties
@@ -0,0 +1,4 @@
+helloMessage=Hello World!
+helloMessageTitle=Hello
+prefMessage=Int Pref Value: %d
+extensions.nostalgy.description=Adds shortcuts to change folder, move message, with folder completion
diff --git a/readme.txt b/readme.txt
new file mode 100644
index 0000000..9419d71
--- /dev/null
+++ b/readme.txt
@@ -0,0 +1,21 @@
+This extension was generated by the Extension Wizard at
+http://ted.mielczarek.org/code/mozilla/extensionwiz/ .
+This extension is compatible only with Firefox 1.5 and
+above.  Most of the files in this package are based on
+the 'helloworld' extension from the Mozillazine Knowledge Base.
+
+You can build an XPI for installation by running the
+build.sh script located in this folder.  For development
+you should do the following:
+  1. Unzip the entire contents of this package to somewhere,
+	       e.g, c:\dev or /home/user/dev
+  2. Put the full path to the folder (e.g. c:\dev\nostalgy on
+     Windows, /home/user/dev/nostalgy on Linux) in a file named
+     nostalgy at alain.frisch and copy that file to
+     [your profile folder]\extensions\
+  3. Restart Firefox.
+
+For more information, see the Mozillazine Knowledge Base:
+http://kb.mozillazine.org/Getting_started_with_extension_development
+
+-Ted Mielczarek <ted.mielczarek at gmail.com>

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/nostalgy.git



More information about the Pkg-mozext-commits mailing list