author | ulf69 <ulf69> | 2004-08-10 19:41:25 (UTC) |
---|---|---|
committer | ulf69 <ulf69> | 2004-08-10 19:41:25 (UTC) |
commit | 467e50111dfd6d66aca205501b6bf369b7f0a166 (patch) (side-by-side diff) | |
tree | 3bd041c5e88a819bbbe857335a2afcd0d75ad518 /libkdepim/addresseeview.cpp | |
parent | 20a2709f00d4e99eace87338fefc54701fcc47c0 (diff) | |
download | kdepimpi-467e50111dfd6d66aca205501b6bf369b7f0a166.zip kdepimpi-467e50111dfd6d66aca205501b6bf369b7f0a166.tar.gz kdepimpi-467e50111dfd6d66aca205501b6bf369b7f0a166.tar.bz2 |
added links for external applications
-rw-r--r-- | libkdepim/addresseeview.cpp | 137 |
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 @@ -24,144 +24,185 @@ #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."); } |