summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koprefs.cpp87
-rw-r--r--korganizer/koprefs.h32
2 files changed, 113 insertions, 6 deletions
diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp
index 8f951ee..179f586 100644
--- a/korganizer/koprefs.cpp
+++ b/korganizer/koprefs.cpp
@@ -319,5 +319,5 @@ KOPrefs::KOPrefs() :
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
@@ -327,5 +327,6 @@ KOPrefs::~KOPrefs()
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}
@@ -436,9 +437,63 @@ void KOPrefs::usrReadConfig()
436 437
437 } 438 }
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 }
464
439 KPimPrefs::usrReadConfig(); 465 KPimPrefs::usrReadConfig();
440} 466}
441 467
442 468
469KopiCalendarFile * 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}
481void 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}
494QColor KOPrefs::defaultColor( int calNum ) const
495{
496 return (mDefCalColors[calNum-1])->mDefaultColor;
497}
443void KOPrefs::usrWriteConfig() 498void KOPrefs::usrWriteConfig()
444{ 499{
@@ -456,6 +511,28 @@ void KOPrefs::usrWriteConfig()
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}
diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h
index 864cf1b..7d71cbd 100644
--- a/korganizer/koprefs.h
+++ b/korganizer/koprefs.h
@@ -27,4 +27,6 @@
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
30class KConfig; 32class KConfig;
@@ -42,4 +44,27 @@ class QStringList;
42#define VIEW_T_VIEW 8 44#define VIEW_T_VIEW 8
43 45
46class 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};
44class KOPrefs : public KPimPrefs 69class KOPrefs : public KPimPrefs
45{ 70{
@@ -68,5 +93,7 @@ class KOPrefs : public KPimPrefs
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();
@@ -306,7 +333,10 @@ class KOPrefs : public KPimPrefs
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