mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-04-29 15:25:02 +08:00
Cleanup gridTile
CURA-6013
This commit is contained in:
parent
fed9e2b623
commit
4742db6fec
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user