00001
00002
00003
00004
00005
00006
#include <config.h>
00007
#include <unistd.h>
00008
00009
#include "kmaddrbook.h"
00010
#include "kcursorsaver.h"
00011
#include "kmmessage.h"
00012
#include "kmkernel.h"
00013
00014
#include <kapplication.h>
00015
#include <kdebug.h>
00016
#include <klocale.h>
00017
#include <kmessagebox.h>
00018
#include <kabc/stdaddressbook.h>
00019
#include <kabc/distributionlist.h>
00020
#include <kabc/vcardconverter.h>
00021
#include <dcopref.h>
00022
00023
#include <qregexp.h>
00024
00025
void KabcBridge::addresses(
QStringList& result)
00026 {
00027
KCursorSaver busy(KBusyPtr::busy());
00028
00029 KABC::AddressBook *addressBook = KABC::StdAddressBook::self();
00030 KABC::AddressBook::ConstIterator it;
00031
for( it = addressBook->begin(); it != addressBook->end(); ++it ) {
00032
const QStringList emails = (*it).emails();
00033
QString n = (*it).prefix() +
" " +
00034 (*it).givenName() +
" " +
00035 (*it).additionalName() +
" " +
00036 (*it).familyName() +
" " +
00037 (*it).suffix();
00038 n = n.simplifyWhiteSpace();
00039
00040
QRegExp needQuotes(
"[^ 0-9A-Za-z\\x0080-\\xFFFF]");
00041
QString endQuote =
"\" ";
00042 QStringList::ConstIterator mit;
00043
QString addr, email;
00044
00045
for ( mit = emails.begin(); mit != emails.end(); ++mit ) {
00046 email = *mit;
00047
if (!email.isEmpty()) {
00048
if (n.isEmpty() || (email.find(
'<' ) != -1))
00049 addr = QString::null;
00050
else {
00051
if (n.find(needQuotes) != -1)
00052 addr =
'"' + n + endQuote;
00053
else
00054 addr = n +
' ';
00055 }
00056
00057
if (!addr.isEmpty() && (email.find(
'<' ) == -1)
00058 && (email.find(
'>' ) == -1)
00059 && (email.find(
',' ) == -1))
00060 addr +=
'<' + email +
'>';
00061
else
00062 addr += email;
00063 addr = addr.stripWhiteSpace();
00064 result.append( addr );
00065 }
00066 }
00067 }
00068 KABC::DistributionListManager manager( addressBook );
00069 manager.load();
00070 result += manager.listNames();
00071
00072 result.sort();
00073 }
00074
00075
QStringList KabcBridge::addresses()
00076 {
00077
QStringList entries;
00078 KABC::AddressBook::ConstIterator it;
00079
00080
const KABC::AddressBook *addressBook = KABC::StdAddressBook::self();
00081
for( it = addressBook->begin(); it != addressBook->end(); ++it ) {
00082 entries += (*it).fullEmail();
00083 }
00084
return entries;
00085 }
00086
00087
00088
QString KabcBridge::expandNickName(
const QString& nickName )
00089 {
00090
if ( nickName.isEmpty() )
00091
return QString::null;
00092
00093
const QString lowerNickName = nickName.lower();
00094
const KABC::AddressBook *addressBook = KABC::StdAddressBook::self();
00095
for( KABC::AddressBook::ConstIterator it = addressBook->begin();
00096 it != addressBook->end(); ++it ) {
00097
if ( (*it).nickName().lower() == lowerNickName )
00098
return (*it).fullEmail();
00099 }
00100
return QString::null;
00101 }
00102
00103
00104
00105
00106
QStringList KabcBridge::categories()
00107 {
00108 KABC::AddressBook *addressBook = KABC::StdAddressBook::self();
00109 KABC::Addressee::List addresses = addressBook->allAddressees();
00110
QStringList allcategories, aux;
00111
00112
for ( KABC::Addressee::List::Iterator it = addresses.begin();
00113 it != addresses.end(); ++it ) {
00114 aux = ( *it ).categories();
00115
for ( QStringList::ConstIterator itAux = aux.begin();
00116 itAux != aux.end(); ++itAux ) {
00117
00118
if ( allcategories.find( *itAux ) == allcategories.end() )
00119 allcategories += *itAux;
00120 }
00121 }
00122
return allcategories;
00123 }