22 #include "contactdefaultactions.h"
24 #include "actions/dialphonenumberaction.h"
25 #include "actions/sendsmsaction.h"
26 #include "actions/showaddressaction.h"
28 #include <kabc/address.h>
29 #include <kabc/addressee.h>
30 #include <kabc/phonenumber.h>
31 #include <kpimutils/email.h>
32 #include <ktoolinvocation.h>
34 #include <QtCore/QUrl>
36 using namespace Akonadi;
38 ContactDefaultActions::ContactDefaultActions( QObject *parent )
39 : QObject( parent ), d( 0 )
43 ContactDefaultActions::~ContactDefaultActions()
47 void ContactDefaultActions::connectToView( QObject *view )
49 const QMetaObject *metaObject = view->metaObject();
51 if ( metaObject->indexOfSignal( QMetaObject::normalizedSignature(
"urlClicked( const KUrl& )" ) ) != -1 )
52 connect( view, SIGNAL(urlClicked(KUrl)), SLOT(showUrl(KUrl)) );
54 if ( metaObject->indexOfSignal( QMetaObject::normalizedSignature(
"emailClicked( const QString&, const QString& )" ) ) != -1 )
55 connect( view, SIGNAL(emailClicked(QString,QString)),
56 this, SLOT(sendEmail(QString,QString)) );
58 if ( metaObject->indexOfSignal( QMetaObject::normalizedSignature(
"phoneNumberClicked( const KABC::PhoneNumber& )" ) ) != -1 )
59 connect( view, SIGNAL(phoneNumberClicked(KABC::PhoneNumber)),
60 this, SLOT(dialPhoneNumber(KABC::PhoneNumber)) );
62 if ( metaObject->indexOfSignal( QMetaObject::normalizedSignature(
"smsClicked( const KABC::PhoneNumber& )" ) ) != -1 )
63 connect( view, SIGNAL(smsClicked(KABC::PhoneNumber)),
64 this, SLOT(sendSms(KABC::PhoneNumber)) );
66 if ( metaObject->indexOfSignal( QMetaObject::normalizedSignature(
"addressClicked( const KABC::Address& )" ) ) != -1 )
67 connect( view, SIGNAL(addressClicked(KABC::Address)),
68 this, SLOT(showAddress(KABC::Address)) );
71 void ContactDefaultActions::showUrl(
const KUrl &url )
73 KToolInvocation::invokeBrowser( url.url() );
76 void ContactDefaultActions::sendEmail(
const QString &name,
const QString &address )
78 KABC::Addressee contact;
79 contact.setNameFromString( name );
82 url.setProtocol( QLatin1String(
"mailto" ) );
83 url.setPath( contact.fullEmail( address ) );
84 KToolInvocation::invokeMailer( url );
87 void ContactDefaultActions::dialPhoneNumber(
const KABC::PhoneNumber &number )
90 action.dialNumber( number );
93 void ContactDefaultActions::sendSms(
const KABC::PhoneNumber &number )
96 action.sendSms( number );
99 void ContactDefaultActions::showAddress(
const KABC::Address &address )
102 action.showAddress( address );
105 #include "contactdefaultactions.moc"