summaryrefslogtreecommitdiffabout
path: root/kaddressbook
authorulf69 <ulf69>2004-07-16 23:25:52 (UTC)
committer ulf69 <ulf69>2004-07-16 23:25:52 (UTC)
commite87df879ceaa743c95d2b48c291c3c35f8ed6b3f (patch) (unidiff)
treef144099674f805ca7775d6d8a4129871887869de /kaddressbook
parentb78f5351ef7432aae4104ed306b52975c91eacb0 (diff)
downloadkdepimpi-e87df879ceaa743c95d2b48c291c3c35f8ed6b3f.zip
kdepimpi-e87df879ceaa743c95d2b48c291c3c35f8ed6b3f.tar.gz
kdepimpi-e87df879ceaa743c95d2b48c291c3c35f8ed6b3f.tar.bz2
load the sharp dtm lib automatically if it exists
Diffstat (limited to 'kaddressbook') (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/xxportmanager.cpp23
1 files changed, 15 insertions, 8 deletions
diff --git a/kaddressbook/xxportmanager.cpp b/kaddressbook/xxportmanager.cpp
index 4798ffe..2962951 100644
--- a/kaddressbook/xxportmanager.cpp
+++ b/kaddressbook/xxportmanager.cpp
@@ -84,168 +84,175 @@ void XXPortManager::restoreSettings()
84void XXPortManager::saveSettings() 84void XXPortManager::saveSettings()
85{ 85{
86} 86}
87 87
88void XXPortManager::importVCard( const KURL &url ) 88void XXPortManager::importVCard( const KURL &url )
89{ 89{
90 importVCard( url, false ); 90 importVCard( url, false );
91} 91}
92 92
93void XXPortManager::importVCard( const KURL &url, bool showPreview ) 93void XXPortManager::importVCard( const KURL &url, bool showPreview )
94{ 94{
95 importURL = url; 95 importURL = url;
96 mShowPreview = showPreview; 96 mShowPreview = showPreview;
97 slotImport( "vcard", "<empty>" ); 97 slotImport( "vcard", "<empty>" );
98 mShowPreview = false; 98 mShowPreview = false;
99 importURL = KURL(); 99 importURL = KURL();
100} 100}
101 101
102void XXPortManager::importVCard( const QString &vCard, bool showPreview ) 102void XXPortManager::importVCard( const QString &vCard, bool showPreview )
103{ 103{
104 importData = vCard; 104 importData = vCard;
105 mShowPreview = showPreview; 105 mShowPreview = showPreview;
106 slotImport( "vcard", "<empty>" ); 106 slotImport( "vcard", "<empty>" );
107 mShowPreview = false; 107 mShowPreview = false;
108 importData = ""; 108 importData = "";
109} 109}
110 110
111void XXPortManager::slotImport( const QString &identifier, const QString &data ) 111void XXPortManager::slotImport( const QString &identifier, const QString &data )
112{ 112{
113 XXPortObject *obj = mXXPortObjects[ identifier ]; 113 XXPortObject *obj = mXXPortObjects[ identifier ];
114 if ( !obj ) { 114 if ( !obj ) {
115 KMessageBox::error( mCore, i18n( "<qt>No import plugin available for <b>%1</b>.</qt>" ).arg( identifier ) ); 115 KMessageBox::error( mCore, i18n( "<qt>No import plugin available for <b>%1</b>.</qt>" ).arg( identifier ) );
116 return; 116 return;
117 } 117 }
118 118
119 KABC::Resource *resource = mCore->requestResource( mCore ); 119 KABC::Resource *resource = mCore->requestResource( mCore );
120 if ( !resource ) 120 if ( !resource )
121 return; 121 return;
122 122
123 KABC::AddresseeList list = obj->importContacts( data ); 123 KABC::AddresseeList list = obj->importContacts( data );
124 KABC::AddresseeList::Iterator it; 124 KABC::AddresseeList::Iterator it;
125 bool imported = false; 125 bool imported = false;
126 for ( it = list.begin(); it != list.end(); ++it ) { 126 for ( it = list.begin(); it != list.end(); ++it ) {
127 if ( mShowPreview ) { 127 if ( mShowPreview ) {
128 PreviewDialog dlg( *it, mCore ); 128 PreviewDialog dlg( *it, mCore );
129 if ( !dlg.exec() ) 129 if ( !dlg.exec() )
130 continue; 130 continue;
131 } 131 }
132 132
133 (*it).setResource( resource ); 133 (*it).setResource( resource );
134 // We use a PwNewCommand so the user can undo it. 134 // We use a PwNewCommand so the user can undo it.
135 PwNewCommand *command = new PwNewCommand( mCore->addressBook(), *it ); 135 PwNewCommand *command = new PwNewCommand( mCore->addressBook(), *it );
136 UndoStack::instance()->push( command ); 136 UndoStack::instance()->push( command );
137 RedoStack::instance()->clear(); 137 RedoStack::instance()->clear();
138 imported = true; 138 imported = true;
139 } 139 }
140 140
141 if ( imported ) { 141 if ( imported ) {
142 KMessageBox::information( mCore, i18n( "contacts successfully imported." ) ); 142 KMessageBox::information( mCore, i18n( "contacts successfully imported." ) );
143 143
144 emit modified(); 144 emit modified();
145 } 145 }
146} 146}
147 147
148void XXPortManager::slotExport( const QString &identifier, const QString &data ) 148void XXPortManager::slotExport( const QString &identifier, const QString &data )
149{ 149{
150 XXPortObject *obj = mXXPortObjects[ identifier ]; 150 XXPortObject *obj = mXXPortObjects[ identifier ];
151 if ( !obj ) { 151 if ( !obj ) {
152 KMessageBox::error( mCore, i18n( "<qt>No export plugin available for <b>%1</b>.</qt>" ).arg( identifier ) ); 152 KMessageBox::error( mCore, i18n( "<qt>No export plugin available for <b>%1</b>.</qt>" ).arg( identifier ) );
153 return; 153 return;
154 } 154 }
155 155
156 KABC::AddresseeList addrList; 156 KABC::AddresseeList addrList;
157 XXPortSelectDialog dlg( mCore, obj->requiresSorting(), mCore ); 157 XXPortSelectDialog dlg( mCore, obj->requiresSorting(), mCore );
158 if ( dlg.exec() ) 158 if ( dlg.exec() )
159 addrList = dlg.contacts(); 159 addrList = dlg.contacts();
160 else 160 else
161 return; 161 return;
162 162
163 if ( !obj->exportContacts( addrList, data ) ) 163 if ( !obj->exportContacts( addrList, data ) )
164 KMessageBox::error( mCore, i18n( "Unable to export contacts." ) ); 164 KMessageBox::error( mCore, i18n( "Unable to export contacts." ) );
165 else 165 else
166 KMessageBox::information( mCore, i18n( "contacts successfully exported." ) ); 166 KMessageBox::information( mCore, i18n( "contacts successfully exported." ) );
167} 167}
168 168
169void XXPortManager::loadPlugins() 169void XXPortManager::loadPlugins()
170{ 170{
171 mXXPortObjects.clear(); 171 mXXPortObjects.clear();
172 172
173#ifndef KAB_EMBEDDED 173#ifndef KAB_EMBEDDED
174 KTrader::OfferList plugins = KTrader::self()->query( "KAddressBook/XXPort" ); 174 KTrader::OfferList plugins = KTrader::self()->query( "KAddressBook/XXPort" );
175 KTrader::OfferList::ConstIterator it; 175 KTrader::OfferList::ConstIterator it;
176 for ( it = plugins.begin(); it != plugins.end(); ++it ) { 176 for ( it = plugins.begin(); it != plugins.end(); ++it ) {
177 if ( !(*it)->hasServiceType( "KAddressBook/XXPort" ) ) 177 if ( !(*it)->hasServiceType( "KAddressBook/XXPort" ) )
178 continue; 178 continue;
179 179
180 KLibFactory *factory = KLibLoader::self()->factory( (*it)->library().latin1() ); 180 KLibFactory *factory = KLibLoader::self()->factory( (*it)->library().latin1() );
181 if ( !factory ) { 181 if ( !factory ) {
182 kdDebug(5720) << "XXPortManager::loadExtensions(): Factory creation failed" << endl; 182 kdDebug(5720) << "XXPortManager::loadExtensions(): Factory creation failed" << endl;
183 continue; 183 continue;
184 } 184 }
185 185
186 XXPortFactory *xxportFactory = static_cast<XXPortFactory*>( factory ); 186 XXPortFactory *xxportFactory = static_cast<XXPortFactory*>( factory );
187 187
188 if ( !xxportFactory ) { 188 if ( !xxportFactory ) {
189 kdDebug(5720) << "XXPortManager::loadExtensions(): Cast failed" << endl; 189 kdDebug(5720) << "XXPortManager::loadExtensions(): Cast failed" << endl;
190 continue; 190 continue;
191 } 191 }
192 192
193#else //KAB_EMBEDDED 193#else //KAB_EMBEDDED
194 QList<XXPortFactory> factorylist; 194 QList<XXPortFactory> factorylist;
195 factorylist.append(static_cast<XXPortFactory*>(init_kaddrbk_csv_xxport())); 195 factorylist.append(static_cast<XXPortFactory*>(init_kaddrbk_csv_xxport()));
196 factorylist.append(static_cast<XXPortFactory*>(init_kaddrbk_kde2_xxport())); 196 factorylist.append(static_cast<XXPortFactory*>(init_kaddrbk_kde2_xxport()));
197 factorylist.append(static_cast<XXPortFactory*>(init_kaddrbk_vcard_xxport())); 197 factorylist.append(static_cast<XXPortFactory*>(init_kaddrbk_vcard_xxport()));
198 198
199 //add the opie import library dynamically 199 //add the opie import library dynamically
200 KLibFactory *factory = KLibLoader::self()->factory( "microkaddrbk_opie_xxport" ); 200 KLibFactory *factory = KLibLoader::self()->factory( "microkaddrbk_opie_xxport" );
201 if ( factory ) { 201 if ( factory ) {
202 XXPortFactory *xxportFactory = static_cast<XXPortFactory*>( factory ); 202 XXPortFactory *xxportFactory = static_cast<XXPortFactory*>( factory );
203 factorylist.append(xxportFactory); 203 factorylist.append(xxportFactory);
204 } 204 }
205 205
206 //add the qtopia import library dynamically 206 //add the qtopia import library dynamically
207 factory = KLibLoader::self()->factory( "microkaddrbk_qtopia_xxport" ); 207 factory = KLibLoader::self()->factory( "microkaddrbk_qtopia_xxport" );
208 if ( factory ) { 208 if ( factory ) {
209 XXPortFactory *xxportFactory = static_cast<XXPortFactory*>( factory ); 209 XXPortFactory *xxportFactory = static_cast<XXPortFactory*>( factory );
210 factorylist.append(xxportFactory); 210 factorylist.append(xxportFactory);
211 } 211 }
212 212
213 QListIterator<XXPortFactory> it(factorylist); 213 //add the sharp import library dynamically
214 factory = KLibLoader::self()->factory( "microkaddrbk_sharpdtm_xxport" );
215 if ( factory ) {
216 XXPortFactory *xxportFactory = static_cast<XXPortFactory*>( factory );
217 factorylist.append(xxportFactory);
218 }
219
220 QListIterator<XXPortFactory> it(factorylist);
214 for ( ; it.current(); ++it ) 221 for ( ; it.current(); ++it )
215 { 222 {
216 XXPortFactory *xxportFactory = it.current(); 223 XXPortFactory *xxportFactory = it.current();
217#endif //KAB_EMBEDDED 224#endif //KAB_EMBEDDED
218 225
219 XXPortObject *obj = xxportFactory->xxportObject( mCore->addressBook(), mCore ); 226 XXPortObject *obj = xxportFactory->xxportObject( mCore->addressBook(), mCore );
220 if ( obj ) { 227 if ( obj ) {
221 mCore->addGUIClient( obj ); 228 mCore->addGUIClient( obj );
222 mXXPortObjects.insert( obj->identifier(), obj ); 229 mXXPortObjects.insert( obj->identifier(), obj );
223 connect( obj, SIGNAL( exportActivated( const QString&, const QString& ) ), 230 connect( obj, SIGNAL( exportActivated( const QString&, const QString& ) ),
224 this, SLOT( slotExport( const QString&, const QString& ) ) ); 231 this, SLOT( slotExport( const QString&, const QString& ) ) );
225 connect( obj, SIGNAL( importActivated( const QString&, const QString& ) ), 232 connect( obj, SIGNAL( importActivated( const QString&, const QString& ) ),
226 this, SLOT( slotImport( const QString&, const QString& ) ) ); 233 this, SLOT( slotImport( const QString&, const QString& ) ) );
227 } 234 }
228 } 235 }
229} 236}
230 237
231 238
232PreviewDialog::PreviewDialog( const KABC::Addressee &addr, QWidget *parent, 239PreviewDialog::PreviewDialog( const KABC::Addressee &addr, QWidget *parent,
233 const char *name ) 240 const char *name )
234 : KDialogBase( Plain, i18n( "Contact Preview" ), Ok | Cancel, Ok, parent, 241 : KDialogBase( Plain, i18n( "Contact Preview" ), Ok | Cancel, Ok, parent,
235 name, true, true ) 242 name, true, true )
236{ 243{
237 QWidget *page = plainPage(); 244 QWidget *page = plainPage();
238 QVBoxLayout *layout = new QVBoxLayout( page, marginHint(), spacingHint() ); 245 QVBoxLayout *layout = new QVBoxLayout( page, marginHint(), spacingHint() );
239 246
240 KPIM::AddresseeView *view = new KPIM::AddresseeView( page ); 247 KPIM::AddresseeView *view = new KPIM::AddresseeView( page );
241 view->setAddressee( addr ); 248 view->setAddressee( addr );
242 249
243 layout->addWidget( view ); 250 layout->addWidget( view );
244 251
245 resize( 400, 300 ); 252 resize( 400, 300 );
246} 253}
247 254
248#ifndef KAB_EMBEDDED 255#ifndef KAB_EMBEDDED
249#include "xxportmanager.moc" 256#include "xxportmanager.moc"
250#endif //KAB_EMBEDDED 257#endif //KAB_EMBEDDED
251 258