From cfc2965fb35256a3493485f32ff9bd605bf158b7 Mon Sep 17 00:00:00 2001 From: Einar Egilsson Date: Wed, 14 Oct 2009 11:13:03 +0000 Subject: Import and Export working, might need some more singular/plural fixes in language. git-svn-id: http://einaregilsson.googlecode.com/svn/mozilla/redirector/trunk@266 119bf307-c92d-0410-89bd-8f53e6181181 --- chrome/content/code/redirector.prototype.js | 5 ++--- chrome/content/code/settings.xul.js | 34 ++++++++++++++++++++++++----- chrome/content/ui/settings.xul | 13 ++++++----- chrome/locale/en-US/redirector.properties | 5 +++++ chrome/locale/en-US/settings.xul.dtd | 5 +++-- chrome/skin/redirector.css | 1 + 6 files changed, 48 insertions(+), 15 deletions(-) (limited to 'chrome') diff --git a/chrome/content/code/redirector.prototype.js b/chrome/content/code/redirector.prototype.js index e364ecc..4e39fa6 100644 --- a/chrome/content/code/redirector.prototype.js +++ b/chrome/content/code/redirector.prototype.js @@ -85,7 +85,6 @@ Redirector.prototype = { if (!aContext || !aContext.loadURI) { return nsIContentPolicy.ACCEPT; } - this.debug("START: " + new Date().getTime()); this.debug("Checking " + contentLocation.spec); var url = contentLocation.spec; @@ -107,7 +106,6 @@ Redirector.prototype = { } catch(e) { this.debug(e); } - this.debug("END: " + new Date().getTime()); return nsIContentPolicy.ACCEPT; }, @@ -170,7 +168,7 @@ Redirector.prototype = { var line = {value: null}; while (stream.readLine(line)) { var redirect = new Redirect(); - redirect.deserialize(line.replace('\n', '')); + redirect.deserialize(line.value.replace('\n', '')); if (this.containsRedirect(redirect)) { existsCount++; } else { @@ -180,6 +178,7 @@ Redirector.prototype = { } stream.close(); this.save(); + return { imported : importCount, existed : existsCount }; }, containsRedirect : function(redirect) { diff --git a/chrome/content/code/settings.xul.js b/chrome/content/code/settings.xul.js index 80fa8a4..3efe061 100644 --- a/chrome/content/code/settings.xul.js +++ b/chrome/content/code/settings.xul.js @@ -3,6 +3,7 @@ var Redirector = Components.classes["@einaregilsson.com/redirector;1"].getService(Components.interfaces.nsISupports).wrappedJSObject; const Cc = Components.classes; const Ci = Components.interfaces; +const nsLocalFile = Components.Constructor("@mozilla.org/file/local;1", "nsILocalFile", "initWithPath"); var Settings = { @@ -201,9 +202,9 @@ var Settings = { var picker = Cc["@mozilla.org/filepicker;1"].createInstance(Ci.nsIFilePicker); picker.init(window, Redirector.getString(captionKey), mode); picker.defaultExtension = ".rdx"; - var dir = Redirector.getDefaultDir(); + var dir = Redirector.prefs.defaultDir; if (dir) { - picker.displayDirectory = dir; + picker.displayDirectory = new nsLocalFile(dir); } picker.appendFilter(Redirector.getString('redirectorFiles'), '*.rdx'); @@ -211,7 +212,8 @@ var Settings = { return; } try { - func(picker.file); + Redirector.prefs.defaultDir = picker.displayDirectory.path; + return func(picker.file); } catch (e) { alert(e); } @@ -224,8 +226,30 @@ var Settings = { }, import : function() { - this.importExport(Ci.nsIFilePicker.modeOpen, 'importCaption', function(file) { - Redirector.importRedirects(file); + var result = this.importExport(Ci.nsIFilePicker.modeOpen, 'importCaption', function(file) { + return Redirector.importRedirects(file); }); + + var msg; + if (result.imported > 0 && result.existed == 0) { + msg = this.strings.getFormattedString('importedMessage', [result.imported]); + } else if (result.imported > 0 && result.existed > 0) { + msg = this.strings.getFormattedString('importedAndExistedMessage', [result.imported, result.existed]); + } else if (result.imported == 0 && result.existed > 0) { + msg = this.strings.getFormattedString('importedNoneAllExisted', [result.existed]); + } else { //Both 0 + msg = this.strings.getString('importedNone'); + } + + var title = this.strings.getString("importResult"); + Cc["@mozilla.org/embedcomp/prompt-service;1"].getService(Ci.nsIPromptService).alert(null, title, msg); + + if (result.imported > 0) { + var newlist = []; + for (var i = Redirector.list.length-result.imported; i < Redirector.list.length; i++) { + newlist.push(Redirector.list[i]); + } + this.addItemsToListBox(newlist); + } } }; diff --git a/chrome/content/ui/settings.xul b/chrome/content/ui/settings.xul index 7004d48..d61e893 100644 --- a/chrome/content/ui/settings.xul +++ b/chrome/content/ui/settings.xul @@ -94,14 +94,17 @@ - -