diff --git a/cura/Settings/ExtrudersModel.py b/cura/Settings/ExtrudersModel.py
index 7e06b95100..af3cb62406 100644
--- a/cura/Settings/ExtrudersModel.py
+++ b/cura/Settings/ExtrudersModel.py
@@ -140,8 +140,6 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel):
for extruder in manager.getMachineExtruders(global_container_stack.getId()):
extruder_name = extruder.getName()
material = extruder.findContainer({ "type": "material" })
- if material and not self._simple_names:
- extruder_name = "%s (%s)" % (material.getName(), extruder_name)
position = extruder.getMetaDataEntry("position", default = "0") # Get the position
try:
position = int(position)
diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py
index 68f982c48f..46806cf54d 100644
--- a/plugins/3MFReader/ThreeMFWorkspaceReader.py
+++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py
@@ -447,9 +447,17 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
def _getContainerIdListFromSerialized(self, serialized):
parser = configparser.ConfigParser(interpolation=None, empty_lines_in_values=False)
parser.read_string(serialized)
- container_string = parser["general"].get("containers", "")
- container_list = container_string.split(",")
- return [container_id for container_id in container_list if container_id != ""]
+
+ container_ids = []
+ if "containers" in parser:
+ for index, container_id in parser.items("containers"):
+ container_ids.append(container_id)
+ elif parser.has_option("general", "containers"):
+ container_string = parser["general"].get("containers", "")
+ container_list = container_string.split(",")
+ container_ids = [container_id for container_id in container_list if container_id != ""]
+
+ return container_ids
def _getMachineNameFromSerializedStack(self, serialized):
parser = configparser.ConfigParser(interpolation=None, empty_lines_in_values=False)
@@ -461,4 +469,5 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
metadata = data.iterfind("./um:metadata/um:name/um:label", {"um": "http://www.ultimaker.com/material"})
for entry in metadata:
return entry.text
- pass
\ No newline at end of file
+ pass
+
diff --git a/resources/extruders/ultimaker3_extended_extruder_left.def.json b/resources/extruders/ultimaker3_extended_extruder_left.def.json
index 202272b096..3335e85ae3 100644
--- a/resources/extruders/ultimaker3_extended_extruder_left.def.json
+++ b/resources/extruders/ultimaker3_extended_extruder_left.def.json
@@ -1,7 +1,7 @@
{
"id": "ultimaker3_extended_extruder_left",
"version": 2,
- "name": "Print core 1",
+ "name": "Extruder 1",
"inherits": "fdmextruder",
"metadata": {
"machine": "ultimaker3_extended",
diff --git a/resources/extruders/ultimaker3_extended_extruder_right.def.json b/resources/extruders/ultimaker3_extended_extruder_right.def.json
index 0f85b2dd09..2e072753b1 100644
--- a/resources/extruders/ultimaker3_extended_extruder_right.def.json
+++ b/resources/extruders/ultimaker3_extended_extruder_right.def.json
@@ -1,7 +1,7 @@
{
"id": "ultimaker3_extended_extruder_right",
"version": 2,
- "name": "Print core 2",
+ "name": "Extruder 2",
"inherits": "fdmextruder",
"metadata": {
"machine": "ultimaker3_extended",
diff --git a/resources/extruders/ultimaker3_extruder_left.def.json b/resources/extruders/ultimaker3_extruder_left.def.json
index 83efa25dbb..141fd2f80c 100644
--- a/resources/extruders/ultimaker3_extruder_left.def.json
+++ b/resources/extruders/ultimaker3_extruder_left.def.json
@@ -1,7 +1,7 @@
{
"id": "ultimaker3_extruder_left",
"version": 2,
- "name": "Print core 1",
+ "name": "Extruder 1",
"inherits": "fdmextruder",
"metadata": {
"machine": "ultimaker3",
diff --git a/resources/extruders/ultimaker3_extruder_right.def.json b/resources/extruders/ultimaker3_extruder_right.def.json
index 4a75059c40..50a369e3ed 100644
--- a/resources/extruders/ultimaker3_extruder_right.def.json
+++ b/resources/extruders/ultimaker3_extruder_right.def.json
@@ -1,7 +1,7 @@
{
"id": "ultimaker3_extruder_right",
"version": 2,
- "name": "Print core 2",
+ "name": "Extruder 2",
"inherits": "fdmextruder",
"metadata": {
"machine": "ultimaker3",
diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml
index 77e82b5f92..543ca0c26e 100644
--- a/resources/qml/Sidebar.qml
+++ b/resources/qml/Sidebar.qml
@@ -8,6 +8,7 @@ import QtQuick.Layouts 1.1
import UM 1.2 as UM
import Cura 1.0 as Cura
+import "Menus"
Rectangle
{
@@ -30,9 +31,21 @@ Rectangle
property bool printerConnected: Cura.MachineManager.printerOutputDevices.length != 0
property bool printerAcceptsCommands: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands
- color: UM.Theme.getColor("sidebar");
+ color: UM.Theme.getColor("sidebar")
UM.I18nCatalog { id: catalog; name:"cura"}
+ Timer {
+ id: tooltipDelayTimer
+ interval: 500
+ repeat: false
+ property var item
+ property string text
+
+ onTriggered:
+ {
+ base.showTooltip(base, {x:1, y:item.y}, text);
+ }
+ }
function showTooltip(item, position, text)
{
@@ -73,7 +86,7 @@ Rectangle
}
}
- // Mode selection buttons for changing between Setting & Monitor print mode
+ // Printer selection and mode selection buttons for changing between Setting & Monitor print mode
Rectangle
{
id: sidebarHeaderBar
@@ -85,25 +98,89 @@ Rectangle
Row
{
anchors.left: parent.left
- anchors.leftMargin: UM.Theme.getSize("default_margin").width;
anchors.right: parent.right
+ anchors.rightMargin: UM.Theme.getSize("default_margin").width
+ spacing: UM.Theme.getSize("default_margin").width
+
+ ToolButton
+ {
+ id: machineSelection
+ text: Cura.MachineManager.activeMachineName
+
+ width: parent.width - (showSettings.width + showMonitor.width + 2 * UM.Theme.getSize("default_margin").width)
+ height: UM.Theme.getSize("sidebar_header").height
+ tooltip: Cura.MachineManager.activeMachineName
+
+ anchors.verticalCenter: parent.verticalCenter
+ style: ButtonStyle {
+ background: Rectangle {
+ color: control.hovered ? UM.Theme.getColor("button_hover") :
+ control.pressed ? UM.Theme.getColor("button_hover") : UM.Theme.getColor("sidebar_header_bar")
+
+ UM.RecolorImage {
+ id: downArrow
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.right: parent.right
+ anchors.rightMargin: UM.Theme.getSize("default_margin").width
+ width: UM.Theme.getSize("standard_arrow").width
+ height: UM.Theme.getSize("standard_arrow").height
+ sourceSize.width: width
+ sourceSize.height: width
+ color: UM.Theme.getColor("text_reversed")
+ source: UM.Theme.getIcon("arrow_bottom")
+ }
+ Label {
+ id: sidebarComboBoxLabel
+ color: UM.Theme.getColor("text_reversed")
+ text: control.text;
+ elide: Text.ElideRight;
+ anchors.left: parent.left;
+ anchors.leftMargin: UM.Theme.getSize("default_margin").width
+ anchors.right: downArrow.left;
+ anchors.rightMargin: control.rightMargin;
+ anchors.verticalCenter: parent.verticalCenter;
+ font: UM.Theme.getFont("large")
+ }
+ }
+ label: Label{}
+ }
+
+ menu: PrinterMenu { }
+ }
+
Button
{
id: showSettings
- width: (parent.width - UM.Theme.getSize("default_margin").width) / 2
+ width: height
height: UM.Theme.getSize("sidebar_header").height
onClicked: monitoringPrint = false
iconSource: UM.Theme.getIcon("tab_settings");
checkable: true
checked: !monitoringPrint
exclusiveGroup: sidebarHeaderBarGroup
+ property string tooltipText: catalog.i18nc("@tooltip", "Print Setup
Edit or review the settings for the active print job.")
+
+ onHoveredChanged: {
+ if (hovered)
+ {
+ tooltipDelayTimer.item = showSettings
+ tooltipDelayTimer.text = tooltipText
+ tooltipDelayTimer.start();
+ }
+ else
+ {
+ tooltipDelayTimer.stop();
+ base.hideTooltip();
+ }
+ }
style: UM.Theme.styles.sidebar_header_tab
}
+
Button
{
id: showMonitor
- width: (parent.width - UM.Theme.getSize("default_margin").width) / 2
+ width: height
height: UM.Theme.getSize("sidebar_header").height
onClicked: monitoringPrint = true
iconSource: {
@@ -139,6 +216,21 @@ Rectangle
checkable: true
checked: monitoringPrint
exclusiveGroup: sidebarHeaderBarGroup
+ property string tooltipText: catalog.i18nc("@tooltip", "Print Monitor
Monitor the state of the connected printer and the print job in progress.")
+
+ onHoveredChanged: {
+ if (hovered)
+ {
+ tooltipDelayTimer.item = showMonitor
+ tooltipDelayTimer.text = tooltipText
+ tooltipDelayTimer.start();
+ }
+ else
+ {
+ tooltipDelayTimer.stop();
+ base.hideTooltip();
+ }
+ }
style: UM.Theme.styles.sidebar_header_tab
}
@@ -151,7 +243,6 @@ Rectangle
width: parent.width
anchors.top: sidebarHeaderBar.bottom
- anchors.topMargin: UM.Theme.getSize("default_margin").height
onShowTooltip: base.showTooltip(item, location, text)
onHideTooltip: base.hideTooltip()
@@ -160,10 +251,11 @@ Rectangle
Rectangle {
id: headerSeparator
width: parent.width
- height: UM.Theme.getSize("sidebar_lining").height
+ visible: !monitoringPrint
+ height: visible ? UM.Theme.getSize("sidebar_lining").height : 0
color: UM.Theme.getColor("sidebar_lining")
anchors.top: header.bottom
- anchors.topMargin: UM.Theme.getSize("default_margin").height
+ anchors.topMargin: visible ? UM.Theme.getSize("default_margin").height : 0
}
onCurrentModeIndexChanged:
@@ -212,6 +304,20 @@ Rectangle
checked: base.currentModeIndex == index
onClicked: base.currentModeIndex = index
+ onHoveredChanged: {
+ if (hovered)
+ {
+ tooltipDelayTimer.item = settingsModeSelection
+ tooltipDelayTimer.text = model.tooltipText
+ tooltipDelayTimer.start();
+ }
+ else
+ {
+ tooltipDelayTimer.stop();
+ base.hideTooltip();
+ }
+ }
+
style: ButtonStyle {
background: Rectangle {
border.width: UM.Theme.getSize("default_lining").width
@@ -408,8 +514,18 @@ Rectangle
Component.onCompleted:
{
- modesListModel.append({ text: catalog.i18nc("@title:tab", "Recommended"), item: sidebarSimple, showFilterButton: false })
- modesListModel.append({ text: catalog.i18nc("@title:tab", "Custom"), item: sidebarAdvanced, showFilterButton: true })
+ modesListModel.append({
+ text: catalog.i18nc("@title:tab", "Recommended"),
+ tooltipText: catalog.i18nc("@tooltip", "Recommended Print Setup
Print with the recommended settings for the selected printer, material and quality."),
+ item: sidebarSimple,
+ showFilterButton: false
+ })
+ modesListModel.append({
+ text: catalog.i18nc("@title:tab", "Custom"),
+ tooltipText: catalog.i18nc("@tooltip", "Custom Print Setup
Print with finegrained control over every last bit of the slicing process."),
+ item: sidebarAdvanced,
+ showFilterButton: true
+ })
sidebarContents.push({ "item": modesListModel.get(base.currentModeIndex).item, "immediate": true });
var index = parseInt(UM.Preferences.getValue("cura/active_mode"))
diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml
index e894392b06..78bde0c437 100644
--- a/resources/qml/SidebarHeader.qml
+++ b/resources/qml/SidebarHeader.qml
@@ -21,145 +21,142 @@ Column
signal showTooltip(Item item, point location, string text)
signal hideTooltip()
- Row
+ Item
{
- id: machineSelectionRow
- height: UM.Theme.getSize("sidebar_setup").height
+ id: extruderSelectionRow
+ width: parent.width
+ height: UM.Theme.getSize("sidebar_tabs").height
+ visible: machineExtruderCount.properties.value > 1 && !sidebar.monitoringPrint
- anchors
+ Rectangle
{
- left: parent.left
- leftMargin: UM.Theme.getSize("default_margin").width
- right: parent.right
- rightMargin: UM.Theme.getSize("default_margin").width
+ id: extruderSeparator
+ visible: machineExtruderCount.properties.value > 1 && !sidebar.monitoringPrint
+
+ width: parent.width
+ height: parent.height
+ color: UM.Theme.getColor("sidebar_lining")
+
+ anchors.top: extruderSelectionRow.top
}
- Label
+ ListView
{
- id: machineSelectionLabel
- text: catalog.i18nc("@label:listbox", "Printer:");
- anchors.verticalCenter: parent.verticalCenter
- font: UM.Theme.getFont("default");
- color: UM.Theme.getColor("text");
+ id: extrudersList
+ property var index: 0
- width: parent.width * 0.45 - UM.Theme.getSize("default_margin").width
- }
+ height: UM.Theme.getSize("sidebar_header_mode_tabs").height
+ width: parent.width
+ boundsBehavior: Flickable.StopAtBounds
- ToolButton
- {
- id: machineSelection
- text: Cura.MachineManager.activeMachineName;
+ anchors
+ {
+ left: parent.left
+ right: parent.right
+ bottom: extruderSelectionRow.bottom
+ }
- height: UM.Theme.getSize("setting_control").height
- tooltip: Cura.MachineManager.activeMachineName
- anchors.verticalCenter: parent.verticalCenter
- style: UM.Theme.styles.sidebar_header_button
+ ExclusiveGroup { id: extruderMenuGroup; }
- width: parent.width * 0.55 + UM.Theme.getSize("default_margin").width
+ orientation: ListView.Horizontal
- menu: PrinterMenu { }
+ model: Cura.ExtrudersModel { id: extrudersModel; addGlobal: false }
+
+ Connections
+ {
+ target: Cura.MachineManager
+ onGlobalContainerChanged:
+ {
+ forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values.
+ var extruder_index = (machineExtruderCount.properties.value == 1) ? -1 : 0
+ ExtruderManager.setActiveExtruderIndex(extruder_index);
+ }
+ }
+
+ delegate: Button
+ {
+ height: ListView.view.height
+ width: ListView.view.width / extrudersModel.rowCount()
+
+ text: model.name
+ tooltip: model.name
+ exclusiveGroup: extruderMenuGroup
+ checked: base.currentExtruderIndex == index
+
+ onClicked:
+ {
+ forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values.
+ ExtruderManager.setActiveExtruderIndex(index);
+ }
+
+ style: ButtonStyle
+ {
+ background: Rectangle
+ {
+ border.width: UM.Theme.getSize("default_lining").width
+ border.color: control.checked ? UM.Theme.getColor("tab_checked_border") :
+ control.pressed ? UM.Theme.getColor("tab_active_border") :
+ control.hovered ? UM.Theme.getColor("tab_hovered_border") : UM.Theme.getColor("tab_unchecked_border")
+ color: control.checked ? UM.Theme.getColor("tab_checked") :
+ control.pressed ? UM.Theme.getColor("tab_active") :
+ control.hovered ? UM.Theme.getColor("tab_hovered") : UM.Theme.getColor("tab_unchecked")
+ Behavior on color { ColorAnimation { duration: 50; } }
+
+ Rectangle
+ {
+ id: highlight
+ visible: control.checked
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: parent.top
+ height: UM.Theme.getSize("sidebar_header_highlight").height
+ color: UM.Theme.getColor("sidebar_header_bar")
+ }
+
+ Rectangle
+ {
+ id: swatch
+ visible: index > -1
+ height: UM.Theme.getSize("setting_control").height / 2
+ width: height
+ anchors.left: parent.left
+ anchors.leftMargin: (parent.height - height) / 2
+ anchors.verticalCenter: parent.verticalCenter
+
+ color: model.color
+ border.width: UM.Theme.getSize("default_lining").width
+ border.color: UM.Theme.getColor("setting_control_border")
+ }
+
+ Label
+ {
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: swatch.visible ? swatch.right : parent.left
+ anchors.leftMargin: swatch.visible ? UM.Theme.getSize("default_margin").width / 2 : UM.Theme.getSize("default_margin").width
+ anchors.right: parent.right
+ anchors.rightMargin: UM.Theme.getSize("default_margin").width / 2
+
+ color: control.checked ? UM.Theme.getColor("tab_checked_text") :
+ control.pressed ? UM.Theme.getColor("tab_active_text") :
+ control.hovered ? UM.Theme.getColor("tab_hovered_text") : UM.Theme.getColor("tab_unchecked_text")
+
+ font: UM.Theme.getFont("default")
+ text: control.text
+ elide: Text.ElideRight
+ }
+ }
+ label: Item { }
+ }
+ }
}
}
- ListView
+ Item
{
- id: extrudersList
- property var index: 0
-
- visible: machineExtruderCount.properties.value > 1 && !sidebar.monitoringPrint
- height: UM.Theme.getSize("sidebar_header_mode_toggle").height
-
- boundsBehavior: Flickable.StopAtBounds
-
- anchors
- {
- left: parent.left
- leftMargin: UM.Theme.getSize("default_margin").width
- right: parent.right
- rightMargin: UM.Theme.getSize("default_margin").width
- }
-
- ExclusiveGroup { id: extruderMenuGroup; }
-
- orientation: ListView.Horizontal
-
- model: Cura.ExtrudersModel { id: extrudersModel; addGlobal: false }
-
- Connections
- {
- target: Cura.MachineManager
- onGlobalContainerChanged:
- {
- forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values.
- var extruder_index = (machineExtruderCount.properties.value == 1) ? -1 : 0
- ExtruderManager.setActiveExtruderIndex(extruder_index);
- }
- }
-
- delegate: Button
- {
- height: ListView.view.height
- width: ListView.view.width / extrudersModel.rowCount()
-
- text: model.name
- tooltip: model.name
- exclusiveGroup: extruderMenuGroup
- checked: base.currentExtruderIndex == index
-
- onClicked:
- {
- forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values.
- ExtruderManager.setActiveExtruderIndex(index);
- }
-
- style: ButtonStyle
- {
- background: Rectangle
- {
- border.width: UM.Theme.getSize("default_lining").width
- border.color: control.checked ? UM.Theme.getColor("toggle_checked_border") :
- control.pressed ? UM.Theme.getColor("toggle_active_border") :
- control.hovered ? UM.Theme.getColor("toggle_hovered_border") : UM.Theme.getColor("toggle_unchecked_border")
- color: control.checked ? UM.Theme.getColor("toggle_checked") :
- control.pressed ? UM.Theme.getColor("toggle_active") :
- control.hovered ? UM.Theme.getColor("toggle_hovered") : UM.Theme.getColor("toggle_unchecked")
- Behavior on color { ColorAnimation { duration: 50; } }
-
- Rectangle
- {
- id: swatch
- visible: index > -1
- height: UM.Theme.getSize("setting_control").height / 2
- width: height
- anchors.left: parent.left
- anchors.leftMargin: (parent.height - height) / 2
- anchors.verticalCenter: parent.verticalCenter
-
- color: model.color
- border.width: UM.Theme.getSize("default_lining").width
- border.color: UM.Theme.getColor("toggle_checked")
- }
-
- Label
- {
- anchors.verticalCenter: parent.verticalCenter
- anchors.left: swatch.visible ? swatch.right : parent.left
- anchors.leftMargin: swatch.visible ? UM.Theme.getSize("default_margin").width / 2 : UM.Theme.getSize("default_margin").width
- anchors.right: parent.right
- anchors.rightMargin: UM.Theme.getSize("default_margin").width / 2
-
- color: control.checked ? UM.Theme.getColor("toggle_checked_text") :
- control.pressed ? UM.Theme.getColor("toggle_active_text") :
- control.hovered ? UM.Theme.getColor("toggle_hovered_text") : UM.Theme.getColor("toggle_unchecked_text")
-
- font: UM.Theme.getFont("default")
- text: control.text
- elide: Text.ElideRight
- }
- }
- label: Item { }
- }
- }
+ id: variantRowSpacer
+ height: UM.Theme.getSize("default_margin").height / 4
+ width: height
+ visible: !extruderSelectionRow.visible
}
Row
diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml
index c7da237648..499125a6f9 100644
--- a/resources/qml/SidebarSimple.qml
+++ b/resources/qml/SidebarSimple.qml
@@ -30,7 +30,7 @@ Item
id: infillCellLeft
anchors.top: parent.top
anchors.left: parent.left
- width: base.width / 100 * 35 - UM.Theme.getSize("default_margin").width
+ width: base.width * .45 - UM.Theme.getSize("default_margin").width
height: childrenRect.height
Label
@@ -52,7 +52,7 @@ Item
id: infillCellRight
height: childrenRect.height;
- width: base.width / 100 * 65
+ width: base.width * .55
spacing: UM.Theme.getSize("default_margin").width
anchors.left: infillCellLeft.right
@@ -231,7 +231,7 @@ Item
anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("default_margin").width
anchors.verticalCenter: enableSupportCheckBox.verticalCenter
- width: parent.width / 100 * 45 - 3 * UM.Theme.getSize("default_margin").width
+ width: parent.width * .45 - 3 * UM.Theme.getSize("default_margin").width
text: catalog.i18nc("@label", "Enable Support");
font: UM.Theme.getFont("default");
color: UM.Theme.getColor("text");
@@ -279,7 +279,7 @@ Item
anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("default_margin").width
anchors.verticalCenter: supportExtruderCombobox.verticalCenter
- width: parent.width / 100 * 45 - 3 * UM.Theme.getSize("default_margin").width
+ width: parent.width * .45 - 3 * UM.Theme.getSize("default_margin").width
text: catalog.i18nc("@label", "Support Extruder");
font: UM.Theme.getFont("default");
color: UM.Theme.getColor("text");
@@ -319,7 +319,7 @@ Item
}
anchors.left: supportExtruderLabel.right
anchors.leftMargin: UM.Theme.getSize("default_margin").width
- width: parent.width / 100 * 55
+ width: parent.width * .55
height:
{
if ((supportEnabled.properties.value == "True") && (machineExtruderCount.properties.value > 1))
@@ -332,6 +332,7 @@ Item
return 0;
}
}
+ Behavior on height { NumberAnimation { duration: 100 } }
style: UM.Theme.styles.combobox_color
enabled: base.settingsEnabled
@@ -377,7 +378,7 @@ Item
anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("default_margin").width
anchors.verticalCenter: adhesionCheckBox.verticalCenter
- width: parent.width / 100 * 45 - 3 * UM.Theme.getSize("default_margin").width
+ width: parent.width * .45 - 3 * UM.Theme.getSize("default_margin").width
text: catalog.i18nc("@label", "Build Plate Adhesion");
font: UM.Theme.getFont("default");
color: UM.Theme.getColor("text");
diff --git a/resources/qml/SidebarTooltip.qml b/resources/qml/SidebarTooltip.qml
index 5cb7ff1f0b..7344834c7e 100644
--- a/resources/qml/SidebarTooltip.qml
+++ b/resources/qml/SidebarTooltip.qml
@@ -29,6 +29,11 @@ UM.PointingRectangle {
} else {
x = position.x - base.width;
y = position.y - UM.Theme.getSize("tooltip_arrow_margins").height;
+ if(y < 0)
+ {
+ position.y += -y;
+ y = 0;
+ }
}
base.opacity = 1;
target = Qt.point(40 , position.y + UM.Theme.getSize("tooltip_arrow_margins").height / 2)
diff --git a/resources/themes/cura/theme.json b/resources/themes/cura/theme.json
index a29aefa143..d5a95a7104 100644
--- a/resources/themes/cura/theme.json
+++ b/resources/themes/cura/theme.json
@@ -91,7 +91,21 @@
"toggle_hovered_text": [24, 41, 77, 255],
"toggle_active": [32, 166, 219, 255],
"toggle_active_border": [32, 166, 219, 255],
- "toggle_active_text": [255, 255, 255, 255],
+ "toggle_active_text": [24, 41, 77, 255],
+
+ "tab_checked": [255, 255, 255, 255],
+ "tab_checked_border": [255, 255, 255, 255],
+ "tab_checked_text": [24, 41, 77, 255],
+ "tab_unchecked": [245, 245, 245, 255],
+ "tab_unchecked_border": [245, 245, 245, 255],
+ "tab_unchecked_text": [127, 127, 127, 255],
+ "tab_hovered": [245, 245, 245, 255],
+ "tab_hovered_border": [245, 245, 245, 255],
+ "tab_hovered_text": [32, 166, 219, 255],
+ "tab_active": [255, 255, 255, 255],
+ "tab_active_border": [255, 255, 255, 255],
+ "tab_active_text": [24, 41, 77, 255],
+ "tab_background": [245, 245, 245, 255],
"action_button": [255, 255, 255, 255],
"action_button_text": [24, 41, 77, 255],
@@ -191,10 +205,12 @@
"sidebar": [35.0, 10.0],
"sidebar_header": [0.0, 4.0],
- "sidebar_header_highlight": [0.5, 0.5],
+ "sidebar_header_highlight": [0.25, 0.25],
"sidebar_header_mode_toggle": [0.0, 2.0],
+ "sidebar_header_mode_tabs": [0.0, 3.0],
"sidebar_lining": [0.5, 0.5],
"sidebar_setup": [0.0, 2.0],
+ "sidebar_tabs": [0.0, 3.5],
"sidebar_inputfields": [0.0, 2.0],
"simple_mode_infill_caption": [0.0, 5.0],
"simple_mode_infill_height": [0.0, 8.0],