diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py
index 3e482dae8d..035fbc74f6 100644
--- a/cura/CuraApplication.py
+++ b/cura/CuraApplication.py
@@ -68,7 +68,7 @@ class CuraApplication(QtApplication):
if not hasattr(sys, "frozen"):
Resources.addSearchPath(os.path.join(os.path.abspath(os.path.dirname(__file__)), ".."))
- super().__init__(name = "cura", version = "15.09.82")
+ super().__init__(name = "cura", version = "15.09.85")
self.setWindowIcon(QIcon(Resources.getPath(Resources.Images, "cura-icon.png")))
@@ -90,6 +90,7 @@ class CuraApplication(QtApplication):
self._i18n_catalog = None
self._previous_active_tool = None
self._platform_activity = False
+ self._job_name = None
self.getMachineManager().activeMachineInstanceChanged.connect(self._onActiveMachineChanged)
self.getMachineManager().addMachineRequested.connect(self._onAddMachineRequested)
@@ -165,25 +166,21 @@ class CuraApplication(QtApplication):
self._physics = PlatformPhysics.PlatformPhysics(controller, self._volume)
camera = Camera("3d", root)
- camera.setPosition(Vector(-150, 150, 300))
+ camera.setPosition(Vector(0, 250, 900))
camera.setPerspective(True)
camera.lookAt(Vector(0, 0, 0))
+ controller.getScene().setActiveCamera("3d")
+
+ self.getController().getTool("CameraTool").setOrigin(Vector(0, 100, 0))
self._camera_animation = CameraAnimation.CameraAnimation()
self._camera_animation.setCameraTool(self.getController().getTool("CameraTool"))
- controller.getScene().setActiveCamera("3d")
-
self.showSplashMessage(self._i18n_catalog.i18nc("@info:progress", "Loading interface..."))
self.setMainQml(Resources.getPath(self.ResourceTypes.QmlFiles, "Cura.qml"))
self.initializeEngine()
- manager = self.getMachineManager()
- if not self.getMachineManager().getMachineInstances():
- self.requestAddPrinter.emit()
-
-
if self._engine.rootObjects:
self.closeSplash()
@@ -248,6 +245,17 @@ class CuraApplication(QtApplication):
self._platform_activity = True if count > 0 else False
self.activityChanged.emit()
+ @pyqtSlot(str)
+ def setJobName(self, name):
+ if self._job_name != name:
+ self._job_name = name
+ self.jobNameChanged.emit()
+
+ jobNameChanged = pyqtSignal()
+ @pyqtProperty(str, notify = jobNameChanged)
+ def jobName(self):
+ return self._job_name
+
## Remove an object from the scene
@pyqtSlot("quint64")
def deleteObject(self, object_id):
@@ -536,6 +544,8 @@ class CuraApplication(QtApplication):
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
diff --git a/cura_app.py b/cura_app.py
index 4bd49dc081..913270e895 100755
--- a/cura_app.py
+++ b/cura_app.py
@@ -13,5 +13,10 @@ sys.excepthook = exceptHook
import cura.CuraApplication
+if sys.platform == "win32" and hasattr(sys, "frozen"):
+ from UM.Resources import Resources
+ sys.stdout = open(Resources.getStoragePath(Resources.Resources, "stdout.log"), "w")
+ sys.stderr = open(Resources.getStoragePath(Resources.Resources, "stderr.log"), "w")
+
app = cura.CuraApplication.CuraApplication.getInstance()
app.run()
diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py
index 77fda73b43..68d45d0b74 100644
--- a/plugins/CuraEngineBackend/CuraEngineBackend.py
+++ b/plugins/CuraEngineBackend/CuraEngineBackend.py
@@ -77,6 +77,8 @@ class CuraEngineBackend(Backend):
self._message = None
self.backendConnected.connect(self._onBackendConnected)
+ Application.getInstance().getController().toolOperationStarted.connect(self._onToolOperationStarted)
+ Application.getInstance().getController().toolOperationStopped.connect(self._onToolOperationStopped)
## Get the command that is used to call the engine.
# This is usefull for debugging and used to actually start the engine
@@ -221,10 +223,16 @@ class CuraEngineBackend(Backend):
self._socket.sendMessage(slice_message)
def _onSceneChanged(self, source):
- if (type(source) is not SceneNode) or (source is self._scene.getRoot()) or (source.getMeshData() is None):
+ if type(source) is not SceneNode:
return
- if(source.getMeshData().getVertices() is None):
+ if source is self._scene.getRoot():
+ return
+
+ if source.getMeshData() is None:
+ return
+
+ if source.getMeshData().getVertices() is None:
return
self._onChanged()
diff --git a/plugins/LayerView/LayerView.py b/plugins/LayerView/LayerView.py
index b1e50a7605..2ee2816eb4 100644
--- a/plugins/LayerView/LayerView.py
+++ b/plugins/LayerView/LayerView.py
@@ -102,15 +102,16 @@ class LayerView(View):
continue
except:
continue
-
- self._current_layer_mesh.addVertices(layer_mesh.getVertices())
+ if self._current_layer_mesh: #Threading thing; Switching between views can cause the current layer mesh to be deleted.
+ self._current_layer_mesh.addVertices(layer_mesh.getVertices())
# Scale layer color by a brightness factor based on the current layer number
# This will result in a range of 0.5 - 1.0 to multiply colors by.
brightness = (2.0 - (i / self._solid_layers)) / 2.0
- self._current_layer_mesh.addColors(layer_mesh.getColors() * brightness)
-
- renderer.queueNode(node, mesh = self._current_layer_mesh, material = self._material)
+ if self._current_layer_mesh:
+ self._current_layer_mesh.addColors(layer_mesh.getColors() * brightness)
+ if self._current_layer_mesh:
+ renderer.queueNode(node, mesh = self._current_layer_mesh, material = self._material)
if not self._current_layer_jumps:
self._current_layer_jumps = MeshData()
diff --git a/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py b/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py
index 339721f7f2..0eb6ed3066 100644
--- a/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py
+++ b/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py
@@ -22,18 +22,18 @@ class RemovableDriveOutputDevice(OutputDevice):
self.setIconName("save_sd")
self.setPriority(1)
- def requestWrite(self, node):
+ def requestWrite(self, node, file_name = None):
gcode_writer = Application.getInstance().getMeshFileHandler().getWriterByMimeType("text/x-gcode")
if not gcode_writer:
Logger.log("e", "Could not find GCode writer, not writing to removable drive %s", self.getName())
raise OutputDeviceError.WriteRequestFailedError()
- file_name = None
- for n in BreadthFirstIterator(node):
- if n.getMeshData():
- file_name = n.getName()
- if file_name:
- break
+ if file_name == None:
+ for n in BreadthFirstIterator(node):
+ if n.getMeshData():
+ file_name = n.getName()
+ if file_name:
+ break
if not file_name:
Logger.log("e", "Could not determine a proper file name when trying to write to %s, aborting", self.getName())
diff --git a/plugins/RemovableDriveOutputDevice/RemovableDrivePlugin.py b/plugins/RemovableDriveOutputDevice/RemovableDrivePlugin.py
index 2cf1cafde9..1a095e2a68 100644
--- a/plugins/RemovableDriveOutputDevice/RemovableDrivePlugin.py
+++ b/plugins/RemovableDriveOutputDevice/RemovableDrivePlugin.py
@@ -37,7 +37,11 @@ class RemovableDrivePlugin(OutputDevicePlugin):
raise NotImplementedError()
def ejectDevice(self, device):
- result = self.performEjectDevice(device)
+ try:
+ result = self.performEjectDevice(device)
+ except Exception as e:
+ result = False
+
if result:
message = Message(catalog.i18nc("@info:status", "Ejected {0}. You can now safely remove the drive.").format(device.getName()))
message.show()
diff --git a/plugins/RemovableDriveOutputDevice/WindowsRemovableDrivePlugin.py b/plugins/RemovableDriveOutputDevice/WindowsRemovableDrivePlugin.py
index 5e14bf933e..3723d48231 100644
--- a/plugins/RemovableDriveOutputDevice/WindowsRemovableDrivePlugin.py
+++ b/plugins/RemovableDriveOutputDevice/WindowsRemovableDrivePlugin.py
@@ -88,13 +88,10 @@ class WindowsRemovableDrivePlugin(RemovableDrivePlugin.RemovableDrivePlugin):
result = None
# Then, try and tell it to eject
- try:
- if not windll.kernel32.DeviceIoControl(handle, IOCTL_STORAGE_EJECT_MEDIA, None, None, None, None, None, None):
- result = False
- else:
- result = True
- except Exception as e:
+ if not windll.kernel32.DeviceIoControl(handle, IOCTL_STORAGE_EJECT_MEDIA, None, None, None, None, None, None):
result = False
+ else:
+ result = True
# Finally, close the handle
windll.kernel32.CloseHandle(handle)
diff --git a/plugins/USBPrinting/PrinterConnection.py b/plugins/USBPrinting/PrinterConnection.py
index e52ccb58da..323452b67c 100644
--- a/plugins/USBPrinting/PrinterConnection.py
+++ b/plugins/USBPrinting/PrinterConnection.py
@@ -323,6 +323,7 @@ class PrinterConnection(OutputDevice, QObject, SignalEmitter):
## Close the printer connection
def close(self):
+ Logger.log("d", "Closing the printer connection.")
if self._connect_thread.isAlive():
try:
self._connect_thread.join()
@@ -411,6 +412,7 @@ class PrinterConnection(OutputDevice, QObject, SignalEmitter):
def createControlInterface(self):
if self._control_view is None:
+ Logger.log("d", "Creating control interface for printer connection")
path = QUrl.fromLocalFile(os.path.join(PluginRegistry.getInstance().getPluginPath("USBPrinting"), "ControlWindow.qml"))
component = QQmlComponent(Application.getInstance()._engine, path)
self._control_context = QQmlContext(Application.getInstance()._engine.rootContext())
@@ -455,7 +457,7 @@ class PrinterConnection(OutputDevice, QObject, SignalEmitter):
self._bed_temperature = temperature
self.bedTemperatureChanged.emit()
- def requestWrite(self, node):
+ def requestWrite(self, node, file_name = None):
self.showControlInterface()
def _setEndstopState(self, endstop_key, value):
diff --git a/resources/machines/RigidBot.json b/resources/machines/RigidBot.json
index 68eaea6bbf..0f57e4e1bc 100644
--- a/resources/machines/RigidBot.json
+++ b/resources/machines/RigidBot.json
@@ -2,7 +2,7 @@
"id": "rigidbotbig",
"version": 1,
"name": "RigidBot",
- "manufacturer": "Invent-A-Part",
+ "manufacturer": "Other",
"author": "RBC",
"platform": "rigidbot_platform.stl",
diff --git a/resources/machines/RigidBotBig.json b/resources/machines/RigidBotBig.json
index 034ec0b921..f97d5845e4 100644
--- a/resources/machines/RigidBotBig.json
+++ b/resources/machines/RigidBotBig.json
@@ -2,7 +2,7 @@
"id": "rigidbotbig",
"version": 1,
"name": "RigidBotBig",
- "manufacturer": "Invent-A-Part",
+ "manufacturer": "Other",
"author": "RBC",
"platform": "rigidbotbig_platform.stl",
diff --git a/resources/machines/bq_hephestos.json b/resources/machines/bq_hephestos.json
index 5d6bf49ed8..6fac2cac83 100644
--- a/resources/machines/bq_hephestos.json
+++ b/resources/machines/bq_hephestos.json
@@ -2,7 +2,7 @@
"id": "bq_hephestos",
"version": 1,
"name": "BQ Prusa i3 Hephestos",
- "manufacturer": "BQ",
+ "manufacturer": "Other",
"author": "BQ",
"platform": "hephestos_platform.stl",
"inherits": "fdmprinter.json",
diff --git a/resources/machines/bq_hephestos_xl.json b/resources/machines/bq_hephestos_xl.json
index a6849bb8e0..e518647535 100644
--- a/resources/machines/bq_hephestos_xl.json
+++ b/resources/machines/bq_hephestos_xl.json
@@ -2,7 +2,7 @@
"id": "bq_hephestos_xl",
"version": 1,
"name": "BQ Prusa i3 Hephestos XL",
- "manufacturer": "BQ",
+ "manufacturer": "Other",
"author": "BQ",
"platform": "hephestos_platform.stl",
"inherits": "fdmprinter.json",
diff --git a/resources/machines/bq_witbox.json b/resources/machines/bq_witbox.json
index 0351dd7e00..46c01a8f9c 100644
--- a/resources/machines/bq_witbox.json
+++ b/resources/machines/bq_witbox.json
@@ -2,7 +2,7 @@
"id": "bq_witbox",
"version": 1,
"name": "BQ Witbox",
- "manufacturer": "BQ",
+ "manufacturer": "Other",
"author": "BQ",
"platform": "witbox_platform.stl",
"inherits": "fdmprinter.json",
diff --git a/resources/machines/fdmprinter.json b/resources/machines/fdmprinter.json
index f89c496dd0..b2d2b0a4a4 100644
--- a/resources/machines/fdmprinter.json
+++ b/resources/machines/fdmprinter.json
@@ -149,7 +149,6 @@
"default": 0.4,
"type": "float",
"visible": false,
- "inherit_function": "max(machine_nozzle_size, (wall_thickness / (int(wall_thickness / (machine_nozzle_size - 0.0001) + 1))) if (wall_thickness / (int(wall_thickness / (machine_nozzle_size - 0.0001))) > machine_nozzle_size * 1.5) else (wall_thickness / int(wall_thickness / (machine_nozzle_size - 0.0001))))",
"children": {
"wall_line_width_0": {
"label": "Outer Wall Line Width",
@@ -257,6 +256,7 @@
"min_value_warning": "0.2",
"max_value_warning": "5",
"type": "float",
+ "inherit_function": "parent_value",
"visible": false,
"children": {
"wall_line_count": {
@@ -266,7 +266,7 @@
"default": 2,
"type": "int",
"visible": false,
- "inherit_function": "max(1, (int(parent_value / (machine_nozzle_size - 0.0001) + 1) if (parent_value / max(1, int(parent_value / (machine_nozzle_size - 0.0001))) > machine_nozzle_size) * 1.5 else int(parent_value / (machine_nozzle_size - 0.0001))))"
+ "inherit_function": "max(1, round((wall_thickness - wall_line_width_0) / wall_line_width_x) + 1)"
}
}
},
@@ -408,8 +408,7 @@
"description": "Number of lines around skin regions. Using one or two skin perimeter lines can greatly improve on roofs which would start in the middle of infill cells.",
"default": 0,
"type": "int",
- "visible": false,
- "enabled": "top_bottom_pattern"
+ "visible": false
},
"xy_offset": {
"label": "Horizontal expansion",
@@ -777,18 +776,17 @@
"type": "float",
"min_value": "0.1",
"default": 15,
+ "visible": false
+ },
+ "skirt_speed": {
+ "label": "Skirt Speed",
+ "description": "The speed at which the skirt and brim are printed. Normally this is done at the initial layer speed. But sometimes you want to print the skirt at a different speed.",
+ "unit": "mm/s",
+ "type": "float",
+ "min_value": "0.1",
+ "default": 15,
"visible": false,
- "children": {
- "skirt_speed": {
- "label": "Skirt Speed",
- "description": "The speed at which the skirt and brim are printed. Normally this is done at the initial layer speed. But sometimes you want to print the skirt at a different speed.",
- "unit": "mm/s",
- "type": "float",
- "min_value": "0.1",
- "default": 15,
- "visible": false
- }
- }
+ "inherit_function": "speed_layer_0"
},
"speed_slowdown_layers": {
"label": "Amount of Slower Layers",
diff --git a/resources/machines/grr_neo.json b/resources/machines/grr_neo.json
index fdebfbd95e..472062a097 100644
--- a/resources/machines/grr_neo.json
+++ b/resources/machines/grr_neo.json
@@ -3,7 +3,7 @@
"version": 1,
"name": "German RepRap Neo",
"manufacturer": "Other",
- "author": "other",
+ "author": "Other",
"icon": "icon_ultimaker.png",
"platform": "grr_neo_platform.stl",
diff --git a/resources/machines/prusa_i3.json b/resources/machines/prusa_i3.json
index 8033daadfd..4311bc1fc2 100644
--- a/resources/machines/prusa_i3.json
+++ b/resources/machines/prusa_i3.json
@@ -2,8 +2,8 @@
"id": "prusa_i3",
"version": 1,
"name": "Prusa i3",
- "manufacturer": "Prusa",
- "author": "other",
+ "manufacturer": "Other",
+ "author": "Other",
"icon": "icon_ultimaker2.png",
"platform": "prusai3_platform.stl",
diff --git a/resources/machines/ultimaker2.json b/resources/machines/ultimaker2.json
index e3bfa9e9c7..99f2247b0e 100644
--- a/resources/machines/ultimaker2.json
+++ b/resources/machines/ultimaker2.json
@@ -43,19 +43,19 @@
"default": [
[
-40,
- 30
+ 10
],
[
-40,
- -10
+ -30
],
[
60,
- -10
+ 10
],
[
60,
- 30
+ -30
]
]
},
diff --git a/resources/profiles/High+Quality.cfg b/resources/profiles/High+Quality.cfg
index a7621ed392..2eb80dfb61 100644
--- a/resources/profiles/High+Quality.cfg
+++ b/resources/profiles/High+Quality.cfg
@@ -3,4 +3,4 @@ version = 1
name = High Quality
[settings]
-layer_height = 0.06
+layer_height = 0.08
diff --git a/resources/profiles/Low+Quality.cfg b/resources/profiles/Low+Quality.cfg
new file mode 100644
index 0000000000..f80ef55db0
--- /dev/null
+++ b/resources/profiles/Low+Quality.cfg
@@ -0,0 +1,6 @@
+[general]
+version = 1
+name = High Quality
+
+[settings]
+layer_height = 0.15
diff --git a/resources/profiles/Ulti+Quality.cfg b/resources/profiles/Ulti+Quality.cfg
new file mode 100644
index 0000000000..86feb14e73
--- /dev/null
+++ b/resources/profiles/Ulti+Quality.cfg
@@ -0,0 +1,6 @@
+[general]
+version = 1
+name = Ulti Quality
+
+[settings]
+layer_height = 0.06
diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml
index c7d8d41d2a..e9b9571ccb 100644
--- a/resources/qml/Cura.qml
+++ b/resources/qml/Cura.qml
@@ -72,7 +72,7 @@ UM.MainWindow
text: catalog.i18nc("@action:inmenu", "&Save Selection to File");
enabled: UM.Selection.hasSelection;
iconName: "document-save-as";
- onTriggered: UM.OutputDeviceManager.requestWriteSelectionToDevice("local_file");
+ onTriggered: UM.OutputDeviceManager.requestWriteSelectionToDevice("local_file", Printer.jobName);
}
Menu
{
@@ -88,7 +88,7 @@ UM.MainWindow
MenuItem
{
text: model.description;
- onTriggered: UM.OutputDeviceManager.requestWriteToDevice(model.id);
+ onTriggered: UM.OutputDeviceManager.requestWriteToDevice(model.id, Printer.jobName);
}
onObjectAdded: saveAllMenu.insertItem(index, object)
onObjectRemoved: saveAllMenu.removeItem(object)
@@ -373,6 +373,7 @@ UM.MainWindow
{
id: viewModeButton
property bool verticalTooltip: true
+
anchors
{
top: parent.top;
@@ -389,12 +390,13 @@ UM.MainWindow
id: viewMenu;
Instantiator
{
+ id: viewMenuInstantiator
model: UM.ViewModel { }
MenuItem
{
- text: model.name;
+ text: model.name
checkable: true;
- checked: model.active;
+ checked: model.active
exclusiveGroup: viewMenuGroup;
onTriggered: UM.Controller.setActiveView(model.id);
}
@@ -413,7 +415,7 @@ UM.MainWindow
anchors {
left: parent.left
top: parent.top
- topMargin: 74
+ topMargin: UM.Theme.sizes.window_margin.height + UM.Theme.sizes.button.height
//horizontalCenter: parent.horizontalCenter
//horizontalCenterOffset: -(UM.Theme.sizes.sidebar.width / 2)
//top: parent.top;
@@ -543,8 +545,8 @@ UM.MainWindow
addMachine.onTriggered: addMachineWizard.visible = true;
- preferences.onTriggered: preferences.visible = true;
- configureMachines.onTriggered: { preferences.visible = true; preferences.setPage(2); }
+ preferences.onTriggered: { preferences.visible = true; }
+ configureMachines.onTriggered: { preferences.visible = true; preferences.setPage(3); }
manageProfiles.onTriggered: { preferences.visible = true; preferences.setPage(4); }
documentation.onTriggered: CuraActions.openDocumentation();
@@ -648,14 +650,30 @@ UM.MainWindow
onRequestAddPrinter:
{
addMachineWizard.visible = true
- addMachineWizard.firstRun = true
+ addMachineWizard.firstRun = false
}
}
Component.onCompleted:
{
UM.Theme.load(UM.Resources.getPath(UM.Resources.Themes, "cura"))
- base.visible = true;
+ visible = true;
+ addMachineTimer.start();
+ }
+
+ Timer
+ {
+ id: addMachineTimer;
+ interval: 100;
+ repeat: false;
+ onTriggered:
+ {
+ if(UM.MachineManager.activeMachineInstance == "")
+ {
+ addMachineWizard.firstRun = true;
+ addMachineWizard.open();
+ }
+ }
}
}
diff --git a/resources/qml/ProfileSetup.qml b/resources/qml/ProfileSetup.qml
index 104abe9a7d..aa4a2b344a 100644
--- a/resources/qml/ProfileSetup.qml
+++ b/resources/qml/ProfileSetup.qml
@@ -8,69 +8,68 @@ import QtQuick.Layouts 1.1
import UM 1.1 as UM
-Column{
+Item{
id: base;
UM.I18nCatalog { id: catalog; name:"cura"}
property int totalHeightProfileSetup: childrenRect.height
property Action manageProfilesAction
- spacing: 0
- Rectangle{
- id: variantItem;
- height: UM.Theme.sizes.sidebar_setup.height
+ Rectangle {
+ id: variantRow
+ anchors.top: base.top
width: base.width
- visible: UM.MachineManager.hasVariants;
+ height: UM.Theme.sizes.sidebar_setup.height
+ //visible: UM.MachineManager.hasVariants;
+ visible: true
- Rectangle {
- id: variantRow
- width: base.width
- height: parent.heigth
+ Label{
+ id: variantLabel
+ text: catalog.i18nc("@label","Variant:");
+ anchors.left: parent.left
+ anchors.leftMargin: UM.Theme.sizes.default_margin.width;
+ anchors.verticalCenter: parent.verticalCenter
+ width: parent.width/100*45
+ font: UM.Theme.fonts.default;
+ }
- Label{
- id: variantLabel
- text: catalog.i18nc("@label","Variant:");
- anchors.left: parent.left
- anchors.leftMargin: UM.Theme.sizes.default_margin.width;
- anchors.verticalCenter: parent.verticalCenter
- width: parent.width/100*45
- font: UM.Theme.fonts.default;
- }
+ ToolButton {
+ id: variantSelection
+ text: UM.MachineManager.activeMachineVariant
+ width: parent.width/100*55
+ height: UM.Theme.sizes.setting_control.height
+ tooltip: UM.MachineManager.activeMachineInstance;
+ anchors.right: parent.right
+ anchors.rightMargin: UM.Theme.sizes.default_margin.width
+ anchors.verticalCenter: parent.verticalCenter
+ style: UM.Theme.styles.sidebar_header_button
- ToolButton {
- id: variantSelection
- text: UM.MachineManager.activeMachineVariant
- width: parent.width/100*55
- height: UM.Theme.sizes.setting_control.height
- tooltip: UM.MachineManager.activeMachineInstance;
- anchors.right: parent.right
- anchors.rightMargin: UM.Theme.sizes.default_margin.width
- anchors.verticalCenter: parent.verticalCenter
- style: UM.Theme.styles.sidebar_header_button
-
- menu: Menu
+ menu: Menu
+ {
+ id: variantsSelectionMenu
+ Instantiator
{
- id: variantsSelectionMenu
- Instantiator
+ model: UM.MachineVariantsModel { }
+ MenuItem
{
- model: UM.MachineVariantsModel { }
- MenuItem
- {
- text: model.name;
- checkable: true;
- checked: model.active;
- exclusiveGroup: variantSelectionMenuGroup;
- onTriggered: UM.MachineManager.setActiveMachineVariant(model.getItem(index).name)
- }
+ text: model.name;
+ checkable: true;
+ checked: model.active;
+ exclusiveGroup: variantSelectionMenuGroup;
+ onTriggered: UM.MachineManager.setActiveMachineVariant(model.getItem(index).name)
}
-
- ExclusiveGroup { id: variantSelectionMenuGroup; }
+ onObjectAdded: variantsSelectionMenu.insertItem(index, object)
+ onObjectRemoved: variantsSelectionMenu.removeItem(object)
}
+
+ ExclusiveGroup { id: variantSelectionMenuGroup; }
}
}
}
Rectangle{
id: globalProfileRow;
+ anchors.top: UM.MachineManager.hasVariants ? variantRow.bottom : base.top
+ //anchors.top: variantRow.bottom
height: UM.Theme.sizes.sidebar_setup.height
width: base.width
@@ -148,8 +147,4 @@ Column{
// }
}
}
- Rectangle{
- width: base.width
- height: UM.Theme.sizes.default_margin.width/2
- }
}
\ No newline at end of file
diff --git a/resources/qml/SaveButton.qml b/resources/qml/SaveButton.qml
index b666b112b9..a8861331e0 100644
--- a/resources/qml/SaveButton.qml
+++ b/resources/qml/SaveButton.qml
@@ -62,7 +62,7 @@ Rectangle {
Rectangle{
id: printJobRow
implicitWidth: base.width;
- implicitHeight: UM.Theme.sizes.sidebar_header.height
+ implicitHeight: UM.Theme.sizes.save_button_header.height
anchors.top: parent.top
color: UM.Theme.colors.sidebar_header_bar
Label{
@@ -83,6 +83,7 @@ Rectangle {
height: UM.Theme.sizes.sidebar_inputFields.height
property int unremovableSpacing: 5
text: ''
+ onTextChanged: Printer.setJobName(text)
onEditingFinished: {
if (printJobTextfield.text != ''){
printJobTextfield.focus = false
@@ -110,6 +111,7 @@ Rectangle {
implicitWidth: base.width
implicitHeight: UM.Theme.sizes.sidebar_specs_bar.height
anchors.top: printJobRow.bottom
+ visible: base.progress > 0.99 && base.activity == true
Item{
id: time
width: childrenRect.width;
@@ -188,12 +190,23 @@ Rectangle {
text: UM.OutputDeviceManager.activeDeviceShortDescription
onClicked:
{
- UM.OutputDeviceManager.requestWriteToDevice(UM.OutputDeviceManager.activeDevice)
+ UM.OutputDeviceManager.requestWriteToDevice(UM.OutputDeviceManager.activeDevice, Printer.jobName)
}
style: ButtonStyle {
background: Rectangle {
- color: control.hovered ? UM.Theme.colors.load_save_button_hover : UM.Theme.colors.load_save_button
+ //opacity: control.enabled ? 1.0 : 0.5
+ //Behavior on opacity { NumberAnimation { duration: 50; } }
+ color: {
+ if(!control.enabled){
+ return UM.Theme.colors.button;
+ }
+ else if(control.enabled && control.hovered) {
+ return UM.Theme.colors.load_save_button_hover
+ } else {
+ return UM.Theme.colors.load_save_button
+ }
+ }
Behavior on color { ColorAnimation { duration: 50; } }
width: {
var w = 0;
@@ -205,17 +218,17 @@ Rectangle {
saveToButton.resizedWidth = actualLabel.width + (UM.Theme.sizes.default_margin.width * 2)
w = actualLabel.width + (UM.Theme.sizes.default_margin.width * 2)
}
-
if(w < base.width * 0.55) {
w = base.width * 0.55;
}
-
return w;
}
Label {
id: actualLabel
+ opacity: control.enabled ? 1.0 : 0.4
+ //Behavior on opacity { NumberAnimation { duration: 50; } }
anchors.centerIn: parent
- color: UM.Theme.colors.load_save_button_text
+ color: UM.Theme.colors.load_save_button_text
font: UM.Theme.fonts.default
text: control.text;
}
diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml
index ffdce05fda..e434492600 100644
--- a/resources/qml/Sidebar.qml
+++ b/resources/qml/Sidebar.qml
@@ -76,6 +76,7 @@ Rectangle
id: sidebarContents;
anchors.bottom: saveButton.top
anchors.top: profileItem.bottom
+ anchors.topMargin: UM.Theme.sizes.default_margin.height
anchors.left: base.left
anchors.right: base.right
diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml
index eecba3262e..322b9b7a5a 100644
--- a/resources/qml/SidebarHeader.qml
+++ b/resources/qml/SidebarHeader.qml
@@ -39,18 +39,17 @@ Item
Rectangle{
id: settingsModeSelection
width: parent.width/100*55
- height: childrenRect.height - UM.Theme.sizes.default_margin.width;
+ height: UM.Theme.sizes.sidebar_header_mode_toggle.height
anchors.right: parent.right
anchors.rightMargin: UM.Theme.sizes.default_margin.width;
anchors.verticalCenter: parent.verticalCenter
Component{
id: wizardDelegate
Button {
- id: simpleModeButton
height: settingsModeSelection.height
anchors.left: parent.left
anchors.leftMargin: model.index * (settingsModeSelection.width / 2)
- anchors.top: parent.top
+ anchors.verticalCenter: parent.verticalCenter
width: parent.width / 2
text: model.text
exclusiveGroup: modeMenuGroup;
@@ -81,8 +80,6 @@ Item
anchors.top: parent.top
anchors.left: parent.left
width: parent.width
- height: UM.Theme.sizes.sidebar_header.height
- currentIndex: base.currentIndex;
}
}
}
@@ -90,8 +87,9 @@ Item
Rectangle {
id: machineSelectionRow
width: base.width
- height: UM.Theme.sizes.sidebar_header.height
+ height: UM.Theme.sizes.sidebar_setup.height
anchors.top: settingsModeRow.bottom
+ anchors.topMargin: UM.Theme.sizes.default_margin.height
anchors.horizontalCenter: parent.horizontalCenter
Label{
@@ -110,7 +108,6 @@ Item
width: parent.width/100*55
height: UM.Theme.sizes.setting_control.height
tooltip: UM.MachineManager.activeMachineInstance;
- //style: UM.Theme.styles.sidebar_header_button;
anchors.right: parent.right
anchors.rightMargin: UM.Theme.sizes.default_margin.width
anchors.verticalCenter: parent.verticalCenter
diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml
index d09baac3aa..10b935bbcd 100644
--- a/resources/qml/SidebarSimple.qml
+++ b/resources/qml/SidebarSimple.qml
@@ -25,7 +25,7 @@ Item
id: infillCellLeft
anchors.top: parent.top
anchors.left: parent.left
- width: base.width/100*55 - UM.Theme.sizes.default_margin.width
+ width: base.width/100* 55 - UM.Theme.sizes.default_margin.width
height: childrenRect.height < UM.Theme.sizes.simple_mode_infill_caption.height ? UM.Theme.sizes.simple_mode_infill_caption.height : childrenRect.height
Label{
@@ -41,7 +41,7 @@ Item
Label{
id: infillCaption
width: infillCellLeft.width - UM.Theme.sizes.default_margin.width
- text: infillModel.get(infillListView.activeIndex).text
+ text: infillModel.count > 0 && infillListView.activeIndex != -1 ? infillModel.get(infillListView.activeIndex).text : ""
font: UM.Theme.fonts.caption
wrapMode: Text.Wrap
color: UM.Theme.colors.text
@@ -51,65 +51,80 @@ Item
}
}
- Rectangle{
+ Flow {
id: infillCellRight
- height: 100
- width: base.width/100*45
+
+ height: childrenRect.height;
+ width: base.width / 100 * 45
+
anchors.right: parent.right
anchors.rightMargin: UM.Theme.sizes.default_margin.width - (UM.Theme.sizes.default_margin.width/4)
anchors.top: parent.top
anchors.topMargin: UM.Theme.sizes.default_margin.height
- Component{
- id: infillDelegate
- Item{
- width: infillCellRight.width/3
- x: index * (infillCellRight.width/3)
- anchors.top: parent.top
+
+ Repeater {
+ id: infillListView
+ property int activeIndex: {
+ if(!UM.ActiveProfile.valid)
+ {
+ return -1;
+ }
+
+ var density = parseInt(UM.ActiveProfile.settingValues.infill_sparse_density);
+ for(var i = 0; i < infillModel.count; ++i)
+ {
+ if(infillModel.get(i).percentage == density)
+ {
+ return i;
+ }
+ }
+
+ return -1;
+ }
+ model: infillModel;
+
+ Item {
+ width: childrenRect.width;
+ height: childrenRect.height;
+
Rectangle{
id: infillIconLining
- anchors.top: parent.top
- anchors.horizontalCenter: parent.horizontalCenter
- width: parent.width - (UM.Theme.sizes.default_margin.width/2)
- height: parent.width - (UM.Theme.sizes.default_margin.width/2)
+
+ width: infillCellRight.width / 3 - UM.Theme.sizes.default_margin.width;
+ height: width
+
border.color: infillListView.activeIndex == index ? UM.Theme.colors.setting_control_text : UM.Theme.colors.setting_control_border
border.width: infillListView.activeIndex == index ? 2 : 1
color: infillListView.activeIndex == index ? UM.Theme.colors.setting_category_active : "transparent"
- UM.RecolorImage {
+
+ Image {
id: infillIcon
- z: parent.z + 1
- anchors.verticalCenter: parent.verticalCenter
- anchors.horizontalCenter: parent.horizontalCenter
- width: parent.width - UM.Theme.sizes.default_margin.width
- height: parent.width - UM.Theme.sizes.default_margin.width
+ anchors.fill: parent;
+ anchors.margins: UM.Theme.sizes.default_margin.width / 2
+
sourceSize.width: width
sourceSize.height: width
- color: UM.Theme.colors.setting_control_text
source: UM.Theme.icons[model.icon];
}
+
MouseArea {
anchors.fill: parent
onClicked: {
infillListView.activeIndex = index
+ UM.MachineManager.setSettingValue("infill_sparse_density", model.percentage)
}
}
}
Label{
id: infillLabel
anchors.top: infillIconLining.bottom
- anchors.horizontalCenter: parent.horizontalCenter
+ anchors.horizontalCenter: infillIconLining.horizontalCenter
color: infillListView.activeIndex == index ? UM.Theme.colors.setting_control_text : UM.Theme.colors.setting_control_border
text: name
- //font.bold: infillListView.activeIndex == index ? true : false
}
}
}
- ListView{
- id: infillListView
- property int activeIndex: 0
- model: infillModel
- delegate: infillDelegate
- anchors.fill: parent
- }
+
ListModel {
id: infillModel
@@ -139,11 +154,12 @@ Item
Rectangle {
id: helpersCellLeft
- anchors.top: infillCellLeft.bottom
+ anchors.top: infillCellRight.bottom
anchors.topMargin: UM.Theme.sizes.default_margin.height
anchors.left: parent.left
width: parent.width/100*45 - UM.Theme.sizes.default_margin.width
height: childrenRect.height
+
Label{
anchors.left: parent.left
anchors.leftMargin: UM.Theme.sizes.default_margin.width
@@ -155,7 +171,6 @@ Item
Rectangle {
id: helpersCellRight
anchors.top: helpersCellLeft.top
- anchors.topMargin: UM.Theme.sizes.default_margin.height
anchors.left: helpersCellLeft.right
width: parent.width/100*55 - UM.Theme.sizes.default_margin.width
height: childrenRect.height
@@ -164,37 +179,31 @@ Item
id: skirtCheckBox
anchors.top: parent.top
anchors.left: parent.left
- Layout.preferredHeight: UM.Theme.sizes.section.height;
+
//: Setting enable skirt adhesion checkbox
text: catalog.i18nc("@option:check","Enable Skirt Adhesion");
style: UM.Theme.styles.checkbox;
- checked: Printer.getSettingValue("skirt_line_count") == null ? false: Printer.getSettingValue("skirt_line_count");
- onCheckedChanged:
+
+ checked: UM.ActiveProfile.valid ? UM.ActiveProfile.settingValues.adhesion_type == "brim" : false;
+ onClicked:
{
- if(checked != Printer.getSettingValue("skirt_line_count"))
- {
- Printer.setSettingValue("skirt_line_count", checked)
- }
+ UM.MachineManager.setSettingValue("adhesion_type", "brim")
}
}
CheckBox{
anchors.top: skirtCheckBox.bottom
anchors.topMargin: UM.Theme.sizes.default_lining.height
anchors.left: parent.left
- Layout.preferredHeight: UM.Theme.sizes.section.height;
//: Setting enable support checkbox
text: catalog.i18nc("@option:check","Enable Support");
style: UM.Theme.styles.checkbox;
- checked: Printer.getSettingValue("support_enable") == null? false: Printer.getSettingValue("support_enable");
- onCheckedChanged:
+ checked: UM.ActiveProfile.valid ? UM.ActiveProfile.settingValues.support_enable : false;
+ onClicked:
{
- if(checked != Printer.getSettingValue("support_enable"))
- {
- Printer.setSettingValue("support_enable", checked)
- }
+ UM.MachineManager.setSettingValue("support_enable", checked)
}
}
}
diff --git a/resources/qml/Toolbar.qml b/resources/qml/Toolbar.qml
index 2acebf094f..206fb69261 100644
--- a/resources/qml/Toolbar.qml
+++ b/resources/qml/Toolbar.qml
@@ -33,6 +33,7 @@ Item {
checkable: true;
checked: model.active;
+ enabled: UM.Selection.hasSelection;
style: UM.Theme.styles.tool_button;
@@ -43,7 +44,6 @@ Item {
onClicked: {
parent.checked ? UM.Controller.setActiveTool(null) : UM.Controller.setActiveTool(model.id);
base.activeY = parent.y
-
}
}
}
@@ -65,7 +65,14 @@ Item {
anchors.left: parent.right;
y: base.activeY
- width: panel.item ? Math.max(panel.width + 2 * UM.Theme.sizes.default_margin.width) : 0;
+ width: {
+ if (panel.item && panel.width > 0){
+ return Math.max(panel.width + 2 * UM.Theme.sizes.default_margin.width)
+ }
+ else {
+ return 0
+ }
+ }
height: panel.item ? panel.height + 2 * UM.Theme.sizes.default_margin.height : 0;
opacity: panel.item ? 1 : 0
diff --git a/resources/qml/WizardPages/AddMachine.qml b/resources/qml/WizardPages/AddMachine.qml
index db6dde12f0..cd0713a34d 100644
--- a/resources/qml/WizardPages/AddMachine.qml
+++ b/resources/qml/WizardPages/AddMachine.qml
@@ -221,6 +221,7 @@ Item
base.wizard.appendPage(Qt.resolvedUrl("Bedleveling.qml"), catalog.i18nc("@title", "Bed Levelling"));
break;
default:
+ base.wizard.appendPage(Qt.resolvedUrl("%1.qml".arg(pages[i])), pages[i])
break;
}
}
diff --git a/resources/themes/cura/icons/cross1.svg b/resources/themes/cura/icons/cross1.svg
new file mode 100644
index 0000000000..def715b00b
--- /dev/null
+++ b/resources/themes/cura/icons/cross1.svg
@@ -0,0 +1,10376 @@
+
+
+
+
+
+
+
+
+
+
+]>
+
diff --git a/resources/themes/cura/icons/settings.svg b/resources/themes/cura/icons/settings.svg
new file mode 100644
index 0000000000..8366de3468
--- /dev/null
+++ b/resources/themes/cura/icons/settings.svg
@@ -0,0 +1,12 @@
+
+
\ No newline at end of file
diff --git a/resources/themes/cura/styles.qml b/resources/themes/cura/styles.qml
index d0aa41d159..027ef72050 100644
--- a/resources/themes/cura/styles.qml
+++ b/resources/themes/cura/styles.qml
@@ -34,17 +34,17 @@ QtObject {
elide: Text.ElideRight;
anchors.left: parent.left;
anchors.leftMargin: UM.Theme.sizes.setting_unit_margin.width
- anchors.right: downArrow.left;
- anchors.rightMargin: UM.Theme.sizes.setting_unit_margin.width
+ anchors.right: separationLine.left;
anchors.verticalCenter: parent.verticalCenter;
font: UM.Theme.fonts.default
}
Rectangle{
+ id: separationLine
width: 1
height: UM.Theme.sizes.setting_control.height
color: UM.Theme.colors.setting_control_border
- anchors.right: sidebarComboBoxLabel.right
- anchors.rightMargin: UM.Theme.sizes.setting_unit_margin.width
+ anchors.right: downArrow.left
+ anchors.rightMargin: UM.Theme.sizes.setting_unit_margin.width + downArrow.width/2
anchors.top: parent.top
z: parent.z + 1
}
@@ -57,11 +57,11 @@ QtObject {
ButtonStyle {
background: Item{
implicitWidth: UM.Theme.sizes.button.width;
- implicitHeight: UM.Theme.sizes.button.width;
+ implicitHeight: UM.Theme.sizes.button.height;
Rectangle {
anchors.left: parent.right
anchors.verticalCenter: parent.verticalCenter
- color: "white"
+ color: UM.Theme.colors.button_text
width: control.hovered ? openFileLabel.width : 0;
height: openFileLabel.height
Behavior on width { NumberAnimation { duration: 100; } }
@@ -87,7 +87,7 @@ QtObject {
source: control.iconSource;
width: UM.Theme.sizes.button_icon.width;
height: UM.Theme.sizes.button_icon.height;
- sourceSize: UM.Theme.sizes.button_icon;
+ sourceSize: UM.Theme.sizes.button_icon
}
}
}
@@ -139,13 +139,10 @@ QtObject {
id: buttonFace;
anchors.fill: parent;
-
property bool down: control.pressed || (control.checkable && control.checked);
color: {
- if(!control.enabled) {
- return UM.Theme.colors.button_disabled;
- } else if(control.checkable && control.checked && control.hovered) {
+ if(control.checkable && control.checked && control.hovered) {
return UM.Theme.colors.button_active_hover;
} else if(control.pressed || (control.checkable && control.checked)) {
return UM.Theme.colors.button_active;
@@ -159,6 +156,7 @@ QtObject {
Label {
id: tool_button_arrow
+ opacity: !control.enabled ? 0.4 : 1.0
anchors.right: parent.right;
anchors.rightMargin: (UM.Theme.sizes.button.width - UM.Theme.sizes.button_icon.width - tool_button_arrow.width) / 2
anchors.verticalCenter: parent.verticalCenter;
@@ -173,12 +171,12 @@ QtObject {
label: Item {
Image {
anchors.centerIn: parent;
-
+ opacity: !control.enabled ? 0.4 : 1.0
source: control.iconSource;
width: UM.Theme.sizes.button_icon.width;
height: UM.Theme.sizes.button_icon.height;
- sourceSize: UM.Theme.sizes.button_icon;
+ sourceSize: UM.Theme.sizes.button_icon
}
}
}
@@ -243,7 +241,7 @@ QtObject {
width: UM.Theme.sizes.button_icon.width;
height: UM.Theme.sizes.button_icon.height;
- sourceSize: UM.Theme.sizes.button_icon;
+ sourceSize: UM.Theme.sizes.button_icon
}
}
}
@@ -334,10 +332,10 @@ QtObject {
minimumPointSize: 8
}
UM.RecolorImage {
- id: lengthIcon
+ id: category_arrow
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right
- anchors.rightMargin: UM.Theme.sizes.default_margin.width * 2
+ anchors.rightMargin: UM.Theme.sizes.default_margin.width * 2 - width / 2
width: UM.Theme.sizes.standard_arrow.width
height: UM.Theme.sizes.standard_arrow.height
sourceSize.width: width
diff --git a/resources/themes/cura/theme.json b/resources/themes/cura/theme.json
index bf4a64f44c..f2b908e52e 100644
--- a/resources/themes/cura/theme.json
+++ b/resources/themes/cura/theme.json
@@ -71,7 +71,7 @@
"button_active": [32, 166, 219, 255],
"button_active_hover": [77, 184, 226, 255],
"button_text": [255, 255, 255, 255],
- "button_disabled": [245, 245, 245, 255],
+ "button_disabled": [0, 0, 0, 255],
"button_tooltip_text": [35, 35, 35, 255],
"toggle_active": [255, 255, 255, 255],
@@ -82,7 +82,8 @@
"load_save_button": [0, 0, 0, 255],
"load_save_button_text": [255, 255, 255, 255],
"load_save_button_hover": [43, 45, 46, 255],
- "load_save_button_active": [43, 45, 46, 255],
+ "load_save_button_inactive": [176, 184, 191, 255],
+ "load_save_button_inactive_text": [209, 214, 219, 255],
"scrollbar_background": [245, 245, 245, 255],
"scrollbar_handle": [12, 159, 227, 255],
@@ -91,15 +92,16 @@
"setting_category": [238, 238, 238, 255],
"setting_category_disabled": [238, 238, 238, 255],
- "setting_category_hover": [240, 248, 255, 255],
- "setting_category_active": [238, 238, 238, 255],
- "setting_category_active_hover": [240, 248, 255, 255],
+ "setting_category_hover": [231, 231, 231, 255],
+ "setting_category_active": [240, 248, 255, 255],
+ "setting_category_active_hover": [233, 244, 245, 255],
"setting_category_text": [35, 35, 35, 255],
"setting_control": [255, 255, 255, 255],
"setting_control_highlight": [245, 245, 245, 255],
"setting_control_border": [174, 174, 174, 255],
"setting_control_text": [0, 0, 0, 255],
+ "setting_control_depth_line": [162, 192, 227, 255],
"setting_control_hover": [139, 143, 153, 255],
"setting_control_selected": [35, 35, 35, 255],
"setting_control_revert": [85, 85, 85, 255],
@@ -126,16 +128,6 @@
"tooltip": [255, 225, 146, 255],
- "save_button_border": [205, 202, 201, 255],
- "save_button_inactive": [205, 202, 201, 255],
- "save_button_active": [12, 159, 227, 255],
- "save_button_active_hover": [34, 150, 190, 255],
- "save_button_safe_to_text": [255, 255, 255, 255],
- "save_button_estimated_text": [140, 144, 154, 255],
- "save_button_estimated_text_background": [255, 255, 255, 255],
- "save_button_printtime_text": [12, 169, 227, 255],
- "save_button_background": [249, 249, 249, 255],
-
"message_background": [255, 255, 255, 255],
"message_text": [32, 166, 219, 255],
"message_dismiss": [139, 143, 153, 255],
@@ -147,40 +139,39 @@
},
"sizes": {
- "window_margin": [2.0, 2.0],
+ "window_margin": [1.5, 1.5],
"default_margin": [1.0, 1.0],
"default_lining": [0.1, 0.1],
"logo": [9.5, 2.0],
- "toolbar_button": [2.0, 2.0],
- "toolbar_spacing": [1.0, 1.0],
- "loadfile_button": [11.0, 2.4],
- "loadfile_margin": [0.8, 0.4],
-
- "sidebar": [27.0, 10.0],
- "sidebar_header": [0.0, 3.2],
- "sidebar_setup": [0.0, 2.8],
+ "sidebar": [26.0, 10.0],
+ "sidebar_header": [0.0, 3.8],
+ "sidebar_header_mode_toggle": [0.0, 2.4],
+ "sidebar_setup": [0.0, 2.6],
"sidebar_subParts": [0.0, 2.4],
"sidebar_specs_bar": [0.0, 2.2],
"sidebar_inputFields": [0.0, 1.9],
+ "simple_mode_infill_caption": [0.0, 5.0],
+ "simple_mode_infill_height": [0.0, 8.0],
- "section": [0.0, 1.8],
- "section_icon": [1.2, 1.2],
+ "section": [0.0, 2.0],
+ "section_icon": [1.6, 1.6],
"section_icon_column": [2.8, 0.0],
"setting": [21.0, 1.8],
- "setting_control": [6.0, 2.0],
- "setting_control_margin": [3.0, 3.0],
+ "setting_control": [7.0, 2.0],
+ "setting_control_depth_margin": [1.4, 0.0],
+ "setting_preferences_button_margin": [3.3, 0.0],
+ "setting_control_margin": [0.0, 0.0],
"setting_unit_margin": [0.5, 0.5],
"setting_text_maxwidth": [40.0, 0.0],
- "simple_mode_infill_caption": [0.0, 5.0],
"standard_list_lineheight": [1.5, 1.5],
"standard_list_input": [20.0, 25.0],
"standard_arrow": [0.6, 0.6],
- "button": [3.2, 3.2],
- "button_icon": [2.5, 2.5],
+ "button": [3.8, 3.8],
+ "button_icon": [2.6, 2.6],
"progressbar": [26.0, 0.8],
"progressbar_control": [8.0, 0.8],
@@ -201,6 +192,7 @@
"tooltip_margins": [1.0, 1.0],
"save_button_border": [0.06, 0.06],
+ "save_button_header": [0.0, 3.2],
"save_button_text_margin": [0.3, 0.6],
"save_button_slicing_bar": [0.0, 2.2],
"save_button_label_margin": [0.5, 0.5],