summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt4
-rw-r--r--kaddressbook/kabcore.cpp7
-rw-r--r--kaddressbook/kabcore.h1
3 files changed, 10 insertions, 2 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt
index 5037443..29688de 100644
--- a/bin/kdepim/WhatsNew.txt
+++ b/bin/kdepim/WhatsNew.txt
@@ -1,140 +1,140 @@
1Info about the changes in new versions of KDE-Pim/Pi 1Info about the changes in new versions of KDE-Pim/Pi
2 2
3********** VERSION 1.9.12 ************ 3********** VERSION 1.9.12 ************
4 4
5Fix for the bug in KO/Pi What's Next view of version 1.9.11. 5Fix for the bug in KO/Pi What's Next view of version 1.9.11.
6 6
7Bugfix: Licence file is now shown again. 7Bugfix: Licence file is now shown again.
8 8
9OM/Pi now supports Unicode (utf8 charset). 9OM/Pi now supports Unicode (utf8 charset).
10Fixed some bugs in OM/Pi.
10 11
11Why a new release? 12KA/Pi has more German translation.
12Because of the two bugs.
13 13
14 14
15********** VERSION 1.9.11 ************ 15********** VERSION 1.9.11 ************
16 16
17Fixed several problems in PWM/Pi, like 17Fixed several problems in PWM/Pi, like
18asking the user, if unsaved changed are pending 18asking the user, if unsaved changed are pending
19when closing the app. 19when closing the app.
20And PwM/Pi handles now different texts for the 20And PwM/Pi handles now different texts for the
21fields Description, Username, Password, configurable per category. 21fields Description, Username, Password, configurable per category.
22 22
23Fixed a crash in KO/Pi , when importing/loading vcs files 23Fixed a crash in KO/Pi , when importing/loading vcs files
24which have an entry with an attendee with state: 24which have an entry with an attendee with state:
25NEEDS ACTION 25NEEDS ACTION
26 26
27Fixed some problems in the German translation of OM/Pi, 27Fixed some problems in the German translation of OM/Pi,
28which makes some dialogs not fitting on the screen 28which makes some dialogs not fitting on the screen
29of the Z 5500. 29of the Z 5500.
30 30
31Fixed Qtopia crash, when disabling/deinstalling 31Fixed Qtopia crash, when disabling/deinstalling
32KO/Pi alarm applet. 32KO/Pi alarm applet.
33 33
34Implemented direct KDE<->KA/Pi sync for KA/Pi running 34Implemented direct KDE<->KA/Pi sync for KA/Pi running
35on Linux desktop. 35on Linux desktop.
36 36
37Added feature "remove sync info" to sync menu. 37Added feature "remove sync info" to sync menu.
38 38
39Tweaked the KO/Pi What's next view a bit, added 39Tweaked the KO/Pi What's next view a bit, added
40setting to hide events that are done. 40setting to hide events that are done.
41 41
42Disabled "beam receive enabled" on startup to 42Disabled "beam receive enabled" on startup to
43avoid problems if Fastload is enabled. 43avoid problems if Fastload is enabled.
44Please set "beam receive enabled", 44Please set "beam receive enabled",
45if you want to receive data via IR. 45if you want to receive data via IR.
46 46
47Fixed bug in direct KDE<->KO/Pi sync for KO/Pi running 47Fixed bug in direct KDE<->KO/Pi sync for KO/Pi running
48on Linux desktop. 48on Linux desktop.
49 49
50Made in KA/Pi scrolling possible, if details view is selected. 50Made in KA/Pi scrolling possible, if details view is selected.
51(The keyboard focus is set automatically to the search line) 51(The keyboard focus is set automatically to the search line)
52 52
53Fixed a bug in DMT sync, that a new entry in DTM was added 53Fixed a bug in DMT sync, that a new entry in DTM was added
54on every sync to Kx/Pi. 54on every sync to Kx/Pi.
55 55
56Fixed missing writing of KA/Pi categories to DMT entries when syncing. 56Fixed missing writing of KA/Pi categories to DMT entries when syncing.
57 57
58Fixed a bug in DMT sync with todos created in KO/Pi containing 58Fixed a bug in DMT sync with todos created in KO/Pi containing
59non-latin1 characters. 59non-latin1 characters.
60 60
61Rearranged package contents of Sharp-ipks and made all 61Rearranged package contents of Sharp-ipks and made all
62packages installable on SD again. 62packages installable on SD again.
63 63
64Fixed the writing of addressbook data in DTM sync. 64Fixed the writing of addressbook data in DTM sync.
65Empty fields in KA/Pi were not removed. 65Empty fields in KA/Pi were not removed.
66 66
67Added better category handling in KA/Pi: 67Added better category handling in KA/Pi:
68Added item 68Added item
69Edit Categories and 69Edit Categories and
70Manage new categories 70Manage new categories
71to the settings menu. 71to the settings menu.
72Possible to configure a view to display categories. 72Possible to configure a view to display categories.
73 73
74Added detailed "KDE Sync Howto" and "Multi Sync Howto" to Help menu. 74Added detailed "KDE Sync Howto" and "Multi Sync Howto" to Help menu.
75 75
76Fixed displaying of "free" days and time in KO Monthview and Agendaview. 76Fixed displaying of "free" days and time in KO Monthview and Agendaview.
77 77
78... and many other bugfixes. 78... and many other bugfixes.
79 79
80********** VERSION 1.9.10 ************ 80********** VERSION 1.9.10 ************
81 81
82Many internal small bugfixes. 82Many internal small bugfixes.
83And fix of the "big" bug in KO/Pi, 83And fix of the "big" bug in KO/Pi,
84that after Syncing the appointments had an offset by several hours. 84that after Syncing the appointments had an offset by several hours.
85That was a problem with the internal timezone setting, 85That was a problem with the internal timezone setting,
86introduced by the changed timezone configuration settings. 86introduced by the changed timezone configuration settings.
87 87
88German translation for OM/Pi is now available. 88German translation for OM/Pi is now available.
89 89
90 90
91********** VERSION 1.9.9 ************ 91********** VERSION 1.9.9 ************
92 92
93KDE-Pim/Pi has a new Member! 93KDE-Pim/Pi has a new Member!
94It is called PWM/Pi (Passwordmanager/platform-independent) 94It is called PWM/Pi (Passwordmanager/platform-independent)
95and it is available for the Zaurus. 95and it is available for the Zaurus.
96It is planned, that it will be available later for Windows. 96It is planned, that it will be available later for Windows.
97(And for Linux, of course). 97(And for Linux, of course).
98It is a port of the Passwordmanager of KDE. 98It is a port of the Passwordmanager of KDE.
99It will need the MicroKDElibs to run. 99It will need the MicroKDElibs to run.
100 100
101Made loading of addressbooks in KA/Pi up to 7 times faster! 101Made loading of addressbooks in KA/Pi up to 7 times faster!
102The bigger your addressbook file, the more starting speed 102The bigger your addressbook file, the more starting speed
103will you gain. (relatively) 103will you gain. (relatively)
104 104
105The Qtopia addressbook connector is now platform independend 105The Qtopia addressbook connector is now platform independend
106as well and should work on any platform for importing/exporting 106as well and should work on any platform for importing/exporting
107Qtopia and Opie XML files. 107Qtopia and Opie XML files.
108 108
109Added a +30min feature to the timezone settings to make 109Added a +30min feature to the timezone settings to make
110KDE-Pim/Pi useable in Australia and other parts on the 110KDE-Pim/Pi useable in Australia and other parts on the
111world with strange timezones ;-) 111world with strange timezones ;-)
112 112
113German "Umlaute" should now be sorted correctly on the Z in KA/Pi. 113German "Umlaute" should now be sorted correctly on the Z in KA/Pi.
114 114
115It is now possible to disable the 115It is now possible to disable the
116"receive data via infrared" feature, such that syncing with 116"receive data via infrared" feature, such that syncing with
117Outlook is now possible again with Kx/Pi runing. 117Outlook is now possible again with Kx/Pi runing.
118Please disable it, before syncing Sharp DTM with Outlook. 118Please disable it, before syncing Sharp DTM with Outlook.
119For your convenience, the "receive data via infrared" feature 119For your convenience, the "receive data via infrared" feature
120is disabled automatically, if you sync Kx/Pi with DTM. 120is disabled automatically, if you sync Kx/Pi with DTM.
121You have to enable it again manually after syncing. 121You have to enable it again manually after syncing.
122Enabling this feature makes it impossible to start the 122Enabling this feature makes it impossible to start the
123Sharp DTM apps. If this feature is enabled, you will only get the 123Sharp DTM apps. If this feature is enabled, you will only get the
124alarm notification from KO/Pi and not from the Sharp calendar. 124alarm notification from KO/Pi and not from the Sharp calendar.
125This is very useful if you sync KO/Pi with Sharp DTM, 125This is very useful if you sync KO/Pi with Sharp DTM,
126because after syncing you usually would get notified about 126because after syncing you usually would get notified about
127an alarm by KO/Pi and the Sharp Calendar. 127an alarm by KO/Pi and the Sharp Calendar.
128 128
129Together with the Linux desktop version of KO/Pi 129Together with the Linux desktop version of KO/Pi
130it is now possible to sync KO/Pi on the Zaurus 130it is now possible to sync KO/Pi on the Zaurus
131with the complete KDE-desktop (3.3 or later) 131with the complete KDE-desktop (3.3 or later)
132calendar data easily. 132calendar data easily.
133That makes it possible to sync the Z with one 133That makes it possible to sync the Z with one
134click of a mouse with the KDE-Desktop. 134click of a mouse with the KDE-Desktop.
135This feature it available for all Zaurus platforms KO/Pi 135This feature it available for all Zaurus platforms KO/Pi
136is running on. 136is running on.
137The only thing needed is a running KO/Pi on Linux and 137The only thing needed is a running KO/Pi on Linux and
138a compiled version of the small 138a compiled version of the small
139KDE-Pim/Pi<->KDE-Desktop access command line program, 139KDE-Pim/Pi<->KDE-Desktop access command line program,
140which is in the KDE-Pim/Pi sources available. 140which is in the KDE-Pim/Pi sources available.
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index 4445310..d651224 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -232,258 +232,265 @@ class KAex2phonePrefs : public QDialog
232 QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); 232 QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
233 lay->addWidget( cancel ); 233 lay->addWidget( cancel );
234 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); 234 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
235 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); 235 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
236 resize( 220, 240 ); 236 resize( 220, 240 );
237 237
238 } 238 }
239 239
240public: 240public:
241 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel; 241 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel;
242 QCheckBox* mWriteToSim; 242 QCheckBox* mWriteToSim;
243}; 243};
244 244
245 245
246bool pasteWithNewUid = true; 246bool pasteWithNewUid = true;
247 247
248#ifdef KAB_EMBEDDED 248#ifdef KAB_EMBEDDED
249KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name ) 249KABCore::KABCore( KAddressBookMain *client, bool readWrite, QWidget *parent, const char *name )
250 : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ), 250 : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ),
251 mExtensionManager( 0 ),mConfigureDialog( 0 ),/*US mLdapSearchDialog( 0 ),*/ 251 mExtensionManager( 0 ),mConfigureDialog( 0 ),/*US mLdapSearchDialog( 0 ),*/
252 mReadWrite( readWrite ), mModified( false ), mMainWindow(client) 252 mReadWrite( readWrite ), mModified( false ), mMainWindow(client)
253#else //KAB_EMBEDDED 253#else //KAB_EMBEDDED
254KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const char *name ) 254KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const char *name )
255 : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ), 255 : QWidget( parent, name ), KSyncInterface(), mGUIClient( client ), mViewManager( 0 ),
256 mExtensionManager( 0 ), mConfigureDialog( 0 ), mLdapSearchDialog( 0 ), 256 mExtensionManager( 0 ), mConfigureDialog( 0 ), mLdapSearchDialog( 0 ),
257 mReadWrite( readWrite ), mModified( false ) 257 mReadWrite( readWrite ), mModified( false )
258#endif //KAB_EMBEDDED 258#endif //KAB_EMBEDDED
259{ 259{
260 // syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu); 260 // syncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)this, KSyncManager::KAPI, KABPrefs::instance(), syncMenu);
261 // syncManager->setBlockSave(false); 261 // syncManager->setBlockSave(false);
262 mExtensionBarSplitter = 0; 262 mExtensionBarSplitter = 0;
263 mIsPart = !parent->inherits( "KAddressBookMain" ); 263 mIsPart = !parent->inherits( "KAddressBookMain" );
264 mAddressBook = KABC::StdAddressBook::self(); 264 mAddressBook = KABC::StdAddressBook::self();
265 KABC::StdAddressBook::setAutomaticSave( false ); 265 KABC::StdAddressBook::setAutomaticSave( false );
266 266
267#ifndef KAB_EMBEDDED 267#ifndef KAB_EMBEDDED
268 mAddressBook->setErrorHandler( new KABC::GUIErrorHandler ); 268 mAddressBook->setErrorHandler( new KABC::GUIErrorHandler );
269#endif //KAB_EMBEDDED 269#endif //KAB_EMBEDDED
270 270
271 connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ), 271 connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook * ) ),
272 SLOT( addressBookChanged() ) ); 272 SLOT( addressBookChanged() ) );
273 273
274#if 0 274#if 0
275 // LP moved to addressbook init method 275 // LP moved to addressbook init method
276 mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization, 276 mAddressBook->addCustomField( i18n( "Department" ), KABC::Field::Organization,
277 "X-Department", "KADDRESSBOOK" ); 277 "X-Department", "KADDRESSBOOK" );
278 mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization, 278 mAddressBook->addCustomField( i18n( "Profession" ), KABC::Field::Organization,
279 "X-Profession", "KADDRESSBOOK" ); 279 "X-Profession", "KADDRESSBOOK" );
280 mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization, 280 mAddressBook->addCustomField( i18n( "Assistant's Name" ), KABC::Field::Organization,
281 "X-AssistantsName", "KADDRESSBOOK" ); 281 "X-AssistantsName", "KADDRESSBOOK" );
282 mAddressBook->addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization, 282 mAddressBook->addCustomField( i18n( "Manager's Name" ), KABC::Field::Organization,
283 "X-ManagersName", "KADDRESSBOOK" ); 283 "X-ManagersName", "KADDRESSBOOK" );
284 mAddressBook->addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal, 284 mAddressBook->addCustomField( i18n( "Spouse's Name" ), KABC::Field::Personal,
285 "X-SpousesName", "KADDRESSBOOK" ); 285 "X-SpousesName", "KADDRESSBOOK" );
286 mAddressBook->addCustomField( i18n( "Office" ), KABC::Field::Personal, 286 mAddressBook->addCustomField( i18n( "Office" ), KABC::Field::Personal,
287 "X-Office", "KADDRESSBOOK" ); 287 "X-Office", "KADDRESSBOOK" );
288 mAddressBook->addCustomField( i18n( "IM Address" ), KABC::Field::Personal, 288 mAddressBook->addCustomField( i18n( "IM Address" ), KABC::Field::Personal,
289 "X-IMAddress", "KADDRESSBOOK" ); 289 "X-IMAddress", "KADDRESSBOOK" );
290 mAddressBook->addCustomField( i18n( "Anniversary" ), KABC::Field::Personal, 290 mAddressBook->addCustomField( i18n( "Anniversary" ), KABC::Field::Personal,
291 "X-Anniversary", "KADDRESSBOOK" ); 291 "X-Anniversary", "KADDRESSBOOK" );
292 292
293 //US added this field to become compatible with Opie/qtopia addressbook 293 //US added this field to become compatible with Opie/qtopia addressbook
294 // values can be "female" or "male" or "". An empty field represents undefined. 294 // values can be "female" or "male" or "". An empty field represents undefined.
295 mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal, 295 mAddressBook->addCustomField( i18n( "Gender" ), KABC::Field::Personal,
296 "X-Gender", "KADDRESSBOOK" ); 296 "X-Gender", "KADDRESSBOOK" );
297 mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal, 297 mAddressBook->addCustomField( i18n( "Children" ), KABC::Field::Personal,
298 "X-Children", "KADDRESSBOOK" ); 298 "X-Children", "KADDRESSBOOK" );
299 mAddressBook->addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal, 299 mAddressBook->addCustomField( i18n( "FreeBusyUrl" ), KABC::Field::Personal,
300 "X-FreeBusyUrl", "KADDRESSBOOK" ); 300 "X-FreeBusyUrl", "KADDRESSBOOK" );
301#endif 301#endif
302 initGUI(); 302 initGUI();
303 303
304 mIncSearchWidget->setFocus(); 304 mIncSearchWidget->setFocus();
305 305
306 306
307 connect( mViewManager, SIGNAL( selected( const QString& ) ), 307 connect( mViewManager, SIGNAL( selected( const QString& ) ),
308 SLOT( setContactSelected( const QString& ) ) ); 308 SLOT( setContactSelected( const QString& ) ) );
309 connect( mViewManager, SIGNAL( executed( const QString& ) ), 309 connect( mViewManager, SIGNAL( executed( const QString& ) ),
310 SLOT( executeContact( const QString& ) ) ); 310 SLOT( executeContact( const QString& ) ) );
311 311
312 connect( mViewManager, SIGNAL( deleteRequest( ) ), 312 connect( mViewManager, SIGNAL( deleteRequest( ) ),
313 SLOT( deleteContacts( ) ) ); 313 SLOT( deleteContacts( ) ) );
314 connect( mViewManager, SIGNAL( modified() ), 314 connect( mViewManager, SIGNAL( modified() ),
315 SLOT( setModified() ) ); 315 SLOT( setModified() ) );
316 316
317 connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) ); 317 connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) );
318 connect( mExtensionManager, SIGNAL( changedActiveExtension( int ) ), this, SLOT( extensionChanged( int ) ) ); 318 connect( mExtensionManager, SIGNAL( changedActiveExtension( int ) ), this, SLOT( extensionChanged( int ) ) );
319 319
320 connect( mXXPortManager, SIGNAL( modified() ), 320 connect( mXXPortManager, SIGNAL( modified() ),
321 SLOT( setModified() ) ); 321 SLOT( setModified() ) );
322 322
323 connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ), 323 connect( mJumpButtonBar, SIGNAL( jumpToLetter( const QString& ) ),
324 SLOT( incrementalSearch( const QString& ) ) ); 324 SLOT( incrementalSearch( const QString& ) ) );
325 connect( mIncSearchWidget, SIGNAL( fieldChanged() ), 325 connect( mIncSearchWidget, SIGNAL( fieldChanged() ),
326 mJumpButtonBar, SLOT( recreateButtons() ) ); 326 mJumpButtonBar, SLOT( recreateButtons() ) );
327 327
328 connect( mDetails, SIGNAL( sendEmail( const QString& ) ), 328 connect( mDetails, SIGNAL( sendEmail( const QString& ) ),
329 SLOT( sendMail( const QString& ) ) ); 329 SLOT( sendMail( const QString& ) ) );
330 330
331 331
332 connect( ExternalAppHandler::instance(), SIGNAL (requestForNameEmailUidList(const QString&, const QString&)),this, SLOT(requestForNameEmailUidList(const QString&, const QString&))); 332 connect( ExternalAppHandler::instance(), SIGNAL (requestForNameEmailUidList(const QString&, const QString&)),this, SLOT(requestForNameEmailUidList(const QString&, const QString&)));
333 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&))); 333 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&)));
334 connect( ExternalAppHandler::instance(), SIGNAL (requestForBirthdayList(const QString&, const QString&)),this, SLOT(requestForBirthdayList(const QString&, const QString&))); 334 connect( ExternalAppHandler::instance(), SIGNAL (requestForBirthdayList(const QString&, const QString&)),this, SLOT(requestForBirthdayList(const QString&, const QString&)));
335 connect( ExternalAppHandler::instance(), SIGNAL (nextView()),this, SLOT(setDetailsToggle())); 335 connect( ExternalAppHandler::instance(), SIGNAL (nextView()),this, SLOT(setDetailsToggle()));
336 336
337 337
338#ifndef KAB_EMBEDDED 338#ifndef KAB_EMBEDDED
339 connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ), 339 connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ),
340 mXXPortManager, SLOT( importVCard( const KURL& ) ) ); 340 mXXPortManager, SLOT( importVCard( const KURL& ) ) );
341 341
342 connect( mDetails, SIGNAL( browse( const QString& ) ), 342 connect( mDetails, SIGNAL( browse( const QString& ) ),
343 SLOT( browse( const QString& ) ) ); 343 SLOT( browse( const QString& ) ) );
344 344
345 345
346 mAddressBookService = new KAddressBookService( this ); 346 mAddressBookService = new KAddressBookService( this );
347 347
348#endif //KAB_EMBEDDED 348#endif //KAB_EMBEDDED
349 349
350 mMessageTimer = new QTimer( this ); 350 mMessageTimer = new QTimer( this );
351 connect( mMessageTimer, SIGNAL( timeout() ), this, SLOT( setCaptionBack() ) ); 351 connect( mMessageTimer, SIGNAL( timeout() ), this, SLOT( setCaptionBack() ) );
352 mEditorDialog = 0; 352 mEditorDialog = 0;
353 createAddresseeEditorDialog( this ); 353 createAddresseeEditorDialog( this );
354 setModified( false ); 354 setModified( false );
355 mBRdisabled = false; 355 mBRdisabled = false;
356#ifndef DESKTOP_VERSION 356#ifndef DESKTOP_VERSION
357 infrared = 0; 357 infrared = 0;
358#endif 358#endif
359 //toggleBeamReceive( ); 359 //toggleBeamReceive( );
360
361 // we have a toolbar repainting error on the Zaurus when starting KA/Pi
362 QTimer::singleShot( 1, this , SLOT ( updateToolBar()));
360} 363}
361 364
365void KABCore::updateToolBar()
366{
367 mMainWindow->toolBar()->repaint();
368}
362KABCore::~KABCore() 369KABCore::~KABCore()
363{ 370{
364 // save(); 371 // save();
365 //saveSettings(); 372 //saveSettings();
366 //KABPrefs::instance()->writeConfig(); 373 //KABPrefs::instance()->writeConfig();
367 delete AddresseeConfig::instance(); 374 delete AddresseeConfig::instance();
368 mAddressBook = 0; 375 mAddressBook = 0;
369 KABC::StdAddressBook::close(); 376 KABC::StdAddressBook::close();
370 377
371 delete syncManager; 378 delete syncManager;
372#ifndef DESKTOP_VERSION 379#ifndef DESKTOP_VERSION
373 if ( infrared ) 380 if ( infrared )
374 delete infrared; 381 delete infrared;
375#endif 382#endif
376} 383}
377void KABCore::receive( const QCString& cmsg, const QByteArray& data ) 384void KABCore::receive( const QCString& cmsg, const QByteArray& data )
378{ 385{
379 qDebug("KA: QCOP message received: %s ", cmsg.data() ); 386 qDebug("KA: QCOP message received: %s ", cmsg.data() );
380 if ( cmsg == "setDocument(QString)" ) { 387 if ( cmsg == "setDocument(QString)" ) {
381 QDataStream stream( data, IO_ReadOnly ); 388 QDataStream stream( data, IO_ReadOnly );
382 QString fileName; 389 QString fileName;
383 stream >> fileName; 390 stream >> fileName;
384 recieve( fileName ); 391 recieve( fileName );
385 return; 392 return;
386 } 393 }
387} 394}
388void KABCore::toggleBeamReceive( ) 395void KABCore::toggleBeamReceive( )
389{ 396{
390 if ( mBRdisabled ) 397 if ( mBRdisabled )
391 return; 398 return;
392#ifndef DESKTOP_VERSION 399#ifndef DESKTOP_VERSION
393 if ( infrared ) { 400 if ( infrared ) {
394 qDebug("AB disable BeamReceive "); 401 qDebug("AB disable BeamReceive ");
395 delete infrared; 402 delete infrared;
396 infrared = 0; 403 infrared = 0;
397 mActionBR->setChecked(false); 404 mActionBR->setChecked(false);
398 return; 405 return;
399 } 406 }
400 qDebug("AB enable BeamReceive "); 407 qDebug("AB enable BeamReceive ");
401 mActionBR->setChecked(true); 408 mActionBR->setChecked(true);
402 409
403 infrared = new QCopChannel("QPE/Application/addressbook",this, "channelAB" ) ; 410 infrared = new QCopChannel("QPE/Application/addressbook",this, "channelAB" ) ;
404 QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(receive( const QCString&, const QByteArray& ))); 411 QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(receive( const QCString&, const QByteArray& )));
405#endif 412#endif
406} 413}
407 414
408 415
409void KABCore::disableBR(bool b) 416void KABCore::disableBR(bool b)
410{ 417{
411#ifndef DESKTOP_VERSION 418#ifndef DESKTOP_VERSION
412 if ( b ) { 419 if ( b ) {
413 if ( infrared ) { 420 if ( infrared ) {
414 toggleBeamReceive( ); 421 toggleBeamReceive( );
415 } 422 }
416 mBRdisabled = true; 423 mBRdisabled = true;
417 } else { 424 } else {
418 if ( mBRdisabled ) { 425 if ( mBRdisabled ) {
419 mBRdisabled = false; 426 mBRdisabled = false;
420 //toggleBeamReceive( ); 427 //toggleBeamReceive( );
421 } 428 }
422 } 429 }
423#endif 430#endif
424 431
425} 432}
426void KABCore::recieve( QString fn ) 433void KABCore::recieve( QString fn )
427{ 434{
428 //qDebug("KABCore::recieve "); 435 //qDebug("KABCore::recieve ");
429 int count = mAddressBook->importFromFile( fn, true ); 436 int count = mAddressBook->importFromFile( fn, true );
430 if ( count ) 437 if ( count )
431 setModified( true ); 438 setModified( true );
432 mViewManager->refreshView(); 439 mViewManager->refreshView();
433 message(i18n("%1 contact(s) received!").arg( count )); 440 message(i18n("%1 contact(s) received!").arg( count ));
434 topLevelWidget()->showMaximized(); 441 topLevelWidget()->showMaximized();
435 topLevelWidget()->raise(); 442 topLevelWidget()->raise();
436} 443}
437void KABCore::restoreSettings() 444void KABCore::restoreSettings()
438{ 445{
439 mMultipleViewsAtOnce = KABPrefs::instance()->mMultipleViewsAtOnce; 446 mMultipleViewsAtOnce = KABPrefs::instance()->mMultipleViewsAtOnce;
440 447
441 bool state; 448 bool state;
442 449
443 if (mMultipleViewsAtOnce) 450 if (mMultipleViewsAtOnce)
444 state = KABPrefs::instance()->mDetailsPageVisible; 451 state = KABPrefs::instance()->mDetailsPageVisible;
445 else 452 else
446 state = false; 453 state = false;
447 454
448 mActionDetails->setChecked( state ); 455 mActionDetails->setChecked( state );
449 setDetailsVisible( state ); 456 setDetailsVisible( state );
450 457
451 state = KABPrefs::instance()->mJumpButtonBarVisible; 458 state = KABPrefs::instance()->mJumpButtonBarVisible;
452 459
453 mActionJumpBar->setChecked( state ); 460 mActionJumpBar->setChecked( state );
454 setJumpButtonBarVisible( state ); 461 setJumpButtonBarVisible( state );
455/*US 462/*US
456 QValueList<int> splitterSize = KABPrefs::instance()->mDetailsSplitter; 463 QValueList<int> splitterSize = KABPrefs::instance()->mDetailsSplitter;
457 if ( splitterSize.count() == 0 ) { 464 if ( splitterSize.count() == 0 ) {
458 splitterSize.append( width() / 2 ); 465 splitterSize.append( width() / 2 );
459 splitterSize.append( width() / 2 ); 466 splitterSize.append( width() / 2 );
460 } 467 }
461 mMiniSplitter->setSizes( splitterSize ); 468 mMiniSplitter->setSizes( splitterSize );
462 if ( mExtensionBarSplitter ) { 469 if ( mExtensionBarSplitter ) {
463 splitterSize = KABPrefs::instance()->mExtensionsSplitter; 470 splitterSize = KABPrefs::instance()->mExtensionsSplitter;
464 if ( splitterSize.count() == 0 ) { 471 if ( splitterSize.count() == 0 ) {
465 splitterSize.append( width() / 2 ); 472 splitterSize.append( width() / 2 );
466 splitterSize.append( width() / 2 ); 473 splitterSize.append( width() / 2 );
467 } 474 }
468 mExtensionBarSplitter->setSizes( splitterSize ); 475 mExtensionBarSplitter->setSizes( splitterSize );
469 476
470 } 477 }
471*/ 478*/
472 mViewManager->restoreSettings(); 479 mViewManager->restoreSettings();
473 mIncSearchWidget->setCurrentItem( KABPrefs::instance()->mCurrentIncSearchField ); 480 mIncSearchWidget->setCurrentItem( KABPrefs::instance()->mCurrentIncSearchField );
474 mExtensionManager->restoreSettings(); 481 mExtensionManager->restoreSettings();
475#ifdef DESKTOP_VERSION 482#ifdef DESKTOP_VERSION
476 int wid = width(); 483 int wid = width();
477 if ( wid < 10 ) 484 if ( wid < 10 )
478 wid = 400; 485 wid = 400;
479#else 486#else
480 int wid = QApplication::desktop()->width(); 487 int wid = QApplication::desktop()->width();
481 if ( wid < 640 ) 488 if ( wid < 640 )
482 wid = QApplication::desktop()->height(); 489 wid = QApplication::desktop()->height();
483#endif 490#endif
484 QValueList<int> splitterSize;// = KABPrefs::instance()->mDetailsSplitter; 491 QValueList<int> splitterSize;// = KABPrefs::instance()->mDetailsSplitter;
485 if ( true /*splitterSize.count() == 0*/ ) { 492 if ( true /*splitterSize.count() == 0*/ ) {
486 splitterSize.append( wid / 2 ); 493 splitterSize.append( wid / 2 );
487 splitterSize.append( wid / 2 ); 494 splitterSize.append( wid / 2 );
488 } 495 }
489 mMiniSplitter->setSizes( splitterSize ); 496 mMiniSplitter->setSizes( splitterSize );
diff --git a/kaddressbook/kabcore.h b/kaddressbook/kabcore.h
index d2ee45d..0a52838 100644
--- a/kaddressbook/kabcore.h
+++ b/kaddressbook/kabcore.h
@@ -235,256 +235,257 @@ class KABCore : public QWidget, public KSyncInterface
235 /** 235 /**
236 Sets the whoAmI contact, that is used by many other programs to 236 Sets the whoAmI contact, that is used by many other programs to
237 get personal information about the current user. 237 get personal information about the current user.
238 */ 238 */
239 void setWhoAmI(); 239 void setWhoAmI();
240 240
241 /** 241 /**
242 Displays the category dialog and applies the result to all 242 Displays the category dialog and applies the result to all
243 selected contacts. 243 selected contacts.
244 */ 244 */
245 void setCategories(); 245 void setCategories();
246 void manageCategories(); 246 void manageCategories();
247 void editCategories(); 247 void editCategories();
248 248
249 /** 249 /**
250 Sets the field list of the Incremental Search Widget. 250 Sets the field list of the Incremental Search Widget.
251 */ 251 */
252 void setSearchFields( const KABC::Field::List &fields ); 252 void setSearchFields( const KABC::Field::List &fields );
253 253
254 /** 254 /**
255 Search with the current search field for a contact, that matches 255 Search with the current search field for a contact, that matches
256 the given text, and selects it in the view. 256 the given text, and selects it in the view.
257 */ 257 */
258 void incrementalSearch( const QString& text ); 258 void incrementalSearch( const QString& text );
259 259
260 /** 260 /**
261 Marks the address book as modified. 261 Marks the address book as modified.
262 */ 262 */
263 void setModified(); 263 void setModified();
264 /** 264 /**
265 Marks the address book as modified without refreshing the view. 265 Marks the address book as modified without refreshing the view.
266 */ 266 */
267 void setModifiedWOrefresh(); 267 void setModifiedWOrefresh();
268 268
269 /** 269 /**
270 Marks the address book as modified concerning the argument. 270 Marks the address book as modified concerning the argument.
271 */ 271 */
272 void setModified( bool modified ); 272 void setModified( bool modified );
273 273
274 /** 274 /**
275 Returns whether the address book is modified. 275 Returns whether the address book is modified.
276 */ 276 */
277 bool modified() const; 277 bool modified() const;
278 278
279 /** 279 /**
280 Called whenever an contact is modified in the contact editor 280 Called whenever an contact is modified in the contact editor
281 dialog or the quick edit. 281 dialog or the quick edit.
282 */ 282 */
283 void contactModified( const KABC::Addressee &addr ); 283 void contactModified( const KABC::Addressee &addr );
284 284
285 /** 285 /**
286 DCOP METHODS. 286 DCOP METHODS.
287 */ 287 */
288 void addEmail( QString addr ); 288 void addEmail( QString addr );
289 void importVCard( const KURL& url, bool showPreview ); 289 void importVCard( const KURL& url, bool showPreview );
290 void importVCard( const QString& vCard, bool showPreview ); 290 void importVCard( const QString& vCard, bool showPreview );
291 void newContact(); 291 void newContact();
292 QString getNameByPhone( const QString& phone ); 292 QString getNameByPhone( const QString& phone );
293 /** 293 /**
294 END DCOP METHODS 294 END DCOP METHODS
295 */ 295 */
296 296
297 /** 297 /**
298 Saves the contents of the AddressBook back to disk. 298 Saves the contents of the AddressBook back to disk.
299 */ 299 */
300 void save(); 300 void save();
301 301
302 /** 302 /**
303 Undos the last command using the undo stack. 303 Undos the last command using the undo stack.
304 */ 304 */
305 void undo(); 305 void undo();
306 306
307 /** 307 /**
308 Redos the last command that was undone, using the redo stack. 308 Redos the last command that was undone, using the redo stack.
309 */ 309 */
310 void redo(); 310 void redo();
311 311
312 /** 312 /**
313 Shows the edit dialog for the given uid. If the uid is QString::null, 313 Shows the edit dialog for the given uid. If the uid is QString::null,
314 the method will try to find a selected addressee in the view. 314 the method will try to find a selected addressee in the view.
315 */ 315 */
316 void editContact( const QString &uid /*US = QString::null*/ ); 316 void editContact( const QString &uid /*US = QString::null*/ );
317//US added a second method without defaultparameter 317//US added a second method without defaultparameter
318 void editContact2(); 318 void editContact2();
319 319
320 /** 320 /**
321 Shows or edits the detail view for the given uid. If the uid is QString::null, 321 Shows or edits the detail view for the given uid. If the uid is QString::null,
322 the method will try to find a selected addressee in the view. 322 the method will try to find a selected addressee in the view.
323 */ 323 */
324 void executeContact( const QString &uid /*US = QString::null*/ ); 324 void executeContact( const QString &uid /*US = QString::null*/ );
325 325
326 /** 326 /**
327 Launches the configuration dialog. 327 Launches the configuration dialog.
328 */ 328 */
329 void openConfigDialog(); 329 void openConfigDialog();
330 330
331 /** 331 /**
332 Launches the ldap search dialog. 332 Launches the ldap search dialog.
333 */ 333 */
334 void openLDAPDialog(); 334 void openLDAPDialog();
335 335
336 /** 336 /**
337 Creates a KAddressBookPrinter, which will display the print 337 Creates a KAddressBookPrinter, which will display the print
338 dialog and do the printing. 338 dialog and do the printing.
339 */ 339 */
340 void print(); 340 void print();
341 341
342 /** 342 /**
343 Registers a new GUI client, so plugins can register its actions. 343 Registers a new GUI client, so plugins can register its actions.
344 */ 344 */
345 void addGUIClient( KXMLGUIClient *client ); 345 void addGUIClient( KXMLGUIClient *client );
346 346
347 void requestForNameEmailUidList(const QString& sourceChannel, const QString& sessionuid); 347 void requestForNameEmailUidList(const QString& sourceChannel, const QString& sessionuid);
348 void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid); 348 void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid);
349 void requestForBirthdayList(const QString& sourceChannel, const QString& sessionuid); 349 void requestForBirthdayList(const QString& sourceChannel, const QString& sessionuid);
350 350
351 351
352 signals: 352 signals:
353 void contactSelected( const QString &name ); 353 void contactSelected( const QString &name );
354 void contactSelected( const QPixmap &pixmap ); 354 void contactSelected( const QPixmap &pixmap );
355 public slots: 355 public slots:
356 void recieve(QString cmsg ); 356 void recieve(QString cmsg );
357 void getFile( bool success ); 357 void getFile( bool success );
358 void syncFileRequest(); 358 void syncFileRequest();
359 void setDetailsVisible( bool visible ); 359 void setDetailsVisible( bool visible );
360 void setDetailsToState(); 360 void setDetailsToState();
361 // void slotSyncMenu( int ); 361 // void slotSyncMenu( int );
362 private slots: 362 private slots:
363 void updateToolBar();
363 void receive( const QCString& cmsg, const QByteArray& data ); 364 void receive( const QCString& cmsg, const QByteArray& data );
364 void toggleBeamReceive( ); 365 void toggleBeamReceive( );
365 void disableBR(bool); 366 void disableBR(bool);
366 void setJumpButtonBarVisible( bool visible ); 367 void setJumpButtonBarVisible( bool visible );
367 void setCaptionBack(); 368 void setCaptionBack();
368 void importFromOL(); 369 void importFromOL();
369 void extensionModified( const KABC::Addressee::List &list ); 370 void extensionModified( const KABC::Addressee::List &list );
370 void extensionChanged( int id ); 371 void extensionChanged( int id );
371 void clipboardDataChanged(); 372 void clipboardDataChanged();
372 void updateActionMenu(); 373 void updateActionMenu();
373 void configureKeyBindings(); 374 void configureKeyBindings();
374 void removeVoice(); 375 void removeVoice();
375#ifdef KAB_EMBEDDED 376#ifdef KAB_EMBEDDED
376 void configureResources(); 377 void configureResources();
377#endif //KAB_EMBEDDED 378#endif //KAB_EMBEDDED
378 379
379 void slotEditorDestroyed( const QString &uid ); 380 void slotEditorDestroyed( const QString &uid );
380 void configurationChanged(); 381 void configurationChanged();
381 void addressBookChanged(); 382 void addressBookChanged();
382 383
383 private: 384 private:
384 bool mBRdisabled; 385 bool mBRdisabled;
385#ifndef DESKTOP_VERSION 386#ifndef DESKTOP_VERSION
386 QCopChannel* infrared; 387 QCopChannel* infrared;
387#endif 388#endif
388 QTimer *mMessageTimer; 389 QTimer *mMessageTimer;
389 void initGUI(); 390 void initGUI();
390 void initActions(); 391 void initActions();
391 QString getPhoneFile(); 392 QString getPhoneFile();
392 393
393 AddresseeEditorDialog *createAddresseeEditorDialog( QWidget *parent, 394 AddresseeEditorDialog *createAddresseeEditorDialog( QWidget *parent,
394 const char *name = 0 ); 395 const char *name = 0 );
395 396
396 KXMLGUIClient *mGUIClient; 397 KXMLGUIClient *mGUIClient;
397 398
398 KABC::AddressBook *mAddressBook; 399 KABC::AddressBook *mAddressBook;
399 400
400 ViewManager *mViewManager; 401 ViewManager *mViewManager;
401 // QSplitter *mDetailsSplitter; 402 // QSplitter *mDetailsSplitter;
402 KDGanttMinimizeSplitter *mExtensionBarSplitter; 403 KDGanttMinimizeSplitter *mExtensionBarSplitter;
403 ViewContainer *mDetails; 404 ViewContainer *mDetails;
404 KDGanttMinimizeSplitter* mMiniSplitter; 405 KDGanttMinimizeSplitter* mMiniSplitter;
405 XXPortManager *mXXPortManager; 406 XXPortManager *mXXPortManager;
406 JumpButtonBar *mJumpButtonBar; 407 JumpButtonBar *mJumpButtonBar;
407 IncSearchWidget *mIncSearchWidget; 408 IncSearchWidget *mIncSearchWidget;
408 ExtensionManager *mExtensionManager; 409 ExtensionManager *mExtensionManager;
409 410
410 KCMultiDialog *mConfigureDialog; 411 KCMultiDialog *mConfigureDialog;
411 412
412#ifndef KAB_EMBEDDED 413#ifndef KAB_EMBEDDED
413 LDAPSearchDialog *mLdapSearchDialog; 414 LDAPSearchDialog *mLdapSearchDialog;
414#endif //KAB_EMBEDDED 415#endif //KAB_EMBEDDED
415 // QDict<AddresseeEditorDialog> mEditorDict; 416 // QDict<AddresseeEditorDialog> mEditorDict;
416 AddresseeEditorDialog *mEditorDialog; 417 AddresseeEditorDialog *mEditorDialog;
417 bool mReadWrite; 418 bool mReadWrite;
418 bool mModified; 419 bool mModified;
419 bool mIsPart; 420 bool mIsPart;
420 bool mMultipleViewsAtOnce; 421 bool mMultipleViewsAtOnce;
421 422
422 423
423 //US file menu 424 //US file menu
424 KAction *mActionMail; 425 KAction *mActionMail;
425 KAction *mActionBeam; 426 KAction *mActionBeam;
426 KToggleAction *mActionBR; 427 KToggleAction *mActionBR;
427 KAction *mActionExport2phone; 428 KAction *mActionExport2phone;
428 KAction* mActionPrint; 429 KAction* mActionPrint;
429 KAction* mActionNewContact; 430 KAction* mActionNewContact;
430 KAction *mActionSave; 431 KAction *mActionSave;
431 KAction *mActionEditAddressee; 432 KAction *mActionEditAddressee;
432 KAction *mActionMailVCard; 433 KAction *mActionMailVCard;
433 KAction *mActionBeamVCard; 434 KAction *mActionBeamVCard;
434 435
435 KAction *mActionQuit; 436 KAction *mActionQuit;
436 437
437 //US edit menu 438 //US edit menu
438 KAction *mActionCopy; 439 KAction *mActionCopy;
439 KAction *mActionCut; 440 KAction *mActionCut;
440 KAction *mActionPaste; 441 KAction *mActionPaste;
441 KAction *mActionSelectAll; 442 KAction *mActionSelectAll;
442 KAction *mActionUndo; 443 KAction *mActionUndo;
443 KAction *mActionRedo; 444 KAction *mActionRedo;
444 KAction *mActionDelete; 445 KAction *mActionDelete;
445 446
446 //US settings menu 447 //US settings menu
447 KAction *mActionConfigResources; 448 KAction *mActionConfigResources;
448 KAction *mActionConfigKAddressbook; 449 KAction *mActionConfigKAddressbook;
449 KAction *mActionConfigShortcuts; 450 KAction *mActionConfigShortcuts;
450 KAction *mActionConfigureToolbars; 451 KAction *mActionConfigureToolbars;
451 KAction *mActionKeyBindings; 452 KAction *mActionKeyBindings;
452 KToggleAction *mActionJumpBar; 453 KToggleAction *mActionJumpBar;
453 KToggleAction *mActionDetails; 454 KToggleAction *mActionDetails;
454 KAction *mActionWhoAmI; 455 KAction *mActionWhoAmI;
455 KAction *mActionCategories; 456 KAction *mActionCategories;
456 KAction *mActionEditCategories; 457 KAction *mActionEditCategories;
457 KAction *mActionManageCategories; 458 KAction *mActionManageCategories;
458 KAction *mActionAboutKAddressbook; 459 KAction *mActionAboutKAddressbook;
459 KAction *mActionLicence; 460 KAction *mActionLicence;
460 KAction *mActionFaq; 461 KAction *mActionFaq;
461 KAction *mActionWN; 462 KAction *mActionWN;
462 KAction *mActionSyncHowto; 463 KAction *mActionSyncHowto;
463 KAction *mActionKdeSyncHowto; 464 KAction *mActionKdeSyncHowto;
464 KAction *mActionMultiSyncHowto; 465 KAction *mActionMultiSyncHowto;
465 466
466 KAction *mActionDeleteView; 467 KAction *mActionDeleteView;
467 468
468 QPopupMenu *viewMenu; 469 QPopupMenu *viewMenu;
469 QPopupMenu *filterMenu; 470 QPopupMenu *filterMenu;
470 QPopupMenu *settingsMenu; 471 QPopupMenu *settingsMenu;
471 QPopupMenu *changeMenu; 472 QPopupMenu *changeMenu;
472//US QAction *mActionSave; 473//US QAction *mActionSave;
473 QPopupMenu *ImportMenu; 474 QPopupMenu *ImportMenu;
474 QPopupMenu *ExportMenu; 475 QPopupMenu *ExportMenu;
475 //LR additional methods 476 //LR additional methods
476 KAction *mActionRemoveVoice; 477 KAction *mActionRemoveVoice;
477 KAction * mActionImportOL; 478 KAction * mActionImportOL;
478 479
479#ifndef KAB_EMBEDDED 480#ifndef KAB_EMBEDDED
480 KAddressBookService *mAddressBookService; 481 KAddressBookService *mAddressBookService;
481#endif //KAB_EMBEDDED 482#endif //KAB_EMBEDDED
482 483
483 class KABCorePrivate; 484 class KABCorePrivate;
484 KABCorePrivate *d; 485 KABCorePrivate *d;
485 //US bool mBlockSaveFlag; 486 //US bool mBlockSaveFlag;
486 487
487#ifdef KAB_EMBEDDED 488#ifdef KAB_EMBEDDED
488 KAddressBookMain *mMainWindow; // should be the same like mGUIClient 489 KAddressBookMain *mMainWindow; // should be the same like mGUIClient
489#endif //KAB_EMBEDDED 490#endif //KAB_EMBEDDED
490 491