mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-06 22:47:29 -06:00
109 lines
3.3 KiB
QML
109 lines
3.3 KiB
QML
// Copyright (C) 2021 Ultimaker B.V.
|
|
import QtQuick 2.10
|
|
import QtQuick.Controls 2.3
|
|
|
|
import UM 1.5 as UM
|
|
import Cura 1.6 as Cura
|
|
|
|
Cura.RoundedRectangle
|
|
{
|
|
id: base
|
|
width: parent.width
|
|
height: projectImage.height + 2 * UM.Theme.getSize("default_margin").width
|
|
cornerSide: Cura.RoundedRectangle.Direction.All
|
|
border.color: enabled ? UM.Theme.getColor("lining") : UM.Theme.getColor("action_button_disabled_border")
|
|
border.width: UM.Theme.getSize("default_lining").width
|
|
radius: UM.Theme.getSize("default_radius").width
|
|
color: getBackgroundColor()
|
|
signal clicked()
|
|
property alias imageSource: projectImage.source
|
|
property alias projectNameText: displayNameLabel.text
|
|
property alias projectUsernameText: usernameLabel.text
|
|
property alias projectLastUpdatedText: lastUpdatedLabel.text
|
|
property alias cardMouseAreaEnabled: cardMouseArea.enabled
|
|
|
|
onVisibleChanged: color = getBackgroundColor()
|
|
|
|
MouseArea
|
|
{
|
|
id: cardMouseArea
|
|
anchors.fill: parent
|
|
hoverEnabled: base.enabled
|
|
onEntered: color = getBackgroundColor()
|
|
onExited: color = getBackgroundColor()
|
|
onClicked: base.clicked()
|
|
}
|
|
|
|
Row
|
|
{
|
|
id: projectInformationRow
|
|
width: parent.width
|
|
padding: UM.Theme.getSize("default_margin").width
|
|
spacing: UM.Theme.getSize("default_margin").width
|
|
|
|
Image
|
|
{
|
|
id: projectImage
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
width: UM.Theme.getSize("card_icon").width
|
|
height: Math.round(width * 3/4)
|
|
sourceSize.width: width
|
|
sourceSize.height: height
|
|
fillMode: Image.PreserveAspectFit
|
|
mipmap: true
|
|
}
|
|
Column
|
|
{
|
|
id: projectLabelsColumn
|
|
height: projectImage.height
|
|
width: parent.width - x - UM.Theme.getSize("default_margin").width
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
|
|
UM.Label
|
|
{
|
|
id: displayNameLabel
|
|
width: parent.width
|
|
height: Math.round(parent.height / 3)
|
|
elide: Text.ElideRight
|
|
font: UM.Theme.getFont("default_bold")
|
|
}
|
|
|
|
UM.Label
|
|
{
|
|
id: usernameLabel
|
|
width: parent.width
|
|
height: Math.round(parent.height / 3)
|
|
elide: Text.ElideRight
|
|
color: base.enabled ? UM.Theme.getColor("small_button_text") : UM.Theme.getColor("text_disabled")
|
|
}
|
|
|
|
UM.Label
|
|
{
|
|
id: lastUpdatedLabel
|
|
width: parent.width
|
|
height: Math.round(parent.height / 3)
|
|
elide: Text.ElideRight
|
|
color: base.enabled ? UM.Theme.getColor("small_button_text") : UM.Theme.getColor("text_disabled")
|
|
}
|
|
}
|
|
}
|
|
|
|
function getBackgroundColor()
|
|
{
|
|
if(enabled)
|
|
{
|
|
if(cardMouseArea.containsMouse)
|
|
{
|
|
return UM.Theme.getColor("action_button_hovered")
|
|
}
|
|
else
|
|
{
|
|
return UM.Theme.getColor("main_background")
|
|
}
|
|
}
|
|
else
|
|
{
|
|
return UM.Theme.getColor("action_button_disabled")
|
|
}
|
|
}
|
|
}
|