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) searchrunner = runners.SearchRunner(self)
self.registry['searchrunner'] = searchrunner self.registry['searchrunner'] = searchrunner
log.init.debug("Initializing downloads...") log.init.debug("Initializing downloads...")
self.downloadmanager = downloads.DownloadManager(self) downloadmanager = downloads.DownloadManager(self)
self.registry['downloadmanager'] = downloadmanager
log.init.debug("Initializing main window...") log.init.debug("Initializing main window...")
mainwin = mainwindow.MainWindow() mainwin = mainwindow.MainWindow()
self.registry['mainwindow'] = mainwin self.registry['mainwindow'] = mainwin
@ -383,6 +384,7 @@ class Application(QApplication):
modeman = self.registry['modeman'] modeman = self.registry['modeman']
prompter = self.registry['prompter'] prompter = self.registry['prompter']
cmd_history = self.registry['cmd_history'] cmd_history = self.registry['cmd_history']
downloadmanager = self.registry['downloadmanager']
# misc # misc
self.lastWindowClosed.connect(self.shutdown) self.lastWindowClosed.connect(self.shutdown)
@ -457,8 +459,8 @@ class Application(QApplication):
completer.change_completed_part.connect(cmd.on_change_completed_part) completer.change_completed_part.connect(cmd.on_change_completed_part)
# downloads # downloads
tabs.start_download.connect(self.downloadmanager.fetch) tabs.start_download.connect(downloadmanager.fetch)
tabs.download_get.connect(self.downloadmanager.get) tabs.download_get.connect(downloadmanager.get)
def _get_widgets(self): def _get_widgets(self):
"""Get a string list of all widgets.""" """Get a string list of all widgets."""

View File

@ -21,10 +21,9 @@
from PyQt5.QtCore import (pyqtSlot, Qt, QVariant, QAbstractListModel, from PyQt5.QtCore import (pyqtSlot, Qt, QVariant, QAbstractListModel,
QModelIndex) QModelIndex)
from PyQt5.QtWidgets import QApplication
from qutebrowser.config import config 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) Role = usertypes.enum('Role', 'item', start=Qt.UserRole, is_int=True)
@ -40,14 +39,14 @@ class DownloadModel(QAbstractListModel):
def __init__(self, parent=None): def __init__(self, parent=None):
super().__init__(parent) super().__init__(parent)
self.downloadmanager = QApplication.instance().downloadmanager downloadmanager = utils.get_object('downloadmanager')
self.downloadmanager.download_about_to_be_added.connect( downloadmanager.download_about_to_be_added.connect(
lambda idx: self.beginInsertRows(QModelIndex(), idx, idx)) lambda idx: self.beginInsertRows(QModelIndex(), idx, idx))
self.downloadmanager.download_added.connect(self.endInsertRows) downloadmanager.download_added.connect(self.endInsertRows)
self.downloadmanager.download_about_to_be_finished.connect( downloadmanager.download_about_to_be_finished.connect(
lambda idx: self.beginRemoveRows(QModelIndex(), idx, idx)) lambda idx: self.beginRemoveRows(QModelIndex(), idx, idx))
self.downloadmanager.download_finished.connect(self.endRemoveRows) downloadmanager.download_finished.connect(self.endRemoveRows)
self.downloadmanager.data_changed.connect(self.on_data_changed) downloadmanager.data_changed.connect(self.on_data_changed)
def __repr__(self): def __repr__(self):
return '<{}>'.format(self.__class__.__name__) return '<{}>'.format(self.__class__.__name__)
@ -82,7 +81,7 @@ class DownloadModel(QAbstractListModel):
if index.parent().isValid() or index.column() != 0: if index.parent().isValid() or index.column() != 0:
return QVariant() return QVariant()
item = self.downloadmanager.downloads[index.row()] item = utils.get_object('downloadmanager').downloads[index.row()]
if role == Qt.DisplayRole: if role == Qt.DisplayRole:
data = str(item) data = str(item)
elif role == Qt.ForegroundRole: elif role == Qt.ForegroundRole:
@ -106,4 +105,4 @@ class DownloadModel(QAbstractListModel):
if parent.isValid(): if parent.isValid():
# We don't have children # We don't have children
return 0 return 0
return len(self.downloadmanager.downloads) return len(utils.get_object('downloadmanager').downloads)