Refactor ShareMode and Downloads to remove the Downloads container widget, and make Downloads itself the QScrollArea

This commit is contained in:
Micah Lee 2018-05-04 16:57:17 -07:00
parent 7b25ae1d6b
commit 3f624a4a27
No known key found for this signature in database
GPG Key ID: 403C2657CD994F73
2 changed files with 23 additions and 24 deletions

View File

@ -325,9 +325,9 @@ class ShareMode(Mode):
""" """
self.common.log('ShareMode', 'toggle_downloads') self.common.log('ShareMode', 'toggle_downloads')
if checked: if checked:
self.downloads.downloads_container.show() self.downloads.show()
else: else:
self.downloads.downloads_container.hide() self.downloads.hide()
def reset_info_counters(self): def reset_info_counters(self):
""" """

View File

@ -91,41 +91,40 @@ class Download(object):
self.started) self.started)
class Downloads(QtWidgets.QWidget): class Downloads(QtWidgets.QScrollArea):
""" """
The downloads chunk of the GUI. This lists all of the active download The downloads chunk of the GUI. This lists all of the active download
progress bars. progress bars.
""" """
def __init__(self, common): def __init__(self, common):
super(Downloads, self).__init__() super(Downloads, self).__init__()
self.common = common self.common = common
self.downloads = {} self.downloads = {}
self.downloads_container = QtWidgets.QScrollArea() self.setWindowTitle(strings._('gui_downloads', True))
self.downloads_container.setWidget(self) self.setWidgetResizable(True)
self.downloads_container.setWindowTitle(strings._('gui_downloads', True)) self.setMaximumHeight(600)
self.downloads_container.setWidgetResizable(True) self.setMinimumHeight(150)
self.downloads_container.setMaximumHeight(600) self.setMinimumWidth(350)
self.downloads_container.setMinimumHeight(150) self.setWindowIcon(QtGui.QIcon(common.get_resource_path('images/logo.png')))
self.downloads_container.setMinimumWidth(350) self.setWindowFlags(QtCore.Qt.Sheet | QtCore.Qt.WindowTitleHint | QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.CustomizeWindowHint)
self.downloads_container.setWindowIcon(QtGui.QIcon(common.get_resource_path('images/logo.png'))) self.vbar = self.verticalScrollBar()
self.downloads_container.setWindowFlags(QtCore.Qt.Sheet | QtCore.Qt.WindowTitleHint | QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.CustomizeWindowHint)
self.downloads_container.vbar = self.downloads_container.verticalScrollBar()
self.downloads_label = QtWidgets.QLabel(strings._('gui_downloads', True)) downloads_label = QtWidgets.QLabel(strings._('gui_downloads', True))
self.downloads_label.setStyleSheet('QLabel { font-weight: bold; font-size 14px; text-align: center; }') downloads_label.setStyleSheet('QLabel { font-weight: bold; font-size 14px; text-align: center; }')
self.no_downloads_label = QtWidgets.QLabel(strings._('gui_no_downloads', True)) self.no_downloads_label = QtWidgets.QLabel(strings._('gui_no_downloads', True))
self.downloads_layout = QtWidgets.QVBoxLayout() self.downloads_layout = QtWidgets.QVBoxLayout()
self.layout = QtWidgets.QVBoxLayout() widget = QtWidgets.QWidget()
self.layout.addWidget(self.downloads_label) layout = QtWidgets.QVBoxLayout()
self.layout.addWidget(self.no_downloads_label) layout.addWidget(downloads_label)
self.layout.addLayout(self.downloads_layout) layout.addWidget(self.no_downloads_label)
self.layout.addStretch() layout.addLayout(self.downloads_layout)
self.setLayout(self.layout) layout.addStretch()
widget.setLayout(layout)
self.setWidget(widget)
def add_download(self, download_id, total_bytes): def add_download(self, download_id, total_bytes):
""" """
@ -140,7 +139,7 @@ class Downloads(QtWidgets.QWidget):
self.downloads_layout.addWidget(download.progress_bar) self.downloads_layout.addWidget(download.progress_bar)
# Scroll to the bottom # Scroll to the bottom
self.downloads_container.vbar.setValue(self.downloads_container.vbar.maximum()) self.vbar.setValue(self.vbar.maximum())
def update_download(self, download_id, downloaded_bytes): def update_download(self, download_id, downloaded_bytes):
""" """
@ -164,4 +163,4 @@ class Downloads(QtWidgets.QWidget):
self.downloads = {} self.downloads = {}
self.no_downloads_label.show() self.no_downloads_label.show()
self.downloads_container.resize(self.downloads_container.sizeHint()) self.resize(self.sizeHint())