Преглед изворни кода

Merge remote-tracking branch 'origin/pr/166'

* origin/pr/166:
  Refactored QThread classes for more clarity and less code duplication
  Fixed inconsisted icon in Qube Manager messages
Marek Marczykowski-Górecki пре 5 година
родитељ
комит
6585ab4f29
2 измењених фајлова са 24 додато и 27 уклоњено
  1. 10 7
      qubesmanager/common_threads.py
  2. 14 20
      qubesmanager/qube_manager.py

+ 10 - 7
qubesmanager/common_threads.py

@@ -36,12 +36,16 @@ def busy_cursor():
 
 
 # pylint: disable=too-few-public-methods
-class RemoveVMThread(QtCore.QThread):
+class QubesThread(QtCore.QThread):
     def __init__(self, vm):
         QtCore.QThread.__init__(self)
         self.vm = vm
         self.msg = None
+        self.msg_is_success = False
 
+
+# pylint: disable=too-few-public-methods
+class RemoveVMThread(QubesThread):
     def run(self):
         try:
             del self.vm.app.domains[self.vm.name]
@@ -50,16 +54,15 @@ class RemoveVMThread(QtCore.QThread):
 
 
 # pylint: disable=too-few-public-methods
-class CloneVMThread(QtCore.QThread):
-    def __init__(self, src_vm, dst_name):
-        QtCore.QThread.__init__(self)
-        self.src_vm = src_vm
+class CloneVMThread(QubesThread):
+    def __init__(self, vm, dst_name):
+        super(CloneVMThread, self).__init__(vm)
         self.dst_name = dst_name
-        self.msg = None
 
     def run(self):
         try:
-            self.src_vm.app.clone_vm(self.src_vm, self.dst_name)
+            self.vm.app.clone_vm(self.vm, self.dst_name)
             self.msg = ("Sucess", "The qube was cloned sucessfully.")
+            self.msg_is_success = True
         except exc.QubesException as ex:
             self.msg = ("Error while cloning qube!", str(ex))

+ 14 - 20
qubesmanager/qube_manager.py

@@ -264,12 +264,7 @@ class VmShutdownMonitor(QtCore.QObject):
 
 
 # pylint: disable=too-few-public-methods
-class StartVMThread(QtCore.QThread):
-    def __init__(self, vm):
-        QtCore.QThread.__init__(self)
-        self.vm = vm
-        self.msg = None
-
+class StartVMThread(common_threads.QubesThread):
     def run(self):
         try:
             self.vm.start()
@@ -278,12 +273,7 @@ class StartVMThread(QtCore.QThread):
 
 
 # pylint: disable=too-few-public-methods
-class UpdateVMThread(QtCore.QThread):
-    def __init__(self, vm):
-        QtCore.QThread.__init__(self)
-        self.vm = vm
-        self.msg = None
-
+class UpdateVMThread(common_threads.QubesThread):
     def run(self):
         try:
             if self.vm.qid == 0:
@@ -316,12 +306,10 @@ class UpdateVMThread(QtCore.QThread):
 
 
 # pylint: disable=too-few-public-methods
-class RunCommandThread(QtCore.QThread):
+class RunCommandThread(common_threads.QubesThread):
     def __init__(self, vm, command_to_run):
-        QtCore.QThread.__init__(self)
-        self.vm = vm
+        super(RunCommandThread, self).__init__(vm)
         self.command_to_run = command_to_run
-        self.msg = None
 
     def run(self):
         try:
@@ -533,10 +521,16 @@ class VmManagerWindow(ui_qubemanager.Ui_VmManagerWindow, QtGui.QMainWindow):
 
                 if thread.msg:
                     (title, msg) = thread.msg
-                    QtGui.QMessageBox.warning(
-                        None,
-                        self.tr(title),
-                        self.tr(msg))
+                    if thread.msg_is_success:
+                        QtGui.QMessageBox.information(
+                            None,
+                            self.tr(title),
+                            self.tr(msg))
+                    else:
+                        QtGui.QMessageBox.warning(
+                            None,
+                            self.tr(title),
+                            self.tr(msg))
 
                 self.threads_list.remove(thread)
                 return