Merge branch 'master' of github.com:Ultimaker/Cura

This commit is contained in:
Jack Ha 2017-02-20 09:45:51 +01:00
commit cd54552498
12 changed files with 364 additions and 350 deletions

View file

@ -704,7 +704,7 @@ class CuraApplication(QtApplication):
sceneBoundingBoxChanged = pyqtSignal() sceneBoundingBoxChanged = pyqtSignal()
@pyqtProperty(bool, notify = activityChanged) @pyqtProperty(bool, notify = activityChanged)
def getPlatformActivity(self): def platformActivity(self):
return self._platform_activity return self._platform_activity
@pyqtProperty(str, notify = sceneBoundingBoxChanged) @pyqtProperty(str, notify = sceneBoundingBoxChanged)

View file

@ -1,19 +1,19 @@
# Copyright (c) 2016 Ultimaker B.V. # Copyright (c) 2017 Ultimaker B.V.
# Uranium is released under the terms of the AGPLv3 or higher. # Uranium is released under the terms of the AGPLv3 or higher.
from UM.Settings.Models.SettingVisibilityHandler import SettingVisibilityHandler import UM.Settings.Models.SettingVisibilityHandler
class MaterialSettingsVisibilityHandler(SettingVisibilityHandler): class MaterialSettingsVisibilityHandler(UM.Settings.Models.SettingVisibilityHandler.SettingVisibilityHandler):
def __init__(self, parent = None, *args, **kwargs): def __init__(self, parent = None, *args, **kwargs):
super().__init__(parent = parent, *args, **kwargs) super().__init__(parent = parent, *args, **kwargs)
material_settings = set([ material_settings = {
"default_material_print_temperature", "default_material_print_temperature",
"material_bed_temperature", "material_bed_temperature",
"material_standby_temperature", "material_standby_temperature",
"cool_fan_speed", "cool_fan_speed",
"retraction_amount", "retraction_amount",
"retraction_speed", "retraction_speed",
]) }
self.setVisible(material_settings) self.setVisible(material_settings)

View file

@ -182,7 +182,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
self._dialog.setMachineType(machine_type) self._dialog.setMachineType(machine_type)
self._dialog.setExtruders(extruders) self._dialog.setExtruders(extruders)
self._dialog.setVariantType(variant_type_name) self._dialog.setVariantType(variant_type_name)
self._dialog.setHasObjectsOnPlate(Application.getInstance().getPlatformActivity) self._dialog.setHasObjectsOnPlate(Application.getInstance().platformActivity)
self._dialog.show() self._dialog.show()
# Block until the dialog is closed. # Block until the dialog is closed.

View file

@ -247,7 +247,7 @@ class CuraEngineBackend(Backend):
return return
if job.getResult() == StartSliceJob.StartJobResult.MaterialIncompatible: if job.getResult() == StartSliceJob.StartJobResult.MaterialIncompatible:
if Application.getInstance().getPlatformActivity: if Application.getInstance().platformActivity:
self._error_message = Message(catalog.i18nc("@info:status", self._error_message = Message(catalog.i18nc("@info:status",
"The selected material is incompatible with the selected machine or configuration.")) "The selected material is incompatible with the selected machine or configuration."))
self._error_message.show() self._error_message.show()
@ -257,7 +257,7 @@ class CuraEngineBackend(Backend):
return return
if job.getResult() == StartSliceJob.StartJobResult.SettingError: if job.getResult() == StartSliceJob.StartJobResult.SettingError:
if Application.getInstance().getPlatformActivity: if Application.getInstance().platformActivity:
extruders = list(ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId())) extruders = list(ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId()))
error_keys = [] error_keys = []
for extruder in extruders: for extruder in extruders:
@ -278,7 +278,7 @@ class CuraEngineBackend(Backend):
return return
if job.getResult() == StartSliceJob.StartJobResult.BuildPlateError: if job.getResult() == StartSliceJob.StartJobResult.BuildPlateError:
if Application.getInstance().getPlatformActivity: if Application.getInstance().platformActivity:
self._error_message = Message(catalog.i18nc("@info:status", "Unable to slice because the prime tower or prime position(s) are invalid.")) self._error_message = Message(catalog.i18nc("@info:status", "Unable to slice because the prime tower or prime position(s) are invalid."))
self._error_message.show() self._error_message.show()
self.backendStateChange.emit(BackendState.Error) self.backendStateChange.emit(BackendState.Error)
@ -286,7 +286,7 @@ class CuraEngineBackend(Backend):
self.backendStateChange.emit(BackendState.NotStarted) self.backendStateChange.emit(BackendState.NotStarted)
if job.getResult() == StartSliceJob.StartJobResult.NothingToSlice: if job.getResult() == StartSliceJob.StartJobResult.NothingToSlice:
if Application.getInstance().getPlatformActivity: if Application.getInstance().platformActivity:
self._error_message = Message(catalog.i18nc("@info:status", "Nothing to slice because none of the models fit the build volume. Please scale or rotate models to fit.")) self._error_message = Message(catalog.i18nc("@info:status", "Nothing to slice because none of the models fit the build volume. Please scale or rotate models to fit."))
self._error_message.show() self._error_message.show()
self.backendStateChange.emit(BackendState.Error) self.backendStateChange.emit(BackendState.Error)

View file

@ -325,7 +325,7 @@ class LayerView(View):
self._old_composite_shader = self._composite_pass.getCompositeShader() self._old_composite_shader = self._composite_pass.getCompositeShader()
self._composite_pass.setCompositeShader(self._layerview_composite_shader) self._composite_pass.setCompositeShader(self._layerview_composite_shader)
if self.getLayerViewType() == self.LAYER_VIEW_TYPE_LINE_TYPE: if self.getLayerViewType() == self.LAYER_VIEW_TYPE_LINE_TYPE or self._compatibility_mode:
self.enableLegend() self.enableLegend()
elif event.type == Event.ViewDeactivateEvent: elif event.type == Event.ViewDeactivateEvent:

View file

@ -75,7 +75,7 @@ Item
border.color: UM.Theme.getColor("slider_groove_border") border.color: UM.Theme.getColor("slider_groove_border")
color: UM.Theme.getColor("tool_panel_background") color: UM.Theme.getColor("tool_panel_background")
visible: UM.LayerView.getLayerActivity && Printer.getPlatformActivity ? true : false visible: UM.LayerView.layerActivity && Printer.platformActivity ? true : false
TextField TextField
{ {
@ -250,7 +250,7 @@ Item
UM.Preferences.setValue("layerview/extruder0_opacity", checked ? 1.0 : 0.0); UM.Preferences.setValue("layerview/extruder0_opacity", checked ? 1.0 : 0.0);
} }
text: "Extruder 1" text: "Extruder 1"
visible: !UM.LayerView.compatibilityMode && (UM.LayerView.getExtruderCount >= 1) visible: !UM.LayerView.compatibilityMode && (UM.LayerView.extruderCount >= 1)
} }
CheckBox { CheckBox {
checked: view_settings.extruder1_checked checked: view_settings.extruder1_checked
@ -258,7 +258,7 @@ Item
UM.Preferences.setValue("layerview/extruder1_opacity", checked ? 1.0 : 0.0); UM.Preferences.setValue("layerview/extruder1_opacity", checked ? 1.0 : 0.0);
} }
text: "Extruder 2" text: "Extruder 2"
visible: !UM.LayerView.compatibilityMode && (UM.LayerView.getExtruderCount >= 2) visible: !UM.LayerView.compatibilityMode && (UM.LayerView.extruderCount >= 2)
} }
CheckBox { CheckBox {
checked: view_settings.extruder2_checked checked: view_settings.extruder2_checked
@ -266,7 +266,7 @@ Item
UM.Preferences.setValue("layerview/extruder2_opacity", checked ? 1.0 : 0.0); UM.Preferences.setValue("layerview/extruder2_opacity", checked ? 1.0 : 0.0);
} }
text: "Extruder 3" text: "Extruder 3"
visible: !UM.LayerView.compatibilityMode && (UM.LayerView.getExtruderCount >= 3) visible: !UM.LayerView.compatibilityMode && (UM.LayerView.etruderCount >= 3)
} }
CheckBox { CheckBox {
checked: view_settings.extruder3_checked checked: view_settings.extruder3_checked
@ -274,11 +274,11 @@ Item
UM.Preferences.setValue("layerview/extruder3_opacity", checked ? 1.0 : 0.0); UM.Preferences.setValue("layerview/extruder3_opacity", checked ? 1.0 : 0.0);
} }
text: "Extruder 4" text: "Extruder 4"
visible: !UM.LayerView.compatibilityMode && (UM.LayerView.getExtruderCount >= 4) visible: !UM.LayerView.compatibilityMode && (UM.LayerView.extruderCount >= 4)
} }
Label { Label {
text: "Other extruders always visible" text: "Other extruders always visible"
visible: !UM.LayerView.compatibilityMode && (UM.LayerView.getExtruderCount >= 5) visible: !UM.LayerView.compatibilityMode && (UM.LayerView.extruderCount >= 5)
} }
CheckBox { CheckBox {
checked: view_settings.show_travel_moves checked: view_settings.show_travel_moves

View file

@ -20,7 +20,7 @@ class LayerViewProxy(QObject):
preferencesChanged = pyqtSignal() preferencesChanged = pyqtSignal()
@pyqtProperty(bool, notify = activityChanged) @pyqtProperty(bool, notify = activityChanged)
def getLayerActivity(self): def layerActivity(self):
active_view = self._controller.getActiveView() active_view = self._controller.getActiveView()
if type(active_view) == LayerView.LayerView.LayerView: if type(active_view) == LayerView.LayerView.LayerView:
return active_view.getActivity() return active_view.getActivity()
@ -79,7 +79,7 @@ class LayerViewProxy(QObject):
if type(active_view) == LayerView.LayerView.LayerView: if type(active_view) == LayerView.LayerView.LayerView:
active_view.setLayerViewType(layer_view_type) active_view.setLayerViewType(layer_view_type)
@pyqtProperty(bool) @pyqtSlot(result = int)
def getLayerViewType(self): def getLayerViewType(self):
active_view = self._controller.getActiveView() active_view = self._controller.getActiveView()
if type(active_view) == LayerView.LayerView.LayerView: if type(active_view) == LayerView.LayerView.LayerView:
@ -124,7 +124,7 @@ class LayerViewProxy(QObject):
active_view.setShowInfill(show) active_view.setShowInfill(show)
@pyqtProperty(int, notify = globalStackChanged) @pyqtProperty(int, notify = globalStackChanged)
def getExtruderCount(self): def extruderCount(self):
active_view = self._controller.getActiveView() active_view = self._controller.getActiveView()
if type(active_view) == LayerView.LayerView.LayerView: if type(active_view) == LayerView.LayerView.LayerView:
return active_view.getExtruderCount() return active_view.getExtruderCount()

View file

@ -73,22 +73,26 @@ UM.Dialog
anchors.topMargin: UM.Theme.getSize("default_margin").height anchors.topMargin: UM.Theme.getSize("default_margin").height
} }
ScrollView
{
anchors.top: creditsNotes.bottom
anchors.topMargin: UM.Theme.getSize("default_margin").height
width: parent.width
height: base.height - y - (2 * UM.Theme.getSize("default_margin").height + closeButton.height)
ListView ListView
{ {
id: projectsList id: projectsList
anchors.top: creditsNotes.bottom
anchors.topMargin: 10
width: parent.width width: parent.width
height: childrenRect.height
delegate: Row delegate: Row
{ {
Label Label
{ {
text: "<a href='%1' title='%2'>%2</a>".arg(model.url).arg(model.name) text: "<a href='%1' title='%2'>%2</a>".arg(model.url).arg(model.name)
width: projectsList.width * 0.25 width: (projectsList.width * 0.25) | 0
elide: Text.ElideRight elide: Text.ElideRight
onLinkActivated: Qt.openUrlExternally(link) onLinkActivated: Qt.openUrlExternally(link)
} }
@ -96,13 +100,13 @@ UM.Dialog
{ {
text: model.description text: model.description
elide: Text.ElideRight elide: Text.ElideRight
width: projectsList.width * 0.6 width: (projectsList.width * 0.6) | 0
} }
Label Label
{ {
text: model.license text: model.license
elide: Text.ElideRight elide: Text.ElideRight
width: projectsList.width * 0.15 width: (projectsList.width * 0.15) | 0
} }
} }
model: ListModel model: ListModel
@ -124,17 +128,21 @@ UM.Dialog
projectsModel.append({ name:"SciPy", description: catalog.i18nc("@label", "Support library for scientific computing "), license: "BSD-new", url: "https://www.scipy.org/" }); projectsModel.append({ name:"SciPy", description: catalog.i18nc("@label", "Support library for scientific computing "), license: "BSD-new", url: "https://www.scipy.org/" });
projectsModel.append({ name:"NumPy", description: catalog.i18nc("@label", "Support library for faster math"), license: "BSD", url: "http://www.numpy.org/" }); projectsModel.append({ name:"NumPy", description: catalog.i18nc("@label", "Support library for faster math"), license: "BSD", url: "http://www.numpy.org/" });
projectsModel.append({ name:"NumPy-STL", description: catalog.i18nc("@label", "Support library for handling STL files"), license: "BSD", url: "https://github.com/WoLpH/numpy-stl" }); projectsModel.append({ name:"NumPy-STL", description: catalog.i18nc("@label", "Support library for handling STL files"), license: "BSD", url: "https://github.com/WoLpH/numpy-stl" });
projectsModel.append({ name:"libSavitar", description: catalog.i18nc("@label", "Support library for handling 3MF files"), license: "AGPLv3", url: "https://github.com/ultimaker/libsavitar" });
projectsModel.append({ name:"PySerial", description: catalog.i18nc("@label", "Serial communication library"), license: "Python", url: "http://pyserial.sourceforge.net/" }); projectsModel.append({ name:"PySerial", description: catalog.i18nc("@label", "Serial communication library"), license: "Python", url: "http://pyserial.sourceforge.net/" });
projectsModel.append({ name:"python-zeroconf", description: catalog.i18nc("@label", "ZeroConf discovery library"), license: "LGPL", url: "https://github.com/jstasiak/python-zeroconf" }); projectsModel.append({ name:"python-zeroconf", description: catalog.i18nc("@label", "ZeroConf discovery library"), license: "LGPL", url: "https://github.com/jstasiak/python-zeroconf" });
projectsModel.append({ name:"Clipper", description: catalog.i18nc("@label", "Polygon clipping library"), license: "Boost", url: "http://www.angusj.com/delphi/clipper.php" }); projectsModel.append({ name:"Clipper", description: catalog.i18nc("@label", "Polygon clipping library"), license: "Boost", url: "http://www.angusj.com/delphi/clipper.php" });
projectsModel.append({ name:"Open Sans", description: catalog.i18nc("@label", "Font"), license: "Apache 2.0", url: "https://fonts.google.com/specimen/Open+Sans" }); projectsModel.append({ name:"Open Sans", description: catalog.i18nc("@label", "Font"), license: "Apache 2.0", url: "https://fonts.google.com/specimen/Open+Sans" });
projectsModel.append({ name:"Font-Awesome-SVG-PNG", description: catalog.i18nc("@label", "SVG icons"), license: "SIL OFL 1.1", url: "https://github.com/encharm/Font-Awesome-SVG-PNG" }); projectsModel.append({ name:"Font-Awesome-SVG-PNG", description: catalog.i18nc("@label", "SVG icons"), license: "SIL OFL 1.1", url: "https://github.com/encharm/Font-Awesome-SVG-PNG" });
} }
} }
}
rightButtons: Button rightButtons: Button
{ {
//: Close about dialog button //: Close about dialog button
id: closeButton
text: catalog.i18nc("@action:button","Close"); text: catalog.i18nc("@action:button","Close");
onClicked: base.visible = false; onClicked: base.visible = false;

View file

@ -12,7 +12,7 @@ import Cura 1.0 as Cura
Item { Item {
id: base id: base
property bool activity: Printer.getPlatformActivity property bool activity: Printer.platformActivity
property string fileBaseName property string fileBaseName
property variant activeMachineName: Cura.MachineManager.activeMachineName property variant activeMachineName: Cura.MachineManager.activeMachineName

View file

@ -80,7 +80,7 @@ Item
} }
} }
property bool activity: Printer.getPlatformActivity; property bool activity: Printer.platformActivity;
property int totalHeight: childrenRect.height + UM.Theme.getSize("default_margin").height property int totalHeight: childrenRect.height + UM.Theme.getSize("default_margin").height
property string fileBaseName property string fileBaseName
property string statusText: property string statusText:

View file

@ -58,6 +58,11 @@ UM.PreferencesPage
} }
} }
ScrollView
{
width: parent.width
height: parent.height
Column Column
{ {
//: Model used to check if a plugin exists //: Model used to check if a plugin exists
@ -392,4 +397,5 @@ UM.PreferencesPage
} }
} }
} }
}
} }

View file

@ -14,7 +14,7 @@ Item {
property real progress: UM.Backend.progress; property real progress: UM.Backend.progress;
property int backendState: UM.Backend.state; property int backendState: UM.Backend.state;
property bool activity: Printer.getPlatformActivity; property bool activity: Printer.platformActivity;
property int totalHeight: childrenRect.height + UM.Theme.getSize("default_margin").height property int totalHeight: childrenRect.height + UM.Theme.getSize("default_margin").height
property string fileBaseName property string fileBaseName
property string statusText: property string statusText: