Use object registry for downloadmanager.

This commit is contained in:
Florian Bruhin 2014-09-23 22:22:03 +02:00
parent 7a7b397c15
commit b818bc5896
2 changed files with 14 additions and 13 deletions

View File

@ -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."""

View File

@ -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)