mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-06 22:47:29 -06:00

Found these while looking at what would be needed to upgrade to qt 6.x This module is dropped, hence me going over all of the cases where it's used.
114 lines
3.9 KiB
QML
114 lines
3.9 KiB
QML
// Copyright (c) 2018 Ultimaker B.V.
|
|
// Cura is released under the terms of the LGPLv3 or higher.
|
|
|
|
import QtQuick 2.10
|
|
import QtQuick.Controls 1.4
|
|
import QtQuick.Controls.Styles 1.4
|
|
|
|
import UM 1.1 as UM
|
|
|
|
Rectangle
|
|
{
|
|
property int packageCount: toolbox.viewCategory == "material" ? toolbox.getTotalNumberOfMaterialPackagesByAuthor(model.id) : 1
|
|
property int installedPackages: toolbox.viewCategory == "material" ? toolbox.getNumberOfInstalledPackagesByAuthor(model.id) : (toolbox.isInstalled(model.id) ? 1 : 0)
|
|
id: tileBase
|
|
width: UM.Theme.getSize("toolbox_thumbnail_large").width + (2 * UM.Theme.getSize("default_lining").width)
|
|
height: thumbnail.height + packageName.height + UM.Theme.getSize("default_margin").width
|
|
border.width: UM.Theme.getSize("default_lining").width
|
|
border.color: UM.Theme.getColor("lining")
|
|
color: UM.Theme.getColor("main_background")
|
|
Image
|
|
{
|
|
id: thumbnail
|
|
height: UM.Theme.getSize("toolbox_thumbnail_large").height - 4 * UM.Theme.getSize("default_margin").height
|
|
width: UM.Theme.getSize("toolbox_thumbnail_large").height - 4 * UM.Theme.getSize("default_margin").height
|
|
sourceSize.height: height
|
|
sourceSize.width: width
|
|
fillMode: Image.PreserveAspectFit
|
|
source: model.icon_url || "../../images/placeholder.svg"
|
|
mipmap: true
|
|
anchors
|
|
{
|
|
top: parent.top
|
|
topMargin: UM.Theme.getSize("default_margin").height
|
|
horizontalCenter: parent.horizontalCenter
|
|
}
|
|
}
|
|
Label
|
|
{
|
|
id: packageName
|
|
text: model.name
|
|
anchors
|
|
{
|
|
horizontalCenter: parent.horizontalCenter
|
|
top: thumbnail.bottom
|
|
}
|
|
verticalAlignment: Text.AlignVCenter
|
|
horizontalAlignment: Text.AlignHCenter
|
|
renderType: Text.NativeRendering
|
|
height: UM.Theme.getSize("toolbox_heading_label").height
|
|
width: parent.width - UM.Theme.getSize("default_margin").width
|
|
wrapMode: Text.WordWrap
|
|
elide: Text.ElideRight
|
|
font: UM.Theme.getFont("medium_bold")
|
|
color: UM.Theme.getColor("text")
|
|
}
|
|
UM.RecolorImage
|
|
{
|
|
width: (parent.width * 0.20) | 0
|
|
height: width
|
|
anchors
|
|
{
|
|
bottom: bottomBorder.top
|
|
right: parent.right
|
|
}
|
|
visible: installedPackages != 0
|
|
color: (installedPackages >= packageCount) ? UM.Theme.getColor("primary") : UM.Theme.getColor("border")
|
|
source: "../../images/installed_check.svg"
|
|
}
|
|
|
|
Rectangle
|
|
{
|
|
id: bottomBorder
|
|
color: UM.Theme.getColor("primary")
|
|
anchors.bottom: parent.bottom
|
|
width: parent.width
|
|
height: UM.Theme.getSize("toolbox_header_highlight").height
|
|
}
|
|
|
|
MouseArea
|
|
{
|
|
anchors.fill: parent
|
|
hoverEnabled: true
|
|
onEntered: tileBase.border.color = UM.Theme.getColor("primary")
|
|
onExited: tileBase.border.color = UM.Theme.getColor("lining")
|
|
onClicked:
|
|
{
|
|
base.selection = model
|
|
switch(toolbox.viewCategory)
|
|
{
|
|
case "material":
|
|
|
|
// If model has a type, it must be a package
|
|
if (model.type !== undefined)
|
|
{
|
|
toolbox.viewPage = "detail"
|
|
toolbox.filterModelByProp("packages", "id", model.id)
|
|
}
|
|
else
|
|
{
|
|
toolbox.viewPage = "author"
|
|
toolbox.setFilters("packages", {
|
|
"author_id": model.id,
|
|
"type": "material"
|
|
})
|
|
}
|
|
break
|
|
default:
|
|
toolbox.viewPage = "detail"
|
|
toolbox.filterModelByProp("packages", "id", model.id)
|
|
break
|
|
}
|
|
}
|
|
}
|
|
}
|