diff --git a/mozilla/xpfe/components/filepicker/res/content/filepicker.js b/mozilla/xpfe/components/filepicker/res/content/filepicker.js index daf13efa62c..65f5ac9379d 100644 --- a/mozilla/xpfe/components/filepicker/res/content/filepicker.js +++ b/mozilla/xpfe/components/filepicker/res/content/filepicker.js @@ -87,8 +87,13 @@ function onOK() if (!file) return false; - var isDir = file.isDirectory(); - var isFile = file.isFile(); + if (file.exists()) { + var isDir = file.isDirectory(); + var isFile = file.isFile(); + } else { /* we are saving a new file */ + isDir = false; + isFile = false; + } switch(filePickerMode) { case nsIFilePicker.modeOpen: @@ -111,6 +116,9 @@ function onOK() else ret = nsIFilePicker.returnCancel; retvals.directory = file.parent.path; + } else if (!file.exists()) { + ret = nsIFilePicker.returnOK; + retvals.directory = file.parent.path; } break; case nsIFilePicker.modeGetFolder: diff --git a/mozilla/xpfe/components/filepicker/src/nsFilePicker.js b/mozilla/xpfe/components/filepicker/src/nsFilePicker.js index 72bc7153788..15561e7b57b 100644 --- a/mozilla/xpfe/components/filepicker/src/nsFilePicker.js +++ b/mozilla/xpfe/components/filepicker/src/nsFilePicker.js @@ -66,7 +66,7 @@ nsFilePicker.prototype = { get file() { debug("getter called " + this.mFile); return this.mFile; }, /* attribute wstring defaultString; */ - set defaultString(a) { throw "readonly property"; }, + set defaultString(a) { this.mSelectedFilter = a; }, get defaultString() { return this.mSelectedFilter; }, /* methods */ @@ -77,12 +77,6 @@ nsFilePicker.prototype = { }, setFilters: function(filterMask) { - dump(filterMask + "\n"); - if (filterMask & nsIFilePicker.filterAll) { - dump("filterAll\n"); - this.mFilterTitles.push(bundle.GetStringFromName("allTitle")); - this.mFilters.push(bundle.GetStringFromName("allFilter")); - } if (filterMask & nsIFilePicker.filterHTML) { this.mFilterTitles.push(bundle.GetStringFromName("htmlTitle")); this.mFilters.push(bundle.GetStringFromName("htmlFilter")); @@ -103,6 +97,10 @@ nsFilePicker.prototype = { this.mFilterTitles.push(bundle.GetStringFromName("xulTitle")); this.mFilters.push(bundle.GetStringFromName("xulFilter")); } + if (filterMask & nsIFilePicker.filterAll) { + this.mFilterTitles.push(bundle.GetStringFromName("allTitle")); + this.mFilters.push(bundle.GetStringFromName("allFilter")); + } }, appendFilter: function(title, extentions) { diff --git a/mozilla/xpfe/components/filepicker/src/nsFilePicker.js.in b/mozilla/xpfe/components/filepicker/src/nsFilePicker.js.in index 72bc7153788..15561e7b57b 100644 --- a/mozilla/xpfe/components/filepicker/src/nsFilePicker.js.in +++ b/mozilla/xpfe/components/filepicker/src/nsFilePicker.js.in @@ -66,7 +66,7 @@ nsFilePicker.prototype = { get file() { debug("getter called " + this.mFile); return this.mFile; }, /* attribute wstring defaultString; */ - set defaultString(a) { throw "readonly property"; }, + set defaultString(a) { this.mSelectedFilter = a; }, get defaultString() { return this.mSelectedFilter; }, /* methods */ @@ -77,12 +77,6 @@ nsFilePicker.prototype = { }, setFilters: function(filterMask) { - dump(filterMask + "\n"); - if (filterMask & nsIFilePicker.filterAll) { - dump("filterAll\n"); - this.mFilterTitles.push(bundle.GetStringFromName("allTitle")); - this.mFilters.push(bundle.GetStringFromName("allFilter")); - } if (filterMask & nsIFilePicker.filterHTML) { this.mFilterTitles.push(bundle.GetStringFromName("htmlTitle")); this.mFilters.push(bundle.GetStringFromName("htmlFilter")); @@ -103,6 +97,10 @@ nsFilePicker.prototype = { this.mFilterTitles.push(bundle.GetStringFromName("xulTitle")); this.mFilters.push(bundle.GetStringFromName("xulFilter")); } + if (filterMask & nsIFilePicker.filterAll) { + this.mFilterTitles.push(bundle.GetStringFromName("allTitle")); + this.mFilters.push(bundle.GetStringFromName("allFilter")); + } }, appendFilter: function(title, extentions) {