Merge branch '15.06' of https://github.com/Ultimaker/Cura into 15.06

Conflicts:
	plugins/LayerView/LayerView.py
This commit is contained in:
Jaime van Kessel 2015-06-05 17:43:34 +02:00
commit 66e50ceb37
4 changed files with 27 additions and 5 deletions

View file

@ -162,6 +162,7 @@ class CuraApplication(QtApplication):
for file in self.getCommandLineOption("file", []): for file in self.getCommandLineOption("file", []):
job = ReadMeshJob(os.path.abspath(file)) job = ReadMeshJob(os.path.abspath(file))
job.finished.connect(self._onFileLoaded)
job.start() job.start()
self.exec_() self.exec_()
@ -447,3 +448,15 @@ class CuraApplication(QtApplication):
def _onMessageActionTriggered(self, message, action): def _onMessageActionTriggered(self, message, action):
if action == "eject": if action == "eject":
self.getStorageDevice("LocalFileStorage").ejectRemovableDrive(message._sdcard) self.getStorageDevice("LocalFileStorage").ejectRemovableDrive(message._sdcard)
def _onFileLoaded(self, job):
mesh = job.getResult()
if mesh != None:
node = SceneNode()
node.setSelectable(True)
node.setMeshData(mesh)
node.setName(os.path.basename(job.getFileName()))
op = AddSceneNodeOperation(node, self.getController().getScene().getRoot())
op.push()

View file

@ -8,6 +8,8 @@ from UM.Resources import Resources
from UM.Event import Event, KeyEvent from UM.Event import Event, KeyEvent
from UM.Signal import Signal from UM.Signal import Signal
from . import LayerViewProxy from . import LayerViewProxy
from UM.Scene.Selection import Selection
from UM.Math.Color import Color
## View used to display g-code paths. ## View used to display g-code paths.
class LayerView(View): class LayerView(View):
@ -35,16 +37,19 @@ class LayerView(View):
renderer = self.getRenderer() renderer = self.getRenderer()
renderer.setRenderSelection(False) renderer.setRenderSelection(False)
## Recalculate num max layers
#self.calculateMaxLayers()
if not self._material: if not self._material:
self._material = renderer.createMaterial(Resources.getPath(Resources.ShadersLocation, "basic.vert"), Resources.getPath(Resources.ShadersLocation, "vertexcolor.frag")) self._material = renderer.createMaterial(Resources.getPath(Resources.ShadersLocation, "basic.vert"), Resources.getPath(Resources.ShadersLocation, "vertexcolor.frag"))
self._material.setUniformValue("u_color", [1.0, 0.0, 0.0, 1.0]) self._material.setUniformValue("u_color", [1.0, 0.0, 0.0, 1.0])
self._selection_material = renderer.createMaterial(Resources.getPath(Resources.ShadersLocation, "basic.vert"), Resources.getPath(Resources.ShadersLocation, "color.frag"))
self._selection_material.setUniformValue("u_color", Color(35, 35, 35, 128))
for node in DepthFirstIterator(scene.getRoot()): for node in DepthFirstIterator(scene.getRoot()):
if not node.render(renderer): if not node.render(renderer):
if node.getMeshData() and node.isVisible(): if node.getMeshData() and node.isVisible():
if Selection.isSelected(node):
renderer.queueNode(node, material = self._selection_material, transparent = True)
try: try:
layer_data = node.getMeshData().layerData layer_data = node.getMeshData().layerData
except AttributeError: except AttributeError:

View file

@ -244,7 +244,10 @@ class PrinterConnection(SignalEmitter):
self._connect_thread.join() self._connect_thread.join()
if self._serial is not None: if self._serial is not None:
self.setIsConnected(False) self.setIsConnected(False)
try:
self._listen_thread.join() self._listen_thread.join()
except:
pass
self._serial.close() self._serial.close()
self._serial = None self._serial = None

View file

@ -40,7 +40,8 @@ class USBPrinterManager(QObject, SignalEmitter, Extension):
self._error_message = "" self._error_message = ""
## Add menu item to top menu of the application. ## Add menu item to top menu of the application.
self.addMenuItem(i18n_catalog.i18n("Update Firmware"), self.updateAllFirmware) self.setMenuName("Firmware")
self.addMenuItem(i18n_catalog.i18n("Update"), self.updateAllFirmware)
pyqtError = pyqtSignal(str, arguments = ["amount"]) pyqtError = pyqtSignal(str, arguments = ["amount"])
processingProgress = pyqtSignal(float, arguments = ["amount"]) processingProgress = pyqtSignal(float, arguments = ["amount"])