[Pkg-mozext-commits] [nostalgy] 98/252: *** empty log message ***
David Prévot
taffit at moszumanska.debian.org
Tue Jun 14 15:24:45 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 f6caa938b516dd0c7cbba0830618479d986afc0c
Author: frisch <frisch at 56b81dcf-5a2f-0410-9db0-014be2e416ff>
Date: Wed May 30 15:29:18 2007 +0000
*** empty log message ***
---
content/edit_prefs.js | 13 +++-----
content/edit_prefs.xul | 1 +
content/edit_rule.js | 11 +------
content/edit_rule.xul | 1 +
content/folders.js | 73 +++++++++++++++++++++++++++++++++---------
content/messageOverlay.xul | 1 +
content/misc.js | 28 ++++++++++++++++
content/nostalgy.js | 22 ++++++-------
content/thunderbirdOverlay.xul | 1 +
files | 1 +
10 files changed, 106 insertions(+), 46 deletions(-)
diff --git a/content/edit_prefs.js b/content/edit_prefs.js
index 4833726..d343db2 100644
--- a/content/edit_prefs.js
+++ b/content/edit_prefs.js
@@ -1,5 +1,3 @@
-function gEBI(s) { return document.getElementById(s); }
-
var gList = null;
var wait_key = null;
@@ -23,7 +21,7 @@ var nost_js_quote = {
String.prototype.quote = function () {
var x = this;
if (/["\x00-\x20\\"]/.test(this)) {
- x = this.replace(/(["\x00-\x20\\"])/g, function(a, b) {
+ x = this.replace(/(["\x00-\x20\\>"])/g, function(a, b) {
var c = nost_js_quote[b];
if (c) { return c; }
c = b.charCodeAt();
@@ -217,8 +215,7 @@ function DoMoveDown(idx1,idx2) {
}
function onAcceptChanges() {
- var prefs = Components.classes["@mozilla.org/preferences-service;1"].
- getService(Components.interfaces.nsIPrefBranch);
+ var prefs = NostalgyPrefService();
prefs.setCharPref("extensions.nostalgy.rules", MkPrefStr());
for (var n in nostalgy_completion_options)
@@ -311,11 +308,9 @@ function onNostalgyLoad() {
gList = gEBI("rules");
folder_select = gEBI("folderselect");
- var prefs = Components.classes["@mozilla.org/preferences-service;1"].
- getService(Components.interfaces.nsIPrefBranch);
-
+ var prefs = NostalgyPrefService();
try {
- var r = eval(prefs.getCharPref("extensions.nostalgy.rules"));
+ var r = NostalgyJSONEval(prefs.getCharPref("extensions.nostalgy.rules"));
var i;
for (i = 0; i < r.length; i++) { CreateItem(r[i]); }
} catch (ex) { }
diff --git a/content/edit_prefs.xul b/content/edit_prefs.xul
index 9f3c32b..160bfb7 100644
--- a/content/edit_prefs.xul
+++ b/content/edit_prefs.xul
@@ -11,6 +11,7 @@
buttonlabelextra2="Nostalgy usage directions..."
title="Nostalgy Preferences">
+ <script src="misc.js"/>
<script src="folders.js"/>
<script src="nostalgy_keys.js"/>
<script src="edit_prefs.js"/>
diff --git a/content/edit_rule.js b/content/edit_rule.js
index b462b4d..dedb398 100644
--- a/content/edit_rule.js
+++ b/content/edit_rule.js
@@ -1,5 +1,3 @@
-function gEBI(id) { return (document.getElementById(id)); }
-
var gFolderSelect = null;
var gContainsSelect = null;
var gUnderSelect = null;
@@ -25,13 +23,6 @@ function onNostalgyLoad() {
}
function onAcceptChanges() {
-/*
- var f = document.commandDispatcher.focusedElement;
- while (f && f.tagName != "textbox") f = f.parentNode;
- if (f && f.hasAttribute("nostalgyfolderbox"))
- eval(f.getAttribute("nostalgyfolderbox"));
-*/
-
var folder = FindFolderExact(gFolderSelect.value);
if (!folder) {
alert("Please choose an existing folder");
@@ -78,4 +69,4 @@ function OnKeyPressTxt(ev) {
}
}
-window.addEventListener("load", onNostalgyLoad, false);
\ No newline at end of file
+window.addEventListener("load", onNostalgyLoad, false);
diff --git a/content/edit_rule.xul b/content/edit_rule.xul
index 047e0f5..a8f68f4 100644
--- a/content/edit_rule.xul
+++ b/content/edit_rule.xul
@@ -10,6 +10,7 @@
ondialogaccept="return onAcceptChanges();"
>
+ <script src="misc.js"/>
<script src="folders.js"/>
<script src="edit_rule.js"/>
diff --git a/content/folders.js b/content/folders.js
index 29e4d11..30ffa87 100644
--- a/content/folders.js
+++ b/content/folders.js
@@ -7,13 +7,47 @@ var nostalgy_completion_options = {
always_include_tags : false
};
-function NostalgyDebug(aText)
-{
- var csClass = Components.classes['@mozilla.org/consoleservice;1'];
- var cs = csClass.getService(Components.interfaces.nsIConsoleService);
- cs.logStringMessage(aText);
+
+
+/** The set of "recent folder" for Nostalgy **/
+
+var nostalgy_recent_folders = [ ];
+var nostalgy_recent_folders_max_size = 5;
+// TODO: make that customizable
+
+function NostalgySaveRecentFolder(recent) {
+ NostalgyPrefService().
+ setCharPref("extensions.nostalgy.recent_folders",
+ recent.toSource());
+}
+
+function NostalgyInstallRecentFolders() {
+ var s = "";
+ try { s = NostalgyPrefService().
+ getCharPref("extensions.nostalgy.recent_folders"); }
+ catch (ex) { return; }
+ var a = NostalgyJSONEval(s);
+ if (a) nostalgy_recent_folders = a;
+ else nostalgy_recent_folders = [ ];
+}
+
+function NostalgyRecordRecentFolder(folder) {
+ var recent = nostalgy_recent_folders;
+ var fname = folder_name(folder);
+ if (recent.indexOf(fname) >= 0)
+ recent = recent.filter(function (elt,idx,arr) {
+ return (elt != fname);
+ });
+
+ recent.push(fname);
+ while (recent.length > nostalgy_recent_folders_max_size) recent.shift();
+ NostalgySaveRecentFolder(recent);
}
+
+/****/
+
+
function NostalgyCrop(s) {
var len = 120;
var l = s.length;
@@ -103,24 +137,31 @@ function(text, results, listener) {
var nb = 0;
items.Clear();
- var f = function (folder) {
+ var add_folder = function (fname) {
var newitem =
Components.classes[
"@mozilla.org/autocomplete/item;1"
].createInstance(Components.interfaces.nsIAutoCompleteItem);
- newitem.value = NostalgyCrop(folder_name(folder));
+ newitem.value = NostalgyCrop(fname);
items.AppendElement(newitem);
nb++;
- };
-
- nostalgy_search_folder_options.do_tags =
- nostalgy_completion_options.always_include_tags ||
- (text.substr(0,1) == ":");
- IterateMatches(text, this.box.shell_completion, f);
- if (nb == 0 && !nostalgy_search_folder_options.do_tags) {
- nostalgy_search_folder_options.do_tags = true;
- IterateMatches(text, this.box.shell_completion, f);
+ };
+
+ var f = function (folder) { add_folder(folder_name(folder)); };
+
+ if (text == "") {
+ for (var j = 0; j < nostalgy_recent_folders.length; j++)
+ add_folder(nostalgy_recent_folders[j]);
+ } else {
+ nostalgy_search_folder_options.do_tags =
+ nostalgy_completion_options.always_include_tags ||
+ (text.substr(0,1) == ":");
+ IterateMatches(text, this.box.shell_completion, f);
+ if (nb == 0 && !nostalgy_search_folder_options.do_tags) {
+ nostalgy_search_folder_options.do_tags = true;
+ IterateMatches(text, this.box.shell_completion, f);
+ }
}
this.xresults.searchString = text;
diff --git a/content/messageOverlay.xul b/content/messageOverlay.xul
index c08abef..702ea97 100644
--- a/content/messageOverlay.xul
+++ b/content/messageOverlay.xul
@@ -3,6 +3,7 @@
<overlay id="nostalgy-message-overlay"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <script src="misc.js"/>
<script src="folders.js"/>
<script src="nostalgy_keys.js"/>
<script src="nostalgy.js"/>
diff --git a/content/misc.js b/content/misc.js
new file mode 100644
index 0000000..52df72e
--- /dev/null
+++ b/content/misc.js
@@ -0,0 +1,28 @@
+function gEBI(id) { return document.getElementById(id); }
+
+function NostalgyPrefService() {
+ return Components.classes["@mozilla.org/preferences-service;1"]
+ .getService(Components.interfaces.nsIPrefService);
+}
+
+function NostalgyDebug(aText)
+{
+ var csClass = Components.classes['@mozilla.org/consoleservice;1'];
+ var cs = csClass.getService(Components.interfaces.nsIConsoleService);
+ cs.logStringMessage(aText);
+}
+
+function NostalgyJSONEval(s) {
+ if (/^("(\\.|[^"\\\n\r])*?"|[a-z]+:|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/. // "
+ test(s)) {
+ try {
+ return eval('(' + s + ')');
+ } catch (e) {
+ NostalgyDebug("parseJSON 1: " + s);
+ return null;
+ }
+ } else {
+ NostalgyDebug("parseJSON 2:" + s);
+ return null;
+ }
+}
diff --git a/content/nostalgy.js b/content/nostalgy.js
index 98c7b7c..22da189 100644
--- a/content/nostalgy.js
+++ b/content/nostalgy.js
@@ -1,5 +1,3 @@
-function gEBI(s) { return document.getElementById(s); }
-
var in_message_window = !window.SetFocusFolderPane;
var nostalgy_folderBox = null;
@@ -32,9 +30,7 @@ var NostalgyRules =
register: function()
{
- var prefService = Components.classes["@mozilla.org/preferences-service;1"]
- .getService(Components.interfaces.nsIPrefService);
- this._branch = prefService.getBranch("extensions.nostalgy.");
+ this._branch = NostalgyPrefService().getBranch("extensions.nostalgy.");
this._branch2 =
this._branch.QueryInterface(Components.interfaces.nsIPrefBranch2);
this._branch2.addObserver("", this, false);
@@ -45,6 +41,7 @@ var NostalgyRules =
nostalgy_completion_options[n] = this._branch.getBoolPref(n);
} catch (ex) { }
}
+ NostalgyInstallRecentFolders();
},
register_keys: function() {
@@ -78,7 +75,7 @@ var NostalgyRules =
get_rules: function()
{
try {
- var r = eval(this._branch.getCharPref("rules"));
+ var r = NostalgyJSONEval(this._branch.getCharPref("rules"));
var i;
for (i = 0; i < r.length; i++) {
var rule = r[i];
@@ -100,6 +97,8 @@ var NostalgyRules =
observe: function(aSubject, aTopic, aData)
{
if(aTopic != "nsPref:changed") return;
+ if (aData == "recent_folders") NostalgyInstallRecentFolders();
+
if (aData == "rules") {
this.get_rules();
if (!in_message_window) NostalgyDefLabel();
@@ -143,10 +142,8 @@ NostalgyRules.register();
function NostalgyExtractRules() {
var s = nostalgy_extracted_rules;
if (s == "") return;
- // remove whitespaces. they should have been escaped as \u0020
- NostalgyDebug("before whitespace removal:" + s);
- s = s.replace(/([\x00-\x20])/g,function(a,b){ return "" });
- NostalgyDebug("after whitespace removal:" + s);
+ // remove characters that should have been escaped
+ s = s.replace(/([\x00-\x20>])/g,function(a,b){ return "" });
if (confirm(
"Do you want to install the rules contained in this message?\n"+
"This will overwrite your current set of rules.\n"+
@@ -421,7 +418,10 @@ function NostalgyRunCommand() {
NostalgyHide();
var s = nostalgy_folderBox.value;
var f = NostalgyResolveFolder(s);
- if (f) nostalgy_command(f);
+ if (f) {
+ NostalgyRecordRecentFolder(f);
+ nostalgy_command(f);
+ }
else {
if (s.substr(0,1) == ":" && s != ":") {
var name;
diff --git a/content/thunderbirdOverlay.xul b/content/thunderbirdOverlay.xul
index 30b2742..cbd7097 100644
--- a/content/thunderbirdOverlay.xul
+++ b/content/thunderbirdOverlay.xul
@@ -3,6 +3,7 @@
<overlay id="nostalgy-overlay"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <script src="misc.js"/>
<script src="folders.js"/>
<script src="nostalgy_keys.js"/>
<script src="nostalgy.js"/>
diff --git a/files b/files
index f8af104..de5d4d7 100644
--- a/files
+++ b/files
@@ -1,6 +1,7 @@
content/about.xul
content/edit_prefs.xul
content/thunderbirdOverlay.xul
+content/misc.js
content/dummy_window.xul
content/composer.js
content/messageOverlay.xul
--
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