mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-04-29 07:14:24 +08:00

Show a package as completelly installed if the user has more or the same number of packages than in the list. Otherwise if the contributor removes one of the packages from the list, it seems that I don't have all the packages installed when in fact I do.
134 lines
4.3 KiB
QML
134 lines
4.3 KiB
QML
// Copyright (c) 2018 Ultimaker B.V.
|
|
// Toolbox 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 QtQuick.Layouts 1.3
|
|
import UM 1.1 as UM
|
|
import Cura 1.1 as Cura
|
|
|
|
Item
|
|
{
|
|
id: toolboxDownloadsGridTile
|
|
property int packageCount: (toolbox.viewCategory == "material" && model.type === undefined) ? toolbox.getTotalNumberOfMaterialPackagesByAuthor(model.id) : 1
|
|
property int installedPackages: (toolbox.viewCategory == "material" && model.type === undefined) ? toolbox.getNumberOfInstalledPackagesByAuthor(model.id) : (toolbox.isInstalled(model.id) ? 1 : 0)
|
|
height: childrenRect.height
|
|
Layout.alignment: Qt.AlignTop | Qt.AlignLeft
|
|
|
|
MouseArea
|
|
{
|
|
anchors.fill: parent
|
|
hoverEnabled: true
|
|
onEntered: thumbnail.border.color = UM.Theme.getColor("primary")
|
|
onExited: thumbnail.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
|
|
}
|
|
}
|
|
}
|
|
|
|
Rectangle
|
|
{
|
|
id: thumbnail
|
|
width: UM.Theme.getSize("toolbox_thumbnail_small").width
|
|
height: UM.Theme.getSize("toolbox_thumbnail_small").height
|
|
color: UM.Theme.getColor("main_background")
|
|
border.width: UM.Theme.getSize("default_lining").width
|
|
border.color: UM.Theme.getColor("lining")
|
|
|
|
Image
|
|
{
|
|
anchors.centerIn: parent
|
|
width: UM.Theme.getSize("toolbox_thumbnail_small").width - UM.Theme.getSize("wide_margin").width
|
|
height: UM.Theme.getSize("toolbox_thumbnail_small").height - UM.Theme.getSize("wide_margin").width
|
|
fillMode: Image.PreserveAspectFit
|
|
source: model.icon_url || "../images/logobot.svg"
|
|
mipmap: true
|
|
}
|
|
UM.RecolorImage
|
|
{
|
|
width: (parent.width * 0.4) | 0
|
|
height: (parent.height * 0.4) | 0
|
|
anchors
|
|
{
|
|
bottom: parent.bottomcommi
|
|
right: parent.right
|
|
}
|
|
sourceSize.height: height
|
|
visible: installedPackages != 0
|
|
color: (installedPackages >= packageCount) ? UM.Theme.getColor("primary") : UM.Theme.getColor("border")
|
|
source: "../images/installed_check.svg"
|
|
}
|
|
}
|
|
Item
|
|
{
|
|
anchors
|
|
{
|
|
left: thumbnail.right
|
|
leftMargin: Math.floor(UM.Theme.getSize("narrow_margin").width)
|
|
right: parent.right
|
|
top: parent.top
|
|
bottom: parent.bottom
|
|
}
|
|
|
|
Label
|
|
{
|
|
id: name
|
|
text: model.name
|
|
width: parent.width
|
|
elide: Text.ElideRight
|
|
color: UM.Theme.getColor("text")
|
|
font: UM.Theme.getFont("default_bold")
|
|
}
|
|
Label
|
|
{
|
|
id: info
|
|
text: model.description
|
|
elide: Text.ElideRight
|
|
width: parent.width
|
|
wrapMode: Text.WordWrap
|
|
color: UM.Theme.getColor("text")
|
|
font: UM.Theme.getFont("default")
|
|
anchors.top: name.bottom
|
|
anchors.bottom: rating.top
|
|
verticalAlignment: Text.AlignVCenter
|
|
maximumLineCount: 2
|
|
}
|
|
SmallRatingWidget
|
|
{
|
|
id: rating
|
|
anchors
|
|
{
|
|
bottom: parent.bottom
|
|
left: parent.left
|
|
right: parent.right
|
|
}
|
|
}
|
|
}
|
|
}
|