Fixes in ProgressDialogs and settings window close
This commit is contained in:
parent
2347f75633
commit
38051ad243
@ -467,6 +467,7 @@ class VmManagerWindow(ui_qubemanager.Ui_VmManagerWindow, QtGui.QMainWindow):
|
|||||||
|
|
||||||
# It needs to store threads until they finish
|
# It needs to store threads until they finish
|
||||||
self.threads_list = []
|
self.threads_list = []
|
||||||
|
self.progress = None
|
||||||
|
|
||||||
# Check Updates Timer
|
# Check Updates Timer
|
||||||
timer = QtCore.QTimer(self)
|
timer = QtCore.QTimer(self)
|
||||||
@ -477,12 +478,17 @@ class VmManagerWindow(ui_qubemanager.Ui_VmManagerWindow, QtGui.QMainWindow):
|
|||||||
def clear_threads(self):
|
def clear_threads(self):
|
||||||
for thread in self.threads_list:
|
for thread in self.threads_list:
|
||||||
if thread.isFinished():
|
if thread.isFinished():
|
||||||
|
if self.progress:
|
||||||
|
self.progress.hide()
|
||||||
|
self.progress = None
|
||||||
|
|
||||||
if thread.error:
|
if thread.error:
|
||||||
(title, msg) = thread.error
|
(title, msg) = thread.error
|
||||||
QtGui.QMessageBox.warning(
|
QtGui.QMessageBox.warning(
|
||||||
None,
|
None,
|
||||||
self.tr(title),
|
self.tr(title),
|
||||||
self.tr("ERROR: {0}").format(msg))
|
self.tr(msg))
|
||||||
|
|
||||||
self.threads_list.remove(thread)
|
self.threads_list.remove(thread)
|
||||||
|
|
||||||
def closeEvent(self, event):
|
def closeEvent(self, event):
|
||||||
@ -792,6 +798,14 @@ class VmManagerWindow(ui_qubemanager.Ui_VmManagerWindow, QtGui.QMainWindow):
|
|||||||
if not ok or clone_name == "":
|
if not ok or clone_name == "":
|
||||||
return
|
return
|
||||||
|
|
||||||
|
self.progress = QtGui.QProgressDialog(
|
||||||
|
self.tr(
|
||||||
|
"Cloning Qube..."), "", 0, 0)
|
||||||
|
self.progress.setCancelButton(None)
|
||||||
|
self.progress.setModal(True)
|
||||||
|
self.thread_closes = True
|
||||||
|
self.progress.show()
|
||||||
|
|
||||||
thread = common_threads.CloneVMThread(vm, clone_name)
|
thread = common_threads.CloneVMThread(vm, clone_name)
|
||||||
thread.finished.connect(self.clear_threads)
|
thread.finished.connect(self.clear_threads)
|
||||||
self.threads_list.append(thread)
|
self.threads_list.append(thread)
|
||||||
|
@ -55,6 +55,7 @@ class RenameVMThread(QtCore.QThread):
|
|||||||
self.vm = vm
|
self.vm = vm
|
||||||
self.new_vm_name = new_vm_name
|
self.new_vm_name = new_vm_name
|
||||||
self.dependencies = dependencies
|
self.dependencies = dependencies
|
||||||
|
self.error = None
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
try:
|
try:
|
||||||
@ -95,8 +96,8 @@ class RenameVMThread(QtCore.QThread):
|
|||||||
class RefreshAppsVMThread(QtCore.QThread):
|
class RefreshAppsVMThread(QtCore.QThread):
|
||||||
def __init__(self, vm):
|
def __init__(self, vm):
|
||||||
QtCore.QThread.__init__(self)
|
QtCore.QThread.__init__(self)
|
||||||
self.error = None
|
|
||||||
self.vm = vm
|
self.vm = vm
|
||||||
|
self.error = None
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
try:
|
try:
|
||||||
@ -137,6 +138,8 @@ class VMSettingsWindow(ui_settingsdlg.Ui_SettingsDialog, QtGui.QDialog):
|
|||||||
self.vm = vm
|
self.vm = vm
|
||||||
self.qapp = qapp
|
self.qapp = qapp
|
||||||
self.threads_list = []
|
self.threads_list = []
|
||||||
|
self.progress = None
|
||||||
|
self.thread_closes = False
|
||||||
try:
|
try:
|
||||||
self.source_vm = self.vm.template
|
self.source_vm = self.vm.template
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
@ -225,15 +228,22 @@ class VMSettingsWindow(ui_settingsdlg.Ui_SettingsDialog, QtGui.QDialog):
|
|||||||
def clear_threads(self):
|
def clear_threads(self):
|
||||||
for thread in self.threads_list:
|
for thread in self.threads_list:
|
||||||
if thread.isFinished():
|
if thread.isFinished():
|
||||||
|
if self.progress:
|
||||||
|
self.progress.hide()
|
||||||
|
self.progress = None
|
||||||
|
|
||||||
if thread.error:
|
if thread.error:
|
||||||
(title, msg) = thread.error
|
(title, msg) = thread.error
|
||||||
QtGui.QMessageBox.warning(
|
QtGui.QMessageBox.warning(
|
||||||
None,
|
None,
|
||||||
self.tr(title),
|
self.tr(title),
|
||||||
self.tr("ERROR: {0}").format(msg))
|
self.tr(msg))
|
||||||
|
|
||||||
self.threads_list.remove(thread)
|
self.threads_list.remove(thread)
|
||||||
|
|
||||||
|
if self.thread_closes:
|
||||||
|
self.done(0)
|
||||||
|
|
||||||
def keyPressEvent(self, event): # pylint: disable=invalid-name
|
def keyPressEvent(self, event): # pylint: disable=invalid-name
|
||||||
if event.key() == QtCore.Qt.Key_Enter \
|
if event.key() == QtCore.Qt.Key_Enter \
|
||||||
or event.key() == QtCore.Qt.Key_Return:
|
or event.key() == QtCore.Qt.Key_Return:
|
||||||
@ -555,9 +565,16 @@ class VMSettingsWindow(ui_settingsdlg.Ui_SettingsDialog, QtGui.QDialog):
|
|||||||
thread = RenameVMThread(self.vm, new_vm_name, dependencies)
|
thread = RenameVMThread(self.vm, new_vm_name, dependencies)
|
||||||
self.threads_list.append(thread)
|
self.threads_list.append(thread)
|
||||||
thread.finished.connect(self.clear_threads)
|
thread.finished.connect(self.clear_threads)
|
||||||
|
|
||||||
|
self.progress = QtGui.QProgressDialog(
|
||||||
|
self.tr(
|
||||||
|
"Renaming Qube..."), "", 0, 0)
|
||||||
|
self.progress.setCancelButton(None)
|
||||||
|
self.progress.setModal(True)
|
||||||
|
self.thread_closes = True
|
||||||
|
self.progress.show()
|
||||||
|
|
||||||
thread.start()
|
thread.start()
|
||||||
thread.wait()
|
|
||||||
#self.done(0)
|
|
||||||
|
|
||||||
def remove_vm(self):
|
def remove_vm(self):
|
||||||
|
|
||||||
@ -606,6 +623,15 @@ class VMSettingsWindow(ui_settingsdlg.Ui_SettingsDialog, QtGui.QDialog):
|
|||||||
thread = common_threads.CloneVMThread(self.vm, cloned_vm_name)
|
thread = common_threads.CloneVMThread(self.vm, cloned_vm_name)
|
||||||
thread.finished.connect(self.clear_threads)
|
thread.finished.connect(self.clear_threads)
|
||||||
self.threads_list.append(thread)
|
self.threads_list.append(thread)
|
||||||
|
|
||||||
|
self.progress = QtGui.QProgressDialog(
|
||||||
|
self.tr(
|
||||||
|
"Cloning Qube..."), "", 0, 0)
|
||||||
|
self.progress.setCancelButton(None)
|
||||||
|
self.progress.setModal(True)
|
||||||
|
self.thread_closes = True
|
||||||
|
self.progress.show()
|
||||||
|
|
||||||
thread.start()
|
thread.start()
|
||||||
|
|
||||||
######### advanced tab
|
######### advanced tab
|
||||||
|
Loading…
Reference in New Issue
Block a user