mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-04-21 21:29:41 +08:00
210 lines
7.3 KiB
QML
210 lines
7.3 KiB
QML
// Copyright (c) 2019 Ultimaker B.V.
|
|
// Toolbox is released under the terms of the LGPLv3 or higher.
|
|
|
|
import QtQuick 2.10
|
|
import QtQuick.Controls 1.4
|
|
|
|
import UM 1.5 as UM
|
|
|
|
Item
|
|
{
|
|
id: base
|
|
|
|
property var packageData
|
|
property var technicalDataSheetUrl: packageData.links.technicalDataSheet
|
|
property var safetyDataSheetUrl: packageData.links.safetyDataSheet
|
|
property var printingGuidelinesUrl: packageData.links.printingGuidelines
|
|
property var materialWebsiteUrl: packageData.links.website
|
|
|
|
height: childrenRect.height
|
|
onVisibleChanged: packageData.type === "material" && (compatibilityItem.visible || dataSheetLinks.visible)
|
|
|
|
Column
|
|
{
|
|
id: compatibilityItem
|
|
visible: packageData.has_configs
|
|
width: parent.width
|
|
// 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
|
|
|
|
Label
|
|
{
|
|
id: heading
|
|
width: parent.width
|
|
text: catalog.i18nc("@label", "Compatibility")
|
|
wrapMode: Text.WordWrap
|
|
color: UM.Theme.getColor("text_medium")
|
|
font: UM.Theme.getFont("medium")
|
|
renderType: Text.NativeRendering
|
|
}
|
|
|
|
TableView
|
|
{
|
|
id: table
|
|
width: parent.width
|
|
frameVisible: false
|
|
|
|
// Workaround for scroll issues (QTBUG-49652)
|
|
flickableItem.interactive: false
|
|
Component.onCompleted:
|
|
{
|
|
for (var i = 0; i < flickableItem.children.length; ++i)
|
|
{
|
|
flickableItem.children[i].enabled = false
|
|
}
|
|
}
|
|
selectionMode: 0
|
|
model: packageData.supported_configs
|
|
headerDelegate: Rectangle
|
|
{
|
|
color: UM.Theme.getColor("main_background")
|
|
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")
|
|
renderType: Text.NativeRendering
|
|
}
|
|
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
|
|
{
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
elide: Text.ElideRight
|
|
text: styleData.value || ""
|
|
color: UM.Theme.getColor("text_medium")
|
|
font: UM.Theme.getFont("default")
|
|
renderType: Text.NativeRendering
|
|
}
|
|
}
|
|
itemDelegate: Item
|
|
{
|
|
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")
|
|
renderType: Text.NativeRendering
|
|
}
|
|
}
|
|
|
|
Component
|
|
{
|
|
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")
|
|
renderType: Text.NativeRendering
|
|
}
|
|
}
|
|
|
|
TableViewColumn
|
|
{
|
|
role: "machine"
|
|
title: catalog.i18nc("@label:table_header", "Machine")
|
|
width: Math.floor(table.width * 0.25)
|
|
delegate: columnTextDelegate
|
|
}
|
|
TableViewColumn
|
|
{
|
|
role: "print_core"
|
|
title: "Print Core" //This term should not be translated.
|
|
width: Math.floor(table.width * 0.2)
|
|
}
|
|
TableViewColumn
|
|
{
|
|
role: "build_plate"
|
|
title: catalog.i18nc("@label:table_header", "Build Plate")
|
|
width: Math.floor(table.width * 0.225)
|
|
}
|
|
TableViewColumn
|
|
{
|
|
role: "support_material"
|
|
title: catalog.i18nc("@label:table_header", "Support")
|
|
width: Math.floor(table.width * 0.225)
|
|
}
|
|
TableViewColumn
|
|
{
|
|
role: "quality"
|
|
title: catalog.i18nc("@label:table_header", "Quality")
|
|
width: Math.floor(table.width * 0.1)
|
|
}
|
|
}
|
|
}
|
|
|
|
Label
|
|
{
|
|
id: dataSheetLinks
|
|
anchors.top: compatibilityItem.bottom
|
|
anchors.topMargin: UM.Theme.getSize("narrow_margin").height
|
|
visible: base.technicalDataSheetUrl !== undefined ||
|
|
base.safetyDataSheetUrl !== undefined ||
|
|
base.printingGuidelinesUrl !== undefined ||
|
|
base.materialWebsiteUrl !== undefined
|
|
|
|
text:
|
|
{
|
|
var result = ""
|
|
if (base.technicalDataSheetUrl !== undefined)
|
|
{
|
|
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)
|
|
}
|
|
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)
|
|
}
|
|
if (base.materialWebsiteUrl !== undefined)
|
|
{
|
|
if (result.length > 0)
|
|
{
|
|
result += "<br/>"
|
|
}
|
|
var pg_name = catalog.i18nc("@action:label", "Website")
|
|
result += "<a href='%1'>%2</a>".arg(base.materialWebsiteUrl).arg(pg_name)
|
|
}
|
|
|
|
return result
|
|
}
|
|
font: UM.Theme.getFont("default")
|
|
color: UM.Theme.getColor("text")
|
|
linkColor: UM.Theme.getColor("text_link")
|
|
onLinkActivated: UM.UrlUtil.openUrl(link, ["http", "https"])
|
|
renderType: Text.NativeRendering
|
|
}
|
|
}
|