[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