summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (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
@@ -315,21 +315,22 @@ KOPrefs::KOPrefs() :
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
325KOPrefs::~KOPrefs() 325KOPrefs::~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
334KOPrefs *KOPrefs::instance() 335KOPrefs *KOPrefs::instance()
335{ 336{
@@ -432,17 +433,71 @@ void KOPrefs::usrReadConfig()
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 }
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{
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");
@@ -452,14 +507,36 @@ void KOPrefs::usrWriteConfig()
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
463void KOPrefs::setCategoryColor(QString cat,const QColor & color) 540void KOPrefs::setCategoryColor(QString cat,const QColor & color)
464{ 541{
465 mCategoryColors.replace(cat,new QColor(color)); 542 mCategoryColors.replace(cat,new QColor(color));
diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h
index 864cf1b..7d71cbd 100644
--- a/korganizer/koprefs.h
+++ b/korganizer/koprefs.h
@@ -23,12 +23,14 @@
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
30class KConfig; 32class KConfig;
31class QFont; 33class QFont;
32class QColor; 34class QColor;
33class QStringList; 35class QStringList;
34 36
@@ -38,12 +40,35 @@ class QStringList;
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
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{
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 };
@@ -64,13 +89,15 @@ class KOPrefs : public KPimPrefs
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
@@ -302,15 +329,18 @@ class KOPrefs : public KPimPrefs
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