akonadi/contact
contactdefaultactions.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "contactdefaultactions.h"
00023
00024 #include "actions/dialphonenumberaction.h"
00025 #include "actions/showaddressaction.h"
00026
00027 #include <kabc/address.h>
00028 #include <kabc/addressee.h>
00029 #include <kabc/phonenumber.h>
00030 #include <ktoolinvocation.h>
00031
00032 #include <QtCore/QUrl>
00033
00034 using namespace Akonadi;
00035
00036 ContactDefaultActions::ContactDefaultActions( QObject *parent )
00037 : QObject( parent ), d( 0 )
00038 {
00039 }
00040
00041 ContactDefaultActions::~ContactDefaultActions()
00042 {
00043 }
00044
00045 void ContactDefaultActions::connectToView( QObject *view )
00046 {
00047 const QMetaObject *metaObject = view->metaObject();
00048
00049 if ( metaObject->indexOfSignal( QMetaObject::normalizedSignature( "urlClicked( const QUrl& )" ) ) != -1 )
00050 connect( view, SIGNAL( urlClicked( const KUrl& ) ), SLOT( showUrl( const KUrl& ) ) );
00051
00052 if ( metaObject->indexOfSignal( QMetaObject::normalizedSignature( "emailClicked( const QString&, const QString& )" ) ) != -1 )
00053 connect( view, SIGNAL( emailClicked( const QString&, const QString& ) ),
00054 this, SLOT( sendEmail( const QString&, const QString& ) ) );
00055
00056 if ( metaObject->indexOfSignal( QMetaObject::normalizedSignature( "phoneNumberClicked( const KABC::PhoneNumber& )" ) ) != -1 )
00057 connect( view, SIGNAL( phoneNumberClicked( const KABC::PhoneNumber& ) ),
00058 this, SLOT( dialPhoneNumber( const KABC::PhoneNumber& ) ) );
00059
00060 if ( metaObject->indexOfSignal( QMetaObject::normalizedSignature( "addressClicked( const KABC::Address& )" ) ) != -1 )
00061 connect( view, SIGNAL( addressClicked( const KABC::Address& ) ),
00062 this, SLOT( showAddress( const KABC::Address& ) ) );
00063 }
00064
00065 void ContactDefaultActions::showUrl( const KUrl &url )
00066 {
00067 KToolInvocation::invokeBrowser( url.url() );
00068 }
00069
00070 void ContactDefaultActions::sendEmail( const QString &name, const QString &address )
00071 {
00072 KABC::Addressee contact;
00073 contact.setNameFromString( name );
00074
00075 KUrl mailtoUrl( QString::fromLatin1( "mailto:%1" ).arg( contact.fullEmail( address ) ) );
00076
00077 KToolInvocation::invokeMailer( mailtoUrl );
00078 }
00079
00080 void ContactDefaultActions::dialPhoneNumber( const KABC::PhoneNumber &number )
00081 {
00082 DialPhoneNumberAction action;
00083 action.dialNumber( number );
00084 }
00085
00086 void ContactDefaultActions::showAddress( const KABC::Address &address )
00087 {
00088 ShowAddressAction action;
00089 action.showAddress( address );
00090 }
00091
00092 #include "contactdefaultactions.moc"