Cleanup gridTile

CURA-6013
This commit is contained in:
Jaime van Kessel 2018-12-07 15:57:52 +01:00
parent fed9e2b623
commit 4742db6fec

View File

@ -13,124 +13,123 @@ Item
id: toolboxDownloadsGridTile id: toolboxDownloadsGridTile
property int packageCount: (toolbox.viewCategory == "material" && model.type === undefined) ? toolbox.getTotalNumberOfMaterialPackagesByAuthor(model.id) : 1 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) property int installedPackages: (toolbox.viewCategory == "material" && model.type === undefined) ? toolbox.getNumberOfInstalledPackagesByAuthor(model.id) : (toolbox.isInstalled(model.id) ? 1 : 0)
height: childrenRect.height height: UM.Theme.getSize("toolbox_thumbnail_small").height
Layout.alignment: Qt.AlignTop | Qt.AlignLeft Layout.alignment: Qt.AlignTop | Qt.AlignLeft
Rectangle Rectangle
{ {
id: highlight id: thumbnail
anchors.fill: parent width: UM.Theme.getSize("toolbox_thumbnail_small").width
opacity: 0.0 height: UM.Theme.getSize("toolbox_thumbnail_small").height
color: UM.Theme.getColor("primary") color: "white"
} border.width: UM.Theme.getSize("default_lining").width
Row border.color: UM.Theme.getColor("lining")
{
width: parent.width Image
height: childrenRect.height
spacing: Math.floor(UM.Theme.getSize("narrow_margin").width)
Rectangle
{ {
id: thumbnail anchors.centerIn: parent
width: UM.Theme.getSize("toolbox_thumbnail_small").width width: UM.Theme.getSize("toolbox_thumbnail_small").width - UM.Theme.getSize("wide_margin").width
height: UM.Theme.getSize("toolbox_thumbnail_small").height height: UM.Theme.getSize("toolbox_thumbnail_small").height - UM.Theme.getSize("wide_margin").width
color: "white" fillMode: Image.PreserveAspectFit
border.width: UM.Theme.getSize("default_lining").width source: model.icon_url || "../images/logobot.svg"
border.color: UM.Theme.getColor("lining") mipmap: true
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.bottom
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"
}
MouseArea
{
anchors.fill: thumbnail
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) UM.RecolorImage
{ {
toolbox.viewPage = "detail" width: (parent.width * 0.4) | 0
toolbox.filterModelByProp("packages", "id", model.id) height: (parent.height * 0.4) | 0
} anchors
else {
{ bottom: parent.bottom
toolbox.viewPage = "author" right: parent.right
toolbox.setFilters("packages", { }
"author_id": model.id, sourceSize.height: height
"type": "material" visible: installedPackages != 0
}) color: (installedPackages == packageCount) ? UM.Theme.getColor("primary") : UM.Theme.getColor("border")
} source: "../images/installed_check.svg"
break }
default:
MouseArea
{
anchors.fill: thumbnail
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.viewPage = "detail"
toolbox.filterModelByProp("packages", "id", model.id) toolbox.filterModelByProp("packages", "id", model.id)
break }
} 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
} }
} }
} }
Column }
Item
{
anchors
{ {
width: parent.width - thumbnail.width - parent.spacing left: thumbnail.right
spacing: Math.floor(UM.Theme.getSize("narrow_margin").width) leftMargin: Math.floor(UM.Theme.getSize("narrow_margin").width)
anchors.top: parent.top right: parent.right
//anchors.topMargin: UM.Theme.getSize("default_margin").height top: parent.top
Label bottom: parent.bottom
{ }
id: name
text: model.name
width: parent.width
wrapMode: Text.WordWrap
color: UM.Theme.getColor("text")
font: UM.Theme.getFont("default_bold")
}
Label
{
id: info
text: model.description
maximumLineCount: 2
elide: Text.ElideRight
width: parent.width
wrapMode: Text.WordWrap
color: UM.Theme.getColor("text_medium")
font: UM.Theme.getFont("default")
}
RatingWidget Label
{ {
visible: model.type == "plugin" id: name
packageId: model.id text: model.name
rating: model.average_rating != undefined ? model.average_rating : 0 width: parent.width
numRatings: model.num_ratings != undefined ? model.num_ratings : 0 elide: Text.ElideRight
userRating: model.user_rating color: UM.Theme.getColor("text")
enabled: installedPackages != 0 && Cura.API.account.isLoggedIn 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_medium")
font: UM.Theme.getFont("default")
anchors.top: name.bottom
anchors.bottom: rating.top
verticalAlignment: Text.AlignVCenter
}
RatingWidget
{
id: rating
visible: model.type == "plugin"
packageId: model.id
rating: model.average_rating != undefined ? model.average_rating : 0
numRatings: model.num_ratings != undefined ? model.num_ratings : 0
userRating: model.user_rating
enabled: installedPackages != 0 && Cura.API.account.isLoggedIn
anchors.bottom: parent.bottom
} }
} }
} }