[Pkg-mozext-commits] [nostalgy] 09/15: Modernize code and prepare for TB 26.0 (thanks to Jens Hatlak).

Guido Guenther agx at moszumanska.debian.org
Mon Jul 14 11:15:43 UTC 2014


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

agx pushed a commit to annotated tag debian/0.2.32-1
in repository nostalgy.

commit 69c3eb1871e33c3936e6fe5f94fd37a0f13704ec
Author: alain.frisch <alain.frisch at 56b81dcf-5a2f-0410-9db0-014be2e416ff>
Date:   Mon Dec 16 14:04:09 2013 +0000

    Modernize code and prepare for TB 26.0 (thanks to Jens Hatlak).
    
    git-svn-id: svn://frisch.fr/nostalgy/trunk@228 56b81dcf-5a2f-0410-9db0-014be2e416ff
---
 CHANGES                             |  3 ++
 chrome.manifest                     |  2 ++
 chrome.manifest.pack                |  2 ++
 components/nostalgy-autocomplete.js | 69 +++++++++++++++++++++++++++++++++++++
 config_build.sh                     |  2 +-
 content/edit_prefs.xul              |  1 +
 content/edit_rule.xul               |  2 ++
 content/folders.js                  | 49 +++++++-------------------
 content/messageOverlay.xul          |  1 +
 content/thunderbirdOverlay.xul      |  1 +
 files                               |  1 +
 install.rdf                         |  2 +-
 12 files changed, 97 insertions(+), 38 deletions(-)

diff --git a/CHANGES b/CHANGES
index 6d2358b..cae2ebc 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+0.2.32
+  - Modernize code and prepare for TB 26.0 (thanks to Jens Hatlak)
+
 0.2.31
   - Fix for TB >= 20 (thanks to Aaron Solochek)
   - Add hot keys for "Move up/down" in the rule edition popup (thanks to Michael vann Rooyen)
diff --git a/chrome.manifest b/chrome.manifest
index ba9a14c..435093a 100644
--- a/chrome.manifest
+++ b/chrome.manifest
@@ -3,3 +3,5 @@ locale	nostalgy	en-US	locale/en-US/
 overlay	chrome://messenger/content/messenger.xul	chrome://nostalgy/content/thunderbirdOverlay.xul
 overlay	chrome://messenger/content/messageWindow.xul	chrome://nostalgy/content/messageOverlay.xul
 overlay	chrome://messenger/content/messengercompose/messengercompose.xul	chrome://nostalgy/content/composerOverlay.xul
+component {0368fb30-62f8-11e3-949a-0800200c9a66} components/nostalgy-autocomplete.js
+contract @mozilla.org/autocomplete/search;1?name=nostalgy-autocomplete {0368fb30-62f8-11e3-949a-0800200c9a66}
diff --git a/chrome.manifest.pack b/chrome.manifest.pack
index acbab62..e9b1102 100644
--- a/chrome.manifest.pack
+++ b/chrome.manifest.pack
@@ -3,3 +3,5 @@ locale	nostalgy	en-US	jar:chrome/nostalgy.jar!/locale/en-US/
 overlay	chrome://messenger/content/messenger.xul	chrome://nostalgy/content/thunderbirdOverlay.xul
 overlay	chrome://messenger/content/messageWindow.xul	chrome://nostalgy/content/messageOverlay.xul
 overlay	chrome://messenger/content/messengercompose/messengercompose.xul	chrome://nostalgy/content/composerOverlay.xul
+component {0368fb30-62f8-11e3-949a-0800200c9a66} components/nostalgy-autocomplete.js
+contract @mozilla.org/autocomplete/search;1?name=nostalgy-autocomplete {0368fb30-62f8-11e3-949a-0800200c9a66}
diff --git a/components/nostalgy-autocomplete.js b/components/nostalgy-autocomplete.js
new file mode 100644
index 0000000..eb2b282
--- /dev/null
+++ b/components/nostalgy-autocomplete.js
@@ -0,0 +1,69 @@
+const Cc = Components.classes;
+const Ci = Components.interfaces;
+const Cu = Components.utils;
+
+Cu.import('resource://gre/modules/XPCOMUtils.jsm');
+
+const CLASS_ID = Components.ID('0368fb30-62f8-11e3-949a-0800200c9a66');
+const CLASS_NAME = "Nostalgy Folder Autocomplete";
+const CONTRACT_ID = '@mozilla.org/autocomplete/search;1?name=nostalgy-autocomplete';
+
+
+// nsIAutoCompleteResult implementation
+
+function NostalgyAutoCompleteResult(searchString, results) {
+  const ACR = Ci.nsIAutoCompleteResult;
+  this._searchResult = results.length > 0 ? ACR.RESULT_SUCCESS : ACR.NOMATCH;
+  this._searchString = searchString;
+  this._results = results;
+}
+
+NostalgyAutoCompleteResult.prototype = {
+  _searchString: "",
+  _searchResult: 0,
+  _results: [],
+
+  get searchString() { return this._searchString; },
+  get searchResult() { return this._searchResult; }, 
+  get defaultIndex() { return 0; },
+  get errorDescription() { return ""; },
+  get matchCount() { return this._results.length; },
+  getValueAt: function(index) { return this._results[index]; },
+  getCommentAt: function(index) { return ""; },
+  getStyleAt: function(index) { return null; },
+  getImageAt : function (index) { return ""; },
+  removeValueAt: function(index, removeFromDb) { this._results.splice(index, 1); },
+  getLabelAt: function(index) { return this._results[index]; },
+  QueryInterface: XPCOMUtils.generateQI([ Ci.nsIAutoCompleteResult ])
+};
+
+
+// nsIAutoCompleteSearch implementation
+
+function NostalgyAutoCompleteSearch() {
+  this.wrappedJSObject = this;
+}
+
+NostalgyAutoCompleteSearch.prototype = {
+  classID: CLASS_ID,
+  classDescription : CLASS_NAME,
+  contractID : CONTRACT_ID,
+  _f: null,
+
+  attachGetValuesFunction: function(f) { this._f = f; },
+
+  startSearch: function(searchString, searchParam, previousResult, listener) {
+    var searchResults = this._f(searchString);
+    var result = new NostalgyAutoCompleteResult(searchString, searchResults);
+    listener.onSearchResult(this, result);
+  },
+  
+  stopSearch: function() {},
+
+  QueryInterface: XPCOMUtils.generateQI([ Ci.nsIAutoCompleteSearch ])
+};
+
+
+// XPCOM component creation
+
+const NSGetFactory = XPCOMUtils.generateNSGetFactory([ NostalgyAutoCompleteSearch ]);
diff --git a/config_build.sh b/config_build.sh
index 8d40480..449871e 100644
--- a/config_build.sh
+++ b/config_build.sh
@@ -4,6 +4,6 @@ APP_NAME=nostalgy
 CHROME_PROVIDERS="content locale"
 CLEAN_UP=0
 ROOT_FILES=
-ROOT_DIRS="defaults"
+ROOT_DIRS="defaults components"
 BEFORE_BUILD=
 AFTER_BUILD=
diff --git a/content/edit_prefs.xul b/content/edit_prefs.xul
index 3618269..ef17467 100644
--- a/content/edit_prefs.xul
+++ b/content/edit_prefs.xul
@@ -111,6 +111,7 @@ shortcuts to move/copy the message to this folder.</label>
   <radio value="SaveGo" label="Save+Go"/>
   </radiogroup>
   <textbox style="width:600px" type="autocomplete" id="folderselect"
+           autocompletesearch="nostalgy-autocomplete"
            nostalgyfolderbox="NostalgySelectFolder();"/>
   <button label="Create"  oncommand="NostalgySelectFolder();"/>
   </hbox>
diff --git a/content/edit_rule.xul b/content/edit_rule.xul
index d178e93..2820efc 100644
--- a/content/edit_rule.xul
+++ b/content/edit_rule.xul
@@ -42,6 +42,7 @@
       <label value="when message is under folder"/>
       <textbox type="autocomplete" id="underselect"
                normaltab="true"
+               autocompletesearch="nostalgy-autocomplete"
                nostalgyfolderbox="NostalgyChooseUnder();"/>
     </row>
 
@@ -49,6 +50,7 @@
       <label value="then save to"/>
       <textbox type="autocomplete" id="folderselect"
              normaltab="true"
+             autocompletesearch="nostalgy-autocomplete"
              nostalgyfolderbox="NostalgyChooseFolder();"/>
     </row>
   </rows>
diff --git a/content/folders.js b/content/folders.js
index 721b3b6..d49f466 100644
--- a/content/folders.js
+++ b/content/folders.js
@@ -131,31 +131,15 @@ function NostalgyFolderMatch(f,reg) {
   }
 }
 
-function NostalgyAutocomplete(box) {
- this.box = box;
- this.xresults =
-  Components.classes[
-   "@mozilla.org/autocomplete/results;1"
-  ].getService(Components.interfaces.nsIAutoCompleteResults);
-}
-
-NostalgyAutocomplete.prototype.onStartLookup =
-  function(text, results, listener) {
-    var items = this.xresults.items;
+function NostalgyGetAutoCompleteValuesFunction(box) {
+  return function NostalgyGetAutoCompleteValues(text) {
+    var values = [];
     var nb = 0;
-    items.Clear();
 
     var add_folder = function (fname) {
-      var newitem =
-        Components.classes[
-          "@mozilla.org/autocomplete/item;1"
-        ].createInstance(Components.interfaces.nsIAutoCompleteItem);
-      newitem.value = NostalgyCrop(fname);
-
-      items.AppendElement(newitem);
+      values.push(NostalgyCrop(fname));
       nb++;
     };
-
     var f = function (folder) { add_folder(NostalgyFolderName(folder)); };
 
     if (text == "") {
@@ -188,27 +172,15 @@ NostalgyAutocomplete.prototype.onStartLookup =
       nostalgy_search_folder_options.do_tags =
         nostalgy_completion_options.always_include_tags ||
         (text.substr(0,1) == ":");
-      NostalgyIterateMatches(text, this.box.shell_completion, f);
+      NostalgyIterateMatches(text, box.shell_completion, f);
       if (nb == 0 && !nostalgy_search_folder_options.do_tags) {
         nostalgy_search_folder_options.do_tags = true;
-        NostalgyIterateMatches(text, this.box.shell_completion, f);
+        NostalgyIterateMatches(text, box.shell_completion, f);
       }
     }
 
-    this.xresults.searchString = text;
-    this.xresults.defaultItemIndex = 0;
-    listener.onAutoComplete(this.xresults, 1);
+    return values;
   };
-
-NostalgyAutocomplete.prototype.onStopLookup =
-  function() {  };
-NostalgyAutocomplete.prototype.onAutoComplete =
-  function(text, results, listener){ };
-
-NostalgyAutocomplete.prototype.QueryInterface =
-function(iid) {
- if (iid.equals(Components.interfaces.nsIAutoCompleteSession)) return this;
- throw Components.results.NS_NOINTERFACE;
 }
 
 function NostalgyStartLookup() {
@@ -310,7 +282,12 @@ function NostalgyFolderSelectionBox(box) {
  }
 
  box.shell_completion = false;
- box.addSession(new NostalgyAutocomplete(box));
+ var nac =
+   Components
+     .classes["@mozilla.org/autocomplete/search;1?name=nostalgy-autocomplete"]
+     .getService()
+     .wrappedJSObject;
+ nac.attachGetValuesFunction(NostalgyGetAutoCompleteValuesFunction(box));
  box.processInput = NostalgyProcessInput;
  box.processKeyPress = NostalgyProcessKeyPress;
  box.startLookup = NostalgyStartLookup;
diff --git a/content/messageOverlay.xul b/content/messageOverlay.xul
index 666270a..2606588 100644
--- a/content/messageOverlay.xul
+++ b/content/messageOverlay.xul
@@ -26,6 +26,7 @@
   <statusbarpanel flex="1">
    <label id="nostalgy-command-label"/>
    <textbox id="nostalgy-folderbox" type="autocomplete" tabScrolling="true"
+	   autocompletesearch="nostalgy-autocomplete"
 	   ontextentered="NostalgyRunCommand();"
 	   ontextcommand="NostalgyRunCommand();"
 	   ontextreverted="NostalgyHide(true);"
diff --git a/content/thunderbirdOverlay.xul b/content/thunderbirdOverlay.xul
index d668c4c..b911fc2 100644
--- a/content/thunderbirdOverlay.xul
+++ b/content/thunderbirdOverlay.xul
@@ -39,6 +39,7 @@
   <statusbarpanel flex="1">
    <label id="nostalgy-command-label"/>
    <textbox id="nostalgy-folderbox" type="autocomplete" tabScrolling="true"
+	   autocompletesearch="nostalgy-autocomplete"
 	   ontextentered="NostalgyRunCommand();"
 	   ontextcommand="NostalgyRunCommand();"
 	   ontextreverted="NostalgyHide(true);"
diff --git a/files b/files
index 7737634..63b8aab 100644
--- a/files
+++ b/files
@@ -19,5 +19,6 @@ content/about.xhtml
 locale/en-US/nostalgy.properties
 locale/en-US/nostalgy.dtd
 defaults/preferences/nostalgy.js
+components/nostalgy-autocomplete.js
 install.rdf
 chrome.manifest
diff --git a/install.rdf b/install.rdf
index d254814..a2104fe 100644
--- a/install.rdf
+++ b/install.rdf
@@ -5,7 +5,7 @@
   <RDF:Description RDF:about="urn:mozilla:install-manifest"
                    em:id="nostalgy at alain.frisch"
                    em:name="Nostalgy"
-                   em:version="0.2.31"
+                   em:version="0.2.34"
                    em:creator="Alain Frisch"
                    em:description="Adds shortcuts to change folder, move message, with folder completion"
                    em:homepageURL="http://alain.frisch.fr/soft_mozilla.html"

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