22 #include <qpushbutton.h>
26 #include <kmessagebox.h>
27 #include <kabc/addressee.h>
28 #include <kabc/addressbook.h>
29 #include <kabc/phonenumber.h>
30 #include <kabc/picture.h>
31 #include <kabc/resource.h>
32 #include <kabc/stdaddressbook.h>
34 #include <kabcpersistence.h>
35 #include <kopetecontact.h>
36 #include <kopetecontactlist.h>
37 #include <kopeteproperty.h>
38 #include <kopeteglobal.h>
39 #include <kopetemetacontact.h>
40 #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();
76 QList<KABC::Resource*> kabcResources = m_addressBook->resources();
78 QListIterator<KABC::Resource*> resIt( kabcResources );
79 KABC::Resource *resource;
82 while ( resIt.hasNext() )
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 );
107 QList<Kopete::MetaContact*> contacts = Kopete::ContactList::self()->metaContacts();
108 QList<Kopete::MetaContact*>::iterator it, itEnd = contacts.end();
110 QString alreadyIn = i18n(
" (already in address book)" );
111 for ( it = contacts.begin(); it != itEnd; ++it)
114 m_contactMap.insert( counter, mc );
117 lvi->setCheckState( Qt::Unchecked );
118 const QString &kabcId = mc->kabcId();
119 if ( kabcId.isEmpty() || m_addressBook->findByUid(kabcId).isEmpty() )
121 lvi->setCheckState( Qt::Checked );
122 lvi->setFlags(Qt::ItemIsUserCheckable|Qt::ItemIsEnabled);
126 lvi->setText( lvi->text() + alreadyIn );
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 );
186 QList<Kopete::Contact*> contacts = item->mc->contacts();
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 );
222 QList<Kopete::Contact*> contacts = mc->contacts();
223 QList<Kopete::Contact*>::iterator cit, citEnd = contacts.begin();
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)