Jelajahi Sumber

- remade visibility as threaded - it seems that I can't really squeeze more performance from this

Marius Stanciu 5 tahun lalu
induk
melakukan
6b247ff5e1
3 mengubah file dengan 22 tambahan dan 12 penghapusan
  1. 1 0
      AppGUI/MainGUI.py
  2. 20 12
      AppObjects/FlatCAMObj.py
  3. 1 0
      CHANGELOG.md

+ 1 - 0
AppGUI/MainGUI.py

@@ -2495,6 +2495,7 @@ class MainGUI(QtWidgets.QMainWindow):
                 if key == QtCore.Qt.Key_Space:
                     for select in selected:
                         select.ui.plot_cb.toggle()
+                        QtWidgets.QApplication.processEvents()
                     self.app.collection.update_view()
                     self.app.delete_selection_shape()
 

+ 20 - 12
AppObjects/FlatCAMObj.py

@@ -464,20 +464,28 @@ class FlatCAMObj(QtCore.QObject):
     def visible(self, value, threaded=True):
         log.debug("FlatCAMObj.visible()")
 
+        current_visibility = self.shapes.visible
         # self.shapes.visible = value   # maybe this is slower in VisPy? use enabled property?
-        if self.shapes.visible is True:
-            if value is False:
-                self.shapes.visible = False
-        else:
-            if value is True:
-                self.shapes.visible = True
 
-        if self.app.is_legacy is False:
-            # Not all object types has annotations
-            try:
-                self.annotation.visible = value
-            except Exception:
-                pass
+        def task(current_visibility):
+            if current_visibility is True:
+                if value is False:
+                    self.shapes.visible = False
+            else:
+                if value is True:
+                    self.shapes.visible = True
+
+            if self.app.is_legacy is False:
+                # Not all object types has annotations
+                try:
+                    self.annotation.visible = value
+                except Exception:
+                    pass
+
+        if threaded:
+            self.app.worker_task.emit({'fcn': task, 'params': [current_visibility]})
+        else:
+            task(current_visibility)
 
     @property
     def drawing_tolerance(self):

+ 1 - 0
CHANGELOG.md

@@ -31,6 +31,7 @@ CHANGELOG for FlatCAM beta
 - added a label in status bar that will toggle the Preferences tab
 - made some changes such that that the label in status bar for toggling the Preferences Tab will be updated in various cases of closing the tab
 - changed colors for the status bar labels and added some of the new icons in the gray version
+- remade visibility as threaded - it seems that I can't really squeeze more performance from this
 
 31.05.2020