diff options
Diffstat (limited to 'libkdepim/kaddrbook.cpp')
-rw-r--r-- | libkdepim/kaddrbook.cpp | 285 |
1 files changed, 0 insertions, 285 deletions
diff --git a/libkdepim/kaddrbook.cpp b/libkdepim/kaddrbook.cpp deleted file mode 100644 index 1036a263b..000000000 --- a/libkdepim/kaddrbook.cpp +++ /dev/null @@ -1,285 +0,0 @@ -// -*- mode: C++; c-file-style: "gnu" -*- -// kaddrbook.cpp -// Author: Stefan Taferner <taferner@kde.org> -// This code is under GPL - -#include <config.h> - -#include "kaddrbook.h" - -#ifdef KDEPIM_NEW_DISTRLISTS -#include "distributionlist.h" -#else -#include <kabc/distributionlist.h> -#endif - -#include <kapplication.h> -#include <kdebug.h> -#include <klocale.h> -#include <kmessagebox.h> -#include <kdeversion.h> -#include <kabc/resource.h> -#include <kabc/stdaddressbook.h> -#include <kabc/vcardconverter.h> -#include <kabc/errorhandler.h> -#include <kresources/selectdialog.h> -#include <dcopref.h> -#include <dcopclient.h> - -#include <tqeventloop.h> -#include <tqregexp.h> - -#include <unistd.h> - -//----------------------------------------------------------------------------- -void KAddrBookExternal::openEmail( const TQString &addr, TQWidget *parent ) { - TQString email; - TQString name; - - KABC::Addressee::parseEmailAddress( addr, name, email ); - - KABC::AddressBook *ab = KABC::StdAddressBook::self( true ); - - // force a reload of the address book file so that changes that were made - // by other programs are loaded - ab->asyncLoad(); - - // if we have to reload the address book then we should also wait until - // it's completely reloaded -#if KDE_IS_VERSION(3,4,89) - // This ugly hack will be removed in 4.0 - while ( !ab->loadingHasFinished() ) { - TQApplication::eventLoop()->processEvents( TQEventLoop::ExcludeUserInput ); - - // use sleep here to reduce cpu usage - usleep( 100 ); - } -#endif - - KABC::Addressee::List addressees = ab->findByEmail( email ); - - if ( addressees.count() > 0 ) { - if ( kapp->dcopClient()->isApplicationRegistered( "kaddressbook" ) ){ - //make sure kaddressbook is loaded, otherwise showContactEditor - //won't work as desired, see bug #87233 - DCOPRef call ( "kaddressbook", "kaddressbook" ); - call.send( "newInstance()" ); - } else { - kapp->startServiceByDesktopName( "kaddressbook" ); - } - - DCOPRef call( "kaddressbook", "KAddressBookIface" ); - call.send( "showContactEditor(TQString)", addressees.first().uid() ); - } else { - //TODO: Enable the better message at the next string unfreeze -#if 0 - TQString text = i18n("<qt>The email address <b>%1</b> cannot be " - "found in your addressbook.</qt>").tqarg( email ); -#else - TQString text = email + " " + i18n( "is not in address book" ); -#endif - KMessageBox::information( parent, text, TQString(), "notInAddressBook" ); - } -} - -//----------------------------------------------------------------------------- -void KAddrBookExternal::addEmail( const TQString& addr, TQWidget *parent) { - TQString email; - TQString name; - - KABC::Addressee::parseEmailAddress( addr, name, email ); - - KABC::AddressBook *ab = KABC::StdAddressBook::self( true ); - - ab->setErrorHandler( new KABC::GuiErrorHandler( parent ) ); - - // force a reload of the address book file so that changes that were made - // by other programs are loaded - ab->asyncLoad(); - - // if we have to reload the address book then we should also wait until - // it's completely reloaded -#if KDE_IS_VERSION(3,4,89) - // This ugly hack will be removed in 4.0 - while ( !ab->loadingHasFinished() ) { - TQApplication::eventLoop()->processEvents( TQEventLoop::ExcludeUserInput ); - - // use sleep here to reduce cpu usage - usleep( 100 ); - } -#endif - - KABC::Addressee::List addressees = ab->findByEmail( email ); - - if ( addressees.isEmpty() ) { - KABC::Addressee a; - a.setNameFromString( name ); - a.insertEmail( email, true ); - - { - KConfig config( "kaddressbookrc" ); - config.setGroup( "General" ); - int type = config.readNumEntry( "FormattedNameType", 1 ); - - TQString name; - switch ( type ) { - case 1: - name = a.givenName() + " " + a.familyName(); - break; - case 2: - name = a.assembledName(); - break; - case 3: - name = a.familyName() + ", " + a.givenName(); - break; - case 4: - name = a.familyName() + " " + a.givenName(); - break; - case 5: - name = a.organization(); - break; - default: - name = ""; - break; - } - name.simplifyWhiteSpace(); - - a.setFormattedName( name ); - } - - if ( KAddrBookExternal::addAddressee( a ) ) { - TQString text = i18n("<qt>The email address <b>%1</b> was added to your " - "addressbook; you can add more information to this " - "entry by opening the addressbook.</qt>").tqarg( addr ); - KMessageBox::information( parent, text, TQString(), "addedtokabc" ); - } - } else { - TQString text = i18n("<qt>The email address <b>%1</b> is already in your " - "addressbook.</qt>").tqarg( addr ); - KMessageBox::information( parent, text, TQString(), - "alreadyInAddressBook" ); - } - ab->setErrorHandler( 0 ); -} - -void KAddrBookExternal::openAddressBook(TQWidget *) { - kapp->startServiceByDesktopName( "kaddressbook" ); -} - -void KAddrBookExternal::addNewAddressee( TQWidget* ) -{ - kapp->startServiceByDesktopName("kaddressbook"); - DCOPRef call("kaddressbook", "KAddressBookIface"); - call.send("newContact()"); -} - -bool KAddrBookExternal::addVCard( const KABC::Addressee& addressee, TQWidget *parent ) -{ - KABC::AddressBook *ab = KABC::StdAddressBook::self( true ); - bool inserted = false; - - ab->setErrorHandler( new KABC::GuiErrorHandler( parent ) ); - - KABC::Addressee::List addressees = - ab->findByEmail( addressee.preferredEmail() ); - - if ( addressees.isEmpty() ) { - if ( KAddrBookExternal::addAddressee( addressee ) ) { - TQString text = i18n("The VCard was added to your addressbook; " - "you can add more information to this " - "entry by opening the addressbook."); - KMessageBox::information( parent, text, TQString(), "addedtokabc" ); - inserted = true; - } - } else { - TQString text = i18n("The VCard's primary email address is already in " - "your addressbook; however, you may save the VCard " - "into a file and import it into the addressbook " - "manually."); - KMessageBox::information( parent, text ); - inserted = true; - } - - ab->setErrorHandler( 0 ); - return inserted; -} - -bool KAddrBookExternal::addAddressee( const KABC::Addressee& addr ) -{ - KABC::AddressBook *addressBook = KABC::StdAddressBook::self( true ); - KABC::Resource *kabcResource = selectResourceForSaving( addressBook ); - if( !kabcResource ) - return false; - KABC::Ticket *ticket = addressBook->requestSaveTicket( kabcResource ); - bool saved = false; - if ( ticket ) { - KABC::Addressee addressee( addr ); - addressee.setResource( kabcResource ); - addressBook->insertAddressee( addressee ); - saved = addressBook->save( ticket ); - if ( !saved ) - addressBook->releaseSaveTicket( ticket ); - } - - addressBook->emitAddressBookChanged(); - - return saved; -} - -TQString KAddrBookExternal::expandDistributionList( const TQString& listName ) -{ - if ( listName.isEmpty() ) - return TQString(); - - const TQString lowerListName = listName.lower(); - KABC::AddressBook *addressBook = KABC::StdAddressBook::self( true ); -#ifdef KDEPIM_NEW_DISTRLISTS - KPIM::DistributionList distrList = KPIM::DistributionList::findByName( addressBook, lowerListName, false ); - if ( !distrList.isEmpty() ) { - return distrList.emails( addressBook ).join( ", " ); - } -#else - KABC::DistributionListManager manager( addressBook ); - manager.load(); - const TQStringList listNames = manager.listNames(); - - for ( TQStringList::ConstIterator it = listNames.begin(); - it != listNames.end(); ++it) { - if ( (*it).lower() == lowerListName ) { - const TQStringList addressList = manager.list( *it )->emails(); - return addressList.join( ", " ); - } - } -#endif - return TQString(); -} - -KABC::Resource* KAddrBookExternal::selectResourceForSaving( KABC::AddressBook *addressBook ) -{ -#if KDE_IS_VERSION(3,4,89) - // This ugly hack will be removed in 4.0 - while ( !addressBook->loadingHasFinished() ) { - TQApplication::eventLoop()->processEvents( TQEventLoop::ExcludeUserInput ); - - // use sleep here to reduce cpu usage - usleep( 100 ); - } -#endif - - // Select a resource - TQPtrList<KABC::Resource> kabcResources = addressBook->resources(); - - TQPtrList<KRES::Resource> kresResources; - TQPtrListIterator<KABC::Resource> resIt( kabcResources ); - KABC::Resource *kabcResource; - while ( ( kabcResource = resIt.current() ) != 0 ) { - ++resIt; - if ( !kabcResource->readOnly() ) { - KRES::Resource *res = static_cast<KRES::Resource*>( kabcResource ); - if ( res ) - kresResources.append( res ); - } - } - - return static_cast<KABC::Resource*>( KRES::SelectDialog::getResource( kresResources, 0 ) ); -} |