From 2085b83960cbb8e4693cf48a5bd265aa946256de Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Fri, 3 Aug 2018 13:49:56 +0200 Subject: Weekview with calendar colors --- framework/src/domain/perioddayeventmodel.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'framework/src/domain/perioddayeventmodel.cpp') diff --git a/framework/src/domain/perioddayeventmodel.cpp b/framework/src/domain/perioddayeventmodel.cpp index c5f2c197..4463e252 100644 --- a/framework/src/domain/perioddayeventmodel.cpp +++ b/framework/src/domain/perioddayeventmodel.cpp @@ -29,6 +29,8 @@ #include #include +#include + PeriodDayEventModel::PeriodDayEventModel(QObject *parent) : QAbstractItemModel(parent), partitionedEvents(7) { @@ -43,6 +45,7 @@ void PeriodDayEventModel::updateQuery() query.request(); query.request(); query.request(); + query.request(); auto periodEnd = mPeriodStart.addDays(mPeriodLength); @@ -59,6 +62,8 @@ void PeriodDayEventModel::updateQuery() QObject::connect(eventModel.data(), &QAbstractItemModel::rowsMoved, this, &PeriodDayEventModel::partitionData); QObject::connect(eventModel.data(), &QAbstractItemModel::rowsRemoved, this, &PeriodDayEventModel::partitionData); + mCalendarCache = EntityCache::Ptr::create(); + partitionData(); } @@ -157,6 +162,11 @@ int PeriodDayEventModel::columnCount(const QModelIndex &parent) const return eventModel->columnCount(); } +QByteArray PeriodDayEventModel::getColor(const QByteArray &calendar) const +{ + return mCalendarCache->getProperty(calendar, "color").toByteArray(); +} + QVariant PeriodDayEventModel::data(const QModelIndex &id, int role) const { if (id.internalId() == DAY_ID) { @@ -184,7 +194,7 @@ QVariant PeriodDayEventModel::data(const QModelIndex &id, int role) const {"description", data(eventId, Description)}, {"starts", startTime.hour() + startTime.minute() / 60.}, {"duration", data(eventId, Duration)}, - {"color", "#134bab"}, + {"color", data(eventId, Color)}, {"indention", 0}, }); } @@ -213,6 +223,8 @@ QVariant PeriodDayEventModel::data(const QModelIndex &id, int role) const auto end = event->getEndTime(); return start.secsTo(end) / 3600; } + case Color: + return getColor(event->getCalendar()); default: SinkWarning() << "Unknown role for event:" << QMetaEnum::fromType().valueToKey(role); return {}; @@ -229,6 +241,7 @@ QHash PeriodDayEventModel::roleNames() const {Description, "description"}, {StartTime, "starts"}, {Duration, "duration"}, + {Color, "color"} }; } -- cgit v1.2.3