-rw-r--r-- | korganizer/koprefs.cpp | 85 | ||||
-rw-r--r-- | korganizer/koprefs.h | 32 |
2 files changed, 112 insertions, 5 deletions
diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp index 8f951ee..179f586 100644 --- a/korganizer/koprefs.cpp +++ b/korganizer/koprefs.cpp | |||
@@ -313,25 +313,26 @@ KOPrefs::KOPrefs() : | |||
313 | 313 | ||
314 | KPrefs::setCurrentGroup( "ViewOptions" ); | 314 | KPrefs::setCurrentGroup( "ViewOptions" ); |
315 | addItemBool("EVshowDetails",&mEVshowDetails,true); | 315 | addItemBool("EVshowDetails",&mEVshowDetails,true); |
316 | addItemBool("EVshowCreated",&mEVshowCreated,true); | 316 | addItemBool("EVshowCreated",&mEVshowCreated,true); |
317 | addItemBool("EVshowChanged",&mEVshowChanged,true); | 317 | addItemBool("EVshowChanged",&mEVshowChanged,true); |
318 | addItemBool("WTshowDetails",&mWTshowDetails,false); | 318 | addItemBool("WTshowDetails",&mWTshowDetails,false); |
319 | addItemBool("WTshowCreated",&mWTshowCreated,false); | 319 | addItemBool("WTshowCreated",&mWTshowCreated,false); |
320 | addItemBool("WTshowChanged",&mWTshowChanged,false); | 320 | addItemBool("WTshowChanged",&mWTshowChanged,false); |
321 | 321 | mCalendars.setAutoDelete( true ); | |
322 | } | 322 | } |
323 | 323 | ||
324 | 324 | ||
325 | KOPrefs::~KOPrefs() | 325 | KOPrefs::~KOPrefs() |
326 | { | 326 | { |
327 | if (mInstance == this) | 327 | if (mInstance == this) |
328 | mInstance = insd.setObject(0); | 328 | mInstance = insd.setObject(0); |
329 | 329 | mCalendars.setAutoDelete( true ); | |
330 | mCalendars.clear(); | ||
330 | //qDebug("KOPrefs::~KOPrefs() "); | 331 | //qDebug("KOPrefs::~KOPrefs() "); |
331 | } | 332 | } |
332 | 333 | ||
333 | 334 | ||
334 | KOPrefs *KOPrefs::instance() | 335 | KOPrefs *KOPrefs::instance() |
335 | { | 336 | { |
336 | if (!mInstance) { | 337 | if (!mInstance) { |
337 | mInstance = insd.setObject(new KOPrefs()); | 338 | mInstance = insd.setObject(new KOPrefs()); |
@@ -430,38 +431,114 @@ void KOPrefs::usrReadConfig() | |||
430 | fillMailDefaults(); | 431 | fillMailDefaults(); |
431 | 432 | ||
432 | config()->setGroup("Category Colors"); | 433 | config()->setGroup("Category Colors"); |
433 | QStringList::Iterator it; | 434 | QStringList::Iterator it; |
434 | for (it = mCustomCategories.begin();it != mCustomCategories.end();++it ) { | 435 | for (it = mCustomCategories.begin();it != mCustomCategories.end();++it ) { |
435 | setCategoryColor(*it,config()->readColorEntry(*it,&mDefaultCategoryColor)); | 436 | setCategoryColor(*it,config()->readColorEntry(*it,&mDefaultCategoryColor)); |
436 | 437 | ||
437 | } | 438 | } |
439 | config()->setGroup("CCal"); | ||
440 | int numCals = config()->readNumEntry("NumberCalendars",0 ); | ||
441 | mNextAvailableCalendar = 1; | ||
442 | if ( numCals == 0 ) { | ||
443 | KopiCalendarFile *kkf = getNewCalendar(); | ||
444 | kkf->isStandard = true; | ||
445 | kkf->mName = i18n("Standard Calendar"); | ||
446 | kkf->mFileName = locateLocal( "data", "korganizer/mycalendar.ics" ); | ||
447 | } | ||
448 | while ( mNextAvailableCalendar <= numCals ) { | ||
449 | qDebug("Read cal #%d ", mNextAvailableCalendar ); | ||
450 | QString prefix = "Cal_" +QString::number( mNextAvailableCalendar ); | ||
451 | KopiCalendarFile *kkf = getNewCalendar(); | ||
452 | kkf->isStandard = config()->readBoolEntry( prefix+"_isStandard", false ); | ||
453 | kkf->isEnabled = config()->readBoolEntry( prefix+"_isEnabled", true); | ||
454 | kkf->isAlarmEnabled = config()->readBoolEntry( prefix+"_isAlarmEnabled", true); | ||
455 | kkf->isReadOnly = config()->readBoolEntry( prefix+"_isReadOnly", false); | ||
456 | kkf->mName = config()->readEntry( prefix+"_Name", "Calendar"); | ||
457 | kkf->mFileName = config()->readEntry( prefix+"_FileName", kkf->mFileName); | ||
458 | kkf->mDefaultColor = config()->readColorEntry( prefix+"_Color",&mEventColor); | ||
459 | if ( kkf->mCalNumber == 1 ) { | ||
460 | kkf->mFileName = locateLocal( "data", "korganizer/mycalendar.ics" ); | ||
461 | //kkf->mName = i18n("Standard Calendar"); | ||
462 | } | ||
463 | } | ||
438 | 464 | ||
439 | KPimPrefs::usrReadConfig(); | 465 | KPimPrefs::usrReadConfig(); |
440 | } | 466 | } |
441 | 467 | ||
442 | 468 | ||
469 | KopiCalendarFile * KOPrefs::getNewCalendar() | ||
470 | { | ||
471 | KopiCalendarFile * kkf = new KopiCalendarFile(); | ||
472 | kkf->mCalNumber = mNextAvailableCalendar; | ||
473 | mDefCalColors.resize( mNextAvailableCalendar ); | ||
474 | mDefCalColors[mNextAvailableCalendar-1] = kkf; | ||
475 | ++mNextAvailableCalendar; | ||
476 | kkf->mDefaultColor = mEventColor; | ||
477 | kkf->mName = i18n("New Calendar"); | ||
478 | mCalendars.append( kkf ); | ||
479 | return kkf; | ||
480 | } | ||
481 | void KOPrefs::deleteCalendar( int num ) | ||
482 | { | ||
483 | KopiCalendarFile * kkf = mCalendars.first(); | ||
484 | while ( kkf ) { | ||
485 | if ( kkf->mCalNumber == num ) { | ||
486 | qDebug("KOPrefs::deleteCalendar %d ", num ); | ||
487 | mCalendars.remove( kkf ); | ||
488 | delete kkf; | ||
489 | return; | ||
490 | } | ||
491 | kkf = mCalendars.next(); | ||
492 | } | ||
493 | } | ||
494 | QColor KOPrefs::defaultColor( int calNum ) const | ||
495 | { | ||
496 | return (mDefCalColors[calNum-1])->mDefaultColor; | ||
497 | } | ||
443 | void KOPrefs::usrWriteConfig() | 498 | void KOPrefs::usrWriteConfig() |
444 | { | 499 | { |
445 | config()->setGroup("General"); | 500 | config()->setGroup("General"); |
446 | config()->writeEntry("Custom Categories",mCustomCategories); | 501 | config()->writeEntry("Custom Categories",mCustomCategories); |
447 | 502 | ||
448 | config()->setGroup("Personal Settings"); | 503 | config()->setGroup("Personal Settings"); |
449 | config()->writeEntry("user_name",mName); | 504 | config()->writeEntry("user_name",mName); |
450 | config()->writeEntry("user_email",mEmail); | 505 | config()->writeEntry("user_email",mEmail); |
451 | 506 | ||
452 | config()->setGroup("Category Colors"); | 507 | config()->setGroup("Category Colors"); |
453 | QDictIterator<QColor> it(mCategoryColors); | 508 | QDictIterator<QColor> it(mCategoryColors); |
454 | while (it.current()) { | 509 | while (it.current()) { |
455 | config()->writeEntry(it.currentKey(),*(it.current())); | 510 | config()->writeEntry(it.currentKey(),*(it.current())); |
456 | ++it; | 511 | ++it; |
457 | } | 512 | } |
458 | 513 | config()->setGroup("CCal"); | |
459 | 514 | config()->writeEntry("NumberCalendars",mCalendars.count()); | |
515 | int numCal = 1; | ||
516 | int writeCal = 0; | ||
517 | while ( numCal < mNextAvailableCalendar ) { | ||
518 | KopiCalendarFile * kkf = mCalendars.first(); | ||
519 | while ( kkf ) { | ||
520 | qDebug("cal num %d %d ", kkf->mCalNumber, numCal); | ||
521 | if ( kkf->mCalNumber == numCal ) { | ||
522 | ++writeCal; | ||
523 | qDebug("Write calendar %d %d ", numCal , writeCal); | ||
524 | QString prefix = "Cal_" + QString::number( writeCal ); | ||
525 | config()->writeEntry( prefix+"_isStandard", kkf->isStandard ); | ||
526 | config()->writeEntry( prefix+"_isEnabled", kkf->isEnabled ); | ||
527 | config()->writeEntry( prefix+"_isAlarmEnabled", kkf->isAlarmEnabled ); | ||
528 | config()->writeEntry( prefix+"_isReadOnly", kkf->isReadOnly ); | ||
529 | config()->writeEntry( prefix+"_Name", kkf->mName); | ||
530 | config()->writeEntry( prefix+"_FileName", kkf->mFileName); | ||
531 | config()->writeEntry( prefix+"_Color",kkf->mDefaultColor); | ||
532 | } | ||
533 | kkf = mCalendars.next(); | ||
534 | } | ||
535 | ++numCal; | ||
536 | } | ||
460 | KPimPrefs::usrWriteConfig(); | 537 | KPimPrefs::usrWriteConfig(); |
461 | } | 538 | } |
462 | 539 | ||
463 | void KOPrefs::setCategoryColor(QString cat,const QColor & color) | 540 | void KOPrefs::setCategoryColor(QString cat,const QColor & color) |
464 | { | 541 | { |
465 | mCategoryColors.replace(cat,new QColor(color)); | 542 | mCategoryColors.replace(cat,new QColor(color)); |
466 | } | 543 | } |
467 | 544 | ||
diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h index 864cf1b..7d71cbd 100644 --- a/korganizer/koprefs.h +++ b/korganizer/koprefs.h | |||
@@ -21,31 +21,56 @@ | |||
21 | without including the source code for Qt in the source distribution. | 21 | without including the source code for Qt in the source distribution. |
22 | */ | 22 | */ |
23 | #ifndef KOPREFS_H | 23 | #ifndef KOPREFS_H |
24 | #define KOPREFS_H | 24 | #define KOPREFS_H |
25 | 25 | ||
26 | 26 | ||
27 | #include <libkdepim/kpimprefs.h> | 27 | #include <libkdepim/kpimprefs.h> |
28 | #include <qdict.h> | 28 | #include <qdict.h> |
29 | #include <qdir.h> | ||
30 | #include <qobject.h> | ||
29 | 31 | ||
30 | class KConfig; | 32 | class KConfig; |
31 | class QFont; | 33 | class QFont; |
32 | class QColor; | 34 | class QColor; |
33 | class QStringList; | 35 | class QStringList; |
34 | 36 | ||
35 | #define VIEW_WN_VIEW 1 | 37 | #define VIEW_WN_VIEW 1 |
36 | #define VIEW_NX_VIEW 2 | 38 | #define VIEW_NX_VIEW 2 |
37 | #define VIEW_J_VIEW 3 | 39 | #define VIEW_J_VIEW 3 |
38 | #define VIEW_A_VIEW 4 | 40 | #define VIEW_A_VIEW 4 |
39 | #define VIEW_ML_VIEW 5 | 41 | #define VIEW_ML_VIEW 5 |
40 | #define VIEW_M_VIEW 6 | 42 | #define VIEW_M_VIEW 6 |
41 | #define VIEW_L_VIEW 7 | 43 | #define VIEW_L_VIEW 7 |
42 | #define VIEW_T_VIEW 8 | 44 | #define VIEW_T_VIEW 8 |
43 | 45 | ||
46 | class KopiCalendarFile : public QObject | ||
47 | { | ||
48 | public: | ||
49 | KopiCalendarFile( ) : QObject( ) | ||
50 | { | ||
51 | isStandard = false; | ||
52 | isEnabled = true; | ||
53 | isAlarmEnabled = true; | ||
54 | isReadOnly = false; | ||
55 | mName = "Calendar"; | ||
56 | mFileName = QDir::homeDirPath() + "/icalfile.ics"; | ||
57 | mCalNumber = 0; | ||
58 | mDefaultColor = Qt::red; | ||
59 | } | ||
60 | bool isStandard; | ||
61 | bool isEnabled; | ||
62 | bool isAlarmEnabled; | ||
63 | bool isReadOnly; | ||
64 | QString mName; | ||
65 | QString mFileName; | ||
66 | int mCalNumber; | ||
67 | QColor mDefaultColor; | ||
68 | }; | ||
44 | class KOPrefs : public KPimPrefs | 69 | class KOPrefs : public KPimPrefs |
45 | { | 70 | { |
46 | public: | 71 | public: |
47 | enum { FormatVCalendar, FormatICalendar }; | 72 | enum { FormatVCalendar, FormatICalendar }; |
48 | enum { MailClientKMail, MailClientSendmail }; | 73 | enum { MailClientKMail, MailClientSendmail }; |
49 | enum { IMIPDummy, IMIPKMail }; | 74 | enum { IMIPDummy, IMIPKMail }; |
50 | enum { IMIPOutbox, IMIPdirectsend }; | 75 | enum { IMIPOutbox, IMIPdirectsend }; |
51 | enum { neverAuto, addressbookAuto, selectedAuto }; | 76 | enum { neverAuto, addressbookAuto, selectedAuto }; |
@@ -62,17 +87,19 @@ class KOPrefs : public KPimPrefs | |||
62 | 87 | ||
63 | /** Read preferences from config file */ | 88 | /** Read preferences from config file */ |
64 | void usrReadConfig(); | 89 | void usrReadConfig(); |
65 | 90 | ||
66 | /** Write preferences to config file */ | 91 | /** Write preferences to config file */ |
67 | void usrWriteConfig(); | 92 | void usrWriteConfig(); |
68 | void setCategoryDefaults(); | 93 | void setCategoryDefaults(); |
69 | void setAllDefaults(); | 94 | void setAllDefaults(); |
70 | 95 | KopiCalendarFile * getNewCalendar(); | |
96 | void deleteCalendar( int ); | ||
97 | QColor defaultColor( int ) const; | ||
71 | protected: | 98 | protected: |
72 | void setTimeZoneIdDefault(); | 99 | void setTimeZoneIdDefault(); |
73 | 100 | ||
74 | /** Fill empty mail fields with default values. */ | 101 | /** Fill empty mail fields with default values. */ |
75 | void fillMailDefaults(); | 102 | void fillMailDefaults(); |
76 | 103 | ||
77 | private: | 104 | private: |
78 | /** Constructor disabled for public. Use instance() to create a KOPrefs | 105 | /** Constructor disabled for public. Use instance() to create a KOPrefs |
@@ -300,19 +327,22 @@ class KOPrefs : public KPimPrefs | |||
300 | bool mEVshowDetails; | 327 | bool mEVshowDetails; |
301 | bool mEVshowCreated; | 328 | bool mEVshowCreated; |
302 | bool mEVshowChanged; | 329 | bool mEVshowChanged; |
303 | bool mWTshowDetails; | 330 | bool mWTshowDetails; |
304 | bool mWTshowCreated; | 331 | bool mWTshowCreated; |
305 | bool mWTshowChanged; | 332 | bool mWTshowChanged; |
306 | 333 | ||
307 | int mCurrentDisplayedView; | 334 | int mCurrentDisplayedView; |
335 | QPtrList<KopiCalendarFile> mCalendars; | ||
336 | int mNextAvailableCalendar; | ||
308 | 337 | ||
309 | private: | 338 | private: |
310 | QDict<QColor> mCategoryColors; | 339 | QDict<QColor> mCategoryColors; |
340 | QArray<KopiCalendarFile*> mDefCalColors; | ||
311 | QColor mDefaultCategoryColor; | 341 | QColor mDefaultCategoryColor; |
312 | 342 | ||
313 | QFont mDefaultTimeBarFont; | 343 | QFont mDefaultTimeBarFont; |
314 | QFont mDefaultViewFont; | 344 | QFont mDefaultViewFont; |
315 | QFont mDefaultMonthViewFont; | 345 | QFont mDefaultMonthViewFont; |
316 | 346 | ||
317 | QString mName; | 347 | QString mName; |
318 | QString mEmail; | 348 | QString mEmail; |