diff options
Diffstat (limited to 'tderesources/scalix/kabc')
-rw-r--r-- | tderesources/scalix/kabc/CMakeLists.txt | 53 | ||||
-rw-r--r-- | tderesources/scalix/kabc/Makefile.am | 27 | ||||
-rw-r--r-- | tderesources/scalix/kabc/contact.cpp | 377 | ||||
-rw-r--r-- | tderesources/scalix/kabc/contact.h | 37 | ||||
-rw-r--r-- | tderesources/scalix/kabc/resourcescalix.cpp | 628 | ||||
-rw-r--r-- | tderesources/scalix/kabc/resourcescalix.h | 171 | ||||
-rw-r--r-- | tderesources/scalix/kabc/resourcescalix_plugin.cpp | 53 | ||||
-rw-r--r-- | tderesources/scalix/kabc/scalix.desktop | 30 |
8 files changed, 0 insertions, 1376 deletions
diff --git a/tderesources/scalix/kabc/CMakeLists.txt b/tderesources/scalix/kabc/CMakeLists.txt deleted file mode 100644 index bfdaa347..00000000 --- a/tderesources/scalix/kabc/CMakeLists.txt +++ /dev/null @@ -1,53 +0,0 @@ -################################################# -# -# (C) 2010-2011 Serghei Amelian -# serghei (DOT) amelian (AT) gmail.com -# -# Improvements and feedback are welcome -# -# This file is released under GPL >= 2 -# -################################################# - -include_directories( - ${CMAKE_CURRENT_BINARY_DIR} - ${CMAKE_SOURCE_DIR} - ${CMAKE_SOURCE_DIR}/libtdepim - ${TDE_INCLUDE_DIR} - ${TQT_INCLUDE_DIRS} -) - -link_directories( - ${TQT_LIBRARY_DIRS} -) - - -##### other data ################################ - -install( - FILES scalix.desktop - DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/tdeabc ) - -install( - FILES ../uninstall.desktop - RENAME imap.desktop - DESTINATION ${SERVICES_INSTALL_DIR}/tderesources/tdeabc ) - - -##### tdeabc_scalix (module) ###################### - -tde_add_kpart( tdeabc_scalix AUTOMOC - SOURCES resourcescalix_plugin.cpp - LINK kabcscalix-shared - DESTINATION ${PLUGIN_INSTALL_DIR} -) - - -##### kabcscalix (shared) ####################### - -tde_add_library( kabcscalix SHARED AUTOMOC - SOURCES resourcescalix.cpp contact.cpp - VERSION 0.0.0 - LINK resourcescalixshared-static kgroupwarebase-shared - DESTINATION ${LIB_INSTALL_DIR} -) diff --git a/tderesources/scalix/kabc/Makefile.am b/tderesources/scalix/kabc/Makefile.am deleted file mode 100644 index e8bbc3bb..00000000 --- a/tderesources/scalix/kabc/Makefile.am +++ /dev/null @@ -1,27 +0,0 @@ -METASOURCES = AUTO - -INCLUDES = -I$(top_srcdir)/tderesources/scalix/shared -I$(top_srcdir) $(all_includes) - -# The scalix wizard links to this library too -lib_LTLIBRARIES = libkabcscalix.la - -libkabcscalix_la_SOURCES = resourcescalix.cpp contact.cpp -libkabcscalix_la_LDFLAGS = $(all_libraries) -no-undefined -libkabcscalix_la_LIBADD = \ - $(top_builddir)/tderesources/scalix/shared/libresourcescalixshared.la \ - -ltderesources -lkabc - -kde_module_LTLIBRARIES = tdeabc_scalix.la - -noinst_HEADERS = resourcescalix.h - -tdeabc_scalix_la_SOURCES = resourcescalix_plugin.cpp -tdeabc_scalix_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN) -no-undefined -tdeabc_scalix_la_LIBADD = libkabcscalix.la - -servicedir = $(kde_servicesdir)/tderesources/tdeabc -service_DATA = scalix.desktop - -install-data-local: $(srcdir)/../uninstall.desktop - $(mkinstalldirs) $(DESTDIR)$(servicedir) - $(INSTALL_DATA) $(srcdir)/../uninstall.desktop $(DESTDIR)$(servicedir)/imap.desktop diff --git a/tderesources/scalix/kabc/contact.cpp b/tderesources/scalix/kabc/contact.cpp deleted file mode 100644 index 457a34e7..00000000 --- a/tderesources/scalix/kabc/contact.cpp +++ /dev/null @@ -1,377 +0,0 @@ -/* - * This file is part of the scalix resource. - * - * Copyright (C) 2007 Trolltech ASA. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include <tqdom.h> - -#include <libtdepim/distributionlist.h> -#include <kstaticdeleter.h> - -#include "contact.h" - -using namespace Scalix; - -static TQMap<TQString, TQString> *s_distListMap = 0; -static KStaticDeleter< TQMap<TQString, TQString> > sd; - -static TQString custom( const TQString &name, const KABC::Addressee &addr, const TQString &defaultValue = TQString() ) -{ - const TQString value = addr.custom( "Scalix", name ); - if ( value.isEmpty() ) - return defaultValue; - else - return value; -} - -static void setCustom( const TQString &name, const TQString &value, KABC::Addressee &addr ) -{ - addr.insertCustom( "Scalix", name, value ); -} - -TQString Contact::toXml( const KABC::Addressee &addr ) -{ - /** - * Handle distribution lists. - */ - if ( KPIM::DistributionList::isDistributionList( addr ) ) { - if ( s_distListMap ) - return (*s_distListMap)[ addr.uid() ]; - else - return TQString(); - } - - /** - * Handle normal contacts. - */ - TQString xml; - xml += "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; - xml += "<contact>\n"; - - xml += "<direct_ref>" + addr.uid() + "</direct_ref>\n"; - xml += "<sensitivity>" + custom( "sensitivity", addr, "0" ) + "</sensitivity>\n"; - - xml += "<message_class>IPM.Contact</message_class>\n"; - xml += "<is_recurring>" + custom( "is_recurring", addr, "false" ) + "</is_recurring>\n"; - xml += "<reminder_set>" + custom( "reminder_set", addr, "false" ) + "</reminder_set>\n"; - xml += "<send_rich_info>" + custom( "send_rich_info", addr, "false" ) + "</send_rich_info>\n"; - xml += "<subject>" + addr.formattedName() + "</subject>\n"; - xml += "<last_modification_time>" + addr.revision().toString( Qt::ISODate ) + "</last_modification_time>\n"; - - xml += "<display_name_prefix>" + addr.prefix() + "</display_name_prefix>\n"; - xml += "<first_name>" + addr.givenName() + "</first_name>\n"; - xml += "<middle_name>" + addr.additionalName() + "</middle_name>\n"; - xml += "<last_name>" + addr.familyName() + "</last_name>\n"; - xml += "<suffix>" + addr.suffix() + "</suffix>\n"; - xml += "<display_name>" + addr.assembledName() + "</display_name>\n"; - xml += "<file_as>" + addr.formattedName() + "</file_as>\n"; - xml += "<nickname>" + addr.nickName() + "</nickname>\n"; - - xml += "<web_page_address>" + addr.url().url() + "</web_page_address>\n"; - xml += "<company_name>" + addr.organization() + "</company_name>\n"; - xml += "<job_title>" + addr.title() + "</job_title>\n"; - - TQStringList emails = addr.emails(); - for ( uint i = 0; i < 3; ++i ) { - TQString type, address, comment, display; - - if ( i < emails.count() ) { - type = "SMTP"; - address = emails[ i ]; - - /** - * If the contact was created by kontact use the email address as - * display name and the formatted name as comment, otherwise we use - * the values from the server. - */ - if ( custom( "comes_from_scalix", addr ) != "true" ) { - comment = addr.formattedName(); - display = emails[ i ]; - } else { - comment = custom( TQString( "email%1_address_with_comment" ).arg( i + 1 ), addr ); - display = custom( TQString( "email%1_display_name" ).arg( i + 1 ), addr ); - } - } - - xml += TQString( "<email%1_address_type>" ).arg( i + 1 ) + type + - TQString( "</email%1_address_type>" ).arg( i + 1 ) +"\n"; - xml += TQString( "<email%1_address>" ).arg( i + 1 ) + address + - TQString( "</email%1_address>" ).arg( i + 1 ) +"\n"; - xml += TQString( "<email%1_address_with_comment>" ).arg( i + 1 ) + comment + - TQString( "</email%1_address_with_comment>" ).arg( i + 1 ) + "\n"; - xml += TQString( "<email%1_display_name>" ).arg( i + 1 ) + display + - TQString( "</email%1_display_name>" ).arg( i + 1 ) + "\n"; - } - - KABC::PhoneNumber phone = addr.phoneNumber( KABC::PhoneNumber::Home ); - xml += "<home_phone_number>" + phone.number() + "</home_phone_number>\n"; - - phone = addr.phoneNumber( KABC::PhoneNumber::Work ); - xml += "<work_phone_number>" + phone.number() + "</work_phone_number>\n"; - - phone = addr.phoneNumber( KABC::PhoneNumber::Work | KABC::PhoneNumber::Fax ); - xml += "<work_fax_number>" + phone.number() + "</work_fax_number>\n"; - - phone = addr.phoneNumber( KABC::PhoneNumber::Cell ); - xml += "<mobile_phone_number>" + phone.number() + "</mobile_phone_number>\n"; - - const KABC::Address workAddress = addr.address( KABC::Address::Work ); - xml += "<work_address_street>" + workAddress.street() + "</work_address_street>\n"; - xml += "<work_address_zip>" + workAddress.postalCode() + "</work_address_zip>\n"; - xml += "<work_address_city>" + workAddress.locality() + "</work_address_city>\n"; - xml += "<work_address_state>" + workAddress.region() + "</work_address_state>\n"; - xml += "<work_address_country>" + workAddress.country() + "</work_address_country>\n"; - - const KABC::Address homeAddress = addr.address( KABC::Address::Home ); - xml += "<home_address_street>" + homeAddress.street() + "</home_address_street>\n"; - xml += "<home_address_zip>" + homeAddress.postalCode() + "</home_address_zip>\n"; - xml += "<home_address_city>" + homeAddress.locality() + "</home_address_city>\n"; - xml += "<home_address_state>" + homeAddress.region() + "</home_address_state>\n"; - xml += "<home_address_country>" + homeAddress.country() + "</home_address_country>\n"; - - const KABC::Address otherAddress = addr.address( KABC::Address::Dom ); - xml += "<other_address_street>" + otherAddress.street() + "</other_address_street>\n"; - xml += "<other_address_zip>" + otherAddress.postalCode() + "</other_address_zip>\n"; - xml += "<other_address_city>" + otherAddress.locality() + "</other_address_city>\n"; - xml += "<other_address_state>" + otherAddress.region() + "</other_address_state>\n"; - xml += "<other_address_country>" + otherAddress.country() + "</other_address_country>\n"; - - if ( homeAddress.type() & KABC::Address::Pref ) - xml += "<selected_mailing_address>1</selected_mailing_address>\n"; - else if ( workAddress.type() & KABC::Address::Pref ) - xml += "<selected_mailing_address>2</selected_mailing_address>\n"; - else if ( otherAddress.type() & KABC::Address::Pref ) - xml += "<selected_mailing_address>3</selected_mailing_address>\n"; - - xml += "<im_address>" + addr.custom( "KADDRESSBOOK", "X-IMAddress" ) + "</im_address>\n"; - xml += "<manager>" + addr.custom( "KADDRESSBOOK", "X-ManagersName" ) + "</manager>\n"; - xml += "<department>" + addr.custom( "KADDRESSBOOK", "X-Department" ) + "</department>\n"; - xml += "<assistant>" + addr.custom( "KADDRESSBOOK", "X-AssistantsName" ) + "</assistant>\n"; - xml += "<profession>" + addr.custom( "KADDRESSBOOK", "X-Profession" ) + "</profession>\n"; - xml += "<office_location>" + addr.custom( "KADDRESSBOOK", "X-Office" ) + "</office_location>\n"; - xml += "<spouse>" + addr.custom( "KADDRESSBOOK", "X-SpousesName" ) + "</spouse>\n"; - - xml += "<bday>" + addr.birthday().toString( Qt::ISODate ) + "</bday>\n"; - xml += "<anniversary>" + addr.custom( "KADDRESSBOOK", "X-Anniversary" ) + "</anniversary>\n"; - - xml += "<mapi_charset>" + custom( "mapi_charset", addr, "UTF8" ) + "</mapi_charset>"; - - xml += "</contact>\n"; - - return xml; -} - -KABC::Addressee Contact::fromXml( const TQString &xml ) -{ - TQDomDocument document; - - TQString errorMsg; - int errorLine, errorColumn; - if ( !document.setContent( xml, true, &errorMsg, &errorLine, &errorColumn ) ) { - tqDebug( "Error parsing XML in Scalix::Contact::fromXml: %s (%d,%d)", errorMsg.latin1(), errorLine, errorColumn ); - return KABC::Addressee(); - } - - TQDomElement contactElement = document.documentElement(); - if ( contactElement.tagName() != "contact" ) { - if ( contactElement.tagName() == "distlist" ) { - const TQDomNodeList names = contactElement.elementsByTagName( "display_name" ); - const TQString listName = ( names.count() == 1 ? names.item( 0 ).toElement().text() : "Scalix Dummy List" ); - - /** - * As we can't provide distribution list functionality we store the entry - * here and return it on save. - */ - KPIM::DistributionList list; - list.setName( listName ); - - if ( !s_distListMap ) - sd.setObject( s_distListMap, new TQMap<TQString, TQString>() ); - - s_distListMap->insert( list.uid(), xml ); - - return list; - } else { - tqDebug( "Error interpreting XML in Scalix::Contact::fromXml: no 'contact' or 'distlist' tag found" ); - return KABC::Addressee(); - } - } - - TQString emails[ 3 ]; - KABC::Address homeAddress( KABC::Address::Home ); - KABC::Address workAddress( KABC::Address::Work ); - KABC::Address otherAddress( KABC::Address::Dom ); - - KABC::Addressee addr; - setCustom( "comes_from_scalix", "true", addr ); - - TQDomNode node = contactElement.firstChild(); - while ( !node.isNull() ) { - TQDomElement element = node.toElement(); - if ( !element.isNull() ) { - if ( element.tagName() == "direct_ref" ) - addr.setUid( element.text() ); - else if ( element.tagName() == "sensitivity" ) - setCustom( "sensitivity", element.text(), addr ); - else if ( element.tagName() == "is_recurring" ) - setCustom( "is_recurring", element.text(), addr ); - else if ( element.tagName() == "reminder_set" ) - setCustom( "reminder_set", element.text(), addr ); - else if ( element.tagName() == "send_rich_info" ) - setCustom( "send_rich_info", element.text(), addr ); - else if ( element.tagName() == "last_modification_time" ) - addr.setRevision( TQDateTime::fromString( element.text(), Qt::ISODate ) ); - - // name - else if ( element.tagName() == "display_name_prefix" ) - addr.setPrefix( element.text() ); - else if ( element.tagName() == "first_name" ) - addr.setGivenName( element.text() ); - else if ( element.tagName() == "middle_name" ) - addr.setAdditionalName( element.text() ); - else if ( element.tagName() == "last_name" ) - addr.setFamilyName( element.text() ); - else if ( element.tagName() == "suffix" ) - addr.setSuffix( element.text() ); - else if ( element.tagName() == "file_as" ) - addr.setFormattedName( element.text() ); - else if ( element.tagName() == "nickname" ) - addr.setNickName( element.text() ); - - // job - else if ( element.tagName() == "web_page_address" ) - addr.setUrl( element.text() ); - else if ( element.tagName() == "company_name" ) - addr.setOrganization( element.text() ); - else if ( element.tagName() == "job_title" ) - addr.setTitle( element.text() ); - - // emails - else if ( element.tagName().startsWith( "email" ) ) { - if ( element.tagName() == "email1_address" ) - emails[ 0 ] = element.text(); - else if ( element.tagName() == "email2_address" ) - emails[ 1 ] = element.text(); - else if ( element.tagName() == "email3_address" ) - emails[ 2 ] = element.text(); - else - setCustom( element.tagName(), element.text(), addr ); - } - - // phone numbers - else if ( element.tagName() == "home_phone_number" ) - addr.insertPhoneNumber( KABC::PhoneNumber( element.text(), KABC::PhoneNumber::Home ) ); - else if ( element.tagName() == "work_phone_number" ) - addr.insertPhoneNumber( KABC::PhoneNumber( element.text(), KABC::PhoneNumber::Work ) ); - else if ( element.tagName() == "work_fax_number" ) - addr.insertPhoneNumber( KABC::PhoneNumber( element.text(), KABC::PhoneNumber::Work | KABC::PhoneNumber::Fax ) ); - else if ( element.tagName() == "mobile_phone_number" ) - addr.insertPhoneNumber( KABC::PhoneNumber( element.text(), KABC::PhoneNumber::Cell ) ); - - // address (work) - else if ( element.tagName() == "work_address_street" ) - workAddress.setStreet( element.text() ); - else if ( element.tagName() == "work_address_zip" ) - workAddress.setPostalCode( element.text() ); - else if ( element.tagName() == "work_address_city" ) - workAddress.setLocality( element.text() ); - else if ( element.tagName() == "work_address_state" ) - workAddress.setRegion( element.text() ); - else if ( element.tagName() == "work_address_country" ) - workAddress.setCountry( element.text() ); - - // address (home) - else if ( element.tagName() == "home_address_street" ) - homeAddress.setStreet( element.text() ); - else if ( element.tagName() == "home_address_zip" ) - homeAddress.setPostalCode( element.text() ); - else if ( element.tagName() == "home_address_city" ) - homeAddress.setLocality( element.text() ); - else if ( element.tagName() == "home_address_state" ) - homeAddress.setRegion( element.text() ); - else if ( element.tagName() == "home_address_country" ) - homeAddress.setCountry( element.text() ); - - // address (other) - else if ( element.tagName() == "other_address_street" ) - otherAddress.setStreet( element.text() ); - else if ( element.tagName() == "other_address_zip" ) - otherAddress.setPostalCode( element.text() ); - else if ( element.tagName() == "other_address_city" ) - otherAddress.setLocality( element.text() ); - else if ( element.tagName() == "other_address_state" ) - otherAddress.setRegion( element.text() ); - else if ( element.tagName() == "other_address_country" ) - otherAddress.setCountry( element.text() ); - - else if ( element.tagName() == "selected_mailing_address" ) - switch ( element.text().toInt() ) { - case 1: - homeAddress.setType( homeAddress.type() | KABC::Address::Pref ); - break; - case 2: - workAddress.setType( workAddress.type() | KABC::Address::Pref ); - break; - case 3: - otherAddress.setType( otherAddress.type() | KABC::Address::Pref ); - break; - default: - Q_ASSERT( !"Unknown selected_mailing_address enum" ); - break; - } - - // misc - else if ( element.tagName() == "im_address" ) - addr.insertCustom( "KADDRESSBOOK", "X-IMAddress", element.text() ); - else if ( element.tagName() == "manager" ) - addr.insertCustom( "KADDRESSBOOK", "X-ManagersName", element.text() ); - else if ( element.tagName() == "department" ) - addr.insertCustom( "KADDRESSBOOK", "X-Department", element.text() ); - else if ( element.tagName() == "assistant" ) - addr.insertCustom( "KADDRESSBOOK", "X-AssistantsName", element.text() ); - else if ( element.tagName() == "profession" ) - addr.insertCustom( "KADDRESSBOOK", "X-Profession", element.text() ); - else if ( element.tagName() == "office_location" ) - addr.insertCustom( "KADDRESSBOOK", "X-Office", element.text() ); - else if ( element.tagName() == "spouse" ) - addr.insertCustom( "KADDRESSBOOK", "X-SpousesName", element.text() ); - - else if ( element.tagName() == "bday" ) - addr.setBirthday( TQDateTime::fromString( element.text(), Qt::ISODate ) ); - else if ( element.tagName() == "anniversary" ) - addr.insertCustom( "KADDRESSBOOK", "X-Anniversary", element.text() ); - else - setCustom( element.tagName(), element.text(), addr ); - } - - node = node.nextSibling(); - } - - for ( int i = 0; i < 3; ++i ) - if ( !emails[ i ].isEmpty() ) - addr.insertEmail( emails[ i ] ); - - if ( !homeAddress.isEmpty() ) - addr.insertAddress( homeAddress ); - if ( !workAddress.isEmpty() ) - addr.insertAddress( workAddress ); - if ( !otherAddress.isEmpty() ) - addr.insertAddress( otherAddress ); - - return addr; -} diff --git a/tderesources/scalix/kabc/contact.h b/tderesources/scalix/kabc/contact.h deleted file mode 100644 index 33ea1a9c..00000000 --- a/tderesources/scalix/kabc/contact.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * This file is part of the scalix resource. - * - * Copyright (C) 2007 Trolltech ASA. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef SCALIX_CONTACT_H -#define SCALIX_CONTACT_H - -#include <tdeabc/addressee.h> - -namespace Scalix { - -class Contact -{ - public: - static TQString toXml( const KABC::Addressee &addr ); - static KABC::Addressee fromXml( const TQString &xml ); -}; - -} - -#endif diff --git a/tderesources/scalix/kabc/resourcescalix.cpp b/tderesources/scalix/kabc/resourcescalix.cpp deleted file mode 100644 index ea3928a5..00000000 --- a/tderesources/scalix/kabc/resourcescalix.cpp +++ /dev/null @@ -1,628 +0,0 @@ -/* - This file is part of the scalix resource - based on the kolab resource. - - Copyright (c) 2002 - 2004 Klarlvdalens Datakonsult AB - <info@klaralvdalens-datakonsult.se> - - 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. - - In addition, as a special exception, the copyright holders give - permission to link the code of this program with any edition of - the TQt library by Trolltech AS, Norway (or with modified versions - of TQt that use the same license as TQt), and distribute linked - combinations including the two. You must obey the GNU General - Public License in all respects for all of the code used other than - TQt. If you modify this file, you may extend this exception to - your version of the file, but you are not obligated to do so. If - you do not wish to do so, delete this exception statement from - your version. -*/ - -#include "resourcescalix.h" - -#include <kdebug.h> -#include <tdeglobal.h> -#include <tdelocale.h> -#include <tdemessagebox.h> -#include <tdetempfile.h> -#include <tdeio/observer.h> -#include <tdeio/uiserver_stub.h> -#include <tdemainwindow.h> -#include <tdeapplication.h> -#include <dcopclient.h> - -#include <tqobject.h> -#include <tqtimer.h> -#include <tqstring.h> -#include <tqfile.h> -#include <tqapplication.h> - -#include <assert.h> - -#include "contact.h" - -using namespace Scalix; - -class ScalixFactory : public KRES::PluginFactoryBase -{ - public: - KRES::Resource *resource( const TDEConfig *config ) - { - return new KABC::ResourceScalix( config ); - } - - KRES::ConfigWidget *configWidget( TQWidget* ) - { - return 0; - } -}; - -K_EXPORT_COMPONENT_FACTORY(tdeabc_scalix,ScalixFactory) - -static const char* s_kmailContentsType = "Contact"; -static const char* s_attachmentMimeTypeContact = "application/x-vnd.kolab.contact"; -static const char* s_attachmentMimeTypeDistList = "application/x-vnd.kolab.contact.distlist"; -static const char* s_inlineMimeType = "application/scalix-properties"; - -KABC::ResourceScalix::ResourceScalix( const TDEConfig *config ) - : KPIM::ResourceABC( config ), - Scalix::ResourceScalixBase( "ResourceScalix-KABC" ), - mCachedSubresource( TQString() ), mLocked( false ) -{ - setType( "scalix" ); -} - -KABC::ResourceScalix::~ResourceScalix() -{ - // The resource is deleted on exit (StdAddressBook's KStaticDeleter), - // and it wasn't closed before that, so close here to save the config. - if ( isOpen() ) { - close(); - } -} - -void KABC::ResourceScalix::loadSubResourceConfig( TDEConfig& config, - const TQString& name, - const TQString& label, - bool writable ) -{ - TDEConfigGroup group( &config, name ); - bool active = group.readBoolEntry( "Active", true ); - int completionWeight = group.readNumEntry( "CompletionWeight", 80 ); - mSubResources.insert( name, Scalix::SubResource( active, writable, label, - completionWeight ) ); -} - -bool KABC::ResourceScalix::doOpen() -{ - TDEConfig config( configFile() ); - - // Read the calendar entries - TQValueList<KMailICalIface::SubResource> subResources; - if ( !kmailSubresources( subResources, s_kmailContentsType ) ) - return false; - mSubResources.clear(); - TQValueList<KMailICalIface::SubResource>::ConstIterator it; - for ( it = subResources.begin(); it != subResources.end(); ++it ) { - loadSubResourceConfig( config, (*it).location, (*it).label, (*it).writable ); - } - - return true; -} - -void KABC::ResourceScalix::doClose() -{ - TDEConfig config( configFile() ); - - Scalix::ResourceMap::ConstIterator it; - for ( it = mSubResources.begin(); it != mSubResources.end(); ++it ) { - config.setGroup( it.key() ); - config.writeEntry( "Active", it.data().active() ); - config.writeEntry( "CompletionWeight", it.data().completionWeight() ); - } -} - -KABC::Ticket * KABC::ResourceScalix::requestSaveTicket() -{ - if ( !addressBook() ) { - kdError() << "no addressbook" << endl; - return 0; - } - mLocked = true; - - return createTicket( this ); -} - -void KABC::ResourceScalix::releaseSaveTicket( Ticket* ticket ) -{ - mLocked = false; - mCachedSubresource = TQString(); - delete ticket; -} - -TQString KABC::ResourceScalix::loadContact( const TQString& contactData, - const TQString& subResource, - TQ_UINT32 sernum, - KMailICalIface::StorageFormat ) -{ - KABC::Addressee addr = Contact::fromXml( contactData ); - - addr.setResource( this ); - addr.setChanged( false ); - KABC::Resource::insertAddressee( addr ); // same as mAddrMap.insert( addr.uid(), addr ); - mUidMap[ addr.uid() ] = StorageReference( subResource, sernum ); - kdDebug(5650) << "Loaded contact uid=" << addr.uid() << " sernum=" << sernum << " fullName=" << addr.name() << endl; - return addr.uid(); -} - -bool KABC::ResourceScalix::loadSubResource( const TQString& subResource ) -{ - bool scalixcontacts = loadSubResourceHelper( subResource, s_attachmentMimeTypeContact, KMailICalIface::StorageXML ); - bool scalixdistlists = loadSubResourceHelper( subResource, s_attachmentMimeTypeDistList, KMailICalIface::StorageXML ); - bool vcardstyle = loadSubResourceHelper( subResource, s_inlineMimeType, KMailICalIface::StorageIcalVcard ); - return scalixcontacts && scalixdistlists && vcardstyle; -} - -bool KABC::ResourceScalix::loadSubResourceHelper( const TQString& subResource, - const char* mimetype, - KMailICalIface::StorageFormat format ) -{ - int count = 0; - if ( !kmailIncidencesCount( count, mimetype, subResource ) ) { - kdError() << "Communication problem in KABC::ResourceScalix::loadSubResourceHelper()\n"; - return false; - } - if ( !count ) - return true; - - // Read that many contacts at a time. - // If this number is too small we lose time in kmail. - // If it's too big the progressbar is jumpy. - const int nbMessages = 200; - - (void)Observer::self(); // ensure tdeio_uiserver is running - UIServer_stub uiserver( "tdeio_uiserver", "UIServer" ); - int progressId = 0; - if ( count > 200 ) { - progressId = uiserver.newJob( kapp->dcopClient()->appId(), true ); - uiserver.totalFiles( progressId, count ); - uiserver.infoMessage( progressId, i18n( "Loading contacts..." ) ); - uiserver.transferring( progressId, "Contacts" ); - } - - for ( int startIndex = 0; startIndex < count; startIndex += nbMessages ) { - TQMap<TQ_UINT32, TQString> lst; - - if ( !kmailIncidences( lst, mimetype, subResource, startIndex, nbMessages ) ) { - kdError() << "Communication problem in ResourceScalix::load()\n"; - if ( progressId ) - uiserver.jobFinished( progressId ); - return false; - } - - for( TQMap<TQ_UINT32, TQString>::ConstIterator it = lst.begin(); it != lst.end(); ++it ) { - loadContact( it.data(), subResource, it.key(), format ); - } - if ( progressId ) { - uiserver.processedFiles( progressId, startIndex ); - uiserver.percent( progressId, 100 * startIndex / count ); - } - } - - kdDebug(5650) << "Contacts scalix resource: got " << count << " contacts in " << subResource << endl; - - if ( progressId ) - uiserver.jobFinished( progressId ); - return true; -} - -bool KABC::ResourceScalix::load() -{ - mUidMap.clear(); - mAddrMap.clear(); - - bool rc = true; - Scalix::ResourceMap::ConstIterator itR; - for ( itR = mSubResources.begin(); itR != mSubResources.end(); ++itR ) { - if ( !itR.data().active() ) - // This resource is disabled - continue; - - rc &= loadSubResource( itR.key() ); - } - - return rc; -} - -bool KABC::ResourceScalix::save( Ticket* ) -{ - bool rc = true; - - for( ConstIterator it = begin(); it != end(); ++it ) - if( (*it).changed() ) { - rc &= kmailUpdateAddressee( *it ); - } - - if ( !rc ) - kdDebug(5650) << k_funcinfo << " failed." << endl; - return rc; -} - -namespace Scalix { -struct AttachmentList { - TQStringList attachmentURLs; - TQStringList attachmentNames; - TQStringList attachmentMimeTypes; - TQStringList deletedAttachments; - TQValueList<KTempFile *> tempFiles; - - void addAttachment( const TQString& url, const TQString& name, const TQString& mimetype ) { - attachmentURLs.append( url ); - attachmentNames.append( name ); - attachmentMimeTypes.append( mimetype ); - } - - void updatePictureAttachment( const TQImage& image, const TQString& name ); - void updateAttachment( const TQByteArray& data, const TQString& name, const char* mimetype ); -}; -} // namespace - -void AttachmentList::updatePictureAttachment( const TQImage& image, const TQString& name ) -{ - assert( !name.isEmpty() ); - if ( !image.isNull() ) { - KTempFile* tempFile = new KTempFile; - image.save( tempFile->file(), "PNG" ); - tempFile->close(); - KURL url; - url.setPath( tempFile->name() ); - kdDebug(5650) << "picture saved to " << url.path() << endl; - addAttachment( url.url(), name, "image/png" ); - } else { - deletedAttachments.append( name ); - } -} - -void AttachmentList::updateAttachment( const TQByteArray& data, const TQString& name, const char* mimetype ) -{ - assert( !name.isEmpty() ); - if ( !data.isNull() ) { - KTempFile* tempFile = new KTempFile; - tempFile->file()->writeBlock( data ); - tempFile->close(); - KURL url; - url.setPath( tempFile->name() ); - kdDebug(5650) << "data saved to " << url.path() << endl; - addAttachment( url.url(), name, mimetype ); - } else { - deletedAttachments.append( name ); - } -} - -bool KABC::ResourceScalix::kmailUpdateAddressee( const Addressee& addr ) -{ - const TQString uid = addr.uid(); - TQString subResource; - TQ_UINT32 sernum; - if ( mUidMap.find( uid ) != mUidMap.end() ) { - subResource = mUidMap[ uid ].resource(); - if ( !subresourceWritable( subResource ) ) { - kdWarning() << "Wow! Something tried to update a non-writable addressee! Fix this caller: " << kdBacktrace() << endl; - return false; - } - sernum = mUidMap[ uid ].serialNumber(); - } else { - if ( !mCachedSubresource.isNull() ) { - subResource = mCachedSubresource; - } else { - subResource = findWritableResource( mSubResources ); - // We were locked, remember the subresource we are working with until - // we are unlocked - if ( mLocked ) - mCachedSubresource = subResource; - } - if ( subResource.isEmpty() ) - return false; - sernum = 0; - } - - AttachmentList att; - TQString subject = addr.formattedName(); - - TQString mimetype = s_inlineMimeType; - - TQString data = Contact::toXml( addr ); - - CustomHeaderMap customHeaders; - customHeaders.insert( "X-Scalix-Class", "IPM.Contact" ); - - bool rc = kmailUpdate( subResource, sernum, data, mimetype, subject, - customHeaders, - att.attachmentURLs, att.attachmentMimeTypes, att.attachmentNames, - att.deletedAttachments ); - if ( !rc ) - kdDebug(5650) << "kmailUpdate returned false!" << endl; - if ( rc ) { - kdDebug(5650) << "kmailUpdate returned, now sernum=" << sernum << " for uid=" << uid << endl; - mUidMap[ uid ] = StorageReference( subResource, sernum ); - // This is ugly, but it's faster than doing - // mAddrMap.find(addr.uid()), which would give the same :-( - // Reason for this: The Changed attribute of Addressee should - // be mutable - const_cast<Addressee&>(addr).setChanged( false ); - } - - for( TQValueList<KTempFile *>::Iterator it = att.tempFiles.begin(); it != att.tempFiles.end(); ++it ) { - (*it)->setAutoDelete( true ); - delete (*it); - } - return rc; -} - -void KABC::ResourceScalix::insertAddressee( const Addressee& addr ) -{ - const TQString uid = addr.uid(); - //kdDebug(5650) << k_funcinfo << uid << endl; - bool ok = false; - if ( mUidMap.contains( uid ) ) { - mUidsPendingUpdate.append( uid ); - } else { - mUidsPendingAdding.append( uid ); - } - - ok = kmailUpdateAddressee( addr ); - - if ( ok ) - Resource::insertAddressee( addr ); -} - -void KABC::ResourceScalix::removeAddressee( const Addressee& addr ) -{ - const TQString uid = addr.uid(); - if ( mUidMap.find( uid ) == mUidMap.end() ) return; - //kdDebug(5650) << k_funcinfo << uid << endl; - const TQString resource = mUidMap[ uid ].resource(); - if ( !subresourceWritable( resource ) ) { - kdWarning() << "Wow! Something tried to delete a non-writable addressee! Fix this caller: " << kdBacktrace() << endl; - return; - } - /* The user told us to delete, tell KMail */ - kmailDeleteIncidence( resource, - mUidMap[ uid ].serialNumber() ); - mUidsPendingDeletion.append( uid ); - mUidMap.remove( uid ); - - Resource::removeAddressee( addr ); -} - -/* - * These are the DCOP slots that KMail call to notify when something - * changed. - */ -bool KABC::ResourceScalix::fromKMailAddIncidence( const TQString& type, - const TQString& subResource, - TQ_UINT32 sernum, - int format, - const TQString& contactXML ) -{ - // Check if this is a contact - if( type != s_kmailContentsType || !subresourceActive( subResource ) ) - return false; - - // Load contact to find the UID - const TQString uid = loadContact( contactXML, subResource, sernum, - ( KMailICalIface::StorageFormat )format ); - - //kdDebug(5650) << k_funcinfo << uid << endl; - - // Emit "addressbook changed" if this comes from kmail and not from the GUI - if ( !mUidsPendingAdding.contains( uid ) - && !mUidsPendingUpdate.contains( uid ) ) { - addressBook()->emitAddressBookChanged(); - } else { - mUidsPendingAdding.remove( uid ); - mUidsPendingUpdate.remove( uid ); - } - - return true; -} - -void KABC::ResourceScalix::fromKMailDelIncidence( const TQString& type, - const TQString& subResource, - const TQString& uid ) -{ - // Check if this is a contact - if( type != s_kmailContentsType || !subresourceActive( subResource ) ) - return; - - //kdDebug(5650) << k_funcinfo << uid << endl; - - // Can't be in both, by contract - if ( mUidsPendingDeletion.contains( uid ) ) { - mUidsPendingDeletion.remove( uid ); - } else if ( mUidsPendingUpdate.contains( uid ) ) { - // It's good to know if was deleted, but we are waiting on a new one to - // replace it, so let's just sit tight. - } else { - // We didn't trigger this, so KMail did, remove the reference to the uid - mAddrMap.remove( uid ); - mUidMap.remove( uid ); - addressBook()->emitAddressBookChanged(); - } -} - -void KABC::ResourceScalix::fromKMailRefresh( const TQString& type, - const TQString& /*subResource*/ ) -{ - // Check if this is a contact - if( type != s_kmailContentsType ) return; - - //kdDebug(5650) << k_funcinfo << endl; - - load(); // ### should call loadSubResource(subResource) probably - addressBook()->emitAddressBookChanged(); -} - -void KABC::ResourceScalix::fromKMailAddSubresource( const TQString& type, - const TQString& subResource, - const TQString& label, - bool writable ) -{ - if( type != s_kmailContentsType ) return; - - if ( mSubResources.contains( subResource ) ) - // Already registered - return; - - TDEConfig config( configFile() ); - config.setGroup( "Contact" ); - loadSubResourceConfig( config, subResource, label, writable ); - loadSubResource( subResource ); - addressBook()->emitAddressBookChanged(); - emit signalSubresourceAdded( this, type, subResource ); -} - -void KABC::ResourceScalix::fromKMailDelSubresource( const TQString& type, - const TQString& subResource ) -{ - if( type != s_kmailContentsType ) return; - - if ( !mSubResources.contains( subResource ) ) - // Not registered - return; - - // Ok, it's our job, and we have it here - mSubResources.erase( subResource ); - - TDEConfig config( configFile() ); - config.deleteGroup( subResource ); - config.sync(); - - // Make a list of all uids to remove - Scalix::UidMap::ConstIterator mapIt; - TQStringList uids; - for ( mapIt = mUidMap.begin(); mapIt != mUidMap.end(); ++mapIt ) - if ( mapIt.data().resource() == subResource ) - // We have a match - uids << mapIt.key(); - - // Finally delete all the incidences - if ( !uids.isEmpty() ) { - TQStringList::ConstIterator it; - for ( it = uids.begin(); it != uids.end(); ++it ) { - mAddrMap.remove( *it ); - mUidMap.remove( *it ); - } - - addressBook()->emitAddressBookChanged(); - } - - emit signalSubresourceRemoved( this, type, subResource ); -} - - - -void KABC::ResourceScalix::fromKMailAsyncLoadResult( const TQMap<TQ_UINT32, TQString>& map, - const TQString& /* type */, - const TQString& folder ) -{ - // FIXME - KMailICalIface::StorageFormat format = KMailICalIface::StorageXML; - for( TQMap<TQ_UINT32, TQString>::ConstIterator it = map.begin(); it != map.end(); ++it ) { - loadContact( it.data(), folder, it.key(), format ); - } - if ( !addressBook() ){ - kdDebug(5650) << "asyncLoadResult() : addressBook() returning NULL pointer.\n"; - }else - addressBook()->emitAddressBookChanged(); -} - -TQStringList KABC::ResourceScalix::subresources() const -{ - return mSubResources.keys(); -} - -bool KABC::ResourceScalix::subresourceActive( const TQString& subresource ) const -{ - if ( mSubResources.contains( subresource ) ) { - return mSubResources[ subresource ].active(); - } - - // Safe default bet: - kdDebug(5650) << "subresourceActive( " << subresource << " ): Safe bet\n"; - - return true; -} - -bool KABC::ResourceScalix::subresourceWritable( const TQString& subresource ) const -{ - if ( mSubResources.contains( subresource ) ) { - return mSubResources[ subresource ].writable(); - } - return false; //better a safe default -} - -int KABC::ResourceScalix::subresourceCompletionWeight( const TQString& subresource ) const -{ - if ( mSubResources.contains( subresource ) ) { - return mSubResources[ subresource ].completionWeight(); - } - - kdDebug(5650) << "subresourceCompletionWeight( " << subresource << " ): not found, using default\n"; - - return 80; -} - -TQString KABC::ResourceScalix::subresourceLabel( const TQString& subresource ) const -{ - if ( mSubResources.contains( subresource ) ) { - return mSubResources[ subresource ].label(); - } - - kdDebug(5650) << "subresourceLabel( " << subresource << " ): not found!\n"; - return TQString(); -} - -void KABC::ResourceScalix::setSubresourceCompletionWeight( const TQString& subresource, int completionWeight ) -{ - if ( mSubResources.contains( subresource ) ) { - mSubResources[ subresource ].setCompletionWeight( completionWeight ); - } else { - kdDebug(5650) << "setSubresourceCompletionWeight: subresource " << subresource << " not found" << endl; - } -} - -TQMap<TQString, TQString> KABC::ResourceScalix::uidToResourceMap() const -{ - // TODO: Couldn't this be made simpler? - TQMap<TQString, TQString> map; - Scalix::UidMap::ConstIterator mapIt; - for ( mapIt = mUidMap.begin(); mapIt != mUidMap.end(); ++mapIt ) - map[ mapIt.key() ] = mapIt.data().resource(); - return map; -} - -void KABC::ResourceScalix::setSubresourceActive( const TQString &subresource, bool active ) -{ - if ( mSubResources.contains( subresource ) ) { - mSubResources[ subresource ].setActive( active ); - load(); - } else { - kdDebug(5650) << "setSubresourceCompletionWeight: subresource " << subresource << " not found" << endl; - } -} - -#include "resourcescalix.moc" diff --git a/tderesources/scalix/kabc/resourcescalix.h b/tderesources/scalix/kabc/resourcescalix.h deleted file mode 100644 index dbb0b93c..00000000 --- a/tderesources/scalix/kabc/resourcescalix.h +++ /dev/null @@ -1,171 +0,0 @@ -/* - This file is part of the scalix resource - based on the kolab resource. - - Copyright (c) 2002 - 2004 Klarlvdalens Datakonsult AB - <info@klaralvdalens-datakonsult.se> - - 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. - - In addition, as a special exception, the copyright holders give - permission to link the code of this program with any edition of - the TQt library by Trolltech AS, Norway (or with modified versions - of TQt that use the same license as TQt), and distribute linked - combinations including the two. You must obey the GNU General - Public License in all respects for all of the code used other than - TQt. If you modify this file, you may extend this exception to - your version of the file, but you are not obligated to do so. If - you do not wish to do so, delete this exception statement from - your version. -*/ - -#ifndef KABC_RESOURCESCALIX_H -#define KABC_RESOURCESCALIX_H - -#include <libtdepim/resourceabc.h> -#include <dcopobject.h> -#include "../shared/resourcescalixbase.h" -#include "../shared/subresource.h" -#include <kmail/kmailicalIface.h> -#include <tdepimmacros.h> - -namespace KABC { - - class FormatPlugin; - -/** - * This class implements a KAddressBook resource that keeps its - * addresses in an Scalix folder in KMail (or other conforming email - * clients). - */ -class KDE_EXPORT ResourceScalix : public KPIM::ResourceABC, - public Scalix::ResourceScalixBase -{ - Q_OBJECT - - -public: - /** - * Constructor - */ - ResourceScalix( const TDEConfig* ); - - /** - * Destructor. - */ - virtual ~ResourceScalix(); - - /** - * Open the contacts list - */ - virtual bool doOpen(); - - /** - * Request a ticket, you have to pass through save() to - * allow locking. - */ - virtual Ticket *requestSaveTicket(); - - /** - Releases the ticket previousely requested with requestSaveTicket(). - The resource has to remove its locks in this function. - */ - virtual void releaseSaveTicket( Ticket* ); - - /** - * Load all addressees to the addressbook - */ - virtual bool load(); - - /** - * Save all addressees to the addressbook. - * - * @param ticket The ticket you get by requestSaveTicket() - */ - virtual bool save( Ticket *ticket ); - - /** - Insert an addressee into the resource. - */ - virtual void insertAddressee( const Addressee& ); - - /** - * Removes a addressee from resource. This method is mainly - * used by record-based resources like LDAP or SQL. - */ - virtual void removeAddressee( const Addressee& addr ); - - // Listen to KMail changes in the amount of sub resources - void fromKMailAddSubresource( const TQString& type, const TQString& id, - const TQString& label, bool writable ); - void fromKMailDelSubresource( const TQString& type, const TQString& id ); - - bool fromKMailAddIncidence( const TQString& type, const TQString& resource, - TQ_UINT32 sernum, int format, const TQString& contact ); - void fromKMailDelIncidence( const TQString& type, const TQString& resource, - const TQString& contact ); - void fromKMailRefresh( const TQString& type, const TQString& resource ); - - void fromKMailAsyncLoadResult( const TQMap<TQ_UINT32, TQString>& map, - const TQString& type, - const TQString& folder ); - - /// Return the list of subresources. - TQStringList subresources() const; - - /// Is this subresource active? - bool subresourceActive( const TQString& ) const; - /// Is this subresource writabel? - bool subresourceWritable( const TQString& ) const; - - virtual void setSubresourceActive( const TQString &, bool ); - - /// Completion weight for a given subresource - virtual int subresourceCompletionWeight( const TQString& ) const; - - /// Label for a given subresource - virtual TQString subresourceLabel( const TQString& ) const; - - /// Set completion weight for a given subresource - virtual void setSubresourceCompletionWeight( const TQString&, int ); - - /// Give the uidmap. Used for ordered searching - TQMap<TQString, TQString> uidToResourceMap() const; - -protected: - bool kmailUpdateAddressee( const Addressee& ); - - void doClose(); - - void loadSubResourceConfig( TDEConfig& config, const TQString& name, - const TQString& label, bool writable ); - bool loadSubResource( const TQString& subResource ); - bool loadSubResourceHelper( const TQString& subResource, const char* mimetype, KMailICalIface::StorageFormat format ); - TQString loadContact( const TQString& contactData, const TQString& subResource, - TQ_UINT32 sernum, const KMailICalIface::StorageFormat format ); - - TQString configFile() const { - return Scalix::ResourceScalixBase::configFile( "kabc" ); - } - - // The list of subresources - Scalix::ResourceMap mSubResources; - TQString mCachedSubresource; - bool mLocked; -}; - -} - -#endif // KABC_RESOURCESCALIX_H diff --git a/tderesources/scalix/kabc/resourcescalix_plugin.cpp b/tderesources/scalix/kabc/resourcescalix_plugin.cpp deleted file mode 100644 index cdfc8f30..00000000 --- a/tderesources/scalix/kabc/resourcescalix_plugin.cpp +++ /dev/null @@ -1,53 +0,0 @@ -/* - This file is part of the scalix resource - based on the kolab resource. - - Copyright (c) 2002 - 2004 Klarlvdalens Datakonsult AB - <info@klaralvdalens-datakonsult.se> - - 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. - - In addition, as a special exception, the copyright holders give - permission to link the code of this program with any edition of - the TQt library by Trolltech AS, Norway (or with modified versions - of TQt that use the same license as TQt), and distribute linked - combinations including the two. You must obey the GNU General - Public License in all respects for all of the code used other than - TQt. If you modify this file, you may extend this exception to - your version of the file, but you are not obligated to do so. If - you do not wish to do so, delete this exception statement from - your version. -*/ - -#include "resourcescalix.h" - -using namespace Scalix; - -class ScalixFactory : public KRES::PluginFactoryBase -{ - public: - KRES::Resource *resource( const TDEConfig *config ) - { - return new KABC::ResourceScalix( config ); - } - - KRES::ConfigWidget *configWidget( TQWidget* ) - { - return 0; - } -}; - -K_EXPORT_COMPONENT_FACTORY(tdeabc_scalix,ScalixFactory) - diff --git a/tderesources/scalix/kabc/scalix.desktop b/tderesources/scalix/kabc/scalix.desktop deleted file mode 100644 index cc2a8c46..00000000 --- a/tderesources/scalix/kabc/scalix.desktop +++ /dev/null @@ -1,30 +0,0 @@ -[Desktop Entry] -Name=Addressbook on Scalix Server via KMail -Name[bg]=Адресник на сървъра Scalix през KMail -Name[ca]=Llibreta d'adreces en un servidor Scalix mitjançant el KMail -Name[da]=Adressebog på Scalix-server via KMail -Name[de]=Adressbuch auf einem Scalix-Server via KMail -Name[el]=Βιβλίο διευθύνσεων σε εξυπηρετητή Scalix μέσω του KMail -Name[es]=Libreta de direcciones en servidor Scalix por medio de KMail -Name[et]=Aadressiraamat Scalix-serveris (KMaili vahendusel) -Name[fr]=Carnet d'adresses sur serveur Scalix via KMail -Name[is]=Vistfangaskrá á Scalix-þjóni gegnum KMail -Name[it]=Rubrica indirizzi su server Scalix via KMail -Name[ja]=KMail 経由 Scalix サーバのアドレス帳 -Name[km]=សៀវភៅអាសយដ្ឋាននៅលើម៉ាស៊ីនបម្រើ Scalix តាមរយៈ KMail -Name[nds]=Adressbook op Scalix-Server över KMail -Name[nl]=Adresboek op Scalix-server via KMail -Name[pl]=Książka adresowa na serwerze Scalix za pośrednictwem KMaila -Name[ru]=Адресная книга на сервере Scalix через KMail -Name[sk]=Adresár na Scalix serveri pomocou KMail -Name[sr]=Адресар на Scalix серверу преко KMail-а -Name[sr@Latn]=Adresar na Scalix serveru preko KMail-a -Name[sv]=Adressbok på Scalix-server via Kmail -Name[tr]=KMail Aracılığı ile Scalix Sunucusunda Adres Defteri -Name[zh_CN]=通过 KMail 访问 Scalix 服务器上的地址簿 -Name[zh_TW]=透過 KMail 取得 Scalix 伺服器上的通訊錄 -X-TDE-Library=tdeabc_scalix -Type=Service -ServiceTypes=KResources/Plugin -X-TDE-ResourceFamily=contact -X-TDE-ResourceType=scalix |