summaryrefslogtreecommitdiffabout
Side-by-side diff
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
@@ -318,7 +318,7 @@ KOPrefs::KOPrefs() :
addItemBool("WTshowDetails",&mWTshowDetails,false);
addItemBool("WTshowCreated",&mWTshowCreated,false);
addItemBool("WTshowChanged",&mWTshowChanged,false);
-
+ mCalendars.setAutoDelete( true );
}
@@ -326,7 +326,8 @@ KOPrefs::~KOPrefs()
{
if (mInstance == this)
mInstance = insd.setObject(0);
-
+ mCalendars.setAutoDelete( true );
+ mCalendars.clear();
//qDebug("KOPrefs::~KOPrefs() ");
}
@@ -435,11 +436,65 @@ void KOPrefs::usrReadConfig()
setCategoryColor(*it,config()->readColorEntry(*it,&mDefaultCategoryColor));
}
-
+ config()->setGroup("CCal");
+ int numCals = config()->readNumEntry("NumberCalendars",0 );
+ mNextAvailableCalendar = 1;
+ if ( numCals == 0 ) {
+ KopiCalendarFile *kkf = getNewCalendar();
+ kkf->isStandard = true;
+ kkf->mName = i18n("Standard Calendar");
+ kkf->mFileName = locateLocal( "data", "korganizer/mycalendar.ics" );
+ }
+ while ( mNextAvailableCalendar <= numCals ) {
+ qDebug("Read cal #%d ", mNextAvailableCalendar );
+ QString prefix = "Cal_" +QString::number( mNextAvailableCalendar );
+ KopiCalendarFile *kkf = getNewCalendar();
+ kkf->isStandard = config()->readBoolEntry( prefix+"_isStandard", false );
+ kkf->isEnabled = config()->readBoolEntry( prefix+"_isEnabled", true);
+ kkf->isAlarmEnabled = config()->readBoolEntry( prefix+"_isAlarmEnabled", true);
+ kkf->isReadOnly = config()->readBoolEntry( prefix+"_isReadOnly", false);
+ kkf->mName = config()->readEntry( prefix+"_Name", "Calendar");
+ kkf->mFileName = config()->readEntry( prefix+"_FileName", kkf->mFileName);
+ kkf->mDefaultColor = config()->readColorEntry( prefix+"_Color",&mEventColor);
+ if ( kkf->mCalNumber == 1 ) {
+ kkf->mFileName = locateLocal( "data", "korganizer/mycalendar.ics" );
+ //kkf->mName = i18n("Standard Calendar");
+ }
+ }
+
KPimPrefs::usrReadConfig();
}
+KopiCalendarFile * KOPrefs::getNewCalendar()
+{
+ KopiCalendarFile * kkf = new KopiCalendarFile();
+ kkf->mCalNumber = mNextAvailableCalendar;
+ mDefCalColors.resize( mNextAvailableCalendar );
+ mDefCalColors[mNextAvailableCalendar-1] = kkf;
+ ++mNextAvailableCalendar;
+ kkf->mDefaultColor = mEventColor;
+ kkf->mName = i18n("New Calendar");
+ mCalendars.append( kkf );
+ return kkf;
+}
+void KOPrefs::deleteCalendar( int num )
+{
+ KopiCalendarFile * kkf = mCalendars.first();
+ while ( kkf ) {
+ if ( kkf->mCalNumber == num ) {
+ qDebug("KOPrefs::deleteCalendar %d ", num );
+ mCalendars.remove( kkf );
+ delete kkf;
+ return;
+ }
+ kkf = mCalendars.next();
+ }
+}
+QColor KOPrefs::defaultColor( int calNum ) const
+{
+ return (mDefCalColors[calNum-1])->mDefaultColor;
+}
void KOPrefs::usrWriteConfig()
{
config()->setGroup("General");
@@ -455,8 +510,30 @@ void KOPrefs::usrWriteConfig()
config()->writeEntry(it.currentKey(),*(it.current()));
++it;
}
-
-
+ config()->setGroup("CCal");
+ config()->writeEntry("NumberCalendars",mCalendars.count());
+ int numCal = 1;
+ int writeCal = 0;
+ while ( numCal < mNextAvailableCalendar ) {
+ KopiCalendarFile * kkf = mCalendars.first();
+ while ( kkf ) {
+ qDebug("cal num %d %d ", kkf->mCalNumber, numCal);
+ if ( kkf->mCalNumber == numCal ) {
+ ++writeCal;
+ qDebug("Write calendar %d %d ", numCal , writeCal);
+ QString prefix = "Cal_" + QString::number( writeCal );
+ config()->writeEntry( prefix+"_isStandard", kkf->isStandard );
+ config()->writeEntry( prefix+"_isEnabled", kkf->isEnabled );
+ config()->writeEntry( prefix+"_isAlarmEnabled", kkf->isAlarmEnabled );
+ config()->writeEntry( prefix+"_isReadOnly", kkf->isReadOnly );
+ config()->writeEntry( prefix+"_Name", kkf->mName);
+ config()->writeEntry( prefix+"_FileName", kkf->mFileName);
+ config()->writeEntry( prefix+"_Color",kkf->mDefaultColor);
+ }
+ kkf = mCalendars.next();
+ }
+ ++numCal;
+ }
KPimPrefs::usrWriteConfig();
}
diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h
index 864cf1b..7d71cbd 100644
--- a/korganizer/koprefs.h
+++ b/korganizer/koprefs.h
@@ -26,6 +26,8 @@
#include <libkdepim/kpimprefs.h>
#include <qdict.h>
+#include <qdir.h>
+#include <qobject.h>
class KConfig;
class QFont;
@@ -41,6 +43,29 @@ class QStringList;
#define VIEW_L_VIEW 7
#define VIEW_T_VIEW 8
+class KopiCalendarFile : public QObject
+{
+ public:
+ KopiCalendarFile( ) : QObject( )
+ {
+ isStandard = false;
+ isEnabled = true;
+ isAlarmEnabled = true;
+ isReadOnly = false;
+ mName = "Calendar";
+ mFileName = QDir::homeDirPath() + "/icalfile.ics";
+ mCalNumber = 0;
+ mDefaultColor = Qt::red;
+ }
+ bool isStandard;
+ bool isEnabled;
+ bool isAlarmEnabled;
+ bool isReadOnly;
+ QString mName;
+ QString mFileName;
+ int mCalNumber;
+ QColor mDefaultColor;
+};
class KOPrefs : public KPimPrefs
{
public:
@@ -67,7 +92,9 @@ class KOPrefs : public KPimPrefs
void usrWriteConfig();
void setCategoryDefaults();
void setAllDefaults();
-
+ KopiCalendarFile * getNewCalendar();
+ void deleteCalendar( int );
+ QColor defaultColor( int ) const;
protected:
void setTimeZoneIdDefault();
@@ -305,9 +332,12 @@ class KOPrefs : public KPimPrefs
bool mWTshowChanged;
int mCurrentDisplayedView;
+ QPtrList<KopiCalendarFile> mCalendars;
+ int mNextAvailableCalendar;
private:
QDict<QColor> mCategoryColors;
+ QArray<KopiCalendarFile*> mDefCalColors;
QColor mDefaultCategoryColor;
QFont mDefaultTimeBarFont;