summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/korganizer/kopiWhatsNew.txt74
-rw-r--r--kaddressbook/kabcore.cpp30
2 files changed, 93 insertions, 11 deletions
diff --git a/bin/kdepim/korganizer/kopiWhatsNew.txt b/bin/kdepim/korganizer/kopiWhatsNew.txt
index 8982a9c..20de933 100644
--- a/bin/kdepim/korganizer/kopiWhatsNew.txt
+++ b/bin/kdepim/korganizer/kopiWhatsNew.txt
@@ -1,67 +1,141 @@
1Info about the changes in new versions of KO/Pi 1Info about the changes in new versions of KO/Pi
2and KDE-Pim/Pi 2and KDE-Pim/Pi
3 3
4********** VERSION 1.9.4 ************
5
6This is the version 1.9.4 of KDE-Pim/Pi for the Zaurus.
7
8WARNING:
9PLEASE BACKUP ALL YOUR DATA!
10We have changed a lot and maybe there are some unknown problems.
11
12SYNC HANDLING HAS CHANGED!
13Such that, if you sync now with an already synded device, you will duplicated entries after the first sync.
14(This change was introduced to make it possible to sync with mobile phones, which will be available later (maybe in 4 weeks).
15
16You need the kmicrokdelibs_1.9.4_arm.ipk as a base for the other programs.
17If you get the error: "Install only possible in main memory", just try it again to install it on SD card. That worked for me. And it was reported that rebooting Qtopia did help in this case as well.
18
19As programs are available:
20KO/Pi (korganizer ipk) - a calendar program.
21KA/Pi (kaddressbook ipk ) - an addressbook
22OM/Pi (kopiemail ipk ) an email program with pop/smtp and IMAP support.
23
24An alarm notification program ( korganizer-alarm ipk ) for KO/Pi that notifies you about alarms, even if the Zaurus is in suspend mode.
25(If you do not see an icon in the taskbar after installing korganizer-alarm, please restart Qtopia)
26
27All the applications are installed in a "Pim" TAB.
28If this TAB is new on your system, you can get an icon in this TAB by installing pim_TAB_icon_1.9.4_arm.ipk
29
30All the application are integrated.
31Such that you can choose in KO/Pi the attendees of a meeting from the addresses in KA/Pi. When you click in KA/Pi on the email address, OM/Pi is started to write the mail.
32
33HINT:
34If you install KPhone/Pi 0.9.7, it will be called, if you click in KA/Pi on a phone number.
35
36What's new?
37
38SYNC HANDLING HAS CHANGED!
39Such that, if you sync now with an already synded device, you will duplicated entries after the first sync.
40(This change was introduced to make it possible to sync with mobile phones, which will be available later (maybe in 4 weeks).
41
42New in OM/Pi:
43When copying(i.e. downloading mails) , you can specify, that only mails of a given size should be downloaded. Added mail copy possibility for selected mails.
44
45New in KO/Pi:
46French is now available for KO/Pi.
47Choose menu:Actions - Configure:TAB locale
48Syncing has changed.
49Phone sync available soon.
50Not much changes, I cannot remember them ...
51
52New in KA/Pi:
53Beaming possible.
54Sharp DTM readonly access possible( create a new DTM resource );
55Better searching possible.
56Search is performed only after pressing the return key.
57Use wildcard * to specify parts of a name.
58
59Better name/email selection dialog (called from KO/Pi or OM/Pi). In this dialog, now searching is possible. Like in KA/Pi, use return key and wildcard * .
60
61A big improvement is the new management of the contact access.
62In version 1.9.3, every application was using their own addressbook access data.
63That means, the addressbook was loaded up to three times in the memory, when accessed by KA/Pi, KO/Pi and OM/Pi.
64That was wasting of memory, if you had several hundreds of contacts.
65
66Now only KA/Pi accesses the addressbook.
67If KO/Pi or OM/Pi want to get some name/email data, they request KA/Pi to open the name/email selection dialog and send it back to them.
68If you click on an attendee in a meeting, its contact data is displayed in KA/Pi directly.
69That means, if KO/Pi or OM/Pi want to access contact data, KA/Pi is started first.
70
71New in the KO/Pi alarm applet:
72Configure your own timer popup menu!
73(Text and minutes for timer countdown)
74Just edit the file
75(yourhomedir)/.kopialarmtimerrc
76and start/stop a timer to get a new menu with the data of this file.
77
4********** VERSION 1.9.3 ************ 78********** VERSION 1.9.3 ************
51) 791)
6Now KO/Pi on Windows imports directly the calendar data of 80Now KO/Pi on Windows imports directly the calendar data of
7an installed Outlook. Should work with OL version >= 2000. 81an installed Outlook. Should work with OL version >= 2000.
8 82
9********** VERSION 1.9.2 ************ 83********** VERSION 1.9.2 ************
101) 841)
11KDE-Pim/Pi has got a new member: 85KDE-Pim/Pi has got a new member:
12KmicroMail (KM/Pi) is a mail program, 86KmicroMail (KM/Pi) is a mail program,
13which can handle IMAP and POP mail access. 87which can handle IMAP and POP mail access.
14It is based on Opie-Mail v3. 88It is based on Opie-Mail v3.
15All dependencies to the Opie libraries ar removed, 89All dependencies to the Opie libraries ar removed,
16such that no additional Opie lib is needed. 90such that no additional Opie lib is needed.
17It is already integrated in KO/Pi and KA/Pi. 91It is already integrated in KO/Pi and KA/Pi.
18It it now available for the Zaurus,probably it 92It it now available for the Zaurus,probably it
19will be available for other platforms later. 93will be available for other platforms later.
20Hint: 94Hint:
21Create your own contact (name + email) 95Create your own contact (name + email)
22in KA/Pi, select this contact and choose menu: 96in KA/Pi, select this contact and choose menu:
23Settings - Set Who Am I. 97Settings - Set Who Am I.
24Now the settings of this contact are used as 98Now the settings of this contact are used as
25the sender data in KM/Pi. 99the sender data in KM/Pi.
262) 1002)
27KDE-Pim/Pi is split up in five different 101KDE-Pim/Pi is split up in five different
28packages now precompiled for Sharp Zaurus: 102packages now precompiled for Sharp Zaurus:
29--kmicrokdelibs_1.9.2_arm.ipk 103--kmicrokdelibs_1.9.2_arm.ipk
30The libs are needed for any 104The libs are needed for any
31of the following programs: 105of the following programs:
32--kaddressbook_1.9.2_arm.ipk 106--kaddressbook_1.9.2_arm.ipk
33--kmicromail_1.9.2_arm.ipk 107--kmicromail_1.9.2_arm.ipk
34--korganizer_1.9.2_arm.ipk 108--korganizer_1.9.2_arm.ipk
35Independ from that, there is the alarm applet 109Independ from that, there is the alarm applet
36available for KO/Pi, which also offers 110available for KO/Pi, which also offers
37quick access for a new mail or 111quick access for a new mail or
38showing the addressbook.: 112showing the addressbook.:
39--korganizer-alarm_1.9.2_arm.ipk 113--korganizer-alarm_1.9.2_arm.ipk
40Independend means, that the alarm applet 114Independend means, that the alarm applet
41does not need any of the libs or programs above to run. 115does not need any of the libs or programs above to run.
42But it would be quite useless without these programs. 116But it would be quite useless without these programs.
43NOTE: 117NOTE:
44If you get a 118If you get a
45"This application depends on other programs" 119"This application depends on other programs"
46during installation of 120during installation of
47--kmicrokdelibs_1.9.2_arm.ipk 121--kmicrokdelibs_1.9.2_arm.ipk
48you probably do not have to care about that. 122you probably do not have to care about that.
49kmicrokdelibs_1.9.2 will come with some 123kmicrokdelibs_1.9.2 will come with some
50resource plugins, which needs additional libraries. 124resource plugins, which needs additional libraries.
51(E.g. libopie1, if you want to use the 125(E.g. libopie1, if you want to use the
52opie resource connector in KA/Pi). 126opie resource connector in KA/Pi).
53If you do not have this libraries installed, 127If you do not have this libraries installed,
54you simply cannot use the resource. 128you simply cannot use the resource.
55To make it clear: 129To make it clear:
56If the libraries are missing, the applications 130If the libraries are missing, the applications
57using kmicrokdelibs will start, 131using kmicrokdelibs will start,
58because the resources are plugins. 132because the resources are plugins.
593) 1333)
60KO/Pi and friends are now installable on SD-Card! 134KO/Pi and friends are now installable on SD-Card!
61It is recommended to install all libs and apps 135It is recommended to install all libs and apps
62on the SD card or all in the internal storage. 136on the SD card or all in the internal storage.
63There may be problems, if this is mixed. 137There may be problems, if this is mixed.
644) 1384)
65Fixed two bugs in the alarm notification on Windows. 139Fixed two bugs in the alarm notification on Windows.
665) 1405)
67Great improvement! 141Great improvement!
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index 74e5cf7..1a1bcff 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -233,142 +233,150 @@ KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const
233#ifndef KAB_EMBEDDED 233#ifndef KAB_EMBEDDED
234 connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ), 234 connect( mViewManager, SIGNAL( urlDropped( const KURL& ) ),
235 mXXPortManager, SLOT( importVCard( const KURL& ) ) ); 235 mXXPortManager, SLOT( importVCard( const KURL& ) ) );
236 236
237 connect( mDetails, SIGNAL( browse( const QString& ) ), 237 connect( mDetails, SIGNAL( browse( const QString& ) ),
238 SLOT( browse( const QString& ) ) ); 238 SLOT( browse( const QString& ) ) );
239 239
240 240
241 mAddressBookService = new KAddressBookService( this ); 241 mAddressBookService = new KAddressBookService( this );
242 242
243#endif //KAB_EMBEDDED 243#endif //KAB_EMBEDDED
244 mEditorDialog = 0; 244 mEditorDialog = 0;
245 createAddresseeEditorDialog( this ); 245 createAddresseeEditorDialog( this );
246 setModified( false ); 246 setModified( false );
247} 247}
248 248
249KABCore::~KABCore() 249KABCore::~KABCore()
250{ 250{
251 // save(); 251 // save();
252 //saveSettings(); 252 //saveSettings();
253 //KABPrefs::instance()->writeConfig(); 253 //KABPrefs::instance()->writeConfig();
254 delete AddresseeConfig::instance(); 254 delete AddresseeConfig::instance();
255 mAddressBook = 0; 255 mAddressBook = 0;
256 KABC::StdAddressBook::close(); 256 KABC::StdAddressBook::close();
257} 257}
258 258
259void KABCore::restoreSettings() 259void KABCore::restoreSettings()
260{ 260{
261 mMultipleViewsAtOnce = KABPrefs::instance()->mMultipleViewsAtOnce; 261 mMultipleViewsAtOnce = KABPrefs::instance()->mMultipleViewsAtOnce;
262 262
263 bool state; 263 bool state;
264 264
265 if (mMultipleViewsAtOnce) 265 if (mMultipleViewsAtOnce)
266 state = KABPrefs::instance()->mDetailsPageVisible; 266 state = KABPrefs::instance()->mDetailsPageVisible;
267 else 267 else
268 state = false; 268 state = false;
269 269
270 mActionDetails->setChecked( state ); 270 mActionDetails->setChecked( state );
271 setDetailsVisible( state ); 271 setDetailsVisible( state );
272 272
273 state = KABPrefs::instance()->mJumpButtonBarVisible; 273 state = KABPrefs::instance()->mJumpButtonBarVisible;
274 274
275 mActionJumpBar->setChecked( state ); 275 mActionJumpBar->setChecked( state );
276 setJumpButtonBarVisible( state ); 276 setJumpButtonBarVisible( state );
277/*US 277/*US
278 QValueList<int> splitterSize = KABPrefs::instance()->mDetailsSplitter; 278 QValueList<int> splitterSize = KABPrefs::instance()->mDetailsSplitter;
279 if ( splitterSize.count() == 0 ) { 279 if ( splitterSize.count() == 0 ) {
280 splitterSize.append( width() / 2 ); 280 splitterSize.append( width() / 2 );
281 splitterSize.append( width() / 2 ); 281 splitterSize.append( width() / 2 );
282 } 282 }
283 mMiniSplitter->setSizes( splitterSize ); 283 mMiniSplitter->setSizes( splitterSize );
284 if ( mExtensionBarSplitter ) { 284 if ( mExtensionBarSplitter ) {
285 splitterSize = KABPrefs::instance()->mExtensionsSplitter; 285 splitterSize = KABPrefs::instance()->mExtensionsSplitter;
286 if ( splitterSize.count() == 0 ) { 286 if ( splitterSize.count() == 0 ) {
287 splitterSize.append( width() / 2 ); 287 splitterSize.append( width() / 2 );
288 splitterSize.append( width() / 2 ); 288 splitterSize.append( width() / 2 );
289 } 289 }
290 mExtensionBarSplitter->setSizes( splitterSize ); 290 mExtensionBarSplitter->setSizes( splitterSize );
291 291
292 } 292 }
293*/ 293*/
294 mViewManager->restoreSettings(); 294 mViewManager->restoreSettings();
295 mIncSearchWidget->setCurrentItem( KABPrefs::instance()->mCurrentIncSearchField ); 295 mIncSearchWidget->setCurrentItem( KABPrefs::instance()->mCurrentIncSearchField );
296 mExtensionManager->restoreSettings(); 296 mExtensionManager->restoreSettings();
297 297#ifdef DESKTOP_VERSION
298 QValueList<int> splitterSize = KABPrefs::instance()->mDetailsSplitter; 298 int wid = width();
299 if ( splitterSize.count() == 0 ) { 299 if ( wid < 10 )
300 splitterSize.append( width() / 2 ); 300 wid = 400;
301 splitterSize.append( width() / 2 ); 301#else
302 int wid = QApplication::desktop()->width();
303 if ( wid < 640 )
304 wid = QApplication::desktop()->height();
305#endif
306 QValueList<int> splitterSize;// = KABPrefs::instance()->mDetailsSplitter;
307 if ( true /*splitterSize.count() == 0*/ ) {
308 splitterSize.append( wid / 2 );
309 splitterSize.append( wid / 2 );
302 } 310 }
303 mMiniSplitter->setSizes( splitterSize ); 311 mMiniSplitter->setSizes( splitterSize );
304 if ( mExtensionBarSplitter ) { 312 if ( mExtensionBarSplitter ) {
305 splitterSize = KABPrefs::instance()->mExtensionsSplitter; 313 //splitterSize = KABPrefs::instance()->mExtensionsSplitter;
306 if ( splitterSize.count() == 0 ) { 314 if ( true /*splitterSize.count() == 0*/ ) {
307 splitterSize.append( width() / 2 ); 315 splitterSize.append( wid / 2 );
308 splitterSize.append( width() / 2 ); 316 splitterSize.append( wid / 2 );
309 } 317 }
310 mExtensionBarSplitter->setSizes( splitterSize ); 318 mExtensionBarSplitter->setSizes( splitterSize );
311 319
312 } 320 }
313 321
314 322
315} 323}
316 324
317void KABCore::saveSettings() 325void KABCore::saveSettings()
318{ 326{
319 KABPrefs::instance()->mJumpButtonBarVisible = mActionJumpBar->isChecked(); 327 KABPrefs::instance()->mJumpButtonBarVisible = mActionJumpBar->isChecked();
320 if ( mExtensionBarSplitter ) 328 if ( mExtensionBarSplitter )
321 KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes(); 329 KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes();
322 KABPrefs::instance()->mDetailsPageVisible = mActionDetails->isChecked(); 330 KABPrefs::instance()->mDetailsPageVisible = mActionDetails->isChecked();
323 KABPrefs::instance()->mDetailsSplitter = mMiniSplitter->sizes(); 331 KABPrefs::instance()->mDetailsSplitter = mMiniSplitter->sizes();
324#ifndef KAB_EMBEDDED 332#ifndef KAB_EMBEDDED
325 333
326 KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes(); 334 KABPrefs::instance()->mExtensionsSplitter = mExtensionBarSplitter->sizes();
327 KABPrefs::instance()->mDetailsSplitter = mDetailsSplitter->sizes(); 335 KABPrefs::instance()->mDetailsSplitter = mDetailsSplitter->sizes();
328#endif //KAB_EMBEDDED 336#endif //KAB_EMBEDDED
329 mExtensionManager->saveSettings(); 337 mExtensionManager->saveSettings();
330 mViewManager->saveSettings(); 338 mViewManager->saveSettings();
331 339
332 KABPrefs::instance()->mCurrentIncSearchField = mIncSearchWidget->currentItem(); 340 KABPrefs::instance()->mCurrentIncSearchField = mIncSearchWidget->currentItem();
333} 341}
334 342
335KABC::AddressBook *KABCore::addressBook() const 343KABC::AddressBook *KABCore::addressBook() const
336{ 344{
337 return mAddressBook; 345 return mAddressBook;
338} 346}
339 347
340KConfig *KABCore::config() 348KConfig *KABCore::config()
341{ 349{
342#ifndef KAB_EMBEDDED 350#ifndef KAB_EMBEDDED
343 return KABPrefs::instance()->config(); 351 return KABPrefs::instance()->config();
344#else //KAB_EMBEDDED 352#else //KAB_EMBEDDED
345 return KABPrefs::instance()->getConfig(); 353 return KABPrefs::instance()->getConfig();
346#endif //KAB_EMBEDDED 354#endif //KAB_EMBEDDED
347} 355}
348 356
349KActionCollection *KABCore::actionCollection() const 357KActionCollection *KABCore::actionCollection() const
350{ 358{
351 return mGUIClient->actionCollection(); 359 return mGUIClient->actionCollection();
352} 360}
353 361
354KABC::Field *KABCore::currentSearchField() const 362KABC::Field *KABCore::currentSearchField() const
355{ 363{
356 if (mIncSearchWidget) 364 if (mIncSearchWidget)
357 return mIncSearchWidget->currentField(); 365 return mIncSearchWidget->currentField();
358 else 366 else
359 return 0; 367 return 0;
360} 368}
361 369
362QStringList KABCore::selectedUIDs() const 370QStringList KABCore::selectedUIDs() const
363{ 371{
364 return mViewManager->selectedUids(); 372 return mViewManager->selectedUids();
365} 373}
366 374
367KABC::Resource *KABCore::requestResource( QWidget *parent ) 375KABC::Resource *KABCore::requestResource( QWidget *parent )
368{ 376{
369 QPtrList<KABC::Resource> kabcResources = addressBook()->resources(); 377 QPtrList<KABC::Resource> kabcResources = addressBook()->resources();
370 378
371 QPtrList<KRES::Resource> kresResources; 379 QPtrList<KRES::Resource> kresResources;
372 QPtrListIterator<KABC::Resource> resIt( kabcResources ); 380 QPtrListIterator<KABC::Resource> resIt( kabcResources );
373 KABC::Resource *resource; 381 KABC::Resource *resource;
374 while ( ( resource = resIt.current() ) != 0 ) { 382 while ( ( resource = resIt.current() ) != 0 ) {