diff --git a/qutebrowser/widgets/browser.py b/qutebrowser/widgets/browser.py index d9f257319..1a413bdb3 100644 --- a/qutebrowser/widgets/browser.py +++ b/qutebrowser/widgets/browser.py @@ -1,9 +1,10 @@ -from PyQt5.QtCore import QObject, pyqtSlot, QUrl +from PyQt5.QtCore import QObject, pyqtSlot, QUrl, pyqtSignal from PyQt5.QtWebKitWidgets import QWebView from qutebrowser.widgets.tabbar import TabWidget class TabbedBrowser(TabWidget): tabs = [] + cur_progress = pyqtSignal(int) def __init__(self, parent): super().__init__(parent) @@ -52,11 +53,19 @@ class TabbedBrowser(TabWidget): class BrowserTab(QWebView): + parent = None + def __init__(self, parent): super().__init__(parent) + self.parent = parent + self.loadProgress.connect(self.progress_changed) self.show() def openurl(self, url): if not url.startswith('http://'): url = 'http://' + url super().load(QUrl(url)) + + def progress_changed(self, prog): + if self.parent.currentWidget() == self: + self.parent.cur_progress.emit(prog) diff --git a/qutebrowser/widgets/mainwindow.py b/qutebrowser/widgets/mainwindow.py index cbe1c1a65..691cced14 100644 --- a/qutebrowser/widgets/mainwindow.py +++ b/qutebrowser/widgets/mainwindow.py @@ -21,9 +21,12 @@ class MainWindow(QMainWindow): self.vbox.addWidget(self.tabs) self.status = StatusBar(self.cwidget) - self.status.lbl.setText("Hello World") self.vbox.addWidget(self.status) + + # FIXME: cur_progress also should be set on tab switch + self.tabs.cur_progress.connect(self.status.lbl.set_progress) + #self.retranslateUi(MainWindow) #self.tabWidget.setCurrentIndex(0) #QtCore.QMetaObject.connectSlotsByName(MainWindow) diff --git a/qutebrowser/widgets/statusbar.py b/qutebrowser/widgets/statusbar.py index 19cd7309c..849053dea 100644 --- a/qutebrowser/widgets/statusbar.py +++ b/qutebrowser/widgets/statusbar.py @@ -36,6 +36,9 @@ class StatusText(QLabel): self.setObjectName(self.__class__.__name__) self.setStyleSheet("padding-right: 1px") + def set_progress(self, prog): + self.setText('{}%'.format(prog)) + class StatusCommand(QLineEdit): got_cmd = pyqtSignal(str)