summaryrefslogtreecommitdiffabout
path: root/libkdepim/addresseeview.cpp
Side-by-side diff
Diffstat (limited to 'libkdepim/addresseeview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libkdepim/addresseeview.cpp137
1 files changed, 89 insertions, 48 deletions
diff --git a/libkdepim/addresseeview.cpp b/libkdepim/addresseeview.cpp
index 83aba48..8fecaf8 100644
--- a/libkdepim/addresseeview.cpp
+++ b/libkdepim/addresseeview.cpp
@@ -20,152 +20,193 @@
*/
#include <kabc/address.h>
#include <kabc/addressee.h>
#include <kabc/phonenumber.h>
#include <kglobal.h>
//US#include <kglobalsettings.h>
#include <kiconloader.h>
#include <klocale.h>
//US #include <kstringhandler.h>
#include <qscrollview.h>
#include <qregexp.h>
#include <qfile.h>
#include <qapplication.h>
+#include "externalapphandler.h"
#include "addresseeview.h"
-#ifndef DESKTOP_VERSION
-#include <qtopia/qcopenvelope_qws.h>
-#include <qpe/qpeapplication.h>
-#endif
+//US #ifndef DESKTOP_VERSION
+//US #include <qtopia/qcopenvelope_qws.h>
+//US #include <qpe/qpeapplication.h>
+//US #endif
-static int kphoneInstalled = 0;
+//US static int kphoneInstalled = 0;
using namespace KPIM;
AddresseeView::AddresseeView( QWidget *parent, const char *name )
//US : KTextBrowser( parent, name )
: QTextBrowser( parent, name )
{
//US setWrapPolicy( QTextEdit::AtWordBoundary );
setLinkUnderline( false );
// setVScrollBarMode( QScrollView::AlwaysOff );
//setHScrollBarMode( QScrollView::AlwaysOff );
//US QStyleSheet *sheet = styleSheet();
//US QStyleSheetItem *link = sheet->item( "a" );
//US link->setColor( KGlobalSettings::linkColor() );
}
+
void AddresseeView::setSource(const QString& n)
{
- qDebug("********AddresseeView::setSource %s", n.latin1());
-#ifndef DESKTOP_VERSION
- if ( n.left( 6 ) == "mailto" ) {
- QCopEnvelope e("QPE/Application/ompi", "newMail(QString)");
- e << n.mid(7);
- }
- if ( n.left( 7 ) == "phoneto" ) {
- QString mess = "-ring:" + n.mid(8);
- QCopEnvelope e("QPE/Application/kppi", mess.latin1());
- }
-#endif
+ qDebug("********AddresseeView::setSource %s", n.latin1());
+
+ if ( n.left( 6 ) == "mailto" )
+ ExternalAppHandler::instance()->mailToContacts( n.mid(7) );
+ else if ( n.left( 7 ) == "phoneto" )
+ ExternalAppHandler::instance()->callByPhone( n.mid(8) );
+ else if ( n.left( 5 ) == "faxto" )
+ ExternalAppHandler::instance()->callByFax( n.mid(6) );
+ else if ( n.left( 5 ) == "smsto" )
+ ExternalAppHandler::instance()->callBySMS( n.mid(6) );
+ else if ( n.left( 7 ) == "pagerto" )
+ ExternalAppHandler::instance()->callByPager( n.mid(8) );
}
void AddresseeView::setAddressee( const KABC::Addressee& addr )
{
- bool kphoneAvail = false;
-
-#ifndef DESKTOP_VERSION
- if ( ! kphoneInstalled ) {
- if ( QFile::exists( QPEApplication::qpeDir() + "/bin/kppi" ) )
- kphoneInstalled = 1;
- else
- kphoneInstalled = -1;
- }
- if ( kphoneInstalled > 0 )
- kphoneAvail = true;
-#if 0
- if ( kphoneAvail )
- qDebug("KPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPone avail ");
- else
- qDebug("NOOOOOOOOOOOo KPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPone avail ");
-#endif
+ ExternalAppHandler* eah = ExternalAppHandler::instance();
+ bool kemailAvail = eah->isEmailAppAvailable();
+ bool kphoneAvail = eah->isPhoneAppAvailable();
+ bool kfaxAvail = eah->isFaxAppAvailable();
+ bool ksmsAvail = eah->isSMSAppAvailable();
+ bool kpagerAvail = eah->isPagerAppAvailable();
+
-#endif
mAddressee = addr;
// clear view
setText( QString::null );
if ( mAddressee.isEmpty() )
return;
QString name = ( mAddressee.formattedName().isEmpty() ?
mAddressee.assembledName() : mAddressee.formattedName() );
QString dynamicPart;
QStringList emails = mAddressee.emails();
QStringList::ConstIterator emailIt;
QString type = i18n( "Email" );
emailIt = emails.begin();
if ( emailIt != emails.end() ) {
+ if ( kemailAvail ) {
dynamicPart += QString(
"<tr><td align=\"right\"><b>%1</b></td>"
"<td align=\"left\"><a href=\"mailto:%2 <%3> \">%4</a></td></tr>" )
.arg( type )
.arg( name )
.arg( *emailIt )
.arg( *emailIt );
++emailIt;
+ } else {
+ dynamicPart += QString(
+ "<tr><td align=\"right\"><b>%1</b></td>"
+ "<td align=\"left\">%2</td></tr>" )
+ .arg( type )
+ .arg( *emailIt );
+ ++emailIt;
+ }
}
KABC::PhoneNumber::List phones = mAddressee.phoneNumbers();
KABC::PhoneNumber::List::ConstIterator phoneIt;
+ QString extension;
+ int phonetype;
+ QString sms;
for ( phoneIt = phones.begin(); phoneIt != phones.end(); ++phoneIt ) {
- if ( kphoneAvail ) {
+ phonetype = (*phoneIt).type();
+ if (ksmsAvail &&
+ (
+ ((phonetype & KABC::PhoneNumber::Car) == KABC::PhoneNumber::Car) ||
+ ((phonetype & KABC::PhoneNumber::Cell) == KABC::PhoneNumber::Cell)
+ )
+ )
+ {
+ sms = QString("<a href=\"smsto:%1 \">(sms)</a>" )
+ .arg( (*phoneIt).number() );
+
+ }
+ else
+ sms = "";
+
+ extension = QString::null;
+ if ((phonetype & KABC::PhoneNumber::Fax) == KABC::PhoneNumber::Fax)
+ if (kfaxAvail) extension = "faxto:";
+ else if ((phonetype & KABC::PhoneNumber::Pager) == KABC::PhoneNumber::Pager)
+ if (kpagerAvail) extension = "pagerto:";
+ else if (kphoneAvail)
+ extension = "phoneto:";
+ else
+ extension = QString::null;
+
+
+ if ( !extension.isEmpty() ) {
dynamicPart += QString(
"<tr><td align=\"right\"><b>%1</b></td>"
- "<td align=\"left\"><a href=\"phoneto:%2 \">%3</a></td></tr>" )
- .arg( KABC::PhoneNumber::typeLabel( (*phoneIt).type() ) )
+ "<td align=\"left\"><a href=\"%2%3 \">%4</a> %5</td></tr>" )
+ .arg( KABC::PhoneNumber::typeLabel( phonetype ) )
+ .arg( extension )
.arg( (*phoneIt).number() )
- .arg( (*phoneIt).number() );
+ .arg( (*phoneIt).number() )
+ .arg( sms );
} else {
dynamicPart += QString(
"<tr><td align=\"right\"><b>%1</b></td>"
- "<td align=\"left\">%2</td></tr>" )
- .arg( KABC::PhoneNumber::typeLabel( (*phoneIt).type() ) )
- .arg( (*phoneIt).number() );
+ "<td align=\"left\">%2 %3</td></tr>" )
+ .arg( KABC::PhoneNumber::typeLabel( phonetype ) )
+ .arg( (*phoneIt).number() )
+ .arg( sms );
}
}
for ( ; emailIt != emails.end(); ++emailIt ) {
- dynamicPart += QString(
- "<tr><td align=\"right\"><b>%1</b></td>"
- "<td align=\"left\"><a href=\"mailto:%2 <%3> \">%4</a></td></tr>" )
- .arg( type )
- .arg( name )
- .arg( *emailIt )
- .arg( *emailIt );
+ if ( kemailAvail ) {
+ dynamicPart += QString(
+ "<tr><td align=\"right\"><b>%1</b></td>"
+ "<td align=\"left\"><a href=\"mailto:%2 <%3> \">%4</a></td></tr>" )
+ .arg( type )
+ .arg( name )
+ .arg( *emailIt )
+ .arg( *emailIt );
+ } else {
+ dynamicPart += QString(
+ "<tr><td align=\"right\"><b>%1</b></td>"
+ "<td align=\"left\">%2</td></tr>" )
+ .arg( type )
+ .arg( *emailIt );
+ }
}
if ( !mAddressee.url().url().isEmpty() ) {
dynamicPart += QString(
"<tr><td align=\"right\"><b>%1</b></td>"
"<td align=\"left\">%2</td></tr>" )
.arg( i18n( "Homepage" ) )
//US .arg( KStringHandler::tagURLs( mAddressee.url().url() ) );
.arg( mAddressee.url().url() );
//qDebug("AddresseeView::setAddressee has to be verified.");
}
KABC::Address::List addresses = mAddressee.addresses();
KABC::Address::List::ConstIterator addrIt;
for ( addrIt = addresses.begin(); addrIt != addresses.end(); ++addrIt ) {
if ( true /*(*addrIt).label().isEmpty()*/ ) {