diff --new-file --recursive --suppress-common-lines --exclude changes.txt --exclude diff.txt releases/unplug-2.046/source/chrome/content/common.js releases/unplug-2.047/source/chrome/content/common.js 142c142 < version : 2.046, --- > version : 2.047, 146c146 < revision : 201103242306, --- > revision : 201104101812, diff --new-file --recursive --suppress-common-lines --exclude changes.txt --exclude diff.txt releases/unplug-2.046/source/chrome/content/config/config.js releases/unplug-2.047/source/chrome/content/config/config.js 37a38 > populate_version(); 44a46,50 > function populate_version() { > var version_str = "UnPlug " + UnPlug2.version.toFixed(3) + " " + UnPlug2.codename + " (" + UnPlug2.revision + ")"; > document.getElementById("version").setAttribute("value", version_str); > } > diff --new-file --recursive --suppress-common-lines --exclude changes.txt --exclude diff.txt releases/unplug-2.046/source/chrome/content/display/download.js releases/unplug-2.047/source/chrome/content/display/download.js 105c105 < callback : (function (name, result) { --- > callback : (function (method, result) { 109c109 < that.exec(name, result); --- > that.prereq_then_exec(method, result); 111c111 < UnPlug2.log("Error in UnPlug2DownloadMethods for " + name + " " + result.toSource() + " with error " + e.toSource()); --- > UnPlug2.log("Error in UnPlug2DownloadMethods for " + method + " " + result.toSource() + " with error " + e.toSource()); 115a116,145 > > get_prerequisites : (function (method) { > // returns TRUE if all prerequisites are satisfied, or FALSE if you need to poll again. > // extern -- open extern window > if (this._button_lookup[method].signal_get_argv) { > var extern_window = UnPlug2ExternDownloader.get_window(); > if (extern_window === null) { > window.openDialog(UnPlug2ExternDownloader.url, "", "chrome"); > return false; > } > return extern_window.loaded; > } > // others -- nothing to do > return true; > }), > > prereq_then_exec : (function (method, result) { > if (this.get_prerequisites(method)) { > try { > this.exec(method, result); > } catch (e) { > UnPlug2.log("prerq_then_exec on " + method + " res " + result.toSource() + " error " + e.toSource()); > } > } else { > window.setTimeout((function (that, method, result) { > return (function () {that.prereq_then_exec(method, result); }); > })(this, method, result), 200); > } > }), > 132,155c162,163 < return this.exec_multiple_fp(method, [[result, file]]); < }), < < folder_picker : (function () { < const nsIFilePicker = Components.interfaces.nsIFilePicker; < const nsifile = Components.interfaces.nsIFile; < var filepicker = Components.classes["@mozilla.org/filepicker;1"] < .createInstance(nsIFilePicker); < filepicker.init(window, UnPlug2.str("save_to_directory"), nsIFilePicker.modeGetFolder); < < // default directory < var path = UnPlug2.get_pref("savepath"); < if (!path) { < path = Components.classes["@mozilla.org/download-manager;1"] < .getService(Components.interfaces.nsIDownloadManager) < .defaultDownloadsDirectory.path; < } < if (path) { < var f = Components.classes["@mozilla.org/file/local;1"] < .createInstance(Components.interfaces.nsILocalFile); < f.initWithPath(path); < if (f.exists() && f.isDirectory()) { < filepicker.displayDirectory = f; < } --- > if (file) { > return this.exec_multiple_fp(method, [[result, file]]); 157,163d164 < < var ret = filepicker.show(); < if (ret !== nsIFilePicker.returnOK) { < return null; < } < UnPlug2.set_pref("savepath", filepicker.file.path); < return filepicker.file; 165c166 < --- > 378,388c379 < if (extern_window) { < extern_window.postMessage(action, "*"); < } else { < extern_window = window.openDialog(this.url, "", "chrome"); < var onload = (function (action) { < return (function () { < this.postMessage(action, "*"); < }); < })(action); < extern_window.addEventListener("load", onload, false); < } --- > extern_window.postMessage(action, "*"); 467c458,460 < file.remove(false); --- > try { > file.remove(false); > } catch (e) {} diff --new-file --recursive --suppress-common-lines --exclude changes.txt --exclude diff.txt releases/unplug-2.046/source/chrome/content/display/extern/extern.js releases/unplug-2.047/source/chrome/content/display/extern/extern.js 180a181 > window.addEventListener("load", (function () {window.loaded = true;}), false); diff --new-file --recursive --suppress-common-lines --exclude changes.txt --exclude diff.txt releases/unplug-2.046/source/chrome/content/display/pop/pop.js releases/unplug-2.047/source/chrome/content/display/pop/pop.js 66a67 > UnPlug2SearchPage.populate_download_folder(); 91,94c92 < var folder = UnPlug2DownloadMethods.folder_picker(); < if (!folder) { < return; < } --- > var have_prereq = true; 97,99c95 < var resultitem_list = solution["result_item_by_method"][method]; < var result_list = resultitem_list.map((function (x) { return x.result; })); < UnPlug2DownloadMethods.exec_multiple(method, result_list, folder); --- > have_prereq = have_prereq && UnPlug2DownloadMethods.get_prerequisites(method); 101,105c97,111 < < // if opening extern.xul window, we don't want to do window.close imediately < // because that will destroy extern_window.addEventListener("load", ...) callback < // TODO - need to do this better (some sort of "all done" or "allow/deny close" system?) < window.setTimeout((function () { --- > if (have_prereq) { > var browsebox = document.getElementById("download_folder"); > var folder = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > folder.initWithPath(browsebox.value); > if (!folder.exists() || !folder.isDirectory()) { > self.browse_download_folder(); > return; > } > for (var i = 0; i < solution["method_names"].length; ++i) { > var method = solution["method_names"][i]; > var resultitem_list = solution["result_item_by_method"][method]; > var result_list = resultitem_list.map((function (x) { return x.result; })); > UnPlug2DownloadMethods.exec_multiple(method, result_list, folder); > } 107c113,115 < }), 1000); --- > } else { > window.setTimeout(UnPlug2SearchPage.do_saveall, 200); > } 115a124,159 > populate_download_folder : (function () { > var path = UnPlug2.get_pref("savepath"); > if (!path) { > path = Components.classes["@mozilla.org/download-manager;1"] > .getService(Components.interfaces.nsIDownloadManager) > .defaultDownloadsDirectory.path; > } > document.getElementById("download_folder").value = (path || ""); > }), > > browse_download_folder : (function () { > const nsIFilePicker = Components.interfaces.nsIFilePicker; > const nsifile = Components.interfaces.nsIFile; > var filepicker = Components.classes["@mozilla.org/filepicker;1"] > .createInstance(nsIFilePicker); > filepicker.init(window, UnPlug2.str("save_to_directory"), nsIFilePicker.modeGetFolder); > var browsebox = document.getElementById("download_folder"); > var path = browsebox.value; > if (path) { > try { > var f = Components.classes["@mozilla.org/file/local;1"] > .createInstance(Components.interfaces.nsILocalFile); > f.initWithPath(path); > if (f.exists() && f.isDirectory()) { > filepicker.displayDirectory = f; > } > } catch (e) { > } > } > var ret = filepicker.show(); > if (ret === nsIFilePicker.returnOK) { > UnPlug2.set_pref("savepath", filepicker.file.path); > browsebox.value = filepicker.file.path; > } > }), > 245c289 < var can_download_all = false; --- > var download_btn_enabled = false; 272c316 < can_download_all = true; --- > download_btn_enabled = true; 299,300c343,350 < < if (can_download_all) { --- > > if (solution["method_names"].length == 0) { > document.getElementById("downlad_selected_methods").collapsed = true; > } else { > document.getElementById("downlad_selected_methods").collapsed = false; > } > > if (download_btn_enabled) { diff --new-file --recursive --suppress-common-lines --exclude changes.txt --exclude diff.txt releases/unplug-2.046/source/chrome/content/display/pop/pop.xul releases/unplug-2.047/source/chrome/content/display/pop/pop.xul 84a85,91 > > > > >