diff options
author | Einar Egilsson | 2009-10-14 11:13:03 +0000 |
---|---|---|
committer | Einar Egilsson | 2009-10-14 11:13:03 +0000 |
commit | cfc2965fb35256a3493485f32ff9bd605bf158b7 (patch) | |
tree | 2683fe502bac65c752c7ebd913cfa5c2e955abf4 /chrome/content | |
parent | 0065dc23b00c5039ec3036ff895b9a67341c05c0 (diff) |
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
Diffstat (limited to 'chrome/content')
-rw-r--r-- | chrome/content/code/redirector.prototype.js | 5 | ||||
-rw-r--r-- | chrome/content/code/settings.xul.js | 34 | ||||
-rw-r--r-- | chrome/content/ui/settings.xul | 13 |
3 files changed, 39 insertions, 13 deletions
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 @@ </tabpanel>
<tabpanel>
<groupbox flex="1">
- <caption label="&grpImportExportDescription.label;" />
<vbox>
<hbox align="middle">
- <button id="btnImport" accesskey="&btnImport.accesskey;" onclick="Settings.import();" label="&btnImport.label;"/>
- <label value="Import redirects from a .rdx file" />
+ <button id="btnImport" accesskey="&btnImport.accesskey;" oncommand="Settings.import();" label="&btnImport.label;"/>
+ <label id="lblImport" value="&lblImport.label;" />
+ <spacer flex="1" />
+ </hbox>
+ <hbox>
+ <button id="btnExport" accesskey="&btnExport.accesskey;" oncommand="Settings.export();" label="&btnExport.label;"/>
+ <label id="lblExport" value="&lblExport.label;" />
+ <spacer flex="1" />
</hbox>
-
- <button id="btnExport" accesskey="&btnExport.accesskey;" onclick="Settings.export();" label="&btnExport.label;"/>
<spacer flex="1" />
</vbox>
</groupbox>
|