From 5c3330c7b4b9140df2691dfa69b76b0c6e73a7cc Mon Sep 17 00:00:00 2001 From: Kris Maglione Date: Fri, 2 Mar 2012 18:23:54 -0500 Subject: [PATCH] Refactor download listeners a bit. --- common/content/commandline.js | 3 +-- common/modules/downloads.jsm | 27 ++++++++++++++++++++++++++- common/modules/io.jsm | 24 ------------------------ 3 files changed, 27 insertions(+), 27 deletions(-) diff --git a/common/content/commandline.js b/common/content/commandline.js index ada617fd..a58fb24a 100644 --- a/common/content/commandline.js +++ b/common/content/commandline.js @@ -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) diff --git a/common/modules/downloads.jsm b/common/modules/downloads.jsm index 03ab1990..b02331ef 100644 --- a/common/modules/downloads.jsm +++ b/common/modules/downloads.jsm @@ -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) { diff --git a/common/modules/io.jsm b/common/modules/io.jsm index 3e0015dd..dbd73816 100644 --- a/common/modules/io.jsm +++ b/common/modules/io.jsm @@ -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'. *