From c795effd3d9eba0f85bb7904c5d77553eb1c7362 Mon Sep 17 00:00:00 2001 From: jordi fita mas Date: Tue, 14 Jan 2025 22:06:32 +0100 Subject: [PATCH] =?UTF-8?q?Set=20reservation=E2=80=99s=20rectangle=20color?= =?UTF-8?q?=20based=20on=20status?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ReservationsPage.qml | 18 +++++++++++++++++- src/timelineview.cpp | 2 ++ 2 files changed, 19 insertions(+), 1 deletion(-) 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;