Set reservation’s rectangle color based on status

This commit is contained in:
jordi fita mas 2025-01-14 22:06:32 +01:00
parent e404727c45
commit c795effd3d
2 changed files with 19 additions and 1 deletions

View File

@ -83,10 +83,26 @@ Page {
id: booking
required property string holder
required property string reservationStatus
function reservationStatusColor(status) {
switch (status) {
case "created":
return "#cbebff";
case "cancelled":
return "#ffbaa6";
case "confirmed":
return "#ffe673";
case "checked-in":
return "#9fefb9";
case "invoiced":
return "#e1dbd6";
}
}
border.color: "black"
border.width: 1
color: "lightblue"
color: reservationStatusColor(reservationStatus)
Label {
anchors.fill: parent

View File

@ -174,6 +174,7 @@ TimelineView::Item *TimelineView::createItem(qint64 day, const TimelineModel::It
if (m_reusableItems.isEmpty()) {
QVariantMap initialProperties{
{"holder", modelItem.holder},
{"reservationStatus", modelItem.status},
};
item = qobject_cast<QQuickItem *>(
m_delegate->createWithInitialProperties(initialProperties,
@ -185,6 +186,7 @@ TimelineView::Item *TimelineView::createItem(qint64 day, const TimelineModel::It
} else {
item = m_reusableItems.takeLast();
item->setProperty("holder", modelItem.holder);
item->setProperty("reservationStatus", modelItem.status);
}
auto *viewItem = new TimelineView::Item(day, modelItem.nights, *item, *this);
return viewItem;