mirror of
https://bitbucket.org/smil3y/kde-playground.git
synced 2025-02-24 19:02:51 +00:00
257 lines
5.6 KiB
C++
257 lines
5.6 KiB
C++
// -*- c-basic-offset: 2 -*-
|
|
/*
|
|
This file is part of libkabc.
|
|
Copyright (c) 2008-2009 Kevin Krammer <kevin.krammer@gmx.at>
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Library General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2 of the License, or (at your option) any later version.
|
|
|
|
This library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Library General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Library General Public License
|
|
along with this library; see the file COPYING.LIB. If not, write to
|
|
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
Boston, MA 02110-1301, USA.
|
|
*/
|
|
#include "resourceakonadi.h"
|
|
|
|
#include "resourceakonadi_p.h"
|
|
#include "resourceakonadiconfig.h"
|
|
|
|
using namespace KABC;
|
|
|
|
ResourceAkonadi::ResourceAkonadi()
|
|
: ResourceABC(), d( new Private( this ) )
|
|
{
|
|
KGlobal::locale()->insertCatalog("kresources_shared_akonadi");
|
|
}
|
|
|
|
ResourceAkonadi::ResourceAkonadi( const KConfigGroup &group )
|
|
: ResourceABC( group ), d( new Private( group, this ) )
|
|
{
|
|
}
|
|
|
|
ResourceAkonadi::~ResourceAkonadi()
|
|
{
|
|
delete d;
|
|
}
|
|
|
|
void ResourceAkonadi::clear()
|
|
{
|
|
// clear local caches
|
|
d->clear();
|
|
|
|
ResourceABC::clear();
|
|
}
|
|
|
|
void ResourceAkonadi::writeConfig( KConfigGroup &group )
|
|
{
|
|
kDebug( 5700 );
|
|
ResourceABC::writeConfig( group );
|
|
|
|
d->writeConfig( group );
|
|
}
|
|
|
|
bool ResourceAkonadi::doOpen()
|
|
{
|
|
return d->doOpen();
|
|
}
|
|
|
|
void ResourceAkonadi::doClose()
|
|
{
|
|
d->clear();
|
|
d->doClose();
|
|
}
|
|
|
|
Ticket *ResourceAkonadi::requestSaveTicket()
|
|
{
|
|
kDebug( 5700 );
|
|
if ( !addressBook() ) {
|
|
kDebug( 5700 ) << "no addressbook";
|
|
return 0;
|
|
}
|
|
|
|
return createTicket( this );
|
|
}
|
|
|
|
void ResourceAkonadi::releaseSaveTicket( Ticket *ticket )
|
|
{
|
|
delete ticket;
|
|
}
|
|
|
|
bool ResourceAkonadi::load()
|
|
{
|
|
kDebug( 5700 );
|
|
|
|
d->clear();
|
|
return d->doLoad();
|
|
}
|
|
|
|
bool ResourceAkonadi::asyncLoad()
|
|
{
|
|
kDebug( 5700 );
|
|
|
|
d->clear();
|
|
return d->doAsyncLoad();
|
|
}
|
|
|
|
bool ResourceAkonadi::save( Ticket *ticket )
|
|
{
|
|
Q_UNUSED( ticket );
|
|
kDebug( 5700 );
|
|
|
|
return d->doSave();
|
|
}
|
|
|
|
bool ResourceAkonadi::asyncSave( Ticket *ticket )
|
|
{
|
|
Q_UNUSED( ticket );
|
|
kDebug( 5700 );
|
|
|
|
return d->doAsyncSave();
|
|
}
|
|
|
|
void ResourceAkonadi::insertAddressee( const Addressee &addr )
|
|
{
|
|
kDebug( 5700 );
|
|
if ( d->insertAddressee( addr ) ) {
|
|
ResourceABC::insertAddressee( addr );
|
|
}
|
|
}
|
|
|
|
void ResourceAkonadi::removeAddressee( const Addressee &addr )
|
|
{
|
|
kDebug( 5700 );
|
|
d->removeAddressee( addr );
|
|
|
|
ResourceABC::removeAddressee( addr );
|
|
}
|
|
|
|
void ResourceAkonadi::insertDistributionList( DistributionList *list )
|
|
{
|
|
kDebug( 5700 ) << "identifier=" << list->identifier()
|
|
<< ", name=" << list->name();
|
|
|
|
if ( d->insertDistributionList( list ) ) {
|
|
ResourceABC::insertDistributionList( list );
|
|
}
|
|
}
|
|
|
|
void ResourceAkonadi::removeDistributionList( DistributionList *list )
|
|
{
|
|
kDebug( 5700 ) << "identifier=" << list->identifier()
|
|
<< ", name=" << list->name();
|
|
|
|
d->removeDistributionList( list );
|
|
|
|
ResourceABC::removeDistributionList( list );
|
|
}
|
|
|
|
bool ResourceAkonadi::subresourceActive( const QString &subResource ) const
|
|
{
|
|
kDebug( 5700 ) << "subResource" << subResource;
|
|
|
|
bool active = false;
|
|
SubResource *resource = d->subResource( subResource );
|
|
if ( resource != 0 ) {
|
|
active = resource->isActive();
|
|
}
|
|
|
|
return active;
|
|
}
|
|
|
|
bool ResourceAkonadi::subresourceWritable( const QString &subResource ) const
|
|
{
|
|
kDebug( 5700 ) << "subResource" << subResource;
|
|
|
|
bool writable = false;
|
|
SubResource *resource = d->subResource( subResource );
|
|
if ( resource != 0 ) {
|
|
writable = resource->isWritable();
|
|
}
|
|
|
|
return writable;
|
|
}
|
|
|
|
QString ResourceAkonadi::subresourceLabel( const QString &subResource ) const
|
|
{
|
|
kDebug( 5700 ) << "subResource" << subResource;
|
|
|
|
QString label;
|
|
SubResource *resource = d->subResource( subResource );
|
|
if ( resource != 0 ) {
|
|
label = resource->label();
|
|
}
|
|
|
|
return label;
|
|
}
|
|
|
|
int ResourceAkonadi::subresourceCompletionWeight( const QString &subResource ) const
|
|
{
|
|
kDebug( 5700 ) << "subResource" << subResource;
|
|
|
|
int weight = 80;
|
|
SubResource *resource = d->subResource( subResource );
|
|
if ( resource != 0 ) {
|
|
weight = resource->completionWeight();
|
|
}
|
|
|
|
return weight;
|
|
}
|
|
|
|
QStringList ResourceAkonadi::subresources() const
|
|
{
|
|
kDebug( 5700 ) << d->subResourceIdentifiers();
|
|
return d->subResourceIdentifiers();
|
|
}
|
|
|
|
QMap<QString, QString> ResourceAkonadi::uidToResourceMap() const
|
|
{
|
|
return d->uidToResourceMap();
|
|
}
|
|
|
|
StoreConfigIface &ResourceAkonadi::storeConfig()
|
|
{
|
|
return *d;
|
|
}
|
|
|
|
void ResourceAkonadi::setSubresourceActive( const QString &subResource, bool active )
|
|
{
|
|
kDebug( 5700 ) << "subResource" << subResource << ", active" << active;
|
|
|
|
// TODO check if this check for change isn't already handled in the private
|
|
bool changed = false;
|
|
|
|
SubResource *resource = d->subResource( subResource );
|
|
if ( resource != 0 ) {
|
|
if ( active != resource->isActive() ) {
|
|
resource->setActive( active );
|
|
changed = true;
|
|
}
|
|
}
|
|
|
|
if ( changed )
|
|
addressBook()->emitAddressBookChanged();
|
|
}
|
|
|
|
void ResourceAkonadi::setSubresourceCompletionWeight( const QString &subResource, int weight )
|
|
{
|
|
kDebug( 5700 ) << "subResource" << subResource << ", weight" << weight;
|
|
|
|
SubResource *resource = d->subResource( subResource );
|
|
if ( resource != 0 ) {
|
|
resource->setCompletionWeight( weight );
|
|
}
|
|
}
|
|
|
|
bool ResourceAkonadi::readOnly() const
|
|
{
|
|
return d->isReadOnly();
|
|
}
|
|
|
|
// kate: space-indent on; indent-width 2; replace-tabs on;
|