mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-05-09 03:49:00 +08:00
Merge branch 'master' of github.com:Ultimaker/Cura
This commit is contained in:
commit
433d45cdae
18
cura/CuraApplication.py
Normal file → Executable file
18
cura/CuraApplication.py
Normal file → Executable file
@ -1094,18 +1094,6 @@ class CuraApplication(QtApplication):
|
||||
|
||||
fileLoaded = pyqtSignal(str)
|
||||
|
||||
def _onFileLoaded(self, job):
|
||||
nodes = job.getResult()
|
||||
for node in nodes:
|
||||
if node is not None:
|
||||
self.fileLoaded.emit(job.getFileName())
|
||||
node.setSelectable(True)
|
||||
node.setName(os.path.basename(job.getFileName()))
|
||||
op = AddSceneNodeOperation(node, self.getController().getScene().getRoot())
|
||||
op.push()
|
||||
|
||||
self.getController().getScene().sceneChanged.emit(node) #Force scene change.
|
||||
|
||||
def _onJobFinished(self, job):
|
||||
if type(job) is not ReadMeshJob or not job.getResult():
|
||||
return
|
||||
@ -1133,10 +1121,8 @@ class CuraApplication(QtApplication):
|
||||
else:
|
||||
Logger.log("w", "Could not find a mesh in reloaded node.")
|
||||
|
||||
def _openFile(self, file):
|
||||
job = ReadMeshJob(os.path.abspath(file))
|
||||
job.finished.connect(self._onFileLoaded)
|
||||
job.start()
|
||||
def _openFile(self, filename):
|
||||
self.readLocalFile(QUrl.fromLocalFile(filename))
|
||||
|
||||
def _addProfileReader(self, profile_reader):
|
||||
# TODO: Add the profile reader to the list of plug-ins that can be used when importing profiles.
|
||||
|
@ -342,11 +342,6 @@ class CuraEngineBackend(QObject, Backend):
|
||||
#
|
||||
# \param source The scene node that was changed.
|
||||
def _onSceneChanged(self, source):
|
||||
if self._tool_active:
|
||||
# do it later
|
||||
self._postponed_scene_change_sources.append(source)
|
||||
return
|
||||
|
||||
if type(source) is not SceneNode:
|
||||
return
|
||||
|
||||
@ -354,10 +349,8 @@ class CuraEngineBackend(QObject, Backend):
|
||||
if source == self._scene.getRoot():
|
||||
num_objects = 0
|
||||
for node in DepthFirstIterator(self._scene.getRoot()):
|
||||
# For now this seems to be a reliable method to check for nodes that impact slicing
|
||||
# From: SliceInfo, _onWriteStarted
|
||||
if type(node) is not SceneNode or not node.getMeshData():
|
||||
continue
|
||||
# Only count sliceable objects
|
||||
if node.callDecoration("isSliceable"):
|
||||
num_objects += 1
|
||||
if num_objects != self._last_num_objects:
|
||||
self._last_num_objects = num_objects
|
||||
@ -365,14 +358,18 @@ class CuraEngineBackend(QObject, Backend):
|
||||
else:
|
||||
return
|
||||
|
||||
self.determineAutoSlicing()
|
||||
|
||||
if not source.callDecoration("isGroup") and not root_scene_nodes_changed:
|
||||
if source.getMeshData() is None:
|
||||
return
|
||||
if source.getMeshData().getVertices() is None:
|
||||
return
|
||||
|
||||
if self._tool_active:
|
||||
# do it later, each source only has to be done once
|
||||
if source not in self._postponed_scene_change_sources:
|
||||
self._postponed_scene_change_sources.append(source)
|
||||
return
|
||||
|
||||
self.needsSlicing()
|
||||
self.stopSlicing()
|
||||
self._onChanged()
|
||||
@ -517,6 +514,7 @@ class CuraEngineBackend(QObject, Backend):
|
||||
# \param tool The tool that the user was using.
|
||||
def _onToolOperationStopped(self, tool):
|
||||
self._tool_active = False # React on scene change again
|
||||
self.determineAutoSlicing() # Switch timer on if appropriate
|
||||
# Process all the postponed scene changes
|
||||
while self._postponed_scene_change_sources:
|
||||
source = self._postponed_scene_change_sources.pop(0)
|
||||
|
3
plugins/SliceInfoPlugin/SliceInfo.py
Normal file → Executable file
3
plugins/SliceInfoPlugin/SliceInfo.py
Normal file → Executable file
@ -90,8 +90,7 @@ class SliceInfo(Extension):
|
||||
# Listing all files placed on the buildplate
|
||||
modelhashes = []
|
||||
for node in DepthFirstIterator(CuraApplication.getInstance().getController().getScene().getRoot()):
|
||||
if type(node) is not SceneNode or not node.getMeshData():
|
||||
continue
|
||||
if node.callDecoration("isSliceable"):
|
||||
modelhashes.append(node.getMeshData().getHash())
|
||||
|
||||
# Creating md5sums and formatting them as discussed on JIRA
|
||||
|
@ -262,6 +262,7 @@ Item
|
||||
id: reloadAllAction;
|
||||
text: catalog.i18nc("@action:inmenu menubar:file","Re&load All Models");
|
||||
iconName: "document-revert";
|
||||
shortcut: "F5"
|
||||
onTriggered: Printer.reloadAll();
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user