First implementation of a progress bar

This commit is contained in:
Florian Bruhin 2014-01-17 12:24:38 +01:00
parent 3a76d52ffb
commit c0320a911b
3 changed files with 17 additions and 2 deletions

View File

@ -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 PyQt5.QtWebKitWidgets import QWebView
from qutebrowser.widgets.tabbar import TabWidget from qutebrowser.widgets.tabbar import TabWidget
class TabbedBrowser(TabWidget): class TabbedBrowser(TabWidget):
tabs = [] tabs = []
cur_progress = pyqtSignal(int)
def __init__(self, parent): def __init__(self, parent):
super().__init__(parent) super().__init__(parent)
@ -52,11 +53,19 @@ class TabbedBrowser(TabWidget):
class BrowserTab(QWebView): class BrowserTab(QWebView):
parent = None
def __init__(self, parent): def __init__(self, parent):
super().__init__(parent) super().__init__(parent)
self.parent = parent
self.loadProgress.connect(self.progress_changed)
self.show() self.show()
def openurl(self, url): def openurl(self, url):
if not url.startswith('http://'): if not url.startswith('http://'):
url = 'http://' + url url = 'http://' + url
super().load(QUrl(url)) super().load(QUrl(url))
def progress_changed(self, prog):
if self.parent.currentWidget() == self:
self.parent.cur_progress.emit(prog)

View File

@ -21,9 +21,12 @@ class MainWindow(QMainWindow):
self.vbox.addWidget(self.tabs) self.vbox.addWidget(self.tabs)
self.status = StatusBar(self.cwidget) self.status = StatusBar(self.cwidget)
self.status.lbl.setText("Hello World")
self.vbox.addWidget(self.status) 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.retranslateUi(MainWindow)
#self.tabWidget.setCurrentIndex(0) #self.tabWidget.setCurrentIndex(0)
#QtCore.QMetaObject.connectSlotsByName(MainWindow) #QtCore.QMetaObject.connectSlotsByName(MainWindow)

View File

@ -36,6 +36,9 @@ class StatusText(QLabel):
self.setObjectName(self.__class__.__name__) self.setObjectName(self.__class__.__name__)
self.setStyleSheet("padding-right: 1px") self.setStyleSheet("padding-right: 1px")
def set_progress(self, prog):
self.setText('{}%'.format(prog))
class StatusCommand(QLineEdit): class StatusCommand(QLineEdit):
got_cmd = pyqtSignal(str) got_cmd = pyqtSignal(str)