mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-19 23:07:58 +01:00
Refactor download listeners a bit.
This commit is contained in:
@@ -757,8 +757,7 @@ var CommandLine = Module("commandline", {
|
||||
}
|
||||
|
||||
if ((flags & this.ACTIVE_WINDOW) &&
|
||||
window != services.windowWatcher.activeWindow &&
|
||||
services.windowWatcher.activeWindow.dactyl)
|
||||
window != overlay.activeWindow)
|
||||
return;
|
||||
|
||||
if ((flags & this.DISALLOW_MULTILINE) && !this.widgets.mowContainer.collapsed)
|
||||
|
||||
@@ -9,6 +9,8 @@ defineModule("downloads", {
|
||||
exports: ["Download", "Downloads", "downloads"]
|
||||
}, this);
|
||||
|
||||
this.lazyRequire("overlay", ["overlay"]);
|
||||
|
||||
Cu.import("resource://gre/modules/DownloadUtils.jsm", this);
|
||||
|
||||
let prefix = "DOWNLOAD_";
|
||||
@@ -388,7 +390,30 @@ var DownloadList = Class("DownloadList",
|
||||
}
|
||||
});
|
||||
|
||||
var Downloads = Module("downloads", {
|
||||
var Downloads = Module("downloads", XPCOM(Ci.nsIDownloadProgressListener), {
|
||||
init: function () {
|
||||
services.downloadManager.addListener(this);
|
||||
},
|
||||
|
||||
destroy: function destroy() {
|
||||
services.downloadManager.removeListener(this);
|
||||
},
|
||||
|
||||
onDownloadStateChange: function (state, download) {
|
||||
if (download.state == services.downloadManager.DOWNLOAD_FINISHED) {
|
||||
let url = download.source.spec;
|
||||
let title = download.displayName;
|
||||
let file = download.targetFile.path;
|
||||
let size = download.size;
|
||||
|
||||
|
||||
overlay.modules.forEach(function (modules) {
|
||||
modules.dactyl.echomsg({ domains: [util.getHost(url)], message: _("io.downloadFinished", title, file) },
|
||||
1, modules.commandline.ACTIVE_WINDOW);
|
||||
modules.autocommands.trigger("DownloadPost", { url: url, title: title, file: file, size: size });
|
||||
});
|
||||
}
|
||||
}
|
||||
}, {
|
||||
}, {
|
||||
commands: function initCommands(dactyl, modules, window) {
|
||||
|
||||
@@ -41,26 +41,6 @@ var IO = Module("io", {
|
||||
|
||||
this._lastRunCommand = ""; // updated whenever the users runs a command with :!
|
||||
this._scriptNames = [];
|
||||
|
||||
this.downloadListener = {
|
||||
onDownloadStateChange: function (state, download) {
|
||||
if (download.state == services.downloadManager.DOWNLOAD_FINISHED) {
|
||||
let url = download.source.spec;
|
||||
let title = download.displayName;
|
||||
let file = download.targetFile.path;
|
||||
let size = download.size;
|
||||
|
||||
dactyl.echomsg({ domains: [util.getHost(url)], message: _("io.downloadFinished", title, file) },
|
||||
1, modules.commandline.ACTIVE_WINDOW);
|
||||
modules.autocommands.trigger("DownloadPost", { url: url, title: title, file: file, size: size });
|
||||
}
|
||||
},
|
||||
onStateChange: function () {},
|
||||
onProgressChange: function () {},
|
||||
onSecurityChange: function () {}
|
||||
};
|
||||
|
||||
services.downloadManager.addListener(this.downloadListener);
|
||||
},
|
||||
|
||||
CommandFileMode: Class("CommandFileMode", modules.CommandMode, {
|
||||
@@ -84,10 +64,6 @@ var IO = Module("io", {
|
||||
}
|
||||
}),
|
||||
|
||||
destroy: function destroy() {
|
||||
services.downloadManager.removeListener(this.downloadListener);
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns all directories named *name* in 'runtimepath'.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user