mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-07 06:57:28 -06:00
Merge branch 'master' of github.com:Ultimaker/Cura
This commit is contained in:
commit
cd54552498
12 changed files with 364 additions and 350 deletions
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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
|
||||||
|
@ -393,3 +398,4 @@ UM.PreferencesPage
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -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:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue