summaryrefslogtreecommitdiffabout
path: root/kabc/addresseeview.cpp
Side-by-side diff
Diffstat (limited to 'kabc/addresseeview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/addresseeview.cpp135
1 files changed, 73 insertions, 62 deletions
diff --git a/kabc/addresseeview.cpp b/kabc/addresseeview.cpp
index 2dda968..af149a0 100644
--- a/kabc/addresseeview.cpp
+++ b/kabc/addresseeview.cpp
@@ -85,35 +85,33 @@ void AddresseeView::setSource(const QString& n)
else if ( n.left( 5 ) == "sipto" )
ExternalAppHandler::instance()->callBySIP( n.mid(6) );
}
void AddresseeView::setAddressee( const KABC::Addressee& addr )
{
ExternalAppHandler* eah = ExternalAppHandler::instance();
bool kemailAvail = eah->isEmailAppAvailable();
- bool kphoneAvail = eah->isPhoneAppAvailable();
- bool kfaxAvail = eah->isFaxAppAvailable();
- bool ksmsAvail = eah->isSMSAppAvailable();
- bool kpagerAvail = eah->isPagerAppAvailable();
- bool ksipAvail = eah->isSIPAppAvailable();
+
mAddressee = addr;
// clear view
setText( QString::null );
if ( mAddressee.isEmpty() )
return;
QString name = ( mAddressee.assembledName().isEmpty() ?
mAddressee.formattedName() : mAddressee.assembledName() );
QString dynamicPart;
+ dynamicPart += getPhoneNumbers( true );
+ qDebug("dynamic preferred %s ",dynamicPart.latin1() );
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>"
@@ -134,73 +132,17 @@ void AddresseeView::setAddressee( const KABC::Addressee& addr )
}
if ( mAddressee.birthday().date().isValid() ) {
dynamicPart += QString(
"<tr><td align=\"right\"><b>%1</b></td>"
"<td align=\"left\">%2</td></tr>" )
.arg( i18n ("Birthday") )
.arg( KGlobal::locale()->formatDate( mAddressee.birthday().date() ,true) );
}
- 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 ) {
- 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 ((phonetype & KABC::PhoneNumber::Sip) == KABC::PhoneNumber::Sip) {
- if (ksipAvail) extension = "sipto:";
- }
- 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=\"%2%3 \">%4</a> %5</td></tr>" )
- .arg( KABC::PhoneNumber::typeLabel( phonetype ) )
- .arg( extension )
- .arg( (*phoneIt).number() )
- .arg( (*phoneIt).number() )
- .arg( sms );
-
- } else {
- dynamicPart += QString(
- "<tr><td align=\"right\"><b>%1</b></td>"
- "<td align=\"left\">%2 %3</td></tr>" )
- .arg( KABC::PhoneNumber::typeLabel( phonetype ) )
- .arg( (*phoneIt).number() )
- .arg( sms );
- }
- }
-
+ dynamicPart += getPhoneNumbers( false );
for ( ; emailIt != emails.end(); ++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 )
@@ -365,16 +307,85 @@ mText = "<table width=\"100%\">\n";
}
// at last display it...
setText( mText );
}
+QString AddresseeView::getPhoneNumbers( bool preferred )
+{
+ ExternalAppHandler* eah = ExternalAppHandler::instance();
+ bool kphoneAvail = eah->isPhoneAppAvailable();
+ bool kfaxAvail = eah->isFaxAppAvailable();
+ bool ksmsAvail = eah->isSMSAppAvailable();
+ bool kpagerAvail = eah->isPagerAppAvailable();
+ bool ksipAvail = eah->isSIPAppAvailable();
+ QString dynamicPart;
+ 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 ) {
+ phonetype = (*phoneIt).type();
+ if ( ((phonetype & KABC::PhoneNumber::Pref) == 0 ) == preferred )
+ continue;
+ 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 ((phonetype & KABC::PhoneNumber::Sip) == KABC::PhoneNumber::Sip) {
+ if (ksipAvail) extension = "sipto:";
+ }
+ 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=\"%2%3 \">%4</a> %5</td></tr>" )
+ .arg( KABC::PhoneNumber::typeLabel( phonetype ) )
+ .arg( extension )
+ .arg( (*phoneIt).number() )
+ .arg( (*phoneIt).number() )
+ .arg( sms );
+
+ } else {
+ dynamicPart += QString(
+ "<tr><td align=\"right\"><b>%1</b></td>"
+ "<td align=\"left\">%2 %3</td></tr>" )
+ .arg( KABC::PhoneNumber::typeLabel( phonetype ) )
+ .arg( (*phoneIt).number() )
+ .arg( sms );
+ }
+ }
+ return dynamicPart;
+}
KABC::Addressee AddresseeView::addressee() const
{
return mAddressee;
}
void AddresseeView::addTag(const QString & tag,const QString & text)
{
if ( text.isEmpty() )
return;