[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kdepim] kalarm: Show calendars in colour appropriate to the
From: David Jarvie <djarvie () kde ! org>
Date: 2011-11-30 23:04:06
Message-ID: 20111130230406.4628DA60B9 () git ! kde ! org
[Download RAW message or body]
Git commit 14fd90df45b319792d348dbff8aeea3e4d9c612d by David Jarvie.
Committed on 30/11/2011 at 23:49.
Pushed by djarvie into branch 'master'.
Show calendars in colour appropriate to the calendar list's alarm type
M +19 -13 kalarm/akonadimodel.cpp
M +2 -0 kalarm/akonadimodel.h
M +7 -0 kalarm/collectionmodel.cpp
http://commits.kde.org/kdepim/14fd90df45b319792d348dbff8aeea3e4d9c612d
diff --git a/kalarm/akonadimodel.cpp b/kalarm/akonadimodel.cpp
index 0d4a8ff..71fccf1 100644
--- a/kalarm/akonadimodel.cpp
+++ b/kalarm/akonadimodel.cpp
@@ -221,19 +221,7 @@ QVariant AkonadiModel::data(const QModelIndex& index, int role) \
const break;
}
case Qt::ForegroundRole:
- {
- QStringList mimeTypes = collection.contentMimeTypes();
- QColor colour;
- if (mimeTypes.contains(KAlarmCal::MIME_ACTIVE))
- colour = \
KColorScheme(QPalette::Active).foreground(KColorScheme::NormalText).color();
- else if (mimeTypes.contains(KAlarmCal::MIME_ARCHIVED))
- colour = Preferences::archivedColour();
- else if (mimeTypes.contains(KAlarmCal::MIME_TEMPLATE))
- colour = \
KColorScheme(QPalette::Active).foreground(KColorScheme::LinkText).color();
- if (colour.isValid())
- return (collection.rights() & writableRights) == writableRights \
? colour : KColorUtils::lighten(colour, 0.25);
- break;
- }
+ return foregroundColor(collection, collection.contentMimeTypes());
case Qt::ToolTipRole:
return tooltip(collection, CalEvent::ACTIVE | CalEvent::ARCHIVED | \
CalEvent::TEMPLATE); case AlarmTypeRole:
@@ -886,6 +874,24 @@ void AkonadiModel::updateCommandError(const KAEvent& event)
}
/******************************************************************************
+* Return the foreground color for displaying a collection, based on the
+* supplied mime types which it contains, and on whether it is fully writable.
+*/
+QColor AkonadiModel::foregroundColor(const Akonadi::Collection& collection, const \
QStringList& mimeTypes) +{
+ QColor colour;
+ if (mimeTypes.contains(KAlarmCal::MIME_ACTIVE))
+ colour = KColorScheme(QPalette::Active).foreground(KColorScheme::NormalText).color();
+ else if (mimeTypes.contains(KAlarmCal::MIME_ARCHIVED))
+ colour = Preferences::archivedColour();
+ else if (mimeTypes.contains(KAlarmCal::MIME_TEMPLATE))
+ colour = KColorScheme(QPalette::Active).foreground(KColorScheme::LinkText).color();
+ if (colour.isValid() && (collection.rights() & writableRights) != \
writableRights) + return KColorUtils::lighten(colour, 0.25);
+ return colour;
+}
+
+/******************************************************************************
* Set the background color for displaying the collection and its alarms.
*/
void AkonadiModel::setBackgroundColor(Collection& collection, const QColor& colour)
diff --git a/kalarm/akonadimodel.h b/kalarm/akonadimodel.h
index 4077de7..ca51ea2 100644
--- a/kalarm/akonadimodel.h
+++ b/kalarm/akonadimodel.h
@@ -85,6 +85,8 @@ class AkonadiModel : public Akonadi::EntityTreeModel
QString displayName(Akonadi::Collection&) const;
/** Return the storage type (file/directory/URL etc.) for a collection. */
QString storageType(const Akonadi::Collection&) const;
+ /** Get the foreground color for a collection, based on specified mime \
types. */ + static QColor foregroundColor(const Akonadi::Collection&, const \
QStringList& mimeTypes); /** Set the background color for a collection and its \
alarms. */ void setBackgroundColor(Akonadi::Collection&, const QColor&);
/** Get the background color for a collection and its alarms. */
diff --git a/kalarm/collectionmodel.cpp b/kalarm/collectionmodel.cpp
index 954c097..5d11bfd 100644
--- a/kalarm/collectionmodel.cpp
+++ b/kalarm/collectionmodel.cpp
@@ -299,6 +299,13 @@ QVariant CollectionCheckListModel::data(const QModelIndex& \
index, int role) cons // This is a Collection row
switch (role)
{
+ case Qt::ForegroundRole:
+ {
+ QString mimeType = CalEvent::mimeType(mAlarmType);
+ if (collection.contentMimeTypes().contains(mimeType))
+ return AkonadiModel::foregroundColor(collection, \
QStringList(mimeType)); + break;
+ }
case Qt::FontRole:
{
if (!collection.hasAttribute<CollectionAttribute>()
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic