-rw-r--r-- | bin/kdepim/WhatsNew.txt | 3 | ||||
-rw-r--r-- | kaddressbook/kabcore.cpp | 1 | ||||
-rw-r--r-- | libkdepim/externalapphandler.cpp | 5 |
3 files changed, 8 insertions, 1 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt index b5285bf..03aec7b 100644 --- a/bin/kdepim/WhatsNew.txt +++ b/bin/kdepim/WhatsNew.txt | |||
@@ -1,109 +1,112 @@ | |||
1 | Info about the changes in new versions of KDE-Pim/Pi | 1 | Info about the changes in new versions of KDE-Pim/Pi |
2 | 2 | ||
3 | ********** VERSION 2.0.22 ************ | 3 | ********** VERSION 2.0.22 ************ |
4 | 4 | ||
5 | KO/Pi: | 5 | KO/Pi: |
6 | Fix for creating events/todos via the abgenda context menu. | 6 | Fix for creating events/todos via the abgenda context menu. |
7 | Added option to split toolbar to 3 toolbars. | 7 | Added option to split toolbar to 3 toolbars. |
8 | Added option to show one small filter-view-toolbar. | 8 | Added option to show one small filter-view-toolbar. |
9 | Added a print option to the desktop version: | 9 | Added a print option to the desktop version: |
10 | Now you can print out the view of the "Event Viewer". | 10 | Now you can print out the view of the "Event Viewer". |
11 | That means you can print all data of one particular event/todo. | 11 | That means you can print all data of one particular event/todo. |
12 | Added scaling options to printout of Event Viewer and What'sNext View. | 12 | Added scaling options to printout of Event Viewer and What'sNext View. |
13 | Fixed some problems in the month view in "week start sunday" mode. | 13 | Fixed some problems in the month view in "week start sunday" mode. |
14 | KA/Pi: | ||
15 | Added two more config options. | ||
16 | Fixed resizing problem of address request dialog when orientation was switched. | ||
14 | 17 | ||
15 | ********** VERSION 2.0.21 ************ | 18 | ********** VERSION 2.0.21 ************ |
16 | 19 | ||
17 | Fixed another SMTP problem in OM/Pi. | 20 | Fixed another SMTP problem in OM/Pi. |
18 | Some small changed in the new datenavigator in KO/Pi. | 21 | Some small changed in the new datenavigator in KO/Pi. |
19 | Changed default setting for new filter in KA/Pi to "exclude categories". | 22 | Changed default setting for new filter in KA/Pi to "exclude categories". |
20 | Changed the default font size for 640x480 display . | 23 | Changed the default font size for 640x480 display . |
21 | Changed popup menu behaviour in agenda and list view. | 24 | Changed popup menu behaviour in agenda and list view. |
22 | Fixed some layout problems of the date label size in the month view. | 25 | Fixed some layout problems of the date label size in the month view. |
23 | Made month view update faster. | 26 | Made month view update faster. |
24 | Made first datenavigator repainting faster. | 27 | Made first datenavigator repainting faster. |
25 | Changed the title of the event/todo edit dialogs. | 28 | Changed the title of the event/todo edit dialogs. |
26 | Timelabels in agenga changed from 22:00 to 22 oo. ( the oo higher, of course). | 29 | Timelabels in agenga changed from 22:00 to 22 oo. ( the oo higher, of course). |
27 | Many small usebility fixes in KO/Pi. | 30 | Many small usebility fixes in KO/Pi. |
28 | Pressing the "Calendar" button on the Z switches now to the next view in KO/Pi. | 31 | Pressing the "Calendar" button on the Z switches now to the next view in KO/Pi. |
29 | The set of possible "next views" are the views you have toolbar buttons for. | 32 | The set of possible "next views" are the views you have toolbar buttons for. |
30 | 33 | ||
31 | Made alarm sound working on Linux. | 34 | Made alarm sound working on Linux. |
32 | 35 | ||
33 | KO/Pi alarm applet changed: | 36 | KO/Pi alarm applet changed: |
34 | Made buttons in alarm dialog much bigger. | 37 | Made buttons in alarm dialog much bigger. |
35 | Made setting of timer more user friendly by showing the actual timer fire time and making the buttons in the timer settings much bigger. | 38 | Made setting of timer more user friendly by showing the actual timer fire time and making the buttons in the timer settings much bigger. |
36 | The goal was it to make it possible to use a finger tip ( and not the stylus ) on the touchscreen to adjust the settings. | 39 | The goal was it to make it possible to use a finger tip ( and not the stylus ) on the touchscreen to adjust the settings. |
37 | 40 | ||
38 | And because this version is realeased at Easter, I added an Easter-egg: | 41 | And because this version is realeased at Easter, I added an Easter-egg: |
39 | With a new undocumented command you can get a message box about the next alarm. | 42 | With a new undocumented command you can get a message box about the next alarm. |
40 | Good luck to find it! | 43 | Good luck to find it! |
41 | 44 | ||
42 | 45 | ||
43 | 46 | ||
44 | ********** VERSION 2.0.20 ************ | 47 | ********** VERSION 2.0.20 ************ |
45 | 48 | ||
46 | Two small fixes in OM/Pi. | 49 | Two small fixes in OM/Pi. |
47 | 50 | ||
48 | Better resizing of the new datenavigator in KO/Pi. | 51 | Better resizing of the new datenavigator in KO/Pi. |
49 | 52 | ||
50 | ********** VERSION 2.0.19 ************ | 53 | ********** VERSION 2.0.19 ************ |
51 | KO/Pi: | 54 | KO/Pi: |
52 | Enhancements and bugfixes in the new datenavigator. | 55 | Enhancements and bugfixes in the new datenavigator. |
53 | Bugfix in this changelog: | 56 | Bugfix in this changelog: |
54 | The datenavigator was changed in version 2.0.18, not the datepicker. | 57 | The datenavigator was changed in version 2.0.18, not the datepicker. |
55 | 58 | ||
56 | ********** VERSION 2.0.18 ************ | 59 | ********** VERSION 2.0.18 ************ |
57 | KO/Pi: | 60 | KO/Pi: |
58 | Fixed some minor problems. | 61 | Fixed some minor problems. |
59 | Cleaned up the KO/Pi config dialog. | 62 | Cleaned up the KO/Pi config dialog. |
60 | Fixed problem moving events in aganda view. | 63 | Fixed problem moving events in aganda view. |
61 | Made datepicker scaleable, i.e. if the datenavigator shows now a | 64 | Made datepicker scaleable, i.e. if the datenavigator shows now a |
62 | datenavigator matrix depending on its size. | 65 | datenavigator matrix depending on its size. |
63 | Birthdays are now displayed green in the datenavigator. | 66 | Birthdays are now displayed green in the datenavigator. |
64 | What'sThis Help in datenavigator shows all events of the day. | 67 | What'sThis Help in datenavigator shows all events of the day. |
65 | 68 | ||
66 | OM/Pi: | 69 | OM/Pi: |
67 | Updated the backend mail library to the latest version. | 70 | Updated the backend mail library to the latest version. |
68 | Please backup your mail before using this version. | 71 | Please backup your mail before using this version. |
69 | 72 | ||
70 | ********** VERSION 2.0.17 ************ | 73 | ********** VERSION 2.0.17 ************ |
71 | 74 | ||
72 | KO/Pi: | 75 | KO/Pi: |
73 | Tooltips in month view were not sorted. Fixed. | 76 | Tooltips in month view were not sorted. Fixed. |
74 | Daylabel in agenda view ( for display of one day ) was too short. Fixed. | 77 | Daylabel in agenda view ( for display of one day ) was too short. Fixed. |
75 | Conflict display dialog for syncing was not on top of other windows. Fixed. | 78 | Conflict display dialog for syncing was not on top of other windows. Fixed. |
76 | Fixed some minor problems. | 79 | Fixed some minor problems. |
77 | 80 | ||
78 | Fixed an endless loop when importing vcs file with RESOURCES entry. | 81 | Fixed an endless loop when importing vcs file with RESOURCES entry. |
79 | 82 | ||
80 | ********** VERSION 2.0.16 ************ | 83 | ********** VERSION 2.0.16 ************ |
81 | OM/Pi: | 84 | OM/Pi: |
82 | Fixed the SMTP account setting the option. | 85 | Fixed the SMTP account setting the option. |
83 | Fixed something in mail sending. | 86 | Fixed something in mail sending. |
84 | 87 | ||
85 | KO/Pi: | 88 | KO/Pi: |
86 | Added possibility to export selected events/todos as vcal file. | 89 | Added possibility to export selected events/todos as vcal file. |
87 | 90 | ||
88 | ********** VERSION 2.0.15 ************ | 91 | ********** VERSION 2.0.15 ************ |
89 | 92 | ||
90 | PwM/Pi: | 93 | PwM/Pi: |
91 | Added keyboard shorcuts for | 94 | Added keyboard shorcuts for |
92 | - toggling summary view (space bar) | 95 | - toggling summary view (space bar) |
93 | - delete item (delete + backspace key) | 96 | - delete item (delete + backspace key) |
94 | - add new item ( i + n key) | 97 | - add new item ( i + n key) |
95 | Fixed length of info in the title. | 98 | Fixed length of info in the title. |
96 | 99 | ||
97 | KO/Pi-KA/Pi: | 100 | KO/Pi-KA/Pi: |
98 | Changed "ME" menu bar entry to an icon. | 101 | Changed "ME" menu bar entry to an icon. |
99 | 102 | ||
100 | KO/Pi: | 103 | KO/Pi: |
101 | Fixed two minor bugs in displaying todos. | 104 | Fixed two minor bugs in displaying todos. |
102 | If in month view a cell is selected, the key shortcut "d" shows now that date. | 105 | If in month view a cell is selected, the key shortcut "d" shows now that date. |
103 | Added complete info for a todo in month view as an icon left of the text. | 106 | Added complete info for a todo in month view as an icon left of the text. |
104 | Fixed problems of displaying data when "<" or ">" are used in summary/location/description. | 107 | Fixed problems of displaying data when "<" or ">" are used in summary/location/description. |
105 | Fixed problem of search dialog size when switching displays. | 108 | Fixed problem of search dialog size when switching displays. |
106 | Cancel key now closes date picker. | 109 | Cancel key now closes date picker. |
107 | Rearranged KO/Pi file menu structure. | 110 | Rearranged KO/Pi file menu structure. |
108 | 111 | ||
109 | OM/Pi: | 112 | OM/Pi: |
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp index db19dd5..27aca2d 100644 --- a/kaddressbook/kabcore.cpp +++ b/kaddressbook/kabcore.cpp | |||
@@ -2420,192 +2420,193 @@ void KABCore::setFormattedName() | |||
2420 | return; | 2420 | return; |
2421 | mAddressBook->setUntagged(); | 2421 | mAddressBook->setUntagged(); |
2422 | dlg.tagSelected(); | 2422 | dlg.tagSelected(); |
2423 | int count = 0; | 2423 | int count = 0; |
2424 | KABC::AddressBook::Iterator it; | 2424 | KABC::AddressBook::Iterator it; |
2425 | for ( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { | 2425 | for ( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { |
2426 | if ( (*it).tagged() ) { | 2426 | if ( (*it).tagged() ) { |
2427 | ++count; | 2427 | ++count; |
2428 | if ( count %10 == 0 ) | 2428 | if ( count %10 == 0 ) |
2429 | message(i18n("Changing contact #%1").arg( count ) ); | 2429 | message(i18n("Changing contact #%1").arg( count ) ); |
2430 | qApp->processEvents(); | 2430 | qApp->processEvents(); |
2431 | QString fName; | 2431 | QString fName; |
2432 | if ( setpref.simple->isChecked() ) | 2432 | if ( setpref.simple->isChecked() ) |
2433 | fName = NameEditDialog::formattedName( (*it), NameEditDialog::SimpleName ); | 2433 | fName = NameEditDialog::formattedName( (*it), NameEditDialog::SimpleName ); |
2434 | else if ( setpref.full->isChecked() ) | 2434 | else if ( setpref.full->isChecked() ) |
2435 | fName = NameEditDialog::formattedName( (*it), NameEditDialog::FullName ); | 2435 | fName = NameEditDialog::formattedName( (*it), NameEditDialog::FullName ); |
2436 | else if ( setpref.reverse->isChecked() ) | 2436 | else if ( setpref.reverse->isChecked() ) |
2437 | fName = NameEditDialog::formattedName( (*it), NameEditDialog::ReverseName ); | 2437 | fName = NameEditDialog::formattedName( (*it), NameEditDialog::ReverseName ); |
2438 | else | 2438 | else |
2439 | fName = (*it).organization(); | 2439 | fName = (*it).organization(); |
2440 | if ( setpref.setCompany->isChecked() ) | 2440 | if ( setpref.setCompany->isChecked() ) |
2441 | if ( fName.isEmpty() || fName =="," ) | 2441 | if ( fName.isEmpty() || fName =="," ) |
2442 | fName = (*it).organization(); | 2442 | fName = (*it).organization(); |
2443 | (*it).setFormattedName( fName ); | 2443 | (*it).setFormattedName( fName ); |
2444 | } | 2444 | } |
2445 | } | 2445 | } |
2446 | message(i18n("Refreshing view...") ); | 2446 | message(i18n("Refreshing view...") ); |
2447 | qApp->processEvents(); | 2447 | qApp->processEvents(); |
2448 | mViewManager->refreshView( "" ); | 2448 | mViewManager->refreshView( "" ); |
2449 | Addressee add; | 2449 | Addressee add; |
2450 | mDetails->setAddressee( add ); | 2450 | mDetails->setAddressee( add ); |
2451 | message(i18n("Setting formatted name completed!") ); | 2451 | message(i18n("Setting formatted name completed!") ); |
2452 | } | 2452 | } |
2453 | 2453 | ||
2454 | void KABCore::clipboardDataChanged() | 2454 | void KABCore::clipboardDataChanged() |
2455 | { | 2455 | { |
2456 | 2456 | ||
2457 | if ( mReadWrite ) | 2457 | if ( mReadWrite ) |
2458 | mActionPaste->setEnabled( !QApplication::clipboard()->text().isEmpty() ); | 2458 | mActionPaste->setEnabled( !QApplication::clipboard()->text().isEmpty() ); |
2459 | 2459 | ||
2460 | } | 2460 | } |
2461 | 2461 | ||
2462 | void KABCore::updateActionMenu() | 2462 | void KABCore::updateActionMenu() |
2463 | { | 2463 | { |
2464 | UndoStack *undo = UndoStack::instance(); | 2464 | UndoStack *undo = UndoStack::instance(); |
2465 | RedoStack *redo = RedoStack::instance(); | 2465 | RedoStack *redo = RedoStack::instance(); |
2466 | 2466 | ||
2467 | if ( undo->isEmpty() ) | 2467 | if ( undo->isEmpty() ) |
2468 | mActionUndo->setText( i18n( "Undo" ) ); | 2468 | mActionUndo->setText( i18n( "Undo" ) ); |
2469 | else | 2469 | else |
2470 | mActionUndo->setText( i18n( "Undo %1" ).arg( undo->top()->name() ) ); | 2470 | mActionUndo->setText( i18n( "Undo %1" ).arg( undo->top()->name() ) ); |
2471 | 2471 | ||
2472 | mActionUndo->setEnabled( !undo->isEmpty() ); | 2472 | mActionUndo->setEnabled( !undo->isEmpty() ); |
2473 | 2473 | ||
2474 | if ( !redo->top() ) | 2474 | if ( !redo->top() ) |
2475 | mActionRedo->setText( i18n( "Redo" ) ); | 2475 | mActionRedo->setText( i18n( "Redo" ) ); |
2476 | else | 2476 | else |
2477 | mActionRedo->setText( i18n( "Redo %1" ).arg( redo->top()->name() ) ); | 2477 | mActionRedo->setText( i18n( "Redo %1" ).arg( redo->top()->name() ) ); |
2478 | 2478 | ||
2479 | mActionRedo->setEnabled( !redo->isEmpty() ); | 2479 | mActionRedo->setEnabled( !redo->isEmpty() ); |
2480 | } | 2480 | } |
2481 | 2481 | ||
2482 | void KABCore::configureKeyBindings() | 2482 | void KABCore::configureKeyBindings() |
2483 | { | 2483 | { |
2484 | #ifndef KAB_EMBEDDED | 2484 | #ifndef KAB_EMBEDDED |
2485 | KKeyDialog::configure( actionCollection(), true ); | 2485 | KKeyDialog::configure( actionCollection(), true ); |
2486 | #else //KAB_EMBEDDED | 2486 | #else //KAB_EMBEDDED |
2487 | qDebug("KABCore::configureKeyBindings() not implemented"); | 2487 | qDebug("KABCore::configureKeyBindings() not implemented"); |
2488 | #endif //KAB_EMBEDDED | 2488 | #endif //KAB_EMBEDDED |
2489 | } | 2489 | } |
2490 | 2490 | ||
2491 | #ifdef KAB_EMBEDDED | 2491 | #ifdef KAB_EMBEDDED |
2492 | void KABCore::configureResources() | 2492 | void KABCore::configureResources() |
2493 | { | 2493 | { |
2494 | KRES::KCMKResources dlg( this, "" , 0 ); | 2494 | KRES::KCMKResources dlg( this, "" , 0 ); |
2495 | 2495 | ||
2496 | if ( !dlg.exec() ) | 2496 | if ( !dlg.exec() ) |
2497 | return; | 2497 | return; |
2498 | KMessageBox::information( this, i18n("Please restart to get the \nchanged resources (re)loaded!\n") ); | 2498 | KMessageBox::information( this, i18n("Please restart to get the \nchanged resources (re)loaded!\n") ); |
2499 | } | 2499 | } |
2500 | #endif //KAB_EMBEDDED | 2500 | #endif //KAB_EMBEDDED |
2501 | 2501 | ||
2502 | 2502 | ||
2503 | /* this method will be called through the QCop interface from Ko/Pi to select addresses | 2503 | /* this method will be called through the QCop interface from Ko/Pi to select addresses |
2504 | * for the attendees list of an event. | 2504 | * for the attendees list of an event. |
2505 | */ | 2505 | */ |
2506 | void KABCore::requestForNameEmailUidList(const QString& sourceChannel, const QString& uid) | 2506 | void KABCore::requestForNameEmailUidList(const QString& sourceChannel, const QString& uid) |
2507 | { | 2507 | { |
2508 | QStringList nameList; | 2508 | QStringList nameList; |
2509 | QStringList emailList; | 2509 | QStringList emailList; |
2510 | QStringList uidList; | 2510 | QStringList uidList; |
2511 | bool ok = false; | 2511 | bool ok = false; |
2512 | int wid = uid.toInt( &ok ); | 2512 | int wid = uid.toInt( &ok ); |
2513 | if ( ok ) { | 2513 | if ( ok ) { |
2514 | if ( wid != QApplication::desktop()->width() ) { | 2514 | if ( wid != QApplication::desktop()->width() ) { |
2515 | qDebug("KA/Pi: Request from different desktop geometry. Resizing ..."); | 2515 | qDebug("KA/Pi: Request from different desktop geometry. Resizing ..."); |
2516 | message( i18n("Resizing, please wait...") ); | ||
2516 | raise(); | 2517 | raise(); |
2517 | qApp->processEvents(); | 2518 | qApp->processEvents(); |
2518 | } | 2519 | } |
2519 | 2520 | ||
2520 | } else { | 2521 | } else { |
2521 | qDebug("KABCore::requestForNameEmailUidList:: Got invalid uid "); | 2522 | qDebug("KABCore::requestForNameEmailUidList:: Got invalid uid "); |
2522 | } | 2523 | } |
2523 | 2524 | ||
2524 | KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this); | 2525 | KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this); |
2525 | uint i=0; | 2526 | uint i=0; |
2526 | for (i=0; i < list.count(); i++) | 2527 | for (i=0; i < list.count(); i++) |
2527 | { | 2528 | { |
2528 | nameList.append(list[i].realName()); | 2529 | nameList.append(list[i].realName()); |
2529 | emailList.append(list[i].preferredEmail()); | 2530 | emailList.append(list[i].preferredEmail()); |
2530 | uidList.append(list[i].uid()); | 2531 | uidList.append(list[i].uid()); |
2531 | } | 2532 | } |
2532 | //qDebug("%s %s ", sourceChannel.latin1(), uid.latin1()); | 2533 | //qDebug("%s %s ", sourceChannel.latin1(), uid.latin1()); |
2533 | bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI(sourceChannel, uid, nameList, emailList, uidList); | 2534 | bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI(sourceChannel, uid, nameList, emailList, uidList); |
2534 | 2535 | ||
2535 | } | 2536 | } |
2536 | 2537 | ||
2537 | /* this method will be called through the QCop interface from Ko/Pi to select birthdays | 2538 | /* this method will be called through the QCop interface from Ko/Pi to select birthdays |
2538 | * to put them into the calendar. | 2539 | * to put them into the calendar. |
2539 | */ | 2540 | */ |
2540 | void KABCore::requestForBirthdayList(const QString& sourceChannel, const QString& uid) | 2541 | void KABCore::requestForBirthdayList(const QString& sourceChannel, const QString& uid) |
2541 | { | 2542 | { |
2542 | // qDebug("KABCore::requestForBirthdayList"); | 2543 | // qDebug("KABCore::requestForBirthdayList"); |
2543 | QStringList birthdayList; | 2544 | QStringList birthdayList; |
2544 | QStringList anniversaryList; | 2545 | QStringList anniversaryList; |
2545 | QStringList realNameList; | 2546 | QStringList realNameList; |
2546 | QStringList preferredEmailList; | 2547 | QStringList preferredEmailList; |
2547 | QStringList assembledNameList; | 2548 | QStringList assembledNameList; |
2548 | QStringList uidList; | 2549 | QStringList uidList; |
2549 | 2550 | ||
2550 | KABC::AddressBook::Iterator it; | 2551 | KABC::AddressBook::Iterator it; |
2551 | 2552 | ||
2552 | int count = 0; | 2553 | int count = 0; |
2553 | for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { | 2554 | for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { |
2554 | ++count; | 2555 | ++count; |
2555 | } | 2556 | } |
2556 | QProgressBar bar(count,0 ); | 2557 | QProgressBar bar(count,0 ); |
2557 | int w = 300; | 2558 | int w = 300; |
2558 | if ( QApplication::desktop()->width() < 320 ) | 2559 | if ( QApplication::desktop()->width() < 320 ) |
2559 | w = 220; | 2560 | w = 220; |
2560 | int h = bar.sizeHint().height() ; | 2561 | int h = bar.sizeHint().height() ; |
2561 | int dw = QApplication::desktop()->width(); | 2562 | int dw = QApplication::desktop()->width(); |
2562 | int dh = QApplication::desktop()->height(); | 2563 | int dh = QApplication::desktop()->height(); |
2563 | bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); | 2564 | bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); |
2564 | bar.show(); | 2565 | bar.show(); |
2565 | bar.setCaption (i18n("Collecting birthdays - close to abort!") ); | 2566 | bar.setCaption (i18n("Collecting birthdays - close to abort!") ); |
2566 | qApp->processEvents(); | 2567 | qApp->processEvents(); |
2567 | 2568 | ||
2568 | QDate bday; | 2569 | QDate bday; |
2569 | QString anni; | 2570 | QString anni; |
2570 | QString formattedbday; | 2571 | QString formattedbday; |
2571 | 2572 | ||
2572 | for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) | 2573 | for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) |
2573 | { | 2574 | { |
2574 | if ( ! bar.isVisible() ) | 2575 | if ( ! bar.isVisible() ) |
2575 | return; | 2576 | return; |
2576 | bar.setProgress( count++ ); | 2577 | bar.setProgress( count++ ); |
2577 | qApp->processEvents(); | 2578 | qApp->processEvents(); |
2578 | bday = (*it).birthday().date(); | 2579 | bday = (*it).birthday().date(); |
2579 | anni = (*it).custom("KADDRESSBOOK", "X-Anniversary" ); | 2580 | anni = (*it).custom("KADDRESSBOOK", "X-Anniversary" ); |
2580 | 2581 | ||
2581 | if ( bday.isValid() || !anni.isEmpty()) | 2582 | if ( bday.isValid() || !anni.isEmpty()) |
2582 | { | 2583 | { |
2583 | if (bday.isValid()) | 2584 | if (bday.isValid()) |
2584 | formattedbday = KGlobal::locale()->formatDate(bday, true, KLocale::ISODate); | 2585 | formattedbday = KGlobal::locale()->formatDate(bday, true, KLocale::ISODate); |
2585 | else | 2586 | else |
2586 | formattedbday = "NOTVALID"; | 2587 | formattedbday = "NOTVALID"; |
2587 | if (anni.isEmpty()) | 2588 | if (anni.isEmpty()) |
2588 | anni = "INVALID"; | 2589 | anni = "INVALID"; |
2589 | 2590 | ||
2590 | birthdayList.append(formattedbday); | 2591 | birthdayList.append(formattedbday); |
2591 | anniversaryList.append(anni); //should be ISODate | 2592 | anniversaryList.append(anni); //should be ISODate |
2592 | realNameList.append((*it).realName()); | 2593 | realNameList.append((*it).realName()); |
2593 | preferredEmailList.append((*it).preferredEmail()); | 2594 | preferredEmailList.append((*it).preferredEmail()); |
2594 | assembledNameList.append((*it).assembledName()); | 2595 | assembledNameList.append((*it).assembledName()); |
2595 | uidList.append((*it).uid()); | 2596 | uidList.append((*it).uid()); |
2596 | 2597 | ||
2597 | //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() ); | 2598 | //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() ); |
2598 | } | 2599 | } |
2599 | } | 2600 | } |
2600 | 2601 | ||
2601 | bool res = ExternalAppHandler::instance()->returnBirthdayListFromKAPI(sourceChannel, uid, birthdayList, anniversaryList, realNameList, preferredEmailList, assembledNameList, uidList); | 2602 | bool res = ExternalAppHandler::instance()->returnBirthdayListFromKAPI(sourceChannel, uid, birthdayList, anniversaryList, realNameList, preferredEmailList, assembledNameList, uidList); |
2602 | 2603 | ||
2603 | } | 2604 | } |
2604 | 2605 | ||
2605 | /* this method will be called through the QCop interface from other apps to show details of a contact. | 2606 | /* this method will be called through the QCop interface from other apps to show details of a contact. |
2606 | */ | 2607 | */ |
2607 | void KABCore::requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid) | 2608 | void KABCore::requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid) |
2608 | { | 2609 | { |
2609 | //qDebug("KABCore::requestForDetails %s %s %s %s %s", sourceChannel.latin1(), sessionuid.latin1(), name.latin1(), email.latin1(), uid.latin1()); | 2610 | //qDebug("KABCore::requestForDetails %s %s %s %s %s", sourceChannel.latin1(), sessionuid.latin1(), name.latin1(), email.latin1(), uid.latin1()); |
2610 | 2611 | ||
2611 | QString foundUid = QString::null; | 2612 | QString foundUid = QString::null; |
diff --git a/libkdepim/externalapphandler.cpp b/libkdepim/externalapphandler.cpp index 7200da9..f8f4c8a 100644 --- a/libkdepim/externalapphandler.cpp +++ b/libkdepim/externalapphandler.cpp | |||
@@ -1059,143 +1059,146 @@ bool ExternalAppHandler::callBySIP( const QString& sipnumber ) | |||
1059 | } | 1059 | } |
1060 | 1060 | ||
1061 | 1061 | ||
1062 | /************************************************************************** | 1062 | /************************************************************************** |
1063 | * | 1063 | * |
1064 | **************************************************************************/ | 1064 | **************************************************************************/ |
1065 | 1065 | ||
1066 | 1066 | ||
1067 | QString& ExternalAppHandler::translateMessage(QString& message, const QString& param1, const QString& param2 ) const | 1067 | QString& ExternalAppHandler::translateMessage(QString& message, const QString& param1, const QString& param2 ) const |
1068 | { | 1068 | { |
1069 | message = message.replace( QRegExp("%1"), param1 ); | 1069 | message = message.replace( QRegExp("%1"), param1 ); |
1070 | return message.replace( QRegExp("%2"), param2 ); | 1070 | return message.replace( QRegExp("%2"), param2 ); |
1071 | } | 1071 | } |
1072 | 1072 | ||
1073 | /************************************************************************** | 1073 | /************************************************************************** |
1074 | * | 1074 | * |
1075 | **************************************************************************/ | 1075 | **************************************************************************/ |
1076 | 1076 | ||
1077 | void ExternalAppHandler::passParameters(QCopEnvelope* e, const QString& parameters, const QString& param1 , const QString& param2) const | 1077 | void ExternalAppHandler::passParameters(QCopEnvelope* e, const QString& parameters, const QString& param1 , const QString& param2) const |
1078 | { | 1078 | { |
1079 | #ifndef DESKTOP_VERSION | 1079 | #ifndef DESKTOP_VERSION |
1080 | QMap<QString, QString> valmap; | 1080 | QMap<QString, QString> valmap; |
1081 | bool useValMap = false; | 1081 | bool useValMap = false; |
1082 | 1082 | ||
1083 | // first extract all parts of the parameters. | 1083 | // first extract all parts of the parameters. |
1084 | QStringList paramlist = QStringList::split(";", parameters); | 1084 | QStringList paramlist = QStringList::split(";", parameters); |
1085 | 1085 | ||
1086 | //Now check how many parts we have. | 1086 | //Now check how many parts we have. |
1087 | //=0 :no params to pass | 1087 | //=0 :no params to pass |
1088 | //>0 :parameters to pass | 1088 | //>0 :parameters to pass |
1089 | for ( QStringList::Iterator it = paramlist.begin(); it != paramlist.end(); ++it ) | 1089 | for ( QStringList::Iterator it = paramlist.begin(); it != paramlist.end(); ++it ) |
1090 | { | 1090 | { |
1091 | QString param = (*it); | 1091 | QString param = (*it); |
1092 | QStringList keyvallist = QStringList::split("=", param); | 1092 | QStringList keyvallist = QStringList::split("=", param); |
1093 | 1093 | ||
1094 | //if we have keyvalue pairs, we assume that we pass a map to the envelope | 1094 | //if we have keyvalue pairs, we assume that we pass a map to the envelope |
1095 | QStringList::Iterator it2 = keyvallist.begin(); | 1095 | QStringList::Iterator it2 = keyvallist.begin(); |
1096 | QString key = (*it2); | 1096 | QString key = (*it2); |
1097 | key = key.replace( QRegExp("%1"), param1 ); | 1097 | key = key.replace( QRegExp("%1"), param1 ); |
1098 | key = key.replace( QRegExp("%2"), param2 ); | 1098 | key = key.replace( QRegExp("%2"), param2 ); |
1099 | ++it2; | 1099 | ++it2; |
1100 | 1100 | ||
1101 | if(it2 != keyvallist.end()) | 1101 | if(it2 != keyvallist.end()) |
1102 | { | 1102 | { |
1103 | QString value = (*it2); | 1103 | QString value = (*it2); |
1104 | value = value.replace( QRegExp("%1"), param1 ); | 1104 | value = value.replace( QRegExp("%1"), param1 ); |
1105 | value = value.replace( QRegExp("%2"), param2 ); | 1105 | value = value.replace( QRegExp("%2"), param2 ); |
1106 | 1106 | ||
1107 | valmap.insert(key, value); | 1107 | valmap.insert(key, value); |
1108 | useValMap = true; | 1108 | useValMap = true; |
1109 | } | 1109 | } |
1110 | else | 1110 | else |
1111 | { | 1111 | { |
1112 | // qDebug("pass parameter << %s", key.latin1()); | 1112 | // qDebug("pass parameter << %s", key.latin1()); |
1113 | (*e) << key; | 1113 | (*e) << key; |
1114 | } | 1114 | } |
1115 | } | 1115 | } |
1116 | 1116 | ||
1117 | if (useValMap == true) | 1117 | if (useValMap == true) |
1118 | (*e) << valmap; | 1118 | (*e) << valmap; |
1119 | 1119 | ||
1120 | #endif | 1120 | #endif |
1121 | 1121 | ||
1122 | } | 1122 | } |
1123 | 1123 | ||
1124 | 1124 | ||
1125 | 1125 | ||
1126 | /************************************************************************** | 1126 | /************************************************************************** |
1127 | * | 1127 | * |
1128 | **************************************************************************/ | 1128 | **************************************************************************/ |
1129 | 1129 | ||
1130 | void ExternalAppHandler::appMessage( const QCString& cmsg, const QByteArray& data ) | 1130 | void ExternalAppHandler::appMessage( const QCString& cmsg, const QByteArray& data ) |
1131 | { | 1131 | { |
1132 | 1132 | ||
1133 | if ( cmsg == "nextView()" ) { | 1133 | if ( cmsg == "nextView()" ) { |
1134 | qDebug("nextView()"); | 1134 | qDebug("nextView()"); |
1135 | emit nextView(); | 1135 | emit nextView(); |
1136 | return; | 1136 | return; |
1137 | } | 1137 | } |
1138 | 1138 | ||
1139 | bool res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data ); | 1139 | bool res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data ); |
1140 | if (!res) | 1140 | if (!res) |
1141 | res = mBirthdayListFromKAPITransfer->appMessage( cmsg, data ); | 1141 | res = mBirthdayListFromKAPITransfer->appMessage( cmsg, data ); |
1142 | 1142 | ||
1143 | if (!res) | 1143 | if (!res) |
1144 | res = mDisplayDetails->appMessage( cmsg, data ); | 1144 | res = mDisplayDetails->appMessage( cmsg, data ); |
1145 | 1145 | ||
1146 | // if (!res) | 1146 | // if (!res) |
1147 | // res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data ); | 1147 | // res = mNameEmailUidListFromKAPITransfer->appMessage( cmsg, data ); |
1148 | } | 1148 | } |
1149 | 1149 | ||
1150 | 1150 | ||
1151 | 1151 | ||
1152 | bool ExternalAppHandler::requestNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid) | 1152 | bool ExternalAppHandler::requestNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid) |
1153 | { | 1153 | { |
1154 | mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel); | 1154 | mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel); |
1155 | return mNameEmailUidListFromKAPITransfer->sendMessageToTarget(sessionuid); | 1155 | // maybe we are sending to KA/Pi fom a different worldd... |
1156 | // it may be that the QAplication::desktop()->width() values in KA/Pi are not the same as in our application | ||
1157 | // for that reason we send the current QApplication::desktop()->width() to KA/Pi | ||
1158 | return mNameEmailUidListFromKAPITransfer->sendMessageToTarget(QString::number ( QApplication::desktop()->width() )); | ||
1156 | } | 1159 | } |
1157 | 1160 | ||
1158 | bool ExternalAppHandler::returnNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3) | 1161 | bool ExternalAppHandler::returnNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3) |
1159 | { | 1162 | { |
1160 | QStringList list4, list5, list6; | 1163 | QStringList list4, list5, list6; |
1161 | 1164 | ||
1162 | mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel); | 1165 | mNameEmailUidListFromKAPITransfer->setSourceChannel(sourceChannel); |
1163 | return mNameEmailUidListFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3, list4, list5, list6); | 1166 | return mNameEmailUidListFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3, list4, list5, list6); |
1164 | } | 1167 | } |
1165 | 1168 | ||
1166 | bool ExternalAppHandler::requestFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QString& email) | 1169 | bool ExternalAppHandler::requestFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QString& email) |
1167 | { | 1170 | { |
1168 | mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel); | 1171 | mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel); |
1169 | return mFindByEmailFromKAPITransfer->sendMessageToTarget(sessionuid, email); | 1172 | return mFindByEmailFromKAPITransfer->sendMessageToTarget(sessionuid, email); |
1170 | } | 1173 | } |
1171 | 1174 | ||
1172 | bool ExternalAppHandler::returnFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3) | 1175 | bool ExternalAppHandler::returnFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3) |
1173 | { | 1176 | { |
1174 | QStringList list4, list5, list6; | 1177 | QStringList list4, list5, list6; |
1175 | 1178 | ||
1176 | mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel); | 1179 | mFindByEmailFromKAPITransfer->setSourceChannel(sourceChannel); |
1177 | return mFindByEmailFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3, list4, list5, list6); | 1180 | return mFindByEmailFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3, list4, list5, list6); |
1178 | } | 1181 | } |
1179 | 1182 | ||
1180 | bool ExternalAppHandler::requestDetailsFromKAPI(const QString& name, const QString& email, const QString& uid) | 1183 | bool ExternalAppHandler::requestDetailsFromKAPI(const QString& name, const QString& email, const QString& uid) |
1181 | { | 1184 | { |
1182 | mDisplayDetails->setSourceChannel(""); | 1185 | mDisplayDetails->setSourceChannel(""); |
1183 | return mDisplayDetails->sendMessageToTarget("", name, email, uid); | 1186 | return mDisplayDetails->sendMessageToTarget("", name, email, uid); |
1184 | } | 1187 | } |
1185 | 1188 | ||
1186 | bool ExternalAppHandler::requestBirthdayListFromKAPI(const QString& sourceChannel, const QString& sessionuid) | 1189 | bool ExternalAppHandler::requestBirthdayListFromKAPI(const QString& sourceChannel, const QString& sessionuid) |
1187 | { | 1190 | { |
1188 | mBirthdayListFromKAPITransfer->setSourceChannel(sourceChannel); | 1191 | mBirthdayListFromKAPITransfer->setSourceChannel(sourceChannel); |
1189 | return mBirthdayListFromKAPITransfer->sendMessageToTarget(sessionuid); | 1192 | return mBirthdayListFromKAPITransfer->sendMessageToTarget(sessionuid); |
1190 | } | 1193 | } |
1191 | 1194 | ||
1192 | bool ExternalAppHandler::returnBirthdayListFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3, const QStringList& list4, const QStringList& list5, const QStringList& list6) | 1195 | bool ExternalAppHandler::returnBirthdayListFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3, const QStringList& list4, const QStringList& list5, const QStringList& list6) |
1193 | { | 1196 | { |
1194 | mBirthdayListFromKAPITransfer->setSourceChannel(sourceChannel); | 1197 | mBirthdayListFromKAPITransfer->setSourceChannel(sourceChannel); |
1195 | return mBirthdayListFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3, list4, list5, list6); | 1198 | return mBirthdayListFromKAPITransfer->sendMessageToSource(sessionuid, list1, list2, list3, list4, list5, list6); |
1196 | } | 1199 | } |
1197 | 1200 | ||
1198 | 1201 | ||
1199 | 1202 | ||
1200 | 1203 | ||
1201 | 1204 | ||