24 #include <qpushbutton.h>
28 #include <kmessagebox.h>
29 #include <kabc/addressee.h>
30 #include <kabc/addressbook.h>
31 #include <kabc/phonenumber.h>
32 #include <kabc/picture.h>
33 #include <kabc/resource.h>
34 #include <kabc/stdaddressbook.h>
36 #include <kabcpersistence.h>
37 #include <kopetecontact.h>
38 #include <kopetecontactlist.h>
39 #include <kopeteproperty.h>
40 #include <kopeteglobal.h>
41 #include <kopetemetacontact.h>
42 #include <kopetepicture.h>
60 m_page1.setupUi(page1Widget);
61 m_page1WidgetItem=addPage(page1Widget,i18n(
"Select Address Book"));
63 m_page2.setupUi(page2Widget);
64 m_page2WidgetItem=addPage(page2Widget,i18n(
"Select Contact"));
70 connect( m_page2.btnSelectAll, SIGNAL(clicked()), SLOT(
slotSelectAll()) );
71 connect( m_page2.btnDeselectAll, SIGNAL(clicked()), SLOT(
slotDeselectAll()) );
74 m_addressBook = Kopete::KABCPersistence::self()->addressBook();
79 KABC::Resource *resource;
84 resource = resIt.
next();
85 if ( !resource->readOnly() )
87 m_resourceMap.
insert( counter, resource );
88 m_page1.addrBooks->addItem( resource->resourceName() );
93 setValid(m_page1WidgetItem,
false);
98 m_page1.addrBooks->addItem( i18n(
"No writeable address book resource found." ) );
99 m_page1.addrBooks->addItem( i18n(
"Add or enable one using the KDE System Settings." ) );
100 m_page1.addrBooks->setEnabled(
false );
103 if ( m_page1.addrBooks->count() == 1 )
104 m_page1.addrBooks->setCurrentRow( 0 );
110 QString alreadyIn = i18n(
" (already in address book)" );
111 for ( it = contacts.
begin(); it != itEnd; ++it)
114 m_contactMap.
insert( counter, mc );
118 const QString &kabcId = mc->kabcId();
119 if ( kabcId.
isEmpty() || m_addressBook->findByUid(kabcId).isEmpty() )
122 lvi->
setFlags(Qt::ItemIsUserCheckable|Qt::ItemIsEnabled);
139 for(
int i=0;i<m_page2.contactList->count();i++)
141 ContactLVI *item =
static_cast<ContactLVI *
>( m_page2.contactList->item(i) );
142 item->setCheckState( Qt::Unchecked );
148 for(
int i=0;i<m_page2.contactList->count();i++)
150 ContactLVI *item =
static_cast<ContactLVI *
>( m_page2.contactList->item(i) );
151 if ( item->flags() & Qt::ItemIsEnabled)
152 item->setCheckState( Qt::Checked );
158 setValid( m_page1WidgetItem,
true );
167 KABC::Resource * selectedResource =
168 m_resourceMap[ ( m_page1.addrBooks->currentRow() ) ];
171 for(
int i=0;i<m_page2.contactList->count();i++)
173 ContactLVI *item =
static_cast<ContactLVI *
>( m_page2.contactList->item(i) );
175 if ( item->flags() & Qt::ItemIsEnabled && item->checkState() & Qt::Checked)
177 KABC::Addressee addr;
178 addr = m_addressBook->findByUid( item->mc->kabcId() );
179 if ( addr.isEmpty() )
181 kDebug( 14000 ) <<
"creating addressee " << item->mc->displayName() <<
" in address book " << selectedResource->resourceName();
183 addr.setResource( selectedResource );
187 if ( contacts.
count() == 1 )
189 Kopete::Property prop;
190 prop = contacts.
first()->property(
191 Kopete::Global::Properties::self()->fullName() );
193 addr.setNameFromString( item->mc->displayName() );
195 addr.setNameFromString( prop.value().toString() );
198 addr.setNameFromString( item->mc->displayName() );
202 m_addressBook->insertAddressee( addr );
205 item->mc->setKabcId( addr.uid() );
210 m_addressBook->insertAddressee( addr );
216 Kopete::KABCPersistence::self()->writeAddressBook( selectedResource );
224 for( cit = contacts.
begin(); cit != citEnd; ++cit )
226 Kopete::Property prop;
227 prop = (*cit)->property( Kopete::Global::Properties::self()->emailAddress() );
228 if ( !prop.isNull() )
230 addr.insertEmail( prop.value().toString() );
232 prop = (*cit)->property( Kopete::Global::Properties::self()->privatePhone() );
233 if ( !prop.isNull() )
235 addr.insertPhoneNumber( KABC::PhoneNumber( prop.value().toString(), KABC::PhoneNumber::Home ) );
237 prop = (*cit)->property( Kopete::Global::Properties::self()->workPhone() );
238 if ( !prop.isNull() )
240 addr.insertPhoneNumber( KABC::PhoneNumber( prop.value().toString(), KABC::PhoneNumber::Work ) );
242 prop = (*cit)->property( Kopete::Global::Properties::self()->privateMobilePhone() );
243 if ( !prop.isNull() )
245 addr.insertPhoneNumber( KABC::PhoneNumber( prop.value().toString(), KABC::PhoneNumber::Cell ) );
250 if( !mc->picture().isNull() )
252 QImage photo = mc->picture().image();
253 addr.setPhoto( KABC::Picture( photo ) );
257 #include "kabcexport.moc"
KabcExportWizard(QWidget *parent=0)
void slotResourceSelectionChanged(QListWidgetItem *lbi)
void exportDetails(Kopete::MetaContact *mc, KABC::Addressee &addr)
int count(const T &value) const
iterator insert(const Key &key, const T &value)
void setText(const QString &text)