From 77e3a7bc670f4c9b7eb5a5d6652a7986ea196533 Mon Sep 17 00:00:00 2001 From: zautrix Date: Tue, 12 Oct 2004 20:14:39 +0000 Subject: Changed phone number sorting in details view --- diff --git a/kabc/addresseeview.cpp b/kabc/addresseeview.cpp index 2dda968..af149a0 100644 --- a/kabc/addresseeview.cpp +++ b/kabc/addresseeview.cpp @@ -90,11 +90,7 @@ 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; @@ -109,6 +105,8 @@ void AddresseeView::setAddressee( const KABC::Addressee& addr ) QString dynamicPart; + dynamicPart += getPhoneNumbers( true ); + qDebug("dynamic preferred %s ",dynamicPart.latin1() ); QStringList emails = mAddressee.emails(); QStringList::ConstIterator emailIt; QString type = i18n( "Email" ); @@ -139,63 +137,7 @@ void AddresseeView::setAddressee( const KABC::Addressee& addr ) .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("(sms)" ) - .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( - "%1" - "%4 %5" ) - .arg( KABC::PhoneNumber::typeLabel( phonetype ) ) - .arg( extension ) - .arg( (*phoneIt).number() ) - .arg( (*phoneIt).number() ) - .arg( sms ); - - } else { - dynamicPart += QString( - "%1" - "%2 %3" ) - .arg( KABC::PhoneNumber::typeLabel( phonetype ) ) - .arg( (*phoneIt).number() ) - .arg( sms ); - } - } - + dynamicPart += getPhoneNumbers( false ); for ( ; emailIt != emails.end(); ++emailIt ) { if ( kemailAvail ) { @@ -370,6 +312,75 @@ mText = "\n"; } +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("(sms)" ) + .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( + "" + "" ) + .arg( KABC::PhoneNumber::typeLabel( phonetype ) ) + .arg( extension ) + .arg( (*phoneIt).number() ) + .arg( (*phoneIt).number() ) + .arg( sms ); + + } else { + dynamicPart += QString( + "" + "" ) + .arg( KABC::PhoneNumber::typeLabel( phonetype ) ) + .arg( (*phoneIt).number() ) + .arg( sms ); + } + } + return dynamicPart; +} KABC::Addressee AddresseeView::addressee() const { return mAddressee; diff --git a/kabc/addresseeview.h b/kabc/addresseeview.h index 689d997..d8a13ee 100644 --- a/kabc/addresseeview.h +++ b/kabc/addresseeview.h @@ -51,6 +51,7 @@ class AddresseeView : public QTextBrowser private: KABC::Addressee mAddressee; QString mText; + QString getPhoneNumbers( bool preferred ); void addTag(const QString & tag,const QString & text); class AddresseeViewPrivate; AddresseeViewPrivate *d; diff --git a/kabc/phonenumber.cpp b/kabc/phonenumber.cpp index 6e94c7e..d7e3925 100644 --- a/kabc/phonenumber.cpp +++ b/kabc/phonenumber.cpp @@ -198,10 +198,10 @@ QString PhoneNumber::typeLabel( int type ) // add the prefered flag if (!typeString.isEmpty()) typeString += " "; - + /* if ((type & Pref) == Pref) typeString += i18n("(p)"); - + */ //if we still have no match, return "other" if (typeString.isEmpty()) return i18n("Other"); diff --git a/kaddressbook/phoneeditwidget.cpp b/kaddressbook/phoneeditwidget.cpp index 78b9941..19bb676 100644 --- a/kaddressbook/phoneeditwidget.cpp +++ b/kaddressbook/phoneeditwidget.cpp @@ -215,6 +215,7 @@ void PhoneEditWidget::edit() if ( dlg.changed() ) { mPhoneList = dlg.phoneNumbers(); updateCombos(); + updateLineEdits(); emit modified(); } } @@ -289,10 +290,7 @@ void PhoneEditWidget::updatePhoneNumber( PhoneTypeCombo *combo ) PhoneNumber::List::Iterator it = combo->selectedElement(); if ( it != mPhoneList.end() ) { (*it).setNumber( edit->text() ); - } else { - kdDebug(5720) << "PhoneEditWidget::updatePhoneNumber(): no selected element" - << endl; - } + } updateOtherEdit( combo, mPrefCombo ); updateOtherEdit( combo, mSecondCombo ); -- cgit v0.9.0.2
%1%4 %5
%1%2 %3