diff --git a/src/ReservationsPage.qml b/src/ReservationsPage.qml index 619015a..be9178e 100644 --- a/src/ReservationsPage.qml +++ b/src/ReservationsPage.qml @@ -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 diff --git a/src/timelineview.cpp b/src/timelineview.cpp index 9b5f41d..c1f27dd 100644 --- a/src/timelineview.cpp +++ b/src/timelineview.cpp @@ -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( 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;