summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/kabcore.cpp69
-rw-r--r--kaddressbook/kabcore.h1
2 files changed, 70 insertions, 0 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index 9041e45..d9eb391 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -200,192 +200,193 @@ class KAex2phonePrefs : public QDialog
200 } 200 }
201 201
202public: 202public:
203 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel; 203 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel;
204 QCheckBox* mWriteToSim; 204 QCheckBox* mWriteToSim;
205}; 205};
206 206
207bool pasteWithNewUid = true; 207bool pasteWithNewUid = true;
208 208
209#ifdef KAB_EMBEDDED 209#ifdef KAB_EMBEDDED
210KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name ) 210KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name )
211 : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ), 211 : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ),
212 mExtensionManager( 0 ),mConfigureDialog( 0 ),/*US mLdapSearchDialog( 0 ),*/ 212 mExtensionManager( 0 ),mConfigureDialog( 0 ),/*US mLdapSearchDialog( 0 ),*/
213 mReadWrite( readWrite ), mModified( false ), mMainWindow(client) 213 mReadWrite( readWrite ), mModified( false ), mMainWindow(client)
214#else //KAB_EMBEDDED 214#else //KAB_EMBEDDED
215KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const char *name ) 215KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const char *name )
216 : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ), 216 : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ),
217 mExtensionManager( 0 ), mConfigureDialog( 0 ), mLdapSearchDialog( 0 ), 217 mExtensionManager( 0 ), mConfigureDialog( 0 ), mLdapSearchDialog( 0 ),
218 mReadWrite( readWrite ), mModified( false ) 218 mReadWrite( readWrite ), mModified( false )
219#endif //KAB_EMBEDDED 219#endif //KAB_EMBEDDED
220{ 220{
221 // syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu); 221 // syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu);
222 // syncManager->setBlockSave(false); 222 // syncManager->setBlockSave(false);
223 mExtensionBarSplitter = 0; 223 mExtensionBarSplitter = 0;
224 mIsPart = !parent->inherits( "KAddressBookMain" ); 224 mIsPart = !parent->inherits( "KAddressBookMain" );
225 225
226 mAddressBook = KABC::StdAddressBook::self(); 226 mAddressBook = KABC::StdAddressBook::self();
227 KABC::StdAddressBook::setAutomaticSave( false ); 227 KABC::StdAddressBook::setAutomaticSave( false );
228 228
229#ifndef KAB_EMBEDDED 229#ifndef KAB_EMBEDDED
230 mAddressBook->setErrorHandler( new KABC::GUIErrorHandler ); 230 mAddressBook->setErrorHandler( new KABC::GUIErrorHandler );
231#endif //KAB_EMBEDDED 231#endif //KAB_EMBEDDED
232 232
233 connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ), 233 connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ),
234 SLOT( addressBookChanged() ) ); 234 SLOT( addressBookChanged() ) );
235 235
236#if 0 236#if 0
237 // LP moved to addressbook init method 237 // LP moved to addressbook init method
238 mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization, 238 mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization,
239 "X-Department", "KADDRESSBOOK" ); 239 "X-Department", "KADDRESSBOOK" );
240 mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization, 240 mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization,
241 "X-Profession", "KADDRESSBOOK" ); 241 "X-Profession", "KADDRESSBOOK" );
242 mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization, 242 mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization,
243 "X-AssistantsName", "KADDRESSBOOK" ); 243 "X-AssistantsName", "KADDRESSBOOK" );
244 mAddressBook->addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization, 244 mAddressBook->addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization,
245 "X-ManagersName", "KADDRESSBOOK" ); 245 "X-ManagersName", "KADDRESSBOOK" );
246 mAddressBook->addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal, 246 mAddressBook->addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal,
247 "X-SpousesName", "KADDRESSBOOK" ); 247 "X-SpousesName", "KADDRESSBOOK" );
248 mAddressBook->addCustomField( i18n( "Office" ), KABC::Field::Personal, 248 mAddressBook->addCustomField( i18n( "Office" ), KABC::Field::Personal,
249 "X-Office", "KADDRESSBOOK" ); 249 "X-Office", "KADDRESSBOOK" );
250 mAddressBook->addCustomField( i18n( "IM Address" ), KABC::Field::Personal, 250 mAddressBook->addCustomField( i18n( "IM Address" ), KABC::Field::Personal,
251 "X-IMAddress", "KADDRESSBOOK" ); 251 "X-IMAddress", "KADDRESSBOOK" );
252 mAddressBook->addCustomField( i18n( "Anniversary" ), KABC::Field::Personal, 252 mAddressBook->addCustomField( i18n( "Anniversary" ), KABC::Field::Personal,
253 "X-Anniversary", "KADDRESSBOOK" ); 253 "X-Anniversary", "KADDRESSBOOK" );
254 254
255 //US added this field to become compatible with Opie/qtopia addressbook 255 //US added this field to become compatible with Opie/qtopia addressbook
256 // values can be "female" or "male" or "". An empty field represents undefined. 256 // values can be "female" or "male" or "". An empty field represents undefined.
257 mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal, 257 mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal,
258 "X-Gender", "KADDRESSBOOK" ); 258 "X-Gender", "KADDRESSBOOK" );
259 mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal, 259 mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal,
260 "X-Children", "KADDRESSBOOK" ); 260 "X-Children", "KADDRESSBOOK" );
261 mAddressBook->addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal, 261 mAddressBook->addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal,
262 "X-FreeBusyUrl", "KADDRESSBOOK" ); 262 "X-FreeBusyUrl", "KADDRESSBOOK" );
263#endif 263#endif
264 initGUI(); 264 initGUI();
265 265
266 mIncSearchWidget->setFocus(); 266 mIncSearchWidget->setFocus();
267 267
268 268
269 connect( mViewManager, SIGNAL( selected( const QString& ) ), 269 connect( mViewManager, SIGNAL( selected( const QString& ) ),
270 SLOT( setContactSelected( const QString& ) ) ); 270 SLOT( setContactSelected( const QString& ) ) );
271 connect( mViewManager, SIGNAL( executed( const QString& ) ), 271 connect( mViewManager, SIGNAL( executed( const QString& ) ),
272 SLOT( executeContact( const QString& ) ) ); 272 SLOT( executeContact( const QString& ) ) );
273 273
274 connect( mViewManager, SIGNAL( deleteRequest( ) ), 274 connect( mViewManager, SIGNAL( deleteRequest( ) ),
275 SLOT( deleteContacts( ) ) ); 275 SLOT( deleteContacts( ) ) );
276 connect( mViewManager, SIGNAL( modified() ), 276 connect( mViewManager, SIGNAL( modified() ),
277 SLOT( setModified() ) ); 277 SLOT( setModified() ) );
278 278
279 connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) ); 279 connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) );
280 connect( mExtensionManager, SIGNAL( changedActiveExtension( int ) ), this, SLOT( extensionChanged( int ) ) ); 280 connect( mExtensionManager, SIGNAL( changedActiveExtension( int ) ), this, SLOT( extensionChanged( int ) ) );
281 281
282 connect( mXXPortManager, SIGNAL( modified() ), 282 connect( mXXPortManager, SIGNAL( modified() ),
283 SLOT( setModified() ) ); 283 SLOT( setModified() ) );
284 284
285 connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ), 285 connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ),
286 SLOT( incrementalSearch( const QString& ) ) ); 286 SLOT( incrementalSearch( const QString& ) ) );
287 connect( mIncSearchWidget, SIGNAL( fieldChanged() ), 287 connect( mIncSearchWidget, SIGNAL( fieldChanged() ),
288 mJumpButtonBar, SLOT( recreateButtons() ) ); 288 mJumpButtonBar, SLOT( recreateButtons() ) );
289 289
290 connect( mDetails, SIGNAL( sendEmail( const QString& ) ), 290 connect( mDetails, SIGNAL( sendEmail( const QString& ) ),
291 SLOT( sendMail( const QString& ) ) ); 291 SLOT( sendMail( const QString& ) ) );
292 292
293 293
294 connect( ExternalAppHandler::instance(), SIGNAL (requestForNameEmailUidList(const QString&, const QString&)),this, SLOT(requestForNameEmailUidList(const QString&, const QString&))); 294 connect( ExternalAppHandler::instance(), SIGNAL (requestForNameEmailUidList(const QString&, const QString&)),this, SLOT(requestForNameEmailUidList(const QString&, const QString&)));
295 connect( ExternalAppHandler::instance(), SIGNAL (requestForDetails(const QString&, const QString&, const QString&, const QString&, const QString&)),this, SLOT(requestForDetails(const QString&, const QString&, const QString&, const QString&, const QString&))); 295 connect( ExternalAppHandler::instance(), SIGNAL (requestForDetails(const QString&, const QString&, const QString&, const QString&, const QString&)),this, SLOT(requestForDetails(const QString&, const QString&, const QString&, const QString&, const QString&)));
296 connect( ExternalAppHandler::instance(), SIGNAL (requestForBirthdayList(const QString&, const QString&)),this, SLOT(requestForBirthdayList(const QString&, const QString&)));
296 297
297 298
298#ifndef KAB_EMBEDDED 299#ifndef KAB_EMBEDDED
299 connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ), 300 connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ),
300 mXXPortManager, SLOT( importVCard( const KURL& ) ) ); 301 mXXPortManager, SLOT( importVCard( const KURL& ) ) );
301 302
302 connect( mDetails, SIGNAL( browse( const QString& ) ), 303 connect( mDetails, SIGNAL( browse( const QString& ) ),
303 SLOT( browse( const QString& ) ) ); 304 SLOT( browse( const QString& ) ) );
304 305
305 306
306 mAddressBookService = new KAddressBookService( this ); 307 mAddressBookService = new KAddressBookService( this );
307 308
308#endif //KAB_EMBEDDED 309#endif //KAB_EMBEDDED
309 mEditorDialog = 0; 310 mEditorDialog = 0;
310 createAddresseeEditorDialog( this ); 311 createAddresseeEditorDialog( this );
311 setModified( false ); 312 setModified( false );
312} 313}
313 314
314KABCore::~KABCore() 315KABCore::~KABCore()
315{ 316{
316 // save(); 317 // save();
317 //saveSettings(); 318 //saveSettings();
318 //KABPrefs::instance()->writeConfig(); 319 //KABPrefs::instance()->writeConfig();
319 delete AddresseeConfig::instance(); 320 delete AddresseeConfig::instance();
320 mAddressBook = 0; 321 mAddressBook = 0;
321 KABC::StdAddressBook::close(); 322 KABC::StdAddressBook::close();
322 323
323 delete syncManager; 324 delete syncManager;
324} 325}
325 326
326void KABCore::restoreSettings() 327void KABCore::restoreSettings()
327{ 328{
328 mMultipleViewsAtOnce = KABPrefs::instance()->mMultipleViewsAtOnce; 329 mMultipleViewsAtOnce = KABPrefs::instance()->mMultipleViewsAtOnce;
329 330
330 bool state; 331 bool state;
331 332
332 if (mMultipleViewsAtOnce) 333 if (mMultipleViewsAtOnce)
333 state = KABPrefs::instance()->mDetailsPageVisible; 334 state = KABPrefs::instance()->mDetailsPageVisible;
334 else 335 else
335 state = false; 336 state = false;
336 337
337 mActionDetails->setChecked( state ); 338 mActionDetails->setChecked( state );
338 setDetailsVisible( state ); 339 setDetailsVisible( state );
339 340
340 state = KABPrefs::instance()->mJumpButtonBarVisible; 341 state = KABPrefs::instance()->mJumpButtonBarVisible;
341 342
342 mActionJumpBar->setChecked( state ); 343 mActionJumpBar->setChecked( state );
343 setJumpButtonBarVisible( state ); 344 setJumpButtonBarVisible( state );
344/*US 345/*US
345 QValueList<int> splitterSize = KABPrefs::instance()->mDetailsSplitter; 346 QValueList<int> splitterSize = KABPrefs::instance()->mDetailsSplitter;
346 if ( splitterSize.count() == 0 ) { 347 if ( splitterSize.count() == 0 ) {
347 splitterSize.append( width() / 2 ); 348 splitterSize.append( width() / 2 );
348 splitterSize.append( width() / 2 ); 349 splitterSize.append( width() / 2 );
349 } 350 }
350 mMiniSplitter->setSizes( splitterSize ); 351 mMiniSplitter->setSizes( splitterSize );
351 if ( mExtensionBarSplitter ) { 352 if ( mExtensionBarSplitter ) {
352 splitterSize = KABPrefs::instance()->mExtensionsSplitter; 353 splitterSize = KABPrefs::instance()->mExtensionsSplitter;
353 if ( splitterSize.count() == 0 ) { 354 if ( splitterSize.count() == 0 ) {
354 splitterSize.append( width() / 2 ); 355 splitterSize.append( width() / 2 );
355 splitterSize.append( width() / 2 ); 356 splitterSize.append( width() / 2 );
356 } 357 }
357 mExtensionBarSplitter->setSizes( splitterSize ); 358 mExtensionBarSplitter->setSizes( splitterSize );
358 359
359 } 360 }
360*/ 361*/
361 mViewManager->restoreSettings(); 362 mViewManager->restoreSettings();
362 mIncSearchWidget->setCurrentItem( KABPrefs::instance()->mCurrentIncSearchField ); 363 mIncSearchWidget->setCurrentItem( KABPrefs::instance()->mCurrentIncSearchField );
363 mExtensionManager->restoreSettings(); 364 mExtensionManager->restoreSettings();
364#ifdef DESKTOP_VERSION 365#ifdef DESKTOP_VERSION
365 int wid = width(); 366 int wid = width();
366 if ( wid < 10 ) 367 if ( wid < 10 )
367 wid = 400; 368 wid = 400;
368#else 369#else
369 int wid = QApplication::desktop()->width(); 370 int wid = QApplication::desktop()->width();
370 if ( wid < 640 ) 371 if ( wid < 640 )
371 wid = QApplication::desktop()->height(); 372 wid = QApplication::desktop()->height();
372#endif 373#endif
373 QValueList<int> splitterSize;// = KABPrefs::instance()->mDetailsSplitter; 374 QValueList<int> splitterSize;// = KABPrefs::instance()->mDetailsSplitter;
374 if ( true /*splitterSize.count() == 0*/ ) { 375 if ( true /*splitterSize.count() == 0*/ ) {
375 splitterSize.append( wid / 2 ); 376 splitterSize.append( wid / 2 );
376 splitterSize.append( wid / 2 ); 377 splitterSize.append( wid / 2 );
377 } 378 }
378 mMiniSplitter->setSizes( splitterSize ); 379 mMiniSplitter->setSizes( splitterSize );
379 if ( mExtensionBarSplitter ) { 380 if ( mExtensionBarSplitter ) {
380 //splitterSize = KABPrefs::instance()->mExtensionsSplitter; 381 //splitterSize = KABPrefs::instance()->mExtensionsSplitter;
381 if ( true /*splitterSize.count() == 0*/ ) { 382 if ( true /*splitterSize.count() == 0*/ ) {
382 splitterSize.append( wid / 2 ); 383 splitterSize.append( wid / 2 );
383 splitterSize.append( wid / 2 ); 384 splitterSize.append( wid / 2 );
384 } 385 }
385 mExtensionBarSplitter->setSizes( splitterSize ); 386 mExtensionBarSplitter->setSizes( splitterSize );
386 387
387 } 388 }
388 389
389 390
390} 391}
391 392
@@ -2062,192 +2063,260 @@ void KABCore::removeVoice()
2062 if ( KMessageBox::questionYesNo( this, i18n("After importing, phone numbers\nmay have two or more types.\n(E.g. work+voice)\nThese numbers are shown as \"other\".\nClick Yes to remove the voice type\nfrom numbers with more than one type.\n\nRemove voice type?") ) == KMessageBox::No ) 2063 if ( KMessageBox::questionYesNo( this, i18n("After importing, phone numbers\nmay have two or more types.\n(E.g. work+voice)\nThese numbers are shown as \"other\".\nClick Yes to remove the voice type\nfrom numbers with more than one type.\n\nRemove voice type?") ) == KMessageBox::No )
2063 return; 2064 return;
2064 KABC::Addressee::List list = mViewManager->selectedAddressees(); 2065 KABC::Addressee::List list = mViewManager->selectedAddressees();
2065 KABC::Addressee::List::Iterator it; 2066 KABC::Addressee::List::Iterator it;
2066 for ( it = list.begin(); it != list.end(); ++it ) { 2067 for ( it = list.begin(); it != list.end(); ++it ) {
2067 PhoneNumber::List phoneNumbers = (*it).phoneNumbers(); 2068 PhoneNumber::List phoneNumbers = (*it).phoneNumbers();
2068 PhoneNumber::List::Iterator phoneIt; 2069 PhoneNumber::List::Iterator phoneIt;
2069 bool found = false; 2070 bool found = false;
2070 for ( phoneIt = phoneNumbers.begin(); phoneIt != phoneNumbers.end(); ++phoneIt ) { 2071 for ( phoneIt = phoneNumbers.begin(); phoneIt != phoneNumbers.end(); ++phoneIt ) {
2071 if ( (*phoneIt).type() & PhoneNumber::Voice) { // voice found 2072 if ( (*phoneIt).type() & PhoneNumber::Voice) { // voice found
2072 if ((*phoneIt).type() - PhoneNumber::Voice ) { 2073 if ((*phoneIt).type() - PhoneNumber::Voice ) {
2073 (*phoneIt).setType((*phoneIt).type() - PhoneNumber::Voice ); 2074 (*phoneIt).setType((*phoneIt).type() - PhoneNumber::Voice );
2074 (*it).insertPhoneNumber( (*phoneIt) ); 2075 (*it).insertPhoneNumber( (*phoneIt) );
2075 found = true; 2076 found = true;
2076 } 2077 }
2077 } 2078 }
2078 2079
2079 } 2080 }
2080 if ( found ) 2081 if ( found )
2081 contactModified((*it) ); 2082 contactModified((*it) );
2082 } 2083 }
2083} 2084}
2084 2085
2085 2086
2086 2087
2087void KABCore::clipboardDataChanged() 2088void KABCore::clipboardDataChanged()
2088{ 2089{
2089 2090
2090 if ( mReadWrite ) 2091 if ( mReadWrite )
2091 mActionPaste->setEnabled( !QApplication::clipboard()->text().isEmpty() ); 2092 mActionPaste->setEnabled( !QApplication::clipboard()->text().isEmpty() );
2092 2093
2093} 2094}
2094 2095
2095void KABCore::updateActionMenu() 2096void KABCore::updateActionMenu()
2096{ 2097{
2097 UndoStack *undo = UndoStack::instance(); 2098 UndoStack *undo = UndoStack::instance();
2098 RedoStack *redo = RedoStack::instance(); 2099 RedoStack *redo = RedoStack::instance();
2099 2100
2100 if ( undo->isEmpty() ) 2101 if ( undo->isEmpty() )
2101 mActionUndo->setText( i18n( "Undo" ) ); 2102 mActionUndo->setText( i18n( "Undo" ) );
2102 else 2103 else
2103 mActionUndo->setText( i18n( "Undo %1" ).arg( undo->top()->name() ) ); 2104 mActionUndo->setText( i18n( "Undo %1" ).arg( undo->top()->name() ) );
2104 2105
2105 mActionUndo->setEnabled( !undo->isEmpty() ); 2106 mActionUndo->setEnabled( !undo->isEmpty() );
2106 2107
2107 if ( !redo->top() ) 2108 if ( !redo->top() )
2108 mActionRedo->setText( i18n( "Redo" ) ); 2109 mActionRedo->setText( i18n( "Redo" ) );
2109 else 2110 else
2110 mActionRedo->setText( i18n( "Redo %1" ).arg( redo->top()->name() ) ); 2111 mActionRedo->setText( i18n( "Redo %1" ).arg( redo->top()->name() ) );
2111 2112
2112 mActionRedo->setEnabled( !redo->isEmpty() ); 2113 mActionRedo->setEnabled( !redo->isEmpty() );
2113} 2114}
2114 2115
2115void KABCore::configureKeyBindings() 2116void KABCore::configureKeyBindings()
2116{ 2117{
2117#ifndef KAB_EMBEDDED 2118#ifndef KAB_EMBEDDED
2118 KKeyDialog::configure( actionCollection(), true ); 2119 KKeyDialog::configure( actionCollection(), true );
2119#else //KAB_EMBEDDED 2120#else //KAB_EMBEDDED
2120 qDebug("KABCore::configureKeyBindings() not implemented"); 2121 qDebug("KABCore::configureKeyBindings() not implemented");
2121#endif //KAB_EMBEDDED 2122#endif //KAB_EMBEDDED
2122} 2123}
2123 2124
2124#ifdef KAB_EMBEDDED 2125#ifdef KAB_EMBEDDED
2125void KABCore::configureResources() 2126void KABCore::configureResources()
2126{ 2127{
2127 KRES::KCMKResources dlg( this, "" , 0 ); 2128 KRES::KCMKResources dlg( this, "" , 0 );
2128 2129
2129 if ( !dlg.exec() ) 2130 if ( !dlg.exec() )
2130 return; 2131 return;
2131 KMessageBox::information( this, i18n("Please restart to get the \nchanged resources (re)loaded!\n") ); 2132 KMessageBox::information( this, i18n("Please restart to get the \nchanged resources (re)loaded!\n") );
2132} 2133}
2133#endif //KAB_EMBEDDED 2134#endif //KAB_EMBEDDED
2134 2135
2135 2136
2136/* this method will be called through the QCop interface from Ko/Pi to select addresses 2137/* this method will be called through the QCop interface from Ko/Pi to select addresses
2137 * for the attendees list of an event. 2138 * for the attendees list of an event.
2138 */ 2139 */
2139void KABCore::requestForNameEmailUidList(const QString& sourceChannel, const QString& uid) 2140void KABCore::requestForNameEmailUidList(const QString& sourceChannel, const QString& uid)
2140{ 2141{
2141 QStringList nameList; 2142 QStringList nameList;
2142 QStringList emailList; 2143 QStringList emailList;
2143 QStringList uidList; 2144 QStringList uidList;
2144 2145
2145 KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this); 2146 KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this);
2146 uint i=0; 2147 uint i=0;
2147 for (i=0; i < list.count(); i++) 2148 for (i=0; i < list.count(); i++)
2148 { 2149 {
2149 nameList.append(list[i].realName()); 2150 nameList.append(list[i].realName());
2150 emailList.append(list[i].preferredEmail()); 2151 emailList.append(list[i].preferredEmail());
2151 uidList.append(list[i].uid()); 2152 uidList.append(list[i].uid());
2152 } 2153 }
2153 2154
2154 bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI(sourceChannel, uid, nameList, emailList, uidList); 2155 bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI(sourceChannel, uid, nameList, emailList, uidList);
2155 2156
2156} 2157}
2157 2158
2159/* this method will be called through the QCop interface from Ko/Pi to select birthdays
2160 * to put them into the calendar.
2161 */
2162void KABCore::requestForBirthdayList(const QString& sourceChannel, const QString& uid)
2163{
2164 // qDebug("KABCore::requestForBirthdayList");
2165 QStringList birthdayList;
2166 QStringList anniversaryList;
2167 QStringList realNameList;
2168 QStringList preferredEmailList;
2169 QStringList assembledNameList;
2170 QStringList uidList;
2171
2172 KABC::AddressBook::Iterator it;
2173
2174 int count = 0;
2175 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
2176 ++count;
2177 }
2178 QProgressBar bar(count,0 );
2179 int w = 300;
2180 if ( QApplication::desktop()->width() < 320 )
2181 w = 220;
2182 int h = bar.sizeHint().height() ;
2183 int dw = QApplication::desktop()->width();
2184 int dh = QApplication::desktop()->height();
2185 bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
2186 bar.show();
2187 bar.setCaption (i18n("collecting birthdays - close to abort!") );
2188 qApp->processEvents();
2189
2190 QDate bday;
2191 QString anni;
2192 QString formattedbday;
2193
2194 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it )
2195 {
2196 if ( ! bar.isVisible() )
2197 return;
2198 bar.setProgress( count++ );
2199 qApp->processEvents();
2200 bday = (*it).birthday().date();
2201 anni = (*it).custom("KADDRESSBOOK", "X-Anniversary" );
2202
2203 if ( bday.isValid() || !anni.isEmpty())
2204 {
2205 if (bday.isValid())
2206 formattedbday = KGlobal::locale()->formatDate(bday, true, KLocale::ISODate);
2207 else
2208 formattedbday = "NOTVALID";
2209 if (anni.isEmpty())
2210 anni = "INVALID";
2211
2212 birthdayList.append(formattedbday);
2213 anniversaryList.append(anni); //should be ISODate
2214 realNameList.append((*it).realName());
2215 preferredEmailList.append((*it).preferredEmail());
2216 assembledNameList.append((*it).assembledName());
2217 uidList.append((*it).uid());
2218
2219 qDebug("found birthday in KA/Pi: %s,%s,%s,%s: %s, %s", (*it).realName().latin1(), (*it).preferredEmail().latin1(), (*it).assembledName().latin1(), (*it).uid().latin1(), formattedbday.latin1(), anni.latin1() );
2220 }
2221 }
2222
2223 bool res = ExternalAppHandler::instance()->returnBirthdayListFromKAPI(sourceChannel, uid, birthdayList, anniversaryList, realNameList, preferredEmailList, assembledNameList, uidList);
2224
2225}
2226
2158/* this method will be called through the QCop interface from other apps to show details of a contact. 2227/* this method will be called through the QCop interface from other apps to show details of a contact.
2159 */ 2228 */
2160void KABCore::requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid) 2229void KABCore::requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid)
2161{ 2230{
2162 qDebug("KABCore::requestForDetails %s %s %s %s %s", sourceChannel.latin1(), sessionuid.latin1(), name.latin1(), email.latin1(), uid.latin1()); 2231 qDebug("KABCore::requestForDetails %s %s %s %s %s", sourceChannel.latin1(), sessionuid.latin1(), name.latin1(), email.latin1(), uid.latin1());
2163 2232
2164 QString foundUid = QString::null; 2233 QString foundUid = QString::null;
2165 if ( ! uid.isEmpty() ) { 2234 if ( ! uid.isEmpty() ) {
2166 Addressee adrr = mAddressBook->findByUid( uid ); 2235 Addressee adrr = mAddressBook->findByUid( uid );
2167 if ( !adrr.isEmpty() ) { 2236 if ( !adrr.isEmpty() ) {
2168 foundUid = uid; 2237 foundUid = uid;
2169 } 2238 }
2170 if ( email == "sendbacklist" ) { 2239 if ( email == "sendbacklist" ) {
2171 //qDebug("ssssssssssssssssssssssend "); 2240 //qDebug("ssssssssssssssssssssssend ");
2172 QStringList nameList; 2241 QStringList nameList;
2173 QStringList emailList; 2242 QStringList emailList;
2174 QStringList uidList; 2243 QStringList uidList;
2175 nameList.append(adrr.realName()); 2244 nameList.append(adrr.realName());
2176 emailList = adrr.emails(); 2245 emailList = adrr.emails();
2177 uidList.append( adrr.preferredEmail()); 2246 uidList.append( adrr.preferredEmail());
2178 bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI("QPE/Application/ompi", uid, nameList, emailList, uidList); 2247 bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI("QPE/Application/ompi", uid, nameList, emailList, uidList);
2179 return; 2248 return;
2180 } 2249 }
2181 2250
2182 } 2251 }
2183 2252
2184 if ( email == "sendbacklist" ) 2253 if ( email == "sendbacklist" )
2185 return; 2254 return;
2186 if (foundUid.isEmpty()) 2255 if (foundUid.isEmpty())
2187 { 2256 {
2188 //find the uid of the person first 2257 //find the uid of the person first
2189 Addressee::List namelist; 2258 Addressee::List namelist;
2190 Addressee::List emaillist; 2259 Addressee::List emaillist;
2191 2260
2192 if (!name.isEmpty()) 2261 if (!name.isEmpty())
2193 namelist = mAddressBook->findByName( name ); 2262 namelist = mAddressBook->findByName( name );
2194 2263
2195 if (!email.isEmpty()) 2264 if (!email.isEmpty())
2196 emaillist = mAddressBook->findByEmail( email ); 2265 emaillist = mAddressBook->findByEmail( email );
2197 qDebug("count %d %d ", namelist.count(),emaillist.count() ); 2266 qDebug("count %d %d ", namelist.count(),emaillist.count() );
2198 //check if we have a match in Namelist and Emaillist 2267 //check if we have a match in Namelist and Emaillist
2199 if ((namelist.count() == 0) && (emaillist.count() > 0)) { 2268 if ((namelist.count() == 0) && (emaillist.count() > 0)) {
2200 foundUid = emaillist[0].uid(); 2269 foundUid = emaillist[0].uid();
2201 } 2270 }
2202 else if ((namelist.count() > 0) && (emaillist.count() == 0)) 2271 else if ((namelist.count() > 0) && (emaillist.count() == 0))
2203 foundUid = namelist[0].uid(); 2272 foundUid = namelist[0].uid();
2204 else 2273 else
2205 { 2274 {
2206 for (int i = 0; i < namelist.count(); i++) 2275 for (int i = 0; i < namelist.count(); i++)
2207 { 2276 {
2208 for (int j = 0; j < emaillist.count(); j++) 2277 for (int j = 0; j < emaillist.count(); j++)
2209 { 2278 {
2210 if (namelist[i] == emaillist[j]) 2279 if (namelist[i] == emaillist[j])
2211 { 2280 {
2212 foundUid = namelist[i].uid(); 2281 foundUid = namelist[i].uid();
2213 } 2282 }
2214 } 2283 }
2215 } 2284 }
2216 } 2285 }
2217 } 2286 }
2218 else 2287 else
2219 { 2288 {
2220 foundUid = uid; 2289 foundUid = uid;
2221 } 2290 }
2222 2291
2223 if (!foundUid.isEmpty()) 2292 if (!foundUid.isEmpty())
2224 { 2293 {
2225 2294
2226 // raise Ka/Pi if it is in the background 2295 // raise Ka/Pi if it is in the background
2227#ifndef DESKTOP_VERSION 2296#ifndef DESKTOP_VERSION
2228#ifndef KORG_NODCOP 2297#ifndef KORG_NODCOP
2229 //QCopEnvelope e("QPE/Application/kapi", "raise()"); 2298 //QCopEnvelope e("QPE/Application/kapi", "raise()");
2230#endif 2299#endif
2231#endif 2300#endif
2232 2301
2233 mMainWindow->showMaximized(); 2302 mMainWindow->showMaximized();
2234 mMainWindow-> raise(); 2303 mMainWindow-> raise();
2235 2304
2236 mViewManager->setSelected( "", false); 2305 mViewManager->setSelected( "", false);
2237 mViewManager->refreshView( "" ); 2306 mViewManager->refreshView( "" );
2238 mViewManager->setSelected( foundUid, true ); 2307 mViewManager->setSelected( foundUid, true );
2239 mViewManager->refreshView( foundUid ); 2308 mViewManager->refreshView( foundUid );
2240 2309
2241 if ( !mMultipleViewsAtOnce ) 2310 if ( !mMultipleViewsAtOnce )
2242 { 2311 {
2243 setDetailsVisible( true ); 2312 setDetailsVisible( true );
2244 mActionDetails->setChecked(true); 2313 mActionDetails->setChecked(true);
2245 } 2314 }
2246 } 2315 }
2247} 2316}
2248 2317
2249 2318
2250void KABCore::faq() 2319void KABCore::faq()
2251{ 2320{
2252 KApplication::showFile( "KA/Pi FAQ", "kdepim/kaddressbook/kapiFAQ.txt" ); 2321 KApplication::showFile( "KA/Pi FAQ", "kdepim/kaddressbook/kapiFAQ.txt" );
2253} 2322}
diff --git a/kaddressbook/kabcore.h b/kaddressbook/kabcore.h
index e6f286b..c9c0d38 100644
--- a/kaddressbook/kabcore.h
+++ b/kaddressbook/kabcore.h
@@ -242,192 +242,193 @@ class KABCore : public QWidget, public KSyncInterface
242 242
243 /** 243 /**
244 Search with the current search field for a contact, that matches 244 Search with the current search field for a contact, that matches
245 the given text, and selects it in the view. 245 the given text, and selects it in the view.
246 */ 246 */
247 void incrementalSearch( const QString& text ); 247 void incrementalSearch( const QString& text );
248 248
249 /** 249 /**
250 Marks the address book as modified. 250 Marks the address book as modified.
251 */ 251 */
252 void setModified(); 252 void setModified();
253 /** 253 /**
254 Marks the address book as modified without refreshing the view. 254 Marks the address book as modified without refreshing the view.
255 */ 255 */
256 void setModifiedWOrefresh(); 256 void setModifiedWOrefresh();
257 257
258 /** 258 /**
259 Marks the address book as modified concerning the argument. 259 Marks the address book as modified concerning the argument.
260 */ 260 */
261 void setModified( bool modified ); 261 void setModified( bool modified );
262 262
263 /** 263 /**
264 Returns whether the address book is modified. 264 Returns whether the address book is modified.
265 */ 265 */
266 bool modified() const; 266 bool modified() const;
267 267
268 /** 268 /**
269 Called whenever an contact is modified in the contact editor 269 Called whenever an contact is modified in the contact editor
270 dialog or the quick edit. 270 dialog or the quick edit.
271 */ 271 */
272 void contactModified( const KABC::Addressee &addr ); 272 void contactModified( const KABC::Addressee &addr );
273 273
274 /** 274 /**
275 DCOP METHODS. 275 DCOP METHODS.
276 */ 276 */
277 void addEmail( QString addr ); 277 void addEmail( QString addr );
278 void importVCard( const KURL& url, bool showPreview ); 278 void importVCard( const KURL& url, bool showPreview );
279 void importVCard( const QString& vCard, bool showPreview ); 279 void importVCard( const QString& vCard, bool showPreview );
280 void newContact(); 280 void newContact();
281 QString getNameByPhone( const QString& phone ); 281 QString getNameByPhone( const QString& phone );
282 /** 282 /**
283 END DCOP METHODS 283 END DCOP METHODS
284 */ 284 */
285 285
286 /** 286 /**
287 Saves the contents of the AddressBook back to disk. 287 Saves the contents of the AddressBook back to disk.
288 */ 288 */
289 void save(); 289 void save();
290 290
291 /** 291 /**
292 Undos the last command using the undo stack. 292 Undos the last command using the undo stack.
293 */ 293 */
294 void undo(); 294 void undo();
295 295
296 /** 296 /**
297 Redos the last command that was undone, using the redo stack. 297 Redos the last command that was undone, using the redo stack.
298 */ 298 */
299 void redo(); 299 void redo();
300 300
301 /** 301 /**
302 Shows the edit dialog for the given uid. If the uid is QString::null, 302 Shows the edit dialog for the given uid. If the uid is QString::null,
303 the method will try to find a selected addressee in the view. 303 the method will try to find a selected addressee in the view.
304 */ 304 */
305 void editContact( const QString &uid /*US = QString::null*/ ); 305 void editContact( const QString &uid /*US = QString::null*/ );
306//US added a second method without defaultparameter 306//US added a second method without defaultparameter
307 void editContact2(); 307 void editContact2();
308 308
309 /** 309 /**
310 Shows or edits the detail view for the given uid. If the uid is QString::null, 310 Shows or edits the detail view for the given uid. If the uid is QString::null,
311 the method will try to find a selected addressee in the view. 311 the method will try to find a selected addressee in the view.
312 */ 312 */
313 void executeContact( const QString &uid /*US = QString::null*/ ); 313 void executeContact( const QString &uid /*US = QString::null*/ );
314 314
315 /** 315 /**
316 Launches the configuration dialog. 316 Launches the configuration dialog.
317 */ 317 */
318 void openConfigDialog(); 318 void openConfigDialog();
319 319
320 /** 320 /**
321 Launches the ldap search dialog. 321 Launches the ldap search dialog.
322 */ 322 */
323 void openLDAPDialog(); 323 void openLDAPDialog();
324 324
325 /** 325 /**
326 Creates a KAddressBookPrinter, which will display the print 326 Creates a KAddressBookPrinter, which will display the print
327 dialog and do the printing. 327 dialog and do the printing.
328 */ 328 */
329 void print(); 329 void print();
330 330
331 /** 331 /**
332 Registers a new GUI client, so plugins can register its actions. 332 Registers a new GUI client, so plugins can register its actions.
333 */ 333 */
334 void addGUIClient( KXMLGUIClient *client ); 334 void addGUIClient( KXMLGUIClient *client );
335 335
336 void requestForNameEmailUidList(const QString& sourceChannel, const QString& sessionuid); 336 void requestForNameEmailUidList(const QString& sourceChannel, const QString& sessionuid);
337 void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid); 337 void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid);
338 void requestForBirthdayList(const QString& sourceChannel, const QString& sessionuid);
338 339
339 340
340 signals: 341 signals:
341 void contactSelected( const QString &name ); 342 void contactSelected( const QString &name );
342 void contactSelected( const QPixmap &pixmap ); 343 void contactSelected( const QPixmap &pixmap );
343 public slots: 344 public slots:
344 void setDetailsVisible( bool visible ); 345 void setDetailsVisible( bool visible );
345 void setDetailsToState(); 346 void setDetailsToState();
346 // void slotSyncMenu( int ); 347 // void slotSyncMenu( int );
347 private slots: 348 private slots:
348 void setJumpButtonBarVisible( bool visible ); 349 void setJumpButtonBarVisible( bool visible );
349 void importFromOL(); 350 void importFromOL();
350 void extensionModified( const KABC::Addressee::List &list ); 351 void extensionModified( const KABC::Addressee::List &list );
351 void extensionChanged( int id ); 352 void extensionChanged( int id );
352 void clipboardDataChanged(); 353 void clipboardDataChanged();
353 void updateActionMenu(); 354 void updateActionMenu();
354 void configureKeyBindings(); 355 void configureKeyBindings();
355 void removeVoice(); 356 void removeVoice();
356#ifdef KAB_EMBEDDED 357#ifdef KAB_EMBEDDED
357 void configureResources(); 358 void configureResources();
358#endif //KAB_EMBEDDED 359#endif //KAB_EMBEDDED
359 360
360 void slotEditorDestroyed( const QString &uid ); 361 void slotEditorDestroyed( const QString &uid );
361 void configurationChanged(); 362 void configurationChanged();
362 void addressBookChanged(); 363 void addressBookChanged();
363 364
364 private: 365 private:
365 void initGUI(); 366 void initGUI();
366 void initActions(); 367 void initActions();
367 368
368 AddresseeEditorDialog *createAddresseeEditorDialog( QWidget *parent, 369 AddresseeEditorDialog *createAddresseeEditorDialog( QWidget *parent,
369 const char *name = 0 ); 370 const char *name = 0 );
370 371
371 KXMLGUIClient *mGUIClient; 372 KXMLGUIClient *mGUIClient;
372 373
373 KABC::AddressBook *mAddressBook; 374 KABC::AddressBook *mAddressBook;
374 375
375 ViewManager *mViewManager; 376 ViewManager *mViewManager;
376 // QSplitter *mDetailsSplitter; 377 // QSplitter *mDetailsSplitter;
377 KDGanttMinimizeSplitter *mExtensionBarSplitter; 378 KDGanttMinimizeSplitter *mExtensionBarSplitter;
378 ViewContainer *mDetails; 379 ViewContainer *mDetails;
379 KDGanttMinimizeSplitter* mMiniSplitter; 380 KDGanttMinimizeSplitter* mMiniSplitter;
380 XXPortManager *mXXPortManager; 381 XXPortManager *mXXPortManager;
381 JumpButtonBar *mJumpButtonBar; 382 JumpButtonBar *mJumpButtonBar;
382 IncSearchWidget *mIncSearchWidget; 383 IncSearchWidget *mIncSearchWidget;
383 ExtensionManager *mExtensionManager; 384 ExtensionManager *mExtensionManager;
384 385
385 KCMultiDialog *mConfigureDialog; 386 KCMultiDialog *mConfigureDialog;
386 387
387#ifndef KAB_EMBEDDED 388#ifndef KAB_EMBEDDED
388 LDAPSearchDialog *mLdapSearchDialog; 389 LDAPSearchDialog *mLdapSearchDialog;
389#endif //KAB_EMBEDDED 390#endif //KAB_EMBEDDED
390 // QDict<AddresseeEditorDialog> mEditorDict; 391 // QDict<AddresseeEditorDialog> mEditorDict;
391 AddresseeEditorDialog *mEditorDialog; 392 AddresseeEditorDialog *mEditorDialog;
392 bool mReadWrite; 393 bool mReadWrite;
393 bool mModified; 394 bool mModified;
394 bool mIsPart; 395 bool mIsPart;
395 bool mMultipleViewsAtOnce; 396 bool mMultipleViewsAtOnce;
396 397
397 398
398 //US file menu 399 //US file menu
399 KAction *mActionMail; 400 KAction *mActionMail;
400 KAction *mActionBeam; 401 KAction *mActionBeam;
401 KAction *mActionExport2phone; 402 KAction *mActionExport2phone;
402 KAction* mActionPrint; 403 KAction* mActionPrint;
403 KAction* mActionNewContact; 404 KAction* mActionNewContact;
404 KAction *mActionSave; 405 KAction *mActionSave;
405 KAction *mActionEditAddressee; 406 KAction *mActionEditAddressee;
406 KAction *mActionMailVCard; 407 KAction *mActionMailVCard;
407 KAction *mActionBeamVCard; 408 KAction *mActionBeamVCard;
408 409
409 KAction *mActionQuit; 410 KAction *mActionQuit;
410 411
411 //US edit menu 412 //US edit menu
412 KAction *mActionCopy; 413 KAction *mActionCopy;
413 KAction *mActionCut; 414 KAction *mActionCut;
414 KAction *mActionPaste; 415 KAction *mActionPaste;
415 KAction *mActionSelectAll; 416 KAction *mActionSelectAll;
416 KAction *mActionUndo; 417 KAction *mActionUndo;
417 KAction *mActionRedo; 418 KAction *mActionRedo;
418 KAction *mActionDelete; 419 KAction *mActionDelete;
419 420
420 //US settings menu 421 //US settings menu
421 KAction *mActionConfigResources; 422 KAction *mActionConfigResources;
422 KAction *mActionConfigKAddressbook; 423 KAction *mActionConfigKAddressbook;
423 KAction *mActionConfigShortcuts; 424 KAction *mActionConfigShortcuts;
424 KAction *mActionConfigureToolbars; 425 KAction *mActionConfigureToolbars;
425 KAction *mActionKeyBindings; 426 KAction *mActionKeyBindings;
426 KToggleAction *mActionJumpBar; 427 KToggleAction *mActionJumpBar;
427 KToggleAction *mActionDetails; 428 KToggleAction *mActionDetails;
428 KAction *mActionWhoAmI; 429 KAction *mActionWhoAmI;
429 KAction *mActionCategories; 430 KAction *mActionCategories;
430 KAction *mActionAboutKAddressbook; 431 KAction *mActionAboutKAddressbook;
431 KAction *mActionLicence; 432 KAction *mActionLicence;
432 KAction *mActionFaq; 433 KAction *mActionFaq;
433 434