|
@@ -11,157 +11,208 @@ Item
|
|
|
id: base
|
|
|
|
|
|
property var packageData
|
|
|
- property var technicalDataSheetUrl: {
|
|
|
+ property var technicalDataSheetUrl:
|
|
|
+ {
|
|
|
var link = undefined
|
|
|
if ("Technical Data Sheet" in packageData.links)
|
|
|
{
|
|
|
+ // HACK: This is the way the old API (used in 3.6-beta) used to do it. For safety it's still here,
|
|
|
+ // but it can be removed over time.
|
|
|
link = packageData.links["Technical Data Sheet"]
|
|
|
}
|
|
|
+ else if ("technicalDataSheet" in packageData.links)
|
|
|
+ {
|
|
|
+ link = packageData.links["technicalDataSheet"]
|
|
|
+ }
|
|
|
return link
|
|
|
}
|
|
|
-
|
|
|
- anchors.topMargin: UM.Theme.getSize("default_margin").height
|
|
|
- height: visible ? childrenRect.height : 0
|
|
|
- visible: packageData.type == "material" && packageData.has_configs
|
|
|
- Label
|
|
|
+ property var safetyDataSheetUrl:
|
|
|
{
|
|
|
- id: heading
|
|
|
- anchors.topMargin: UM.Theme.getSize("default_margin").height
|
|
|
- width: parent.width
|
|
|
- text: catalog.i18nc("@label", "Compatibility")
|
|
|
- wrapMode: Text.WordWrap
|
|
|
- color: UM.Theme.getColor("text_medium")
|
|
|
- font: UM.Theme.getFont("medium")
|
|
|
+ var sds_name = "safetyDataSheet"
|
|
|
+ return (sds_name in packageData.links) ? packageData.links[sds_name] : undefined
|
|
|
}
|
|
|
- TableView
|
|
|
+ property var printingGuidelinesUrl:
|
|
|
{
|
|
|
- id: table
|
|
|
- anchors.top: heading.bottom
|
|
|
- anchors.topMargin: UM.Theme.getSize("default_margin").height
|
|
|
+ var pg_name = "printingGuidelines"
|
|
|
+ return (pg_name in packageData.links) ? packageData.links[pg_name] : undefined
|
|
|
+ }
|
|
|
+ anchors.topMargin: UM.Theme.getSize("default_margin").height
|
|
|
+ height: visible ? childrenRect.height : 0
|
|
|
+
|
|
|
+ visible: packageData.type == "material" &&
|
|
|
+ (packageData.has_configs || technicalDataSheetUrl !== undefined ||
|
|
|
+ safetyDataSheetUrl !== undefined || printingGuidelinesUrl !== undefined)
|
|
|
+
|
|
|
+ Item
|
|
|
+ {
|
|
|
+ id: combatibilityItem
|
|
|
+ visible: packageData.has_configs
|
|
|
width: parent.width
|
|
|
- frameVisible: false
|
|
|
+ // This is a bit of a hack, but the whole QML is pretty messy right now. This needs a big overhaul.
|
|
|
+ height: visible ? heading.height + table.height: 0
|
|
|
|
|
|
- // Workaround for scroll issues (QTBUG-49652)
|
|
|
- flickableItem.interactive: false
|
|
|
- Component.onCompleted:
|
|
|
+ Label
|
|
|
{
|
|
|
- for (var i = 0; i < flickableItem.children.length; ++i)
|
|
|
- {
|
|
|
- flickableItem.children[i].enabled = false
|
|
|
- }
|
|
|
+ id: heading
|
|
|
+ anchors.topMargin: UM.Theme.getSize("default_margin").height
|
|
|
+ width: parent.width
|
|
|
+ text: catalog.i18nc("@label", "Compatibility")
|
|
|
+ wrapMode: Text.WordWrap
|
|
|
+ color: UM.Theme.getColor("text_medium")
|
|
|
+ font: UM.Theme.getFont("medium")
|
|
|
}
|
|
|
- selectionMode: 0
|
|
|
- model: packageData.supported_configs
|
|
|
- headerDelegate: Rectangle
|
|
|
+
|
|
|
+ TableView
|
|
|
{
|
|
|
- color: UM.Theme.getColor("main_background")
|
|
|
- height: UM.Theme.getSize("toolbox_chart_row").height
|
|
|
- Label
|
|
|
+ id: table
|
|
|
+ anchors.top: heading.bottom
|
|
|
+ anchors.topMargin: UM.Theme.getSize("default_margin").height
|
|
|
+ width: parent.width
|
|
|
+ frameVisible: false
|
|
|
+
|
|
|
+ // Workaround for scroll issues (QTBUG-49652)
|
|
|
+ flickableItem.interactive: false
|
|
|
+ Component.onCompleted:
|
|
|
{
|
|
|
- anchors.verticalCenter: parent.verticalCenter
|
|
|
- elide: Text.ElideRight
|
|
|
- text: styleData.value || ""
|
|
|
- color: UM.Theme.getColor("text")
|
|
|
- font: UM.Theme.getFont("default_bold")
|
|
|
+ for (var i = 0; i < flickableItem.children.length; ++i)
|
|
|
+ {
|
|
|
+ flickableItem.children[i].enabled = false
|
|
|
+ }
|
|
|
}
|
|
|
- Rectangle
|
|
|
+ selectionMode: 0
|
|
|
+ model: packageData.supported_configs
|
|
|
+ headerDelegate: Rectangle
|
|
|
{
|
|
|
- anchors.bottom: parent.bottom
|
|
|
- height: UM.Theme.getSize("default_lining").height
|
|
|
- width: parent.width
|
|
|
- color: "black"
|
|
|
+ color: UM.Theme.getColor("sidebar")
|
|
|
+ height: UM.Theme.getSize("toolbox_chart_row").height
|
|
|
+ Label
|
|
|
+ {
|
|
|
+ anchors.verticalCenter: parent.verticalCenter
|
|
|
+ elide: Text.ElideRight
|
|
|
+ text: styleData.value || ""
|
|
|
+ color: UM.Theme.getColor("text")
|
|
|
+ font: UM.Theme.getFont("default_bold")
|
|
|
+ }
|
|
|
+ Rectangle
|
|
|
+ {
|
|
|
+ anchors.bottom: parent.bottom
|
|
|
+ height: UM.Theme.getSize("default_lining").height
|
|
|
+ width: parent.width
|
|
|
+ color: "black"
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- rowDelegate: Item
|
|
|
- {
|
|
|
- height: UM.Theme.getSize("toolbox_chart_row").height
|
|
|
- Label
|
|
|
+ rowDelegate: Item
|
|
|
{
|
|
|
- anchors.verticalCenter: parent.verticalCenter
|
|
|
- elide: Text.ElideRight
|
|
|
- text: styleData.value || ""
|
|
|
- color: UM.Theme.getColor("text_medium")
|
|
|
- font: UM.Theme.getFont("default")
|
|
|
+ height: UM.Theme.getSize("toolbox_chart_row").height
|
|
|
+ Label
|
|
|
+ {
|
|
|
+ anchors.verticalCenter: parent.verticalCenter
|
|
|
+ elide: Text.ElideRight
|
|
|
+ text: styleData.value || ""
|
|
|
+ color: UM.Theme.getColor("text_medium")
|
|
|
+ font: UM.Theme.getFont("default")
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- itemDelegate: Item
|
|
|
- {
|
|
|
- height: UM.Theme.getSize("toolbox_chart_row").height
|
|
|
- Label
|
|
|
+ itemDelegate: Item
|
|
|
{
|
|
|
- anchors.verticalCenter: parent.verticalCenter
|
|
|
- elide: Text.ElideRight
|
|
|
- text: styleData.value || ""
|
|
|
- color: UM.Theme.getColor("text_medium")
|
|
|
- font: UM.Theme.getFont("default")
|
|
|
+ height: UM.Theme.getSize("toolbox_chart_row").height
|
|
|
+ Label
|
|
|
+ {
|
|
|
+ anchors.verticalCenter: parent.verticalCenter
|
|
|
+ elide: Text.ElideRight
|
|
|
+ text: styleData.value || ""
|
|
|
+ color: UM.Theme.getColor("text_medium")
|
|
|
+ font: UM.Theme.getFont("default")
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- Component
|
|
|
- {
|
|
|
- id: columnTextDelegate
|
|
|
- Label
|
|
|
+ Component
|
|
|
{
|
|
|
- anchors.fill: parent
|
|
|
- verticalAlignment: Text.AlignVCenter
|
|
|
- text: styleData.value || ""
|
|
|
- elide: Text.ElideRight
|
|
|
- color: UM.Theme.getColor("text_medium")
|
|
|
- font: UM.Theme.getFont("default")
|
|
|
+ id: columnTextDelegate
|
|
|
+ Label
|
|
|
+ {
|
|
|
+ anchors.fill: parent
|
|
|
+ verticalAlignment: Text.AlignVCenter
|
|
|
+ text: styleData.value || ""
|
|
|
+ elide: Text.ElideRight
|
|
|
+ color: UM.Theme.getColor("text_medium")
|
|
|
+ font: UM.Theme.getFont("default")
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- TableViewColumn
|
|
|
- {
|
|
|
- role: "machine"
|
|
|
- title: "Machine"
|
|
|
- width: Math.floor(table.width * 0.25)
|
|
|
- delegate: columnTextDelegate
|
|
|
- }
|
|
|
- TableViewColumn
|
|
|
- {
|
|
|
- role: "print_core"
|
|
|
- title: "Print Core"
|
|
|
- width: Math.floor(table.width * 0.2)
|
|
|
- }
|
|
|
- TableViewColumn
|
|
|
- {
|
|
|
- role: "build_plate"
|
|
|
- title: "Build Plate"
|
|
|
- width: Math.floor(table.width * 0.225)
|
|
|
- }
|
|
|
- TableViewColumn
|
|
|
- {
|
|
|
- role: "support_material"
|
|
|
- title: "Support"
|
|
|
- width: Math.floor(table.width * 0.225)
|
|
|
- }
|
|
|
- TableViewColumn
|
|
|
- {
|
|
|
- role: "quality"
|
|
|
- title: "Quality"
|
|
|
- width: Math.floor(table.width * 0.1)
|
|
|
+ TableViewColumn
|
|
|
+ {
|
|
|
+ role: "machine"
|
|
|
+ title: "Machine"
|
|
|
+ width: Math.floor(table.width * 0.25)
|
|
|
+ delegate: columnTextDelegate
|
|
|
+ }
|
|
|
+ TableViewColumn
|
|
|
+ {
|
|
|
+ role: "print_core"
|
|
|
+ title: "Print Core"
|
|
|
+ width: Math.floor(table.width * 0.2)
|
|
|
+ }
|
|
|
+ TableViewColumn
|
|
|
+ {
|
|
|
+ role: "build_plate"
|
|
|
+ title: "Build Plate"
|
|
|
+ width: Math.floor(table.width * 0.225)
|
|
|
+ }
|
|
|
+ TableViewColumn
|
|
|
+ {
|
|
|
+ role: "support_material"
|
|
|
+ title: "Support"
|
|
|
+ width: Math.floor(table.width * 0.225)
|
|
|
+ }
|
|
|
+ TableViewColumn
|
|
|
+ {
|
|
|
+ role: "quality"
|
|
|
+ title: "Quality"
|
|
|
+ width: Math.floor(table.width * 0.1)
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
Label
|
|
|
{
|
|
|
- id: technical_data_sheet
|
|
|
- anchors.top: table.bottom
|
|
|
+ id: data_sheet_links
|
|
|
+ anchors.top: combatibilityItem.bottom
|
|
|
anchors.topMargin: UM.Theme.getSize("default_margin").height / 2
|
|
|
- visible: base.technicalDataSheetUrl !== undefined
|
|
|
+ visible: base.technicalDataSheetUrl !== undefined ||
|
|
|
+ base.safetyDataSheetUrl !== undefined || base.printingGuidelinesUrl !== undefined
|
|
|
+ height: visible ? contentHeight : 0
|
|
|
text:
|
|
|
{
|
|
|
+ var result = ""
|
|
|
if (base.technicalDataSheetUrl !== undefined)
|
|
|
{
|
|
|
- return "<a href='%1'>%2</a>".arg(base.technicalDataSheetUrl).arg("Technical Data Sheet")
|
|
|
+ var tds_name = catalog.i18nc("@action:label", "Technical Data Sheet")
|
|
|
+ result += "<a href='%1'>%2</a>".arg(base.technicalDataSheetUrl).arg(tds_name)
|
|
|
+ }
|
|
|
+ if (base.safetyDataSheetUrl !== undefined)
|
|
|
+ {
|
|
|
+ if (result.length > 0)
|
|
|
+ {
|
|
|
+ result += "<br/>"
|
|
|
+ }
|
|
|
+ var sds_name = catalog.i18nc("@action:label", "Safety Data Sheet")
|
|
|
+ result += "<a href='%1'>%2</a>".arg(base.safetyDataSheetUrl).arg(sds_name)
|
|
|
}
|
|
|
- return ""
|
|
|
+ if (base.printingGuidelinesUrl !== undefined)
|
|
|
+ {
|
|
|
+ if (result.length > 0)
|
|
|
+ {
|
|
|
+ result += "<br/>"
|
|
|
+ }
|
|
|
+ var pg_name = catalog.i18nc("@action:label", "Printing Guidelines")
|
|
|
+ result += "<a href='%1'>%2</a>".arg(base.printingGuidelinesUrl).arg(pg_name)
|
|
|
+ }
|
|
|
+ return result
|
|
|
}
|
|
|
font: UM.Theme.getFont("very_small")
|
|
|
color: UM.Theme.getColor("text")
|
|
|
linkColor: UM.Theme.getColor("text_link")
|
|
|
onLinkActivated: Qt.openUrlExternally(link)
|
|
|
}
|
|
|
-
|
|
|
}
|