[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [plasmoid-eventlist] src: filter for collections instead of resources
From: Gerd Fleischer <gerdfleischer () web ! de>
Date: 2012-08-31 17:18:29
Message-ID: 20120831171829.3B163A6094 () git ! kde ! org
[Download RAW message or body]
Git commit a195aa3934566ad3d3995c99e4bbc2e527b2c418 by Gerd Fleischer.
Committed on 31/08/2012 at 19:00.
Pushed by geflei into branch 'master'.
filter for collections instead of resources
this way one can select/disable calendars instead of the whole resource,
e.g. whith the google resource
M +26 -38 src/eventapplet.cpp
M +4 -4 src/eventapplet.h
M +14 -14 src/eventfiltermodel.cpp
M +2 -2 src/eventfiltermodel.h
M +16 -5 src/eventmodel.cpp
M +3 -1 src/eventmodel.h
http://commits.kde.org/plasmoid-eventlist/a195aa3934566ad3d3995c99e4bbc2e527b2c418
diff --git a/src/eventapplet.cpp b/src/eventapplet.cpp
index cef44ec..5ffe562 100644
--- a/src/eventapplet.cpp
+++ b/src/eventapplet.cpp
@@ -80,7 +80,7 @@ EventApplet::EventApplet(QObject *parent, const QVariantList &args) \
: m_timer(0),
m_agentManager(0),
incidenceTypesDialog(0),
- resourceDialog(0),
+ collectionDialog(0),
categoriesDialog(0),
m_openEventWatcher(0),
m_addEventWatcher(0),
@@ -106,7 +106,7 @@ void EventApplet::init()
KConfigGroup cg = config();
disabledTypes = cg.readEntry("DisabledIncidenceTypes", QStringList());
- disabledResources = cg.readEntry("DisabledResources", QStringList());
+ disabledCollections = cg.readEntry("DisabledCollections", QStringList());
disabledCategories = cg.readEntry("DisabledCategories", QStringList());
QString normalEventFormat = cg.readEntry("NormalEventFormat", \
QString("%{startDate} %{startTime} %{summary}")); @@ -193,7 +193,7 @@ void \
EventApplet::setupModel() m_filterModel->setPeriod(m_period);
m_filterModel->setShowFinishedTodos(m_showFinishedTodos);
m_filterModel->setDisabledTypes(disabledTypes);
- m_filterModel->setExcludedResources(disabledResources);
+ m_filterModel->setExcludedCollections(disabledCollections);
m_filterModel->setDisabledCategories(disabledCategories);
m_filterModel->setDynamicSortFilter(true);
m_filterModel->setSourceModel(m_model);
@@ -511,47 +511,35 @@ void EventApplet::incidenceTypesDialogAccepted()
m_view->expandAll();
}
-void EventApplet::setShownResources()
+void EventApplet::setShownCollections()
{
- QMap<QString, QString> resourcesMap;
- Akonadi::AgentInstance::List instList = m_agentManager->instances();
- foreach (const Akonadi::AgentInstance &inst, instList) {
- QStringList agentMimeTypes = inst.type().mimeTypes();
- if (agentMimeTypes.contains(KCalCore::Event::eventMimeType()) ||
- agentMimeTypes.contains(KCalCore::Todo::todoMimeType()) ||
- agentMimeTypes.contains("text/calendar")) {
- resourcesMap[inst.name()] = inst.identifier();
- }
- }
+ if (!collectionDialog) {
+ collectionDialog = new CheckBoxDialog(0, disabledCollections, \
m_model->usedCollections()); + collectionDialog->setCaption(i18n("Select \
Collections")); + collectionDialog->setButtons(KDialog::User1 | KDialog::User2 \
| KDialog::Ok | KDialog::Apply | KDialog::Cancel | KDialog::Reset); + \
collectionDialog->setButtonText(KDialog::User1, i18n("Uncheck all")); + \
collectionDialog->setButtonIcon(KDialog::User1, KIcon("edit-clear-list")); + \
collectionDialog->setButtonText(KDialog::User2, i18n("Check all")); + \
collectionDialog->setButtonIcon(KDialog::User2, KIcon("checkbox")); + \
collectionDialog->setButtonsOrientation(Qt::Vertical);
- if (!resourceDialog) {
- resourceDialog = new CheckBoxDialog(0, disabledResources, resourcesMap);
- resourceDialog->setCaption(i18n("Select Resources"));
- resourceDialog->setButtons(KDialog::User1 | KDialog::User2 | KDialog::Ok | \
KDialog::Apply | KDialog::Cancel | KDialog::Reset);
- resourceDialog->setButtonText(KDialog::User1, i18n("Uncheck all"));
- resourceDialog->setButtonIcon(KDialog::User1, KIcon("edit-clear-list"));
- resourceDialog->setButtonText(KDialog::User2, i18n("Check all"));
- resourceDialog->setButtonIcon(KDialog::User2, KIcon("checkbox"));
- resourceDialog->setButtonsOrientation(Qt::Vertical);
-
- connect(resourceDialog, SIGNAL(applyClicked()), this, \
SLOT(resourceDialogAccepted()));
- connect(resourceDialog, SIGNAL(okClicked()), this, \
SLOT(resourceDialogAccepted())); + connect(collectionDialog, \
SIGNAL(applyClicked()), this, SLOT(collectionDialogAccepted())); + \
connect(collectionDialog, SIGNAL(okClicked()), this, \
SLOT(collectionDialogAccepted())); } else {
- resourceDialog->setupCheckBoxWidget(disabledResources, resourcesMap);
+ collectionDialog->setupCheckBoxWidget(disabledCollections, \
m_model->usedCollections()); }
- resourceDialog->show();
+ collectionDialog->show();
}
-void EventApplet::resourceDialogAccepted()
+void EventApplet::collectionDialogAccepted()
{
- disabledResources = resourceDialog->disabledProperties();
-
+ disabledCollections = collectionDialog->disabledProperties();
KConfigGroup cg = config();
- cg.writeEntry("DisabledResources", disabledResources);
+ cg.writeEntry("DisabledCollections", disabledCollections);
emit configNeedsSaving();
- m_filterModel->setExcludedResources(disabledResources);
+ m_filterModel->setExcludedCollections(disabledCollections);
m_view->expandAll();
}
@@ -672,10 +660,10 @@ QList<QAction *> EventApplet::contextualActions()
connect(selectIncidenceTypes, SIGNAL(triggered()), this, \
SLOT(setIncidenceTypes())); currentActions.append(selectIncidenceTypes);
- QAction *selectResources = new QAction(i18n("Select shown resources"), this);
- selectResources->setIcon(KIcon("view-calendar-tasks"));
- connect(selectResources, SIGNAL(triggered()), this, SLOT(setShownResources()));
- currentActions.append(selectResources);
+ QAction *selectCollections = new QAction(i18n("Select shown collections"), \
this); + selectCollections->setIcon(KIcon("view-calendar-tasks"));
+ connect(selectCollections, SIGNAL(triggered()), this, \
SLOT(setShownCollections())); + currentActions.append(selectCollections);
QAction *selectCategories = new QAction(i18n("Select shown categories"), this);
selectCategories->setIcon(KIcon("checkbox"));
diff --git a/src/eventapplet.h b/src/eventapplet.h
index dc72412..d54db8f 100644
--- a/src/eventapplet.h
+++ b/src/eventapplet.h
@@ -76,8 +76,8 @@ private slots:
void timerExpired();
void setIncidenceTypes();
void incidenceTypesDialogAccepted();
- void setShownResources();
- void resourceDialogAccepted();
+ void setShownCollections();
+ void collectionDialogAccepted();
void setShownCategories();
void categoriesDialogAccepted();
void setupModel();
@@ -125,8 +125,8 @@ private:
QList<QColor> m_colors;
QTimer *m_timer;
Akonadi::AgentManager *m_agentManager;
- QStringList disabledTypes, disabledResources, disabledCategories, \
m_headerItemsList, m_categories;
- CheckBoxDialog *incidenceTypesDialog, *resourceDialog, *categoriesDialog;
+ QStringList disabledTypes, disabledCollections, disabledCategories, \
m_headerItemsList, m_categories; + CheckBoxDialog *incidenceTypesDialog, \
*collectionDialog, *categoriesDialog; QDateTime lastCheckTime;
bool m_showFinishedTodos, m_autoGroupHeader;
QString m_uid, m_appletTitle;
diff --git a/src/eventfiltermodel.cpp b/src/eventfiltermodel.cpp
index d47922a..e4c4364 100644
--- a/src/eventfiltermodel.cpp
+++ b/src/eventfiltermodel.cpp
@@ -24,7 +24,7 @@
EventFilterModel::EventFilterModel(QObject *parent) : QSortFilterProxyModel(parent)
{
m_period = 365;
- m_excludedResources = QStringList();
+ m_excludedCollections = QStringList();
m_disabledCategories = QStringList();
}
@@ -51,10 +51,10 @@ void EventFilterModel::setDisabledTypes(QStringList types)
invalidateFilter();
}
-void EventFilterModel::setExcludedResources(QStringList resources)
+void EventFilterModel::setExcludedCollections(QStringList collections)
{
- m_excludedResources = resources;
- m_excludedResources.sort();
+ m_excludedCollections = collections;
+ m_excludedCollections.sort();
invalidateFilter();
}
@@ -95,7 +95,7 @@ bool EventFilterModel::filterAcceptsRow( int sourceRow, const \
QModelIndex &sourc
const QModelIndex idx = sourceModel()->index( sourceRow, 0, sourceParent );
const int itemType = idx.data(EventModel::ItemTypeRole).toInt();
- const QString resourceRole = idx.data(EventModel::ResourceRole).toString();
+ const QString collectionRole = idx.data(EventModel::CollectionRole).toString();
const QVariant d = idx.data(EventModel::SortRole);
const QDate date= d.toDate();
@@ -106,8 +106,8 @@ bool EventFilterModel::filterAcceptsRow( int sourceRow, const \
QModelIndex &sourc int rows = sourceModel()->rowCount(idx);
for (int row = 0; row < rows; ++ row) { // if the header would be \
empty dont show it
QModelIndex childIdx = sourceModel()->index(row, 0, idx);
- const QString cr = \
childIdx.data(EventModel::ResourceRole).toString();
- if (!m_excludedResources.contains(cr) && \
!isDisabledType(childIdx) && !isDisabledCategory(childIdx)) { + \
const QString cr = childIdx.data(EventModel::CollectionRole).toString(); + \
if (!m_excludedCollections.contains(cr) && !isDisabledType(childIdx) && \
!isDisabledCategory(childIdx)) {
const QMap<QString, QVariant> values = \
childIdx.data(Qt::DisplayRole).toMap();
if (m_showFinishedTodos || values["completed"].toBool() == \
false) return true;
@@ -115,7 +115,7 @@ bool EventFilterModel::filterAcceptsRow( int sourceRow, const \
QModelIndex &sourc }
return false;
} else {
- if (!m_excludedResources.contains(resourceRole) && \
!isDisabledType(idx) && !isDisabledCategory(idx)) { + if \
(!m_excludedCollections.contains(collectionRole) && !isDisabledType(idx) && \
!isDisabledCategory(idx)) {
const QMap<QString, QVariant> values = \
idx.data(Qt::DisplayRole).toMap();
if (m_showFinishedTodos || values["completed"].toBool() == \
false) { return true;
@@ -131,8 +131,8 @@ bool EventFilterModel::filterAcceptsRow( int sourceRow, const \
QModelIndex &sourc int rows = sourceModel()->rowCount(idx);
for (int row = 0; row < rows; ++row) {
QModelIndex childIdx = sourceModel()->index(row, 0, idx);
- const QString cr = \
childIdx.data(EventModel::ResourceRole).toString();
- if (!m_excludedResources.contains(cr) && \
!isDisabledType(childIdx) && !isDisabledCategory(childIdx)) { + \
const QString cr = childIdx.data(EventModel::CollectionRole).toString(); + \
if (!m_excludedCollections.contains(cr) && !isDisabledType(childIdx) && \
!isDisabledCategory(childIdx)) {
const int childType = \
childIdx.data(EventModel::ItemTypeRole).toInt();
const QMap<QString, QVariant> values = \
childIdx.data(Qt::DisplayRole).toMap();
if (childType == EventModel::TodoItem) { // dont show \
old finished stuff @@ -147,7 +147,7 @@ bool EventFilterModel::filterAcceptsRow( int \
sourceRow, const QModelIndex &sourc }
return false;
} else {
- if (m_excludedResources.contains(resourceRole) || \
isDisabledType(idx) || isDisabledCategory(idx)) { + if \
(m_excludedCollections.contains(collectionRole) || isDisabledType(idx) || \
isDisabledCategory(idx)) { return false;
}
@@ -165,9 +165,9 @@ bool EventFilterModel::filterAcceptsRow( int sourceRow, const \
QModelIndex &sourc int rows = sourceModel()->rowCount(idx);
for (int row = 0; row < rows; ++ row) {
QModelIndex childIdx = sourceModel()->index(row, 0, idx);
- const QString cr = \
childIdx.data(EventModel::ResourceRole).toString(); + const \
QString cr = childIdx.data(EventModel::CollectionRole).toString();
const QDate cd = childIdx.data(EventModel::SortRole).toDate();
- if ((!m_excludedResources.contains(cr) && \
!isDisabledType(childIdx) && !isDisabledCategory(childIdx)) && cd <= \
QDate::currentDate().addDays(m_period)) { + if \
((!m_excludedCollections.contains(cr) && !isDisabledType(childIdx) && \
!isDisabledCategory(childIdx)) && cd <= \
QDate::currentDate().addDays(m_period)) {
const int childType = \
childIdx.data(EventModel::ItemTypeRole).toInt();
const QMap<QString, QVariant> values = \
childIdx.data(Qt::DisplayRole).toMap(); if (childType != EventModel::TodoItem) {
@@ -178,7 +178,7 @@ bool EventFilterModel::filterAcceptsRow( int sourceRow, const \
QModelIndex &sourc }
}
return false;
- } else if (m_excludedResources.contains(resourceRole) || \
isDisabledType(idx) || isDisabledCategory(idx)) { + } else if \
(m_excludedCollections.contains(collectionRole) || isDisabledType(idx) || \
isDisabledCategory(idx)) { return false;
} else if (itemType == EventModel::TodoItem) {
const QMap<QString, QVariant> values = \
idx.data(Qt::DisplayRole).toMap();
diff --git a/src/eventfiltermodel.h b/src/eventfiltermodel.h
index 98ab0b2..c6a9588 100644
--- a/src/eventfiltermodel.h
+++ b/src/eventfiltermodel.h
@@ -32,7 +32,7 @@ public:
void setPeriod(int period);
void setShowFinishedTodos(bool showFinishedTodos);
void setDisabledTypes(QStringList types);
- void setExcludedResources(QStringList resources);
+ void setExcludedCollections(QStringList collections);
void setDisabledCategories(QStringList categories);
protected:
@@ -45,7 +45,7 @@ private:
private:
int m_period;
bool m_showFinishedTodos;
- QStringList m_disabledTypes, m_excludedResources, m_disabledCategories;
+ QStringList m_disabledTypes, m_excludedCollections, m_disabledCategories;
};
#endif
diff --git a/src/eventmodel.cpp b/src/eventmodel.cpp
index be5cc75..3a85ae1 100644
--- a/src/eventmodel.cpp
+++ b/src/eventmodel.cpp
@@ -157,7 +157,7 @@ void EventModel::initHeaderItem(QStandardItem *item, QString \
title, QString tool item->setForeground(QBrush(textColor));
item->setData(QVariant(date), SortRole);
item->setData(QVariant(HeaderItem), ItemTypeRole);
- item->setData(QVariant(QString()), ResourceRole);
+ item->setData(QVariant(QString()), CollectionRole);
item->setData(QVariant(QString()), UIDRole);
item->setData(QVariant("<qt><b>" + toolTip + "</b></qt>"), TooltipRole);
}
@@ -166,6 +166,8 @@ void EventModel::resetModel()
{
clear();
m_sectionItemsMap.clear();
+ m_collections.clear();
+ m_usedCollections.clear();
parentItem = invisibleRootItem();
delete m_monitor;
m_monitor = 0;
@@ -349,7 +351,7 @@ void EventModel::addEventItem(const QMap<QString, QVariant> \
&values) eventItem->setData(eventDtTime, SortRole);
eventItem->setData(values["uid"], UIDRole);
eventItem->setData(values["itemid"], ItemIDRole);
- eventItem->setData(values["resource"], ResourceRole);
+ eventItem->setData(values["collectionId"], CollectionRole);
eventItem->setData(values["tooltip"], TooltipRole);
addItemRow(eventDtTime.toDate(), eventItem);
@@ -366,7 +368,7 @@ void EventModel::addEventItem(const QMap<QString, QVariant> \
&values) eventItem->setData(values["startDate"], SortRole);
eventItem->setData(values["uid"], EventModel::UIDRole);
eventItem->setData(values["itemid"], ItemIDRole);
- eventItem->setData(values["resource"], ResourceRole);
+ eventItem->setData(values["collectionId"], CollectionRole);
eventItem->setData(values["tooltip"], TooltipRole);
QDateTime itemDtTime = values["startDate"].toDateTime();
if (itemDtTime > QDateTime::currentDateTime() && \
QDateTime::currentDateTime().secsTo(itemDtTime) < urgency * 60) { @@ -408,7 +410,7 @@ \
void EventModel::addTodoItem(const QMap <QString, QVariant> &values) \
todoItem->setData(eventDtTime, SortRole); todoItem->setData(values["uid"], \
EventModel::UIDRole); todoItem->setData(values["itemid"], ItemIDRole);
- todoItem->setData(values["resource"], ResourceRole);
+ todoItem->setData(values["collectionId"], CollectionRole);
todoItem->setData(values["tooltip"], TooltipRole);
if (values["completed"].toBool() == true) {
todoItem->setBackground(QBrush(finishedTodoBg));
@@ -431,7 +433,7 @@ void EventModel::addTodoItem(const QMap <QString, QVariant> \
&values) todoItem->setData(values["dueDate"], SortRole);
todoItem->setData(values["uid"], EventModel::UIDRole);
todoItem->setData(values["itemid"], ItemIDRole);
- todoItem->setData(values["resource"], ResourceRole);
+ todoItem->setData(values["collectionId"], CollectionRole);
todoItem->setData(values["tooltip"], TooltipRole);
if (values["completed"].toBool() == true) {
todoItem->setBackground(QBrush(finishedTodoBg));
@@ -483,8 +485,10 @@ QMap<QString, QVariant> EventModel::eventDetails(const \
Akonadi::Item &item, KCal {
QMap <QString, QVariant> values;
Akonadi::Collection itemCollection = \
m_collections.value(item.storageCollectionId()); + \
m_usedCollections.insert(itemCollection.name(), \
QString::number(itemCollection.id())); values["resource"] = \
itemCollection.resource(); values["resourceName"] = itemCollection.name();
+ values["collectionId"] = QString::number(itemCollection.id());
values["uid"] = event->uid();
values["itemid"] = item.id();
values["remoteid"] = item.remoteId();
@@ -534,8 +538,10 @@ QMap<QString, QVariant> EventModel::todoDetails(const \
Akonadi::Item &item, KCalC {
QMap <QString, QVariant> values;
Akonadi::Collection itemCollection = \
m_collections.value(item.storageCollectionId()); + \
m_usedCollections.insert(itemCollection.name(), \
QString::number(itemCollection.id())); values["resource"] = \
itemCollection.resource(); values["resourceName"] = itemCollection.name();
+ values["collectionId"] = QString::number(itemCollection.id());
values["uid"] = todo->uid();
values["itemid"] = item.id();
values["remoteid"] = item.remoteId();
@@ -589,4 +595,9 @@ QMap<QString, QVariant> EventModel::todoDetails(const \
Akonadi::Item &item, KCalC return values;
}
+QMap<QString, QString> EventModel::usedCollections()
+{
+ return m_usedCollections;
+}
+
#include "eventmodel.moc"
diff --git a/src/eventmodel.h b/src/eventmodel.h
index 1c560fc..fdbc97e 100644
--- a/src/eventmodel.h
+++ b/src/eventmodel.h
@@ -59,7 +59,7 @@ public:
ItemTypeRole,
TooltipRole,
ItemIDRole,
- ResourceRole
+ CollectionRole
};
enum ItemType {
@@ -81,6 +81,7 @@ public:
void initMonitor();
void resetModel();
void settingsChanged(int urgencyTime, int birthdayTime, QList<QColor> \
itemColors, int count, bool autoGroupHeader); + QMap<QString, QString> \
usedCollections();
private slots:
void initialCollectionFetchFinished(KJob *);
@@ -104,6 +105,7 @@ private:
QStandardItem *parentItem;
QStringList m_headerPartsList;
QMap<QDate, QStandardItem *> m_sectionItemsMap;
+ QMap<QString, QString> m_usedCollections;
int urgency, birthdayUrgency, recurringCount;
QColor urgentBg, passedFg, todoBg, finishedTodoBg;
QHash<QString, QColor> m_categoryColors;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic