From e391871b400c768d70c2b57bcf0180e62c31acf0 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Mon, 20 Aug 2018 08:52:03 +0200 Subject: Fetching the calendar colors once is enough. --- framework/src/domain/daylongeventmodel.cpp | 12 ++++++++---- framework/src/domain/perioddayeventmodel.cpp | 14 ++++++++------ 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/framework/src/domain/daylongeventmodel.cpp b/framework/src/domain/daylongeventmodel.cpp index cd26b5c4..cb9769c6 100644 --- a/framework/src/domain/daylongeventmodel.cpp +++ b/framework/src/domain/daylongeventmodel.cpp @@ -27,7 +27,9 @@ #include "entitycache.h" -DayLongEventModel::DayLongEventModel(QObject *parent) : QSortFilterProxyModel(parent) +DayLongEventModel::DayLongEventModel(QObject *parent) + : QSortFilterProxyModel(parent), + mCalendarCache{EntityCache::Ptr::create()} { setDynamicSortFilter(true); @@ -43,8 +45,6 @@ DayLongEventModel::DayLongEventModel(QObject *parent) : QSortFilterProxyModel(pa mModel = Sink::Store::loadModel(query); - mCalendarCache = EntityCache::Ptr::create(); - setSourceModel(mModel.data()); } @@ -61,7 +61,11 @@ QHash DayLongEventModel::roleNames() const QByteArray DayLongEventModel::getColor(const QByteArray &calendar) const { - return mCalendarCache->getProperty(calendar, "color").toByteArray(); + const auto color = mCalendarCache->getProperty(calendar, "color").toByteArray(); + if (color.isEmpty()) { + qWarning() << "Failed to get color for calendar " << calendar; + } + return color; } QVariant DayLongEventModel::data(const QModelIndex &idx, int role) const diff --git a/framework/src/domain/perioddayeventmodel.cpp b/framework/src/domain/perioddayeventmodel.cpp index 1f08fbd3..af9ca110 100644 --- a/framework/src/domain/perioddayeventmodel.cpp +++ b/framework/src/domain/perioddayeventmodel.cpp @@ -32,7 +32,9 @@ #include PeriodDayEventModel::PeriodDayEventModel(QObject *parent) - : QAbstractItemModel(parent), partitionedEvents(7) + : QAbstractItemModel(parent), + partitionedEvents(7), + mCalendarCache{EntityCache::Ptr::create()} { updateQuery(); } @@ -62,15 +64,11 @@ 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(); } void PeriodDayEventModel::partitionData() { - SinkLog() << "Partitioning event data"; - beginResetModel(); partitionedEvents = QVector>>(mPeriodLength); @@ -177,7 +175,11 @@ int PeriodDayEventModel::columnCount(const QModelIndex &parent) const QByteArray PeriodDayEventModel::getColor(const QByteArray &calendar) const { - return mCalendarCache->getProperty(calendar, "color").toByteArray(); + const auto color = mCalendarCache->getProperty(calendar, "color").toByteArray(); + if (color.isEmpty()) { + qWarning() << "Failed to get color for calendar " << calendar; + } + return color; } QDateTime PeriodDayEventModel::getStartTimeOfDay(const QDateTime &dateTime, int day) const -- cgit v1.2.3