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
>
>
>
>
>
>
>
diff --new-file --recursive --suppress-common-lines --exclude changes.txt --exclude diff.txt releases/unplug-2.046/source/chrome/content/overlay/all.js releases/unplug-2.047/source/chrome/content/overlay/all.js
102a103,107
> if (!br_tab) {
> // can happen for pop-up windows, eg: pop-out radio player
> UnPlug2.log("overlay.get_current_window() assuming tab 0 because selectedIndex is " + br.mTabContainer.selectedIndex);
> br_tab = br.getBrowserAtIndex(0);
> }
diff --new-file --recursive --suppress-common-lines --exclude changes.txt --exclude diff.txt releases/unplug-2.046/source/chrome/content/rules.xml releases/unplug-2.047/source/chrome/content/rules.xml
204,223d203
<
<
<
<
< clip_id: '(\d+)',
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
826a807,812
>
>
>
>
>
>
1090a1077,1095
>
>
>
>
>
>
>
>
>
>
>
> url="http://player.vimeo.com/play_redirect?clip_id=${mediaid.1}&sig=${sig.1}&time=${time.1}&quality=hd&codecs=H264,VP8,VP6&type=moogaloop_local&embed_location="
> title="${jsdecode:either:title.1:origtitle.innerHTML}"
> thumbnail="${jsdecode:thumbnail.1}"
> mediaid="${mediaid.1}" />
>
>
>
diff --new-file --recursive --suppress-common-lines --exclude changes.txt --exclude diff.txt releases/unplug-2.046/source/install.rdf releases/unplug-2.047/source/install.rdf
9c9
< em:version="2.046"
---
> em:version="2.047"
Binary files releases/unplug-2.046/unplug.xpi and releases/unplug-2.047/unplug.xpi differ