From b818bc589633cf6b837d9c9674cb71f2e0f97ea4 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Tue, 23 Sep 2014 22:22:03 +0200 Subject: [PATCH] Use object registry for downloadmanager. --- qutebrowser/app.py | 8 +++++--- qutebrowser/models/downloadmodel.py | 19 +++++++++---------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/qutebrowser/app.py b/qutebrowser/app.py index 79a1a03c6..719dd71cf 100644 --- a/qutebrowser/app.py +++ b/qutebrowser/app.py @@ -133,7 +133,8 @@ class Application(QApplication): searchrunner = runners.SearchRunner(self) self.registry['searchrunner'] = searchrunner log.init.debug("Initializing downloads...") - self.downloadmanager = downloads.DownloadManager(self) + downloadmanager = downloads.DownloadManager(self) + self.registry['downloadmanager'] = downloadmanager log.init.debug("Initializing main window...") mainwin = mainwindow.MainWindow() self.registry['mainwindow'] = mainwin @@ -383,6 +384,7 @@ class Application(QApplication): modeman = self.registry['modeman'] prompter = self.registry['prompter'] cmd_history = self.registry['cmd_history'] + downloadmanager = self.registry['downloadmanager'] # misc self.lastWindowClosed.connect(self.shutdown) @@ -457,8 +459,8 @@ class Application(QApplication): completer.change_completed_part.connect(cmd.on_change_completed_part) # downloads - tabs.start_download.connect(self.downloadmanager.fetch) - tabs.download_get.connect(self.downloadmanager.get) + tabs.start_download.connect(downloadmanager.fetch) + tabs.download_get.connect(downloadmanager.get) def _get_widgets(self): """Get a string list of all widgets.""" diff --git a/qutebrowser/models/downloadmodel.py b/qutebrowser/models/downloadmodel.py index 36aa4f89c..f2495d2ff 100644 --- a/qutebrowser/models/downloadmodel.py +++ b/qutebrowser/models/downloadmodel.py @@ -21,10 +21,9 @@ from PyQt5.QtCore import (pyqtSlot, Qt, QVariant, QAbstractListModel, QModelIndex) -from PyQt5.QtWidgets import QApplication from qutebrowser.config import config -from qutebrowser.utils import usertypes, qtutils +from qutebrowser.utils import usertypes, qtutils, utils Role = usertypes.enum('Role', 'item', start=Qt.UserRole, is_int=True) @@ -40,14 +39,14 @@ class DownloadModel(QAbstractListModel): def __init__(self, parent=None): super().__init__(parent) - self.downloadmanager = QApplication.instance().downloadmanager - self.downloadmanager.download_about_to_be_added.connect( + downloadmanager = utils.get_object('downloadmanager') + downloadmanager.download_about_to_be_added.connect( lambda idx: self.beginInsertRows(QModelIndex(), idx, idx)) - self.downloadmanager.download_added.connect(self.endInsertRows) - self.downloadmanager.download_about_to_be_finished.connect( + downloadmanager.download_added.connect(self.endInsertRows) + downloadmanager.download_about_to_be_finished.connect( lambda idx: self.beginRemoveRows(QModelIndex(), idx, idx)) - self.downloadmanager.download_finished.connect(self.endRemoveRows) - self.downloadmanager.data_changed.connect(self.on_data_changed) + downloadmanager.download_finished.connect(self.endRemoveRows) + downloadmanager.data_changed.connect(self.on_data_changed) def __repr__(self): return '<{}>'.format(self.__class__.__name__) @@ -82,7 +81,7 @@ class DownloadModel(QAbstractListModel): if index.parent().isValid() or index.column() != 0: return QVariant() - item = self.downloadmanager.downloads[index.row()] + item = utils.get_object('downloadmanager').downloads[index.row()] if role == Qt.DisplayRole: data = str(item) elif role == Qt.ForegroundRole: @@ -106,4 +105,4 @@ class DownloadModel(QAbstractListModel): if parent.isValid(): # We don't have children return 0 - return len(self.downloadmanager.downloads) + return len(utils.get_object('downloadmanager').downloads)