mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-07 23:17:32 -06:00
Add few more cases where Camera changes caused un-needed updates
This commit is contained in:
parent
22b70e1a34
commit
aef89e2bd3
3 changed files with 14 additions and 6 deletions
|
@ -5,6 +5,7 @@ from PyQt5.QtCore import QTimer
|
||||||
|
|
||||||
from UM.Application import Application
|
from UM.Application import Application
|
||||||
from UM.Qt.ListModel import ListModel
|
from UM.Qt.ListModel import ListModel
|
||||||
|
from UM.Scene.Camera import Camera
|
||||||
from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator
|
from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator
|
||||||
from UM.Scene.SceneNode import SceneNode
|
from UM.Scene.SceneNode import SceneNode
|
||||||
from UM.Scene.Selection import Selection
|
from UM.Scene.Selection import Selection
|
||||||
|
@ -19,19 +20,24 @@ class ObjectsModel(ListModel):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
Application.getInstance().getController().getScene().sceneChanged.connect(self._updateDelayed)
|
Application.getInstance().getController().getScene().sceneChanged.connect(self._updateSceneDelayed)
|
||||||
Application.getInstance().getPreferences().preferenceChanged.connect(self._updateDelayed)
|
Application.getInstance().getPreferences().preferenceChanged.connect(self._updateDelayed)
|
||||||
|
|
||||||
self._update_timer = QTimer()
|
self._update_timer = QTimer()
|
||||||
self._update_timer.setInterval(100)
|
self._update_timer.setInterval(200)
|
||||||
self._update_timer.setSingleShot(True)
|
self._update_timer.setSingleShot(True)
|
||||||
self._update_timer.timeout.connect(self._update)
|
self._update_timer.timeout.connect(self._update)
|
||||||
|
|
||||||
self._build_plate_number = -1
|
self._build_plate_number = -1
|
||||||
|
|
||||||
def setActiveBuildPlate(self, nr):
|
def setActiveBuildPlate(self, nr):
|
||||||
self._build_plate_number = nr
|
if self._build_plate_number != nr:
|
||||||
self._update()
|
self._build_plate_number = nr
|
||||||
|
self._update()
|
||||||
|
|
||||||
|
def _updateSceneDelayed(self, source):
|
||||||
|
if not isinstance(source, Camera):
|
||||||
|
self._update_timer.start()
|
||||||
|
|
||||||
def _updateDelayed(self, *args):
|
def _updateDelayed(self, *args):
|
||||||
self._update_timer.start()
|
self._update_timer.start()
|
||||||
|
|
|
@ -3,6 +3,7 @@ from UM.Logger import Logger
|
||||||
from PyQt5.QtCore import Qt, pyqtSlot, QObject
|
from PyQt5.QtCore import Qt, pyqtSlot, QObject
|
||||||
from PyQt5.QtWidgets import QApplication
|
from PyQt5.QtWidgets import QApplication
|
||||||
|
|
||||||
|
from UM.Scene.Camera import Camera
|
||||||
from cura.ObjectsModel import ObjectsModel
|
from cura.ObjectsModel import ObjectsModel
|
||||||
from cura.Machines.Models.MultiBuildPlateModel import MultiBuildPlateModel
|
from cura.Machines.Models.MultiBuildPlateModel import MultiBuildPlateModel
|
||||||
|
|
||||||
|
@ -33,7 +34,7 @@ class CuraSceneController(QObject):
|
||||||
source = args[0]
|
source = args[0]
|
||||||
else:
|
else:
|
||||||
source = None
|
source = None
|
||||||
if not isinstance(source, SceneNode):
|
if not isinstance(source, SceneNode) or isinstance(source, Camera):
|
||||||
return
|
return
|
||||||
max_build_plate = self._calcMaxBuildPlate()
|
max_build_plate = self._calcMaxBuildPlate()
|
||||||
changed = False
|
changed = False
|
||||||
|
|
|
@ -10,6 +10,7 @@ from time import time
|
||||||
from typing import Any, cast, Dict, List, Optional, Set, TYPE_CHECKING
|
from typing import Any, cast, Dict, List, Optional, Set, TYPE_CHECKING
|
||||||
|
|
||||||
from UM.Backend.Backend import Backend, BackendState
|
from UM.Backend.Backend import Backend, BackendState
|
||||||
|
from UM.Scene.Camera import Camera
|
||||||
from UM.Scene.SceneNode import SceneNode
|
from UM.Scene.SceneNode import SceneNode
|
||||||
from UM.Signal import Signal
|
from UM.Signal import Signal
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
|
@ -476,7 +477,7 @@ class CuraEngineBackend(QObject, Backend):
|
||||||
#
|
#
|
||||||
# \param source The scene node that was changed.
|
# \param source The scene node that was changed.
|
||||||
def _onSceneChanged(self, source: SceneNode) -> None:
|
def _onSceneChanged(self, source: SceneNode) -> None:
|
||||||
if not isinstance(source, SceneNode):
|
if not isinstance(source, SceneNode) or isinstance(source, Camera):
|
||||||
return
|
return
|
||||||
|
|
||||||
# This case checks if the source node is a node that contains GCode. In this case the
|
# This case checks if the source node is a node that contains GCode. In this case the
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue