2
* Copyright (C) 2010 Alexey Noskov <alexey.noskov@gmail.com>
4
* This program is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU General Public License as
6
* published by the Free Software Foundation; either version 2 of
7
* the License or (at your option) version 3 or any later version
8
* accepted by the membership of KDE e.V. (or its successor approved
9
* by the membership of KDE e.V.), which shall act as a proxy
10
* defined in Section 14 of version 3 of the license.
12
* This program is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU General Public License for more details.
17
* You should have received a copy of the GNU General Public License
18
* along with this program. If not, see <http://www.gnu.org/licenses/>.
22
#include "collection_selector.h"
25
#include <Akonadi/CollectionFetchJob>
28
#include <QStringList>
30
using Akonadi::Collection;
31
using Akonadi::CollectionFetchJob;
33
CollectionSelector::CollectionSelector( QObject* parent ): QObject( parent ) {
36
void CollectionSelector::receiveCollections() {
37
CollectionFetchJob *job = new CollectionFetchJob( Collection::root(), CollectionFetchJob::Recursive, this );
39
connect( job, SIGNAL( collectionsReceived(Akonadi::Collection::List) ), this, SLOT( akonadiCollectionsReceived(Akonadi::Collection::List) ) );
42
void CollectionSelector::akonadiCollectionsReceived( const Collection::List& collections ) {
43
foreach ( const Collection & collection, collections ) {
44
if ( collection.contentMimeTypes().contains( eventMimeType ) )
45
eventCollections.append( collection );
47
if ( collection.contentMimeTypes().contains( todoMimeType ) )
48
todoCollections.append( collection );
51
emit collectionsReceived( *this );
54
Collection CollectionSelector::selectCollectionById( const Collection::List& collections, Akonadi::Entity::Id id ) {
55
foreach ( const Collection & collection, collections )
56
if ( collection.id() == id )
59
if ( !collections.isEmpty() )
60
return collections.first();