Loading Qube Manager progress using setValue()

This is the recommended QT way for updating the progress bar.

setMininumDuration() sets the time when the progress dialog will appear,
if it finishes before it won't be shown. Qt default is 4 seconds, maybe
pretty high for this case.
This commit is contained in:
donoban 2018-10-20 16:33:25 +02:00
parent 228aaed2f4
commit 612cfc15d6
No known key found for this signature in database
GPG Key ID: 141310D8E3ED08A5

View File

@ -598,17 +598,6 @@ class VmManagerWindow(ui_qubemanager.Ui_VmManagerWindow, QtGui.QMainWindow):
return [vm for vm in self.qubes_app.domains] return [vm for vm in self.qubes_app.domains]
def fill_table(self): def fill_table(self):
progress = QtGui.QProgressDialog(
self.tr(
"Loading Qube Manager..."), "", 0, 0)
progress.setWindowTitle(self.tr("Qube Manager"))
progress.setWindowFlags(QtCore.Qt.Window |
QtCore.Qt.WindowTitleHint |
QtCore.Qt.CustomizeWindowHint)
progress.setCancelButton(None)
progress.setModal(True)
progress.show()
self.table.setSortingEnabled(False) self.table.setSortingEnabled(False)
vms_list = self.get_vms_list() vms_list = self.get_vms_list()
@ -616,19 +605,26 @@ class VmManagerWindow(ui_qubemanager.Ui_VmManagerWindow, QtGui.QMainWindow):
self.table.setRowCount(len(vms_list)) self.table.setRowCount(len(vms_list))
progress = QtGui.QProgressDialog(
self.tr(
"Loading Qube Manager..."), "", 0, len(vms_list))
progress.setWindowTitle(self.tr("Qube Manager"))
progress.setMinimumDuration(1000)
progress.setCancelButton(None)
row_no = 0 row_no = 0
for vm in vms_list: for vm in vms_list:
progress.setValue(row_no)
vm_row = VmRowInTable(vm, row_no, self.table) vm_row = VmRowInTable(vm, row_no, self.table)
vms_in_table[vm.qid] = vm_row vms_in_table[vm.qid] = vm_row
row_no += 1 row_no += 1
self.qt_app.processEvents()
progress.setValue(row_no)
self.vms_list = vms_list self.vms_list = vms_list
self.vms_in_table = vms_in_table self.vms_in_table = vms_in_table
self.table.setSortingEnabled(True) self.table.setSortingEnabled(True)
progress.hide()
def showhide_vms(self): def showhide_vms(self):
if not self.search: if not self.search:
for row_no in range(self.table.rowCount()): for row_no in range(self.table.rowCount()):