summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-03-29 14:23:43 (UTC)
committer zautrix <zautrix>2005-03-29 14:23:43 (UTC)
commit3116f249fc6ccd0e067213e826d3d924f6986972 (patch) (unidiff)
treefe37b19450279d07b6767d56ef0deeff51f7485e
parentc873163eca527625ce22ed461ee5d4fec61b3b18 (diff)
downloadkdepimpi-3116f249fc6ccd0e067213e826d3d924f6986972.zip
kdepimpi-3116f249fc6ccd0e067213e826d3d924f6986972.tar.gz
kdepimpi-3116f249fc6ccd0e067213e826d3d924f6986972.tar.bz2
fix
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt3
-rw-r--r--kaddressbook/kabcore.cpp1
-rw-r--r--libkdepim/externalapphandler.cpp5
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,205 +1,208 @@
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 2.0.22 ************ 3********** VERSION 2.0.22 ************
4 4
5KO/Pi: 5KO/Pi:
6Fix for creating events/todos via the abgenda context menu. 6Fix for creating events/todos via the abgenda context menu.
7Added option to split toolbar to 3 toolbars. 7Added option to split toolbar to 3 toolbars.
8Added option to show one small filter-view-toolbar. 8Added option to show one small filter-view-toolbar.
9Added a print option to the desktop version: 9Added a print option to the desktop version:
10Now you can print out the view of the "Event Viewer". 10Now you can print out the view of the "Event Viewer".
11That means you can print all data of one particular event/todo. 11That means you can print all data of one particular event/todo.
12Added scaling options to printout of Event Viewer and What'sNext View. 12Added scaling options to printout of Event Viewer and What'sNext View.
13Fixed some problems in the month view in "week start sunday" mode. 13Fixed some problems in the month view in "week start sunday" mode.
14KA/Pi:
15Added two more config options.
16Fixed resizing problem of address request dialog when orientation was switched.
14 17
15********** VERSION 2.0.21 ************ 18********** VERSION 2.0.21 ************
16 19
17Fixed another SMTP problem in OM/Pi. 20Fixed another SMTP problem in OM/Pi.
18Some small changed in the new datenavigator in KO/Pi. 21Some small changed in the new datenavigator in KO/Pi.
19Changed default setting for new filter in KA/Pi to "exclude categories". 22Changed default setting for new filter in KA/Pi to "exclude categories".
20Changed the default font size for 640x480 display . 23Changed the default font size for 640x480 display .
21Changed popup menu behaviour in agenda and list view. 24Changed popup menu behaviour in agenda and list view.
22Fixed some layout problems of the date label size in the month view. 25Fixed some layout problems of the date label size in the month view.
23Made month view update faster. 26Made month view update faster.
24Made first datenavigator repainting faster. 27Made first datenavigator repainting faster.
25Changed the title of the event/todo edit dialogs. 28Changed the title of the event/todo edit dialogs.
26Timelabels in agenga changed from 22:00 to 22 oo. ( the oo higher, of course). 29Timelabels in agenga changed from 22:00 to 22 oo. ( the oo higher, of course).
27Many small usebility fixes in KO/Pi. 30Many small usebility fixes in KO/Pi.
28Pressing the "Calendar" button on the Z switches now to the next view in KO/Pi. 31Pressing the "Calendar" button on the Z switches now to the next view in KO/Pi.
29The set of possible "next views" are the views you have toolbar buttons for. 32The set of possible "next views" are the views you have toolbar buttons for.
30 33
31Made alarm sound working on Linux. 34Made alarm sound working on Linux.
32 35
33KO/Pi alarm applet changed: 36KO/Pi alarm applet changed:
34Made buttons in alarm dialog much bigger. 37Made buttons in alarm dialog much bigger.
35Made setting of timer more user friendly by showing the actual timer fire time and making the buttons in the timer settings much bigger. 38Made setting of timer more user friendly by showing the actual timer fire time and making the buttons in the timer settings much bigger.
36The goal was it to make it possible to use a finger tip ( and not the stylus ) on the touchscreen to adjust the settings. 39The 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
38And because this version is realeased at Easter, I added an Easter-egg: 41And because this version is realeased at Easter, I added an Easter-egg:
39With a new undocumented command you can get a message box about the next alarm. 42With a new undocumented command you can get a message box about the next alarm.
40Good luck to find it! 43Good luck to find it!
41 44
42 45
43 46
44********** VERSION 2.0.20 ************ 47********** VERSION 2.0.20 ************
45 48
46Two small fixes in OM/Pi. 49Two small fixes in OM/Pi.
47 50
48Better resizing of the new datenavigator in KO/Pi. 51Better resizing of the new datenavigator in KO/Pi.
49 52
50********** VERSION 2.0.19 ************ 53********** VERSION 2.0.19 ************
51KO/Pi: 54KO/Pi:
52Enhancements and bugfixes in the new datenavigator. 55Enhancements and bugfixes in the new datenavigator.
53Bugfix in this changelog: 56Bugfix in this changelog:
54The datenavigator was changed in version 2.0.18, not the datepicker. 57The datenavigator was changed in version 2.0.18, not the datepicker.
55 58
56********** VERSION 2.0.18 ************ 59********** VERSION 2.0.18 ************
57KO/Pi: 60KO/Pi:
58Fixed some minor problems. 61Fixed some minor problems.
59Cleaned up the KO/Pi config dialog. 62Cleaned up the KO/Pi config dialog.
60Fixed problem moving events in aganda view. 63Fixed problem moving events in aganda view.
61Made datepicker scaleable, i.e. if the datenavigator shows now a 64Made datepicker scaleable, i.e. if the datenavigator shows now a
62datenavigator matrix depending on its size. 65datenavigator matrix depending on its size.
63Birthdays are now displayed green in the datenavigator. 66Birthdays are now displayed green in the datenavigator.
64What'sThis Help in datenavigator shows all events of the day. 67What'sThis Help in datenavigator shows all events of the day.
65 68
66OM/Pi: 69OM/Pi:
67Updated the backend mail library to the latest version. 70Updated the backend mail library to the latest version.
68Please backup your mail before using this version. 71Please backup your mail before using this version.
69 72
70********** VERSION 2.0.17 ************ 73********** VERSION 2.0.17 ************
71 74
72KO/Pi: 75KO/Pi:
73Tooltips in month view were not sorted. Fixed. 76Tooltips in month view were not sorted. Fixed.
74Daylabel in agenda view ( for display of one day ) was too short. Fixed. 77Daylabel in agenda view ( for display of one day ) was too short. Fixed.
75Conflict display dialog for syncing was not on top of other windows. Fixed. 78Conflict display dialog for syncing was not on top of other windows. Fixed.
76Fixed some minor problems. 79Fixed some minor problems.
77 80
78Fixed an endless loop when importing vcs file with RESOURCES entry. 81Fixed an endless loop when importing vcs file with RESOURCES entry.
79 82
80********** VERSION 2.0.16 ************ 83********** VERSION 2.0.16 ************
81OM/Pi: 84OM/Pi:
82Fixed the SMTP account setting the option. 85Fixed the SMTP account setting the option.
83Fixed something in mail sending. 86Fixed something in mail sending.
84 87
85KO/Pi: 88KO/Pi:
86Added possibility to export selected events/todos as vcal file. 89Added possibility to export selected events/todos as vcal file.
87 90
88********** VERSION 2.0.15 ************ 91********** VERSION 2.0.15 ************
89 92
90PwM/Pi: 93PwM/Pi:
91Added keyboard shorcuts for 94Added 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)
95Fixed length of info in the title. 98Fixed length of info in the title.
96 99
97KO/Pi-KA/Pi: 100KO/Pi-KA/Pi:
98Changed "ME" menu bar entry to an icon. 101Changed "ME" menu bar entry to an icon.
99 102
100KO/Pi: 103KO/Pi:
101Fixed two minor bugs in displaying todos. 104Fixed two minor bugs in displaying todos.
102If in month view a cell is selected, the key shortcut "d" shows now that date. 105If in month view a cell is selected, the key shortcut "d" shows now that date.
103Added complete info for a todo in month view as an icon left of the text. 106Added complete info for a todo in month view as an icon left of the text.
104Fixed problems of displaying data when "<" or ">" are used in summary/location/description. 107Fixed problems of displaying data when "<" or ">" are used in summary/location/description.
105Fixed problem of search dialog size when switching displays. 108Fixed problem of search dialog size when switching displays.
106Cancel key now closes date picker. 109Cancel key now closes date picker.
107Rearranged KO/Pi file menu structure. 110Rearranged KO/Pi file menu structure.
108 111
109OM/Pi: 112OM/Pi:
110Added to the SMTP account setting the option 113Added to the SMTP account setting the option
111"No secure connection". 114"No secure connection".
112You have to configure your SMTP accounts again, sorry. 115You have to configure your SMTP accounts again, sorry.
113 116
114KA/Pi: 117KA/Pi:
115Added support for importing quoted-printable. 118Added support for importing quoted-printable.
116Support was added by Peter P.. Thanks, Peter! 119Support was added by Peter P.. Thanks, Peter!
117 120
118 121
119********** VERSION 2.0.14 ************ 122********** VERSION 2.0.14 ************
120 123
121Made Passwordmanager PwM/Pi more userfriendly: 124Made Passwordmanager PwM/Pi more userfriendly:
122Rearranged some toolbar icons, optimized setting of focus, fixed layout problems and more. 125Rearranged some toolbar icons, optimized setting of focus, fixed layout problems and more.
123Fixed bug in KO/Pi todo printing. 126Fixed bug in KO/Pi todo printing.
124Made Qtopia calendar import possible on desktop . 127Made Qtopia calendar import possible on desktop .
125 128
126********** VERSION 2.0.13 ************ 129********** VERSION 2.0.13 ************
127 130
128Fixed a problem in the addressee select dialog and made it more user friendly by adding a minimize splitter. 131Fixed a problem in the addressee select dialog and made it more user friendly by adding a minimize splitter.
129 132
130In the search dialog you can switch now the focus from search line edit to the list view by pressing key "arrow down". 133In the search dialog you can switch now the focus from search line edit to the list view by pressing key "arrow down".
131 134
132OM/Pi: 135OM/Pi:
133Fixed a refresh problem of outgoing/sent/sendfailed folders after sending mails. 136Fixed a refresh problem of outgoing/sent/sendfailed folders after sending mails.
134Added missing German translation. 137Added missing German translation.
135Added warning if path is specified in local folder settings of account config. 138Added warning if path is specified in local folder settings of account config.
136 139
137********** VERSION 2.0.12 ************ 140********** VERSION 2.0.12 ************
138 141
139KO/Pi: 142KO/Pi:
140Fixed a bug in todo start/due date handling for non recurring todos with a start and due date. 143Fixed a bug in todo start/due date handling for non recurring todos with a start and due date.
141Fixed some layout problems in the KO/Pi agenda view when there were many conflicting itmes. 144Fixed some layout problems in the KO/Pi agenda view when there were many conflicting itmes.
142Fixed several problems of the keyboard focus in the desktop versions when opening the search dialog/event viewer. 145Fixed several problems of the keyboard focus in the desktop versions when opening the search dialog/event viewer.
143 146
144Fixed problem in pi-sync mode when wrong password was sent. 147Fixed problem in pi-sync mode when wrong password was sent.
145 148
146OM/Pi: 149OM/Pi:
147Fixed a crash when displaying mails with "Show mail as html" was checked in the config. 150Fixed a crash when displaying mails with "Show mail as html" was checked in the config.
148Added a check before displaying the mail if the mail is in html format, if "Show mail as html" is enabled. 151Added a check before displaying the mail if the mail is in html format, if "Show mail as html" is enabled.
149 152
150********** VERSION 2.0.11 ************ 153********** VERSION 2.0.11 ************
151 154
152Fixed some problems in pi-sync mode 155Fixed some problems in pi-sync mode
153(e.g. details of events were not synced properly) 156(e.g. details of events were not synced properly)
154 157
155********** VERSION 2.0.10 ************ 158********** VERSION 2.0.10 ************
156 159
157KO/Pi: 160KO/Pi:
158In the desktop versions the context menu in the search dialog was broken after introducing the What'sThis info for the list view. 161In the desktop versions the context menu in the search dialog was broken after introducing the What'sThis info for the list view.
159This is fixed. 162This is fixed.
160Changed the search dialog a bit to make it more user friendly. 163Changed the search dialog a bit to make it more user friendly.
161(E.g.: Removed message box about "no items found" and set key focus to search line edit after search). 164(E.g.: Removed message box about "no items found" and set key focus to search line edit after search).
162 165
163Added config option to hide the week number in KO/Pi toolbar. 166Added config option to hide the week number in KO/Pi toolbar.
164 167
165********** VERSION 2.0.9 ************ 168********** VERSION 2.0.9 ************
166 169
167Made month view icons for multiday events a bit nicer. 170Made month view icons for multiday events a bit nicer.
168Some minor fixes in KO/Pi 171Some minor fixes in KO/Pi
169(e.g. go to today did not work for new week view properly). 172(e.g. go to today did not work for new week view properly).
170 173
171 174
172********** VERSION 2.0.8 ************ 175********** VERSION 2.0.8 ************
173 176
174Fixed a problem in dependency info in the ipk files for the Zaurus. 177Fixed a problem in dependency info in the ipk files for the Zaurus.
175 178
176Added icon for the stealth new week view and made navigation more user friendly in monthview by adding a prev/next week button to the navigator bar. 179Added icon for the stealth new week view and made navigation more user friendly in monthview by adding a prev/next week button to the navigator bar.
177 180
178Added a "go today" button to the datepicker. 181Added a "go today" button to the datepicker.
179 182
180Added "created" and "last modified" to event/todo viewer (and What'sThis viewer) 183Added "created" and "last modified" to event/todo viewer (and What'sThis viewer)
181and made it configureable to show these values. 184and made it configureable to show these values.
182 185
183Fixed a problem for events (from external iCal files) that do have a duration but no end date. 186Fixed a problem for events (from external iCal files) that do have a duration but no end date.
184 187
185 188
186********** VERSION 2.0.7 ************ 189********** VERSION 2.0.7 ************
187 190
188Added global application font settings 191Added global application font settings
189(for all KDE-Pim/Pi apps) to the general settings. 192(for all KDE-Pim/Pi apps) to the general settings.
190 193
191Fixed a problem in OM/Pi when trying to login to some IMAP servers 194Fixed a problem in OM/Pi when trying to login to some IMAP servers
192(like the IMAP server of Apple: mail.mac.com ) 195(like the IMAP server of Apple: mail.mac.com )
193 196
194Added recurring todos to KO/Pi. 197Added recurring todos to KO/Pi.
195 198
196 199
197********** VERSION 2.0.6 ************ 200********** VERSION 2.0.6 ************
198 201
199Stable release 2.0.6! 202Stable release 2.0.6!
200 203
201Some bugfixes in the pi-sync mode. 204Some bugfixes in the pi-sync mode.
202Added German translation for pi-sync mode. 205Added German translation for pi-sync mode.
203 206
204KO/Pi: 207KO/Pi:
205Made the todolist using alternate background. 208Made the todolist using alternate background.
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index db19dd5..27aca2d 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -2324,384 +2324,385 @@ void KABCore::manageCategories( )
2324 int h = cp->sizeHint().height() ; 2324 int h = cp->sizeHint().height() ;
2325 int dw = QApplication::desktop()->width(); 2325 int dw = QApplication::desktop()->width();
2326 int dh = QApplication::desktop()->height(); 2326 int dh = QApplication::desktop()->height();
2327 cp->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 2327 cp->setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
2328 if ( !cp->exec() ) { 2328 if ( !cp->exec() ) {
2329 delete cp; 2329 delete cp;
2330 return; 2330 return;
2331 } 2331 }
2332 int count = 0; 2332 int count = 0;
2333 int cc = 0; 2333 int cc = 0;
2334 message( i18n("Please wait, processing categories...")); 2334 message( i18n("Please wait, processing categories..."));
2335 if ( cp->addCat() ) { 2335 if ( cp->addCat() ) {
2336 KABC::AddressBook::Iterator it; 2336 KABC::AddressBook::Iterator it;
2337 QStringList catList = KABPrefs::instance()->mCustomCategories; 2337 QStringList catList = KABPrefs::instance()->mCustomCategories;
2338 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { 2338 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
2339 ++cc; 2339 ++cc;
2340 if ( cc %10 == 0) 2340 if ( cc %10 == 0)
2341 message(i18n("Processing contact #%1").arg(cc)); 2341 message(i18n("Processing contact #%1").arg(cc));
2342 QStringList catIncList = (*it).categories(); 2342 QStringList catIncList = (*it).categories();
2343 int i; 2343 int i;
2344 for( i = 0; i< catIncList.count(); ++i ) { 2344 for( i = 0; i< catIncList.count(); ++i ) {
2345 if ( !catList.contains (catIncList[i])) { 2345 if ( !catList.contains (catIncList[i])) {
2346 catList.append( catIncList[i] ); 2346 catList.append( catIncList[i] );
2347 //qDebug("add cat %s ", catIncList[i].latin1()); 2347 //qDebug("add cat %s ", catIncList[i].latin1());
2348 ++count; 2348 ++count;
2349 } 2349 }
2350 } 2350 }
2351 } 2351 }
2352 catList.sort(); 2352 catList.sort();
2353 KABPrefs::instance()->mCustomCategories = catList; 2353 KABPrefs::instance()->mCustomCategories = catList;
2354 KABPrefs::instance()->writeConfig(); 2354 KABPrefs::instance()->writeConfig();
2355 message(QString::number( count )+ i18n(" categories added to list! ")); 2355 message(QString::number( count )+ i18n(" categories added to list! "));
2356 } else { 2356 } else {
2357 QStringList catList = KABPrefs::instance()->mCustomCategories; 2357 QStringList catList = KABPrefs::instance()->mCustomCategories;
2358 QStringList catIncList; 2358 QStringList catIncList;
2359 QStringList newCatList; 2359 QStringList newCatList;
2360 KABC::AddressBook::Iterator it; 2360 KABC::AddressBook::Iterator it;
2361 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { 2361 for( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
2362 ++cc; 2362 ++cc;
2363 if ( cc %10 == 0) 2363 if ( cc %10 == 0)
2364 message(i18n("Processing contact #%1").arg(cc)); 2364 message(i18n("Processing contact #%1").arg(cc));
2365 QStringList catIncList = (*it).categories(); 2365 QStringList catIncList = (*it).categories();
2366 int i; 2366 int i;
2367 if ( catIncList.count() ) { 2367 if ( catIncList.count() ) {
2368 newCatList.clear(); 2368 newCatList.clear();
2369 for( i = 0; i< catIncList.count(); ++i ) { 2369 for( i = 0; i< catIncList.count(); ++i ) {
2370 if ( catList.contains (catIncList[i])) { 2370 if ( catList.contains (catIncList[i])) {
2371 newCatList.append( catIncList[i] ); 2371 newCatList.append( catIncList[i] );
2372 } 2372 }
2373 } 2373 }
2374 newCatList.sort(); 2374 newCatList.sort();
2375 (*it).setCategories( newCatList ); 2375 (*it).setCategories( newCatList );
2376 mAddressBook->insertAddressee( (*it) ); 2376 mAddressBook->insertAddressee( (*it) );
2377 } 2377 }
2378 } 2378 }
2379 setModified( true ); 2379 setModified( true );
2380 mViewManager->refreshView(); 2380 mViewManager->refreshView();
2381 message( i18n("Removing categories done!")); 2381 message( i18n("Removing categories done!"));
2382 } 2382 }
2383 delete cp; 2383 delete cp;
2384} 2384}
2385void KABCore::removeVoice() 2385void KABCore::removeVoice()
2386{ 2386{
2387 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 ) 2387 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 )
2388 return; 2388 return;
2389 XXPortSelectDialog dlg( this, false, this ); 2389 XXPortSelectDialog dlg( this, false, this );
2390 if ( !dlg.exec() ) 2390 if ( !dlg.exec() )
2391 return; 2391 return;
2392 mAddressBook->setUntagged(); 2392 mAddressBook->setUntagged();
2393 dlg.tagSelected(); 2393 dlg.tagSelected();
2394 message(i18n("Removing voice..."), false ); 2394 message(i18n("Removing voice..."), false );
2395 KABC::AddressBook::Iterator it; 2395 KABC::AddressBook::Iterator it;
2396 for ( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) { 2396 for ( it = mAddressBook->begin(); it != mAddressBook->end(); ++it ) {
2397 if ( (*it).tagged() ) { 2397 if ( (*it).tagged() ) {
2398 (*it).removeVoice(); 2398 (*it).removeVoice();
2399 } 2399 }
2400 } 2400 }
2401 message(i18n("Refreshing view...") ); 2401 message(i18n("Refreshing view...") );
2402 qApp->processEvents(); 2402 qApp->processEvents();
2403 mViewManager->refreshView( "" ); 2403 mViewManager->refreshView( "" );
2404 Addressee add; 2404 Addressee add;
2405 mDetails->setAddressee( add ); 2405 mDetails->setAddressee( add );
2406 message(i18n("Remove voice completed!") ); 2406 message(i18n("Remove voice completed!") );
2407 2407
2408 2408
2409 2409
2410} 2410}
2411 2411
2412void KABCore::setFormattedName() 2412void KABCore::setFormattedName()
2413{ 2413{
2414 KABFormatPrefs setpref; 2414 KABFormatPrefs setpref;
2415 if ( !setpref.exec() ) { 2415 if ( !setpref.exec() ) {
2416 return; 2416 return;
2417 } 2417 }
2418 XXPortSelectDialog dlg( this, false, this ); 2418 XXPortSelectDialog dlg( this, false, this );
2419 if ( !dlg.exec() ) 2419 if ( !dlg.exec() )
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
2454void KABCore::clipboardDataChanged() 2454void 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
2462void KABCore::updateActionMenu() 2462void 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
2482void KABCore::configureKeyBindings() 2482void 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
2492void KABCore::configureResources() 2492void 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 */
2506void KABCore::requestForNameEmailUidList(const QString& sourceChannel, const QString& uid) 2506void 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 */
2540void KABCore::requestForBirthdayList(const QString& sourceChannel, const QString& uid) 2541void 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 */
2607void KABCore::requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid) 2608void 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;
2612 if ( ! uid.isEmpty() ) { 2613 if ( ! uid.isEmpty() ) {
2613 Addressee adrr = mAddressBook->findByUid( uid ); 2614 Addressee adrr = mAddressBook->findByUid( uid );
2614 if ( !adrr.isEmpty() ) { 2615 if ( !adrr.isEmpty() ) {
2615 foundUid = uid; 2616 foundUid = uid;
2616 } 2617 }
2617 if ( email == "sendbacklist" ) { 2618 if ( email == "sendbacklist" ) {
2618 //qDebug("ssssssssssssssssssssssend "); 2619 //qDebug("ssssssssssssssssssssssend ");
2619 QStringList nameList; 2620 QStringList nameList;
2620 QStringList emailList; 2621 QStringList emailList;
2621 QStringList uidList; 2622 QStringList uidList;
2622 nameList.append(adrr.realName()); 2623 nameList.append(adrr.realName());
2623 emailList = adrr.emails(); 2624 emailList = adrr.emails();
2624 uidList.append( adrr.preferredEmail()); 2625 uidList.append( adrr.preferredEmail());
2625 bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI("QPE/Application/ompi", uid, nameList, emailList, uidList); 2626 bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI("QPE/Application/ompi", uid, nameList, emailList, uidList);
2626 return; 2627 return;
2627 } 2628 }
2628 2629
2629 } 2630 }
2630 2631
2631 if ( email == "sendbacklist" ) 2632 if ( email == "sendbacklist" )
2632 return; 2633 return;
2633 if (foundUid.isEmpty()) 2634 if (foundUid.isEmpty())
2634 { 2635 {
2635 //find the uid of the person first 2636 //find the uid of the person first
2636 Addressee::List namelist; 2637 Addressee::List namelist;
2637 Addressee::List emaillist; 2638 Addressee::List emaillist;
2638 2639
2639 if (!name.isEmpty()) 2640 if (!name.isEmpty())
2640 namelist = mAddressBook->findByName( name ); 2641 namelist = mAddressBook->findByName( name );
2641 2642
2642 if (!email.isEmpty()) 2643 if (!email.isEmpty())
2643 emaillist = mAddressBook->findByEmail( email ); 2644 emaillist = mAddressBook->findByEmail( email );
2644 //qDebug("count %d %d ", namelist.count(),emaillist.count() ); 2645 //qDebug("count %d %d ", namelist.count(),emaillist.count() );
2645 //check if we have a match in Namelist and Emaillist 2646 //check if we have a match in Namelist and Emaillist
2646 if ((namelist.count() == 0) && (emaillist.count() > 0)) { 2647 if ((namelist.count() == 0) && (emaillist.count() > 0)) {
2647 foundUid = emaillist[0].uid(); 2648 foundUid = emaillist[0].uid();
2648 } 2649 }
2649 else if ((namelist.count() > 0) && (emaillist.count() == 0)) 2650 else if ((namelist.count() > 0) && (emaillist.count() == 0))
2650 foundUid = namelist[0].uid(); 2651 foundUid = namelist[0].uid();
2651 else 2652 else
2652 { 2653 {
2653 for (int i = 0; i < namelist.count(); i++) 2654 for (int i = 0; i < namelist.count(); i++)
2654 { 2655 {
2655 for (int j = 0; j < emaillist.count(); j++) 2656 for (int j = 0; j < emaillist.count(); j++)
2656 { 2657 {
2657 if (namelist[i] == emaillist[j]) 2658 if (namelist[i] == emaillist[j])
2658 { 2659 {
2659 foundUid = namelist[i].uid(); 2660 foundUid = namelist[i].uid();
2660 } 2661 }
2661 } 2662 }
2662 } 2663 }
2663 } 2664 }
2664 } 2665 }
2665 else 2666 else
2666 { 2667 {
2667 foundUid = uid; 2668 foundUid = uid;
2668 } 2669 }
2669 2670
2670 if (!foundUid.isEmpty()) 2671 if (!foundUid.isEmpty())
2671 { 2672 {
2672 2673
2673 // raise Ka/Pi if it is in the background 2674 // raise Ka/Pi if it is in the background
2674#ifndef DESKTOP_VERSION 2675#ifndef DESKTOP_VERSION
2675#ifndef KORG_NODCOP 2676#ifndef KORG_NODCOP
2676 //QCopEnvelope e("QPE/Application/kapi", "raise()"); 2677 //QCopEnvelope e("QPE/Application/kapi", "raise()");
2677#endif 2678#endif
2678#endif 2679#endif
2679 2680
2680 mMainWindow->showMaximized(); 2681 mMainWindow->showMaximized();
2681 mMainWindow-> raise(); 2682 mMainWindow-> raise();
2682 2683
2683 mViewManager->setSelected( "", false); 2684 mViewManager->setSelected( "", false);
2684 mViewManager->refreshView( "" ); 2685 mViewManager->refreshView( "" );
2685 mViewManager->setSelected( foundUid, true ); 2686 mViewManager->setSelected( foundUid, true );
2686 mViewManager->refreshView( foundUid ); 2687 mViewManager->refreshView( foundUid );
2687 2688
2688 if ( !mMultipleViewsAtOnce ) 2689 if ( !mMultipleViewsAtOnce )
2689 { 2690 {
2690 setDetailsVisible( true ); 2691 setDetailsVisible( true );
2691 mActionDetails->setChecked(true); 2692 mActionDetails->setChecked(true);
2692 } 2693 }
2693 } 2694 }
2694} 2695}
2695 2696
2696void KABCore::whatsnew() 2697void KABCore::whatsnew()
2697{ 2698{
2698 KApplication::showFile( "KDE-Pim/Pi Version Info", "kdepim/WhatsNew.txt" ); 2699 KApplication::showFile( "KDE-Pim/Pi Version Info", "kdepim/WhatsNew.txt" );
2699} 2700}
2700void KABCore::synchowto() 2701void KABCore::synchowto()
2701{ 2702{
2702 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/SyncHowto.txt" ); 2703 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/SyncHowto.txt" );
2703} 2704}
2704void KABCore::kdesynchowto() 2705void KABCore::kdesynchowto()
2705{ 2706{
2706 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/Zaurus-KDE_syncHowTo.txt" ); 2707 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/Zaurus-KDE_syncHowTo.txt" );
2707} 2708}
diff --git a/libkdepim/externalapphandler.cpp b/libkdepim/externalapphandler.cpp
index 7200da9..f8f4c8a 100644
--- a/libkdepim/externalapphandler.cpp
+++ b/libkdepim/externalapphandler.cpp
@@ -963,239 +963,242 @@ bool ExternalAppHandler::callByFax( const QString& faxnumber )
963 channel = KPimGlobalPrefs::instance()->mFaxOtherChannel; 963 channel = KPimGlobalPrefs::instance()->mFaxOtherChannel;
964 message = KPimGlobalPrefs::instance()->mFaxOtherMessage; 964 message = KPimGlobalPrefs::instance()->mFaxOtherMessage;
965 parameters = KPimGlobalPrefs::instance()->mFaxOtherMessageParameters; 965 parameters = KPimGlobalPrefs::instance()->mFaxOtherMessageParameters;
966 } 966 }
967 else 967 else
968 { 968 {
969 DefaultAppItem* dai = ExternalAppHandler::getDefaultItem(FAX, client); 969 DefaultAppItem* dai = ExternalAppHandler::getDefaultItem(FAX, client);
970 if (!dai) 970 if (!dai)
971 { 971 {
972 qDebug("could not find configured fax application."); 972 qDebug("could not find configured fax application.");
973 return false; 973 return false;
974 } 974 }
975 channel = dai->_channel; 975 channel = dai->_channel;
976 message = dai->_message; 976 message = dai->_message;
977 parameters = dai->_parameters; 977 parameters = dai->_parameters;
978 } 978 }
979 979
980 980
981 //first check if one of the mailers need the emails right in the message. 981 //first check if one of the mailers need the emails right in the message.
982 message = translateMessage(message, faxnumber, ""); 982 message = translateMessage(message, faxnumber, "");
983 983
984 984
985#ifdef DEBUG_EXT_APP_HANDLER 985#ifdef DEBUG_EXT_APP_HANDLER
986 qDebug("9Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message.latin1()); 986 qDebug("9Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message.latin1());
987 qDebug("passing faxnumber(%s) as parameter in the form %s to QCopEnvelope", faxnumber.latin1(), parameters.latin1()); 987 qDebug("passing faxnumber(%s) as parameter in the form %s to QCopEnvelope", faxnumber.latin1(), parameters.latin1());
988#endif 988#endif
989 989
990 QCopEnvelope e(channel.latin1(), message.latin1()); 990 QCopEnvelope e(channel.latin1(), message.latin1());
991 //US we need no names in the To field. The emailadresses are enough 991 //US we need no names in the To field. The emailadresses are enough
992 992
993 passParameters(&e, parameters, faxnumber, ""); 993 passParameters(&e, parameters, faxnumber, "");
994 994
995 995
996#else 996#else
997 KMessageBox::sorry( 0, i18n( "This version does not support the sending of faxes." ) ); 997 KMessageBox::sorry( 0, i18n( "This version does not support the sending of faxes." ) );
998#endif 998#endif
999 999
1000 1000
1001 return true; 1001 return true;
1002} 1002}
1003 1003
1004/************************************************************************** 1004/**************************************************************************
1005 * 1005 *
1006 **************************************************************************/ 1006 **************************************************************************/
1007 1007
1008//calls the sipapplication with the number 1008//calls the sipapplication with the number
1009bool ExternalAppHandler::callBySIP( const QString& sipnumber ) 1009bool ExternalAppHandler::callBySIP( const QString& sipnumber )
1010{ 1010{
1011#ifndef DESKTOP_VERSION 1011#ifndef DESKTOP_VERSION
1012 QString channel; 1012 QString channel;
1013 QString message; 1013 QString message;
1014 QString parameters; 1014 QString parameters;
1015 1015
1016 1016
1017 int client = KPimGlobalPrefs::instance()->mSipClient; 1017 int client = KPimGlobalPrefs::instance()->mSipClient;
1018 if (client == KPimGlobalPrefs::OTHER_SIC) 1018 if (client == KPimGlobalPrefs::OTHER_SIC)
1019 { 1019 {
1020 channel = KPimGlobalPrefs::instance()->mSipOtherChannel; 1020 channel = KPimGlobalPrefs::instance()->mSipOtherChannel;
1021 message = KPimGlobalPrefs::instance()->mSipOtherMessage; 1021 message = KPimGlobalPrefs::instance()->mSipOtherMessage;
1022 parameters = KPimGlobalPrefs::instance()->mSipOtherMessageParameters; 1022 parameters = KPimGlobalPrefs::instance()->mSipOtherMessageParameters;
1023 } 1023 }
1024 else 1024 else
1025 { 1025 {
1026 DefaultAppItem* dai = ExternalAppHandler::getDefaultItem(SIP, client); 1026 DefaultAppItem* dai = ExternalAppHandler::getDefaultItem(SIP, client);
1027 if (!dai) 1027 if (!dai)
1028 { 1028 {
1029 qDebug("could not find configured sip application."); 1029 qDebug("could not find configured sip application.");
1030 return false; 1030 return false;
1031 } 1031 }
1032 channel = dai->_channel; 1032 channel = dai->_channel;
1033 message = dai->_message; 1033 message = dai->_message;
1034 parameters = dai->_parameters; 1034 parameters = dai->_parameters;
1035 } 1035 }
1036 1036
1037 1037
1038 //first check if one of the sip apps need the emails right in the message. 1038 //first check if one of the sip apps need the emails right in the message.
1039 message = translateMessage(message, sipnumber, ""); 1039 message = translateMessage(message, sipnumber, "");
1040 1040
1041 1041
1042#ifdef DEBUG_EXT_APP_HANDLER 1042#ifdef DEBUG_EXT_APP_HANDLER
1043 qDebug("10Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message.latin1()); 1043 qDebug("10Using QCopEnvelope e(\"%s\",\"%s\")", channel.latin1(), message.latin1());
1044 qDebug("passing sipnumber(%s) as parameter in the form %s to QCopEnvelope", sipnumber.latin1(), parameters.latin1()); 1044 qDebug("passing sipnumber(%s) as parameter in the form %s to QCopEnvelope", sipnumber.latin1(), parameters.latin1());
1045#endif 1045#endif
1046 1046
1047 QCopEnvelope e(channel.latin1(), message.latin1()); 1047 QCopEnvelope e(channel.latin1(), message.latin1());
1048 //US we need no names in the To field. The emailadresses are enough 1048 //US we need no names in the To field. The emailadresses are enough
1049 1049
1050 passParameters(&e, parameters, sipnumber, ""); 1050 passParameters(&e, parameters, sipnumber, "");
1051 1051
1052 1052
1053#else 1053#else
1054 KMessageBox::sorry( 0, i18n( "This version does not support sip." ) ); 1054 KMessageBox::sorry( 0, i18n( "This version does not support sip." ) );
1055#endif 1055#endif
1056 1056
1057 1057
1058 return true; 1058 return true;
1059} 1059}
1060 1060
1061 1061
1062/************************************************************************** 1062/**************************************************************************
1063 * 1063 *
1064 **************************************************************************/ 1064 **************************************************************************/
1065 1065
1066 1066
1067QString& ExternalAppHandler::translateMessage(QString& message, const QString& param1, const QString& param2 ) const 1067QString& 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
1077void ExternalAppHandler::passParameters(QCopEnvelope* e, const QString& parameters, const QString& param1 , const QString& param2) const 1077void 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
1130void ExternalAppHandler::appMessage( const QCString& cmsg, const QByteArray& data ) 1130void 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
1152bool ExternalAppHandler::requestNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid) 1152bool 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
1158bool ExternalAppHandler::returnNameEmailUidListFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3) 1161bool 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
1166bool ExternalAppHandler::requestFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QString& email) 1169bool 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
1172bool ExternalAppHandler::returnFindByEmailFromKAPI(const QString& sourceChannel, const QString& sessionuid, const QStringList& list1, const QStringList& list2, const QStringList& list3) 1175bool 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
1180bool ExternalAppHandler::requestDetailsFromKAPI(const QString& name, const QString& email, const QString& uid) 1183bool 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
1186bool ExternalAppHandler::requestBirthdayListFromKAPI(const QString& sourceChannel, const QString& sessionuid) 1189bool 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
1192bool 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) 1195bool 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