summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (more/less context) (show whitespace changes)
-rw-r--r--korganizer/journalentry.cpp51
-rw-r--r--korganizer/journalentry.h7
-rw-r--r--korganizer/koeditorgeneral.cpp8
-rw-r--r--korganizer/kojournalview.cpp10
-rw-r--r--korganizer/koprefs.cpp10
-rw-r--r--korganizer/koprefs.h1
6 files changed, 62 insertions, 25 deletions
diff --git a/korganizer/journalentry.cpp b/korganizer/journalentry.cpp
index 4751d40..56221dc 100644
--- a/korganizer/journalentry.cpp
+++ b/korganizer/journalentry.cpp
@@ -34,266 +34,295 @@
34#include <qpixmap.h> 34#include <qpixmap.h>
35#include <qpushbutton.h> 35#include <qpushbutton.h>
36#include <qapplication.h> 36#include <qapplication.h>
37 37
38#include <kdebug.h> 38#include <kdebug.h>
39#include <kglobal.h> 39#include <kglobal.h>
40#include <klocale.h> 40#include <klocale.h>
41#include <ktextedit.h> 41#include <ktextedit.h>
42#include <kfiledialog.h> 42#include <kfiledialog.h>
43#include <kmessagebox.h> 43#include <kmessagebox.h>
44#include "koprefs.h" 44#include "koprefs.h"
45#include <klineedit.h> 45#include <klineedit.h>
46#include <kdialog.h> 46#include <kdialog.h>
47#include "kolocationbox.h" 47#include "kolocationbox.h"
48 48
49#include <libkcal/journal.h> 49#include <libkcal/journal.h>
50#include <libkcal/calendarresources.h> 50#include <libkcal/calendarresources.h>
51#include <libkcal/resourcecalendar.h> 51#include <libkcal/resourcecalendar.h>
52#include <kresources/resourceselectdialog.h> 52#include <kresources/resourceselectdialog.h>
53 53
54#include "journalentry.h" 54#include "journalentry.h"
55//#include "journalentry.moc" 55//#include "journalentry.moc"
56#ifndef DESKTOP_VERSION 56#ifndef DESKTOP_VERSION
57#include <qpe/qpeapplication.h> 57#include <qpe/qpeapplication.h>
58#endif 58#endif
59JournalEntry::JournalEntry(Calendar *calendar,QWidget *parent) : 59JournalEntry::JournalEntry(Calendar *calendar,QWidget *parent) :
60 QFrame(parent) 60 QFrame(parent)
61{ 61{
62 62
63 int fac = 5; 63 int fac = 5;
64 heiHint = QApplication::desktop()->height(); 64 heiHint = QApplication::desktop()->height();
65 if ( heiHint > 800 ) 65 if ( heiHint > 800 )
66 fac += 2; 66 fac += 2;
67 heiHint = heiHint / fac; 67 heiHint = heiHint / fac;
68 68
69 showOnlyMode = false; 69 showOnlyMode = false;
70 mCalendar = calendar; 70 mCalendar = calendar;
71 mJournal = 0; 71 mJournal = 0;
72 visibleMode = true; 72 visibleMode = true;
73 QHBox * vb = new QHBox ( this ); 73 QHBox * vb = new QHBox ( this );
74 QPixmap iconp; 74 QPixmap iconp;
75 vb->setMargin ( KDialog::marginHint()-1 ); 75 vb->setMargin ( KDialog::marginHint()-1 );
76 QPushButton * toggleJournal = new QPushButton( vb ); 76 QPushButton * toggleJournal = new QPushButton( vb );
77 iconp = SmallIcon("1updownarrow"); 77 iconp = SmallIcon("1updownarrow");
78 toggleJournal->setPixmap (iconp ) ; 78 toggleJournal->setPixmap (iconp ) ;
79 new QLabel(" "+i18n("Title: "),vb); 79 new QLabel(" "+i18n("Title: "),vb);
80 mTitle = new KOLocationBox(TRUE, vb, 30); 80 mTitle = new KOLocationBox(TRUE, vb, 30);
81 mTitle->setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding ,QSizePolicy::Fixed ,FALSE) ); 81 mTitle->setSizePolicy( QSizePolicy( QSizePolicy::MinimumExpanding ,QSizePolicy::Fixed ,FALSE) );
82 mTitleLabel = new QLabel(i18n("Title"),vb); 82 mCalendarBox = new QComboBox(vb);
83 mTitleLabel->setMargin(0); 83 //mTitleLabel->setMargin(0);
84 mTitleLabel->setAlignment(AlignCenter); 84 //mTitleLabel->setAlignment(AlignCenter);
85 QPushButton * loadTemplate = new QPushButton( vb ); 85 QPushButton * loadTemplate = new QPushButton( vb );
86 QPushButton * saveTemplate = new QPushButton( vb ); 86 QPushButton * saveTemplate = new QPushButton( vb );
87 if ( QApplication::desktop()->width() < 321 ) 87 if ( QApplication::desktop()->width() < 321 )
88 iconp = SmallIcon("fileexport16"); 88 iconp = SmallIcon("fileexport16");
89 else 89 else
90 iconp = SmallIcon("fileexport"); 90 iconp = SmallIcon("fileexport");
91 saveTemplate->setPixmap (iconp ) ; 91 saveTemplate->setPixmap (iconp ) ;
92 int size = saveTemplate->sizeHint().height(); 92 int size = saveTemplate->sizeHint().height();
93 if ( QApplication::desktop()->width() < 321 ) 93 if ( QApplication::desktop()->width() < 321 )
94 iconp = SmallIcon("fileimport16"); 94 iconp = SmallIcon("fileimport16");
95 else 95 else
96 iconp = SmallIcon("fileimport"); 96 iconp = SmallIcon("fileimport");
97 loadTemplate->setPixmap (iconp ) ; 97 loadTemplate->setPixmap (iconp ) ;
98 loadTemplate->setFixedSize( size, size ); 98 loadTemplate->setFixedSize( size, size );
99 saveTemplate->setFixedSize( size, size ); 99 saveTemplate->setFixedSize( size, size );
100 toggleJournal->setFixedSize( size , size ); 100 toggleJournal->setFixedSize( size , size );
101 mTitle->setMaximumHeight( size+4); 101 mTitle->setMaximumHeight( size+4);
102 mCalendarBox->setMaximumHeight( size+4);
102 mEditor = new KTextEdit(this); 103 mEditor = new KTextEdit(this);
103#ifndef DESKTOP_VERSION 104#ifndef DESKTOP_VERSION
104 QPEApplication::setStylusOperation( mEditor, QPEApplication::RightOnHold ); 105 QPEApplication::setStylusOperation( mEditor, QPEApplication::RightOnHold );
105#endif 106#endif
106 mEditor->setWordWrap( KTextEdit::WidgetWidth ); 107 mEditor->setWordWrap( KTextEdit::WidgetWidth );
107 QBoxLayout *topLayout = new QVBoxLayout(this); 108 QBoxLayout *topLayout = new QVBoxLayout(this);
108 topLayout->addWidget(vb); 109 topLayout->addWidget(vb);
109 topLayout->addWidget(mEditor); 110 topLayout->addWidget(mEditor);
110 mEditor->installEventFilter(this); 111 mEditor->installEventFilter(this);
111 connect( saveTemplate, SIGNAL( clicked() ), this , SLOT( slotSaveTemplate() ) ); 112 connect( saveTemplate, SIGNAL( clicked() ), this , SLOT( slotSaveTemplate() ) );
112 connect( loadTemplate, SIGNAL( clicked() ), this , SLOT( slotLoadTemplate() ) ); 113 connect( loadTemplate, SIGNAL( clicked() ), this , SLOT( slotLoadTemplate() ) );
113 connect( toggleJournal, SIGNAL( clicked() ), this , SLOT( toggleShowJournal() ) ); 114 connect( toggleJournal, SIGNAL( clicked() ), this , SLOT( toggleShowJournal() ) );
114 mTitle->load( KOLocationBox::SUMMARYJOURNAL ); 115 mTitle->load( KOLocationBox::SUMMARYJOURNAL );
115 mTitle->lineEdit ()->setText(""); 116 mTitle->lineEdit ()->setText("");
116} 117}
117 118
118JournalEntry::~JournalEntry() 119JournalEntry::~JournalEntry()
119{ 120{
120 //qDebug("JournalEntry::~JournalEntry() "); 121 //qDebug("JournalEntry::~JournalEntry() ");
121} 122}
122QSize JournalEntry::sizeHint() const 123QSize JournalEntry::sizeHint() const
123{ 124{
124 return QSize ( 240, heiHint ); 125 return QSize ( 240, heiHint );
125} 126}
126void JournalEntry::slotSaveTemplate() 127void JournalEntry::slotSaveTemplate()
127{ 128{
128 QString fileName =locateLocal( "templates", "journals" ); 129 QString fileName =locateLocal( "templates", "journals" );
129 QDir t_dir; 130 QDir t_dir;
130 if ( !t_dir.exists(fileName) ) 131 if ( !t_dir.exists(fileName) )
131 t_dir.mkdir ( fileName ); 132 t_dir.mkdir ( fileName );
132 fileName += "/journal"; 133 fileName += "/journal";
133 fileName = KFileDialog::getSaveFileName( fileName , i18n("Save as Journal template"), this ); 134 fileName = KFileDialog::getSaveFileName( fileName , i18n("Save as Journal template"), this );
134 if ( fileName.length() == 0 ) 135 if ( fileName.length() == 0 )
135 return; 136 return;
136 137
137 QFile fileIn( fileName ); 138 QFile fileIn( fileName );
138 if (!fileIn.open( IO_WriteOnly ) ) { 139 if (!fileIn.open( IO_WriteOnly ) ) {
139 KMessageBox::error( this, i18n("Error saving template file\n '%1'.") 140 KMessageBox::error( this, i18n("Error saving template file\n '%1'.")
140 .arg( fileName ) ); 141 .arg( fileName ) );
141 return; 142 return;
142 } 143 }
143 // QString text; 144 // QString text;
144 QTextStream tsIn( &fileIn ); 145 QTextStream tsIn( &fileIn );
145 tsIn.setCodec( QTextCodec::codecForName("utf8") ); 146 tsIn.setCodec( QTextCodec::codecForName("utf8") );
146 tsIn << mEditor->text(); 147 tsIn << mEditor->text();
147 fileIn.close(); 148 fileIn.close();
148} 149}
149void JournalEntry::slotLoadTemplate() 150void JournalEntry::slotLoadTemplate()
150{ 151{
151 QString fileName =locateLocal( "templates", "journals" ); 152 QString fileName =locateLocal( "templates", "journals" );
152 QDir t_dir; 153 QDir t_dir;
153 if ( !t_dir.exists(fileName) ) 154 if ( !t_dir.exists(fileName) )
154 t_dir.mkdir ( fileName ); 155 t_dir.mkdir ( fileName );
155 fileName += "/journal"; 156 fileName += "/journal";
156 fileName = KFileDialog::getOpenFileName( fileName , i18n("Insert Journal template"), this ); 157 fileName = KFileDialog::getOpenFileName( fileName , i18n("Insert Journal template"), this );
157 if ( fileName.length() == 0 ) 158 if ( fileName.length() == 0 )
158 return; 159 return;
159 QFile fileIn( fileName ); 160 QFile fileIn( fileName );
160 if (!fileIn.open( IO_ReadOnly ) ) { 161 if (!fileIn.open( IO_ReadOnly ) ) {
161 KMessageBox::error( this, i18n("Error loading template file\n '%1'.") 162 KMessageBox::error( this, i18n("Error loading template file\n '%1'.")
162 .arg( fileName ) ); 163 .arg( fileName ) );
163 return; 164 return;
164 } 165 }
165 QTextStream tsIn( &fileIn ); 166 QTextStream tsIn( &fileIn );
166 tsIn.setCodec( QTextCodec::codecForName("utf8") ); 167 tsIn.setCodec( QTextCodec::codecForName("utf8") );
167 QString text = tsIn.read(); 168 QString text = tsIn.read();
168 fileIn.close(); 169 fileIn.close();
169 int line, col; 170 int line, col;
170 mEditor->getCursorPosition (& line, & col ); 171 mEditor->getCursorPosition (& line, & col );
171 mEditor-> insertAt ( text, line, col, true ); 172 mEditor-> insertAt ( text, line, col, true );
172 //mEditor->setIgnoreMark( true ); 173 //mEditor->setIgnoreMark( true );
173} 174}
174void JournalEntry::setDate(const QDate &date) 175void JournalEntry::setDate(const QDate &date)
175{ 176{
176 showOnlyMode = false; 177 showOnlyMode = false;
177 writeJournal(); 178 writeJournal();
178 mDate = date; 179 mDate = date;
179 int id = mCalendar->defaultCalendar(); 180 fillCalendar( mCalendar->defaultCalendar() );
180 QString calname = KOPrefs::instance()->getCalendar( id )->mName; 181}
181 mTitleLabel->setText( " (" + calname +")"); 182void JournalEntry::fillCalendar( int setToID )
183{
184 mCalendarBox->clear();
185 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first();
186 int std = 0;
187 int count = 0;
188 while ( kkf ) {
189 if ( (!kkf->mErrorOnLoad &&! kkf->isReadOnly) || setToID == kkf->mCalNumber ) {
190 if ( setToID ) {
191 if ( kkf->mCalNumber == setToID )
192 std = count;
193 } else {
194 if ( kkf->isStandard ) {
195 std = count;
196 }
197 }
198 ++count;
199 mCalendarBox->insertItem( kkf->mName );
200 }
201 kkf = KOPrefs::instance()->mCalendars.next();
202 }
203 mCalendarBox->setCurrentItem( std );
204 if ( KOPrefs::instance()->mCalendars.count() == 1 )
205 mCalendarBox->hide();
206 else
207 mCalendarBox->show();
182} 208}
183 209
184void JournalEntry::toggleShowJournal() 210void JournalEntry::toggleShowJournal()
185{ 211{
186 if (!mEditor->text().isEmpty() || !mTitle->currentText ().isEmpty()) 212 if (!mEditor->text().isEmpty() || !mTitle->currentText ().isEmpty())
187 flushEntry(); 213 flushEntry();
188 if ( showOnlyMode ) 214 if ( showOnlyMode )
189 emit showJournalOnly( 0 ); 215 emit showJournalOnly( 0 );
190 else { 216 else {
191 // we have to protect mJournal from deleting if mJournal has empty text 217 // we have to protect mJournal from deleting if mJournal has empty text
192 visibleMode = false; // set to true via :setShowOnly() 218 visibleMode = false; // set to true via :setShowOnly()
193 emit showJournalOnly( mJournal ); 219 emit showJournalOnly( mJournal );
194 //QTimer::singleShot( 0, this, SLOT( setVisibleOn() ) ); 220 //QTimer::singleShot( 0, this, SLOT( setVisibleOn() ) );
195 } 221 }
196} 222}
197void JournalEntry::setVisibleOn() 223void JournalEntry::setVisibleOn()
198{ 224{
199 visibleMode = true; 225 visibleMode = true;
200} 226}
201void JournalEntry::setShowOnly() 227void JournalEntry::setShowOnly()
202{ 228{
203 showOnlyMode = true; 229 showOnlyMode = true;
204 if ( mTitle->currentText().isEmpty() ) 230 if ( mTitle->currentText().isEmpty() )
205 mTitle->setFocus(); 231 mTitle->setFocus();
206 else 232 else
207 mEditor->setFocus(); 233 mEditor->setFocus();
208} 234}
209void JournalEntry::setJournal(Journal *journal) 235void JournalEntry::setJournal(Journal *journal, bool saveJournal )
210{ 236{
237 if ( saveJournal )
211 writeJournal(); 238 writeJournal();
212 mTitle->load( KOLocationBox::SUMMARYJOURNAL ); 239 mTitle->load( KOLocationBox::SUMMARYJOURNAL );
213 240
214 mJournal = journal; 241 mJournal = journal;
215 if ( journal->isReadOnly() ) 242 if ( journal->isReadOnly() )
216 mTitle->lineEdit ()->setText(mJournal->summary()+" ("+i18n("readonly")+")"); 243 mTitle->lineEdit ()->setText(mJournal->summary()+" ("+i18n("readonly")+")");
217 else 244 else
218 mTitle->lineEdit ()->setText(mJournal->summary()); 245 mTitle->lineEdit ()->setText(mJournal->summary());
219 mEditor->setText(mJournal->description()); 246 mEditor->setText(mJournal->description());
220 mTitle->setEnabled (!journal->isReadOnly() ); 247 mTitle->setEnabled (!journal->isReadOnly() );
221 mEditor->setReadOnly ( journal->isReadOnly() ); 248 mEditor->setReadOnly ( journal->isReadOnly() );
222 int id = mJournal->calID(); 249 fillCalendar( mJournal->calID() );
223
224 QString calname = KOPrefs::instance()->getCalendar( id )->mName;
225 mTitleLabel->setText( " (" + calname +")");
226} 250}
227 251
228Journal *JournalEntry::journal() const 252Journal *JournalEntry::journal() const
229{ 253{
230 return mJournal; 254 return mJournal;
231} 255}
232 256
233 257
234void JournalEntry::clear() 258void JournalEntry::clear()
235{ 259{
236 mJournal = 0; 260 mJournal = 0;
237 mEditor->setText(""); 261 mEditor->setText("");
238 mTitle->load( KOLocationBox::SUMMARYJOURNAL ); 262 mTitle->load( KOLocationBox::SUMMARYJOURNAL );
239 mTitle->lineEdit ()->setText(""); 263 mTitle->lineEdit ()->setText("");
240} 264}
241 265
242bool JournalEntry::eventFilter( QObject *o, QEvent *e ) 266bool JournalEntry::eventFilter( QObject *o, QEvent *e )
243{ 267{
244// kdDebug() << "JournalEntry::event received " << e->type() << endl; 268// kdDebug() << "JournalEntry::event received " << e->type() << endl;
245 269
246 if ( e->type() == QEvent::FocusOut ) { 270 if ( e->type() == QEvent::FocusOut ) {
247 writeJournal(); 271 writeJournal();
248 } 272 }
249 if ( e->type() == QEvent::KeyPress ) { 273 if ( e->type() == QEvent::KeyPress ) {
250 QKeyEvent * k = (QKeyEvent *) e; 274 QKeyEvent * k = (QKeyEvent *) e;
251 if ( k->state() == Qt::ControlButton ) { 275 if ( k->state() == Qt::ControlButton ) {
252 k->ignore(); 276 k->ignore();
253 //return true; 277 //return true;
254 } 278 }
255 } 279 }
256 280
257 return QFrame::eventFilter( o, e ); // standard event processing 281 return QFrame::eventFilter( o, e ); // standard event processing
258} 282}
259 283
260void JournalEntry::writeJournal() 284void JournalEntry::writeJournal()
261{ 285{
262 if ( !visibleMode ) return; 286 if ( !visibleMode ) return;
287 if ( !mTitle->isEnabled() ) return;
263 if (mEditor->text().isEmpty() && mTitle->currentText().isEmpty()) { 288 if (mEditor->text().isEmpty() && mTitle->currentText().isEmpty()) {
264 if ( mJournal ) { 289 if ( mJournal ) {
265 Journal* j = mJournal; 290 Journal* j = mJournal;
266 mJournal = 0; 291 mJournal = 0;
267 bool conf = KOPrefs::instance()->mConfirm; 292 bool conf = KOPrefs::instance()->mConfirm;
268 KOPrefs::instance()->mConfirm = false; 293 KOPrefs::instance()->mConfirm = false;
269 emit deleteJournal(j); 294 emit deleteJournal(j);
270 KOPrefs::instance()->mConfirm = conf; 295 KOPrefs::instance()->mConfirm = conf;
271 } 296 }
272 return; 297 return;
273 } 298 }
274 299
275// kdDebug() << "JournalEntry::writeJournal()..." << endl; 300// kdDebug() << "JournalEntry::writeJournal()..." << endl;
276 301
277 if (!mJournal) { 302 if (!mJournal) {
278 mJournal = new Journal; 303 mJournal = new Journal;
279 mJournal->setDtStart(QDateTime(mDate,QTime(0,0,0))); 304 mJournal->setDtStart(QDateTime(mDate,QTime(0,0,0)));
280 mCalendar->addJournal(mJournal); 305 mCalendar->addJournal(mJournal);
281 } 306 }
282 if ( mJournal->description() != mEditor->text() ) { 307 if ( mJournal->description() != mEditor->text() ) {
283 mJournal->setDescription(mEditor->text()); 308 mJournal->setDescription(mEditor->text());
284 } 309 }
285 if ( mJournal->summary() != mTitle->currentText() ) { 310 if ( mJournal->summary() != mTitle->currentText() ) {
286 mJournal->setSummary(mTitle->currentText()); 311 mJournal->setSummary(mTitle->currentText());
287 mTitle->save(KOLocationBox::SUMMARYJOURNAL); 312 mTitle->save(KOLocationBox::SUMMARYJOURNAL);
288 } 313 }
314 int id = KOPrefs::instance()->getCalendarID( mCalendarBox->currentText() );
315 if ( mJournal->calID() != id ) {
316 mJournal->setCalID( id );
317 }
289} 318}
290 319
291void JournalEntry::flushEntry() 320void JournalEntry::flushEntry()
292{ 321{
293 writeJournal(); 322 writeJournal();
294} 323}
295void JournalEntry::keyPressEvent ( QKeyEvent * e ) 324void JournalEntry::keyPressEvent ( QKeyEvent * e )
296{ 325{
297 e->ignore(); 326 e->ignore();
298 327
299} 328}
diff --git a/korganizer/journalentry.h b/korganizer/journalentry.h
index fb19fb1..ed04b7c 100644
--- a/korganizer/journalentry.h
+++ b/korganizer/journalentry.h
@@ -1,85 +1,86 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
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 JOURNALENTRY_H 23#ifndef JOURNALENTRY_H
24#define JOURNALENTRY_H 24#define JOURNALENTRY_H
25// 25//
26// Widget showing one Journal entry 26// Widget showing one Journal entry
27 27
28#include <qframe.h> 28#include <qframe.h>
29 29
30#include <libkcal/calendar.h> 30#include <libkcal/calendar.h>
31 31
32class QLabel; 32class QLabel;
33class KTextEdit; 33class KTextEdit;
34class QComboBox;
34class KLineEdit; 35class KLineEdit;
35class KOLocationBox; 36class KOLocationBox;
36 37
37using namespace KCal; 38using namespace KCal;
38 39
39class JournalEntry : public QFrame { 40class JournalEntry : public QFrame {
40 Q_OBJECT 41 Q_OBJECT
41 public: 42 public:
42 JournalEntry(Calendar *,QWidget *parent); 43 JournalEntry(Calendar *,QWidget *parent);
43 virtual ~JournalEntry(); 44 virtual ~JournalEntry();
44 45
45 void setJournal(Journal *); 46 void setJournal(Journal *, bool saveJournal = true );
46 Journal *journal() const; 47 Journal *journal() const;
47 48
48 void setDate(const QDate &); 49 void setDate(const QDate &);
49 50
50 void clear(); 51 void clear();
51 52
52 void flushEntry(); 53 void flushEntry();
53 void setShowOnly(); 54 void setShowOnly();
54 QSize sizeHint() const; 55 QSize sizeHint() const;
55 void setVisibleMode( bool b ) { visibleMode = b;} 56 void setVisibleMode( bool b ) { visibleMode = b;}
56 57 void fillCalendar( int id = 0 );
57 protected slots: 58 protected slots:
58 void slotSaveTemplate(); 59 void slotSaveTemplate();
59 void slotLoadTemplate(); 60 void slotLoadTemplate();
60 void toggleShowJournal(); 61 void toggleShowJournal();
61 void setVisibleOn(); 62 void setVisibleOn();
62 signals: 63 signals:
63 void deleteJournal(Journal *); 64 void deleteJournal(Journal *);
64 void newJournal(); 65 void newJournal();
65 void showJournalOnly( Journal * ); 66 void showJournalOnly( Journal * );
66 67
67 protected: 68 protected:
68 bool eventFilter( QObject *o, QEvent *e ); 69 bool eventFilter( QObject *o, QEvent *e );
69 70
70 void writeJournal(); 71 void writeJournal();
71 72
72 private: 73 private:
73 bool visibleMode; 74 bool visibleMode;
74 bool showOnlyMode; 75 bool showOnlyMode;
75 Calendar *mCalendar; 76 Calendar *mCalendar;
76 Journal *mJournal; 77 Journal *mJournal;
77 QDate mDate; 78 QDate mDate;
78 void keyPressEvent ( QKeyEvent * ) ; 79 void keyPressEvent ( QKeyEvent * ) ;
79 QLabel *mTitleLabel; 80 QComboBox *mCalendarBox;
80 KOLocationBox * mTitle; 81 KOLocationBox * mTitle;
81 KTextEdit *mEditor; 82 KTextEdit *mEditor;
82 int heiHint; 83 int heiHint;
83}; 84};
84 85
85#endif 86#endif
diff --git a/korganizer/koeditorgeneral.cpp b/korganizer/koeditorgeneral.cpp
index fd50b05..aa55d82 100644
--- a/korganizer/koeditorgeneral.cpp
+++ b/korganizer/koeditorgeneral.cpp
@@ -438,103 +438,97 @@ void KOEditorGeneral::setDefaults(bool allDay)
438 mAlarmButton ->setChecked( false ); 438 mAlarmButton ->setChecked( false );
439 mAlarmTimeEdit->setValue(alarmTime); 439 mAlarmTimeEdit->setValue(alarmTime);
440 mAlarmIncrCombo->setCurrentItem(0); 440 mAlarmIncrCombo->setCurrentItem(0);
441 enableAlarmEdit( false ); 441 enableAlarmEdit( false );
442 //alarmDisable (false); 442 //alarmDisable (false);
443 mSecrecyCombo->setCurrentItem(Incidence::SecrecyPublic); 443 mSecrecyCombo->setCurrentItem(Incidence::SecrecyPublic);
444 mCancelBox->setChecked( false ); 444 mCancelBox->setChecked( false );
445 mSummaryEdit->setEditText(""); 445 mSummaryEdit->setEditText("");
446 mLocationEdit->setEditText(""); 446 mLocationEdit->setEditText("");
447 mDescriptionEdit->setText(""); 447 mDescriptionEdit->setText("");
448 mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile; 448 mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile;
449 setCategories(""); 449 setCategories("");
450 fillCalCombo(); 450 fillCalCombo();
451} 451}
452void KOEditorGeneral::setSecrecy( int num ) 452void KOEditorGeneral::setSecrecy( int num )
453{ 453{
454 mSecrecyCombo->setCurrentItem(num); 454 mSecrecyCombo->setCurrentItem(num);
455} 455}
456void KOEditorGeneral::fillCalCombo( int setToID ) 456void KOEditorGeneral::fillCalCombo( int setToID )
457{ 457{
458 mCalendarBox->clear(); 458 mCalendarBox->clear();
459 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); 459 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first();
460 int std = 0; 460 int std = 0;
461 int count = 0; 461 int count = 0;
462 while ( kkf ) { 462 while ( kkf ) {
463 if ( !kkf->mErrorOnLoad &&! kkf->isReadOnly ) { 463 if ( !kkf->mErrorOnLoad &&! kkf->isReadOnly ) {
464 if ( setToID ) { 464 if ( setToID ) {
465 if ( kkf->mCalNumber == setToID ) 465 if ( kkf->mCalNumber == setToID )
466 std = count; 466 std = count;
467 } else { 467 } else {
468 if ( kkf->isStandard ) { 468 if ( kkf->isStandard ) {
469 std = count; 469 std = count;
470 } 470 }
471 } 471 }
472 ++count; 472 ++count;
473 mCalendarBox->insertItem( kkf->mName ); 473 mCalendarBox->insertItem( kkf->mName );
474 } 474 }
475 kkf = KOPrefs::instance()->mCalendars.next(); 475 kkf = KOPrefs::instance()->mCalendars.next();
476 } 476 }
477 mCalendarBox->setCurrentItem( std ); 477 mCalendarBox->setCurrentItem( std );
478 if ( KOPrefs::instance()->mCalendars.count() == 1 ) 478 if ( KOPrefs::instance()->mCalendars.count() == 1 )
479 mCalendarBox->hide(); 479 mCalendarBox->hide();
480 else 480 else
481 mCalendarBox->show(); 481 mCalendarBox->show();
482 482
483} 483}
484int KOEditorGeneral::getCalendarID() 484int KOEditorGeneral::getCalendarID()
485{ 485{
486 KopiCalendarFile * kkf = KOPrefs::instance()->mCalendars.first(); 486 return KOPrefs::instance()->getCalendarID( mCalendarBox->currentText() );
487 while ( kkf ) {
488 if ( mCalendarBox->currentText() == kkf->mName)
489 return kkf->mCalNumber;
490 kkf = KOPrefs::instance()->mCalendars.next();
491 }
492 return 1;
493} 487}
494 488
495void KOEditorGeneral::readIncidence(Incidence *event) 489void KOEditorGeneral::readIncidence(Incidence *event)
496{ 490{
497 fillCalCombo( event->calID() ); 491 fillCalCombo( event->calID() );
498 mAlarmMessage = event->summary(); 492 mAlarmMessage = event->summary();
499 if ( ! event->location().isEmpty() ) 493 if ( ! event->location().isEmpty() )
500 mAlarmMessage += " ("+event->location()+")"; 494 mAlarmMessage += " ("+event->location()+")";
501 mAlarmIncrCombo->setCurrentItem(0); 495 mAlarmIncrCombo->setCurrentItem(0);
502 mSummaryEdit->setEditText(event->summary()); 496 mSummaryEdit->setEditText(event->summary());
503 mLocationEdit->setEditText(event->location()); 497 mLocationEdit->setEditText(event->location());
504 mDescriptionEdit->setText(event->description()); 498 mDescriptionEdit->setText(event->description());
505 499
506#if 0 500#if 0
507 // organizer information 501 // organizer information
508 mOwnerLabel->setText(i18n("Owner: ") + event->organizer()); 502 mOwnerLabel->setText(i18n("Owner: ") + event->organizer());
509#endif 503#endif
510 504
511 enableAlarmEdit( event->isAlarmEnabled() ); 505 enableAlarmEdit( event->isAlarmEnabled() );
512 //qDebug("KOEditorGeneral::readIncidence(Incidence *event) "); 506 //qDebug("KOEditorGeneral::readIncidence(Incidence *event) ");
513 if(!event->isAlarmEnabled()) { 507 if(!event->isAlarmEnabled()) {
514 // TODO: Implement a KPrefsComboItem to solve this in a clean way. 508 // TODO: Implement a KPrefsComboItem to solve this in a clean way.
515 int alarmTime; 509 int alarmTime;
516 int a[] = { 1,5,10,15,30,60,180, 1440 }; 510 int a[] = { 1,5,10,15,30,60,180, 1440 };
517 int index = KOPrefs::instance()->mAlarmTime; 511 int index = KOPrefs::instance()->mAlarmTime;
518 if (index < 0 || index > 7) { 512 if (index < 0 || index > 7) {
519 alarmTime = 15; 513 alarmTime = 15;
520 } else { 514 } else {
521 alarmTime = a[index]; 515 alarmTime = a[index];
522 } 516 }
523 mAlarmTimeEdit->setValue(alarmTime); 517 mAlarmTimeEdit->setValue(alarmTime);
524 } 518 }
525 mAlarmButton->setChecked( event->isAlarmEnabled() ); 519 mAlarmButton->setChecked( event->isAlarmEnabled() );
526 mSecrecyCombo->setCurrentItem(event->secrecy()); 520 mSecrecyCombo->setCurrentItem(event->secrecy());
527 mCancelBox->setChecked( event->cancelled() ); 521 mCancelBox->setChecked( event->cancelled() );
528 mAlarmProgramButton->setOn(false); 522 mAlarmProgramButton->setOn(false);
529 mAlarmSoundButton->setOn(false); 523 mAlarmSoundButton->setOn(false);
530 524
531 // set up alarm stuff 525 // set up alarm stuff
532 QPtrList<Alarm> alarms = event->alarms(); 526 QPtrList<Alarm> alarms = event->alarms();
533 Alarm* alarm; 527 Alarm* alarm;
534 mAlarmIncrCombo->setCurrentItem(0); 528 mAlarmIncrCombo->setCurrentItem(0);
535 for ( alarm = alarms.first(); alarm; alarm = alarms.next() ) { 529 for ( alarm = alarms.first(); alarm; alarm = alarms.next() ) {
536 int offset; 530 int offset;
537 if ( alarm->hasTime() ) { 531 if ( alarm->hasTime() ) {
538 QDateTime t = alarm->time(); 532 QDateTime t = alarm->time();
539 offset = event->dtStart().secsTo( t ); 533 offset = event->dtStart().secsTo( t );
540 } else { 534 } else {
diff --git a/korganizer/kojournalview.cpp b/korganizer/kojournalview.cpp
index 9b0e748..0523954 100644
--- a/korganizer/kojournalview.cpp
+++ b/korganizer/kojournalview.cpp
@@ -110,126 +110,128 @@ void KOJournalView::updateConfig()
110 } 110 }
111} 111}
112void KOJournalView::updateView() 112void KOJournalView::updateView()
113{ 113{
114 JournalEntry* mEntry = jEntries.first(); 114 JournalEntry* mEntry = jEntries.first();
115 while ( mEntry ) { 115 while ( mEntry ) {
116 mEntry->setFont ( KOPrefs::instance()->mJornalViewFont ); 116 mEntry->setFont ( KOPrefs::instance()->mJornalViewFont );
117 mEntry = jEntries.next(); 117 mEntry = jEntries.next();
118 } 118 }
119 showDates( mDate, QDate() ); 119 showDates( mDate, QDate() );
120} 120}
121void KOJournalView::checkModified() 121void KOJournalView::checkModified()
122{ 122{
123 flushView(); 123 flushView();
124} 124}
125void KOJournalView::flushView() 125void KOJournalView::flushView()
126{ 126{
127 static bool ff = false; 127 static bool ff = false;
128 if ( ff ) return; 128 if ( ff ) return;
129 ff = true; 129 ff = true;
130 JournalEntry* mEntry = jEntries.first(); 130 JournalEntry* mEntry = jEntries.first();
131 while ( mEntry ) { 131 while ( mEntry ) {
132 mEntry->flushEntry(); 132 mEntry->flushEntry();
133 mEntry = jEntries.next(); 133 mEntry = jEntries.next();
134 } 134 }
135 ff = false; 135 ff = false;
136} 136}
137 137
138void KOJournalView::clearList() 138void KOJournalView::clearList()
139{ 139{
140 JournalEntry* mEntry = jEntries.first(); 140 JournalEntry* mEntry = jEntries.first();
141 while ( mEntry ) { 141 while ( mEntry ) {
142 mEntry->clear(); 142 mEntry->clear();
143 mEntry = jEntries.next(); 143 mEntry = jEntries.next();
144 } 144 }
145} 145}
146void KOJournalView::newJournal() 146void KOJournalView::newJournal()
147{ 147{
148 //qDebug(" KOJournalView::newJournal()"); 148 //qDebug(" KOJournalView::newJournal()");
149 flushView(); 149 flushView();
150 Journal* mJournal = new Journal; 150 Journal* mJournal = new Journal;
151 mJournal->setDtStart(QDateTime(mDate,QTime(0,0,0))); 151 mJournal->setDtStart(QDateTime(mDate,QTime(0,0,0)));
152 mCalendar->addJournal(mJournal); 152 mCalendar->addJournal(mJournal);
153 showDates( mDate, QDate() ); 153 showDates( mDate, QDate() );
154} 154}
155 155
156void KOJournalView::showOnly ( Journal* j ) 156void KOJournalView::showOnly ( Journal* j )
157{ 157{
158 qDebug("showOnly %x ", j); 158 //qDebug("showOnly %x ", j);
159 flushView(); 159 flushView();
160 if ( j == 0 ) { 160 if ( j == 0 ) {
161 showDates( mDate, QDate() ); 161 showDates( mDate, QDate() );
162 return; 162 return;
163 } 163 }
164 QPtrList<Journal> jl; 164 QPtrList<Journal> jl;
165 jl.append ( j ); 165 jl.append ( j );
166 showList( jl ); 166 showList( jl );
167 JournalEntry* mEntry = jEntries.first(); 167 JournalEntry* mEntry = jEntries.first();
168 mEntry->setShowOnly(); 168 mEntry->setShowOnly();
169} 169}
170void KOJournalView::showList(QPtrList<Journal> jl) 170void KOJournalView::showList(QPtrList<Journal> jl)
171{ 171{
172 qDebug("KOJournalView::showList %d",jl.count() ); 172 //qDebug("KOJournalView::showList %d",jl.count() );
173 JournalEntry* mEntry = jEntries.first(); 173 JournalEntry* mEntry = jEntries.first();
174 JournalEntry* firstEntry = mEntry; 174 JournalEntry* firstEntry = mEntry;
175 int count = jl.count(); 175 int count = jl.count();
176 int iii = 0; 176 int iii = 0;
177 while ( iii < count ) { 177 while ( iii < count ) {
178 if ( !mEntry ) { 178 if ( !mEntry ) {
179 mEntry = getNewEntry(); 179 mEntry = getNewEntry();
180 mEntry->setVisibleMode( true );
180 mEntry->setDate(mDate); 181 mEntry->setDate(mDate);
181 mEntry->setJournal(jl.at(iii)); 182 mEntry->setJournal(jl.at(iii), false);
182 mEntry->setVisibleMode( true ); 183 mEntry->setVisibleMode( true );
183 mEntry->show(); 184 mEntry->show();
184 mEntry = 0; 185 mEntry = 0;
185 } else { 186 } else {
187 mEntry->setVisibleMode( true );
186 mEntry->setDate(mDate); 188 mEntry->setDate(mDate);
187 mEntry->setJournal(jl.at(iii)); 189 mEntry->setJournal(jl.at(iii), false);
188 mEntry->setVisibleMode( true ); 190 mEntry->setVisibleMode( true );
189 mEntry->show(); 191 mEntry->show();
190 mEntry = jEntries.next(); 192 mEntry = jEntries.next();
191 } 193 }
192 ++iii; 194 ++iii;
193 } 195 }
194 while ( mEntry ) { 196 while ( mEntry ) {
195 mEntry->setDate(mDate); 197 mEntry->setDate(mDate);
196 mEntry->clear(); 198 mEntry->clear();
197 if ( mEntry != firstEntry ) { 199 if ( mEntry != firstEntry ) {
198 mEntry->hide(); 200 mEntry->hide();
199 mEntry->setVisibleMode( false ); 201 mEntry->setVisibleMode( false );
200 } 202 }
201 else { 203 else {
202 mEntry->setVisibleMode( true ); 204 mEntry->setVisibleMode( true );
203 mEntry->show(); 205 mEntry->show();
204 } 206 }
205 mEntry = jEntries.next(); 207 mEntry = jEntries.next();
206 } 208 }
207} 209}
208 210
209void KOJournalView::showDates(const QDate &start, const QDate &) 211void KOJournalView::showDates(const QDate &start, const QDate &)
210{ 212{
211 mDate = start; 213 mDate = start;
212 mDateLabel->setText(KGlobal::locale()->formatDate(mDate)); 214 mDateLabel->setText(KGlobal::locale()->formatDate(mDate));
213 QPtrList<Journal> jl = calendar()->journals4Date( start ); 215 QPtrList<Journal> jl = calendar()->journals4Date( start );
214 showList( jl ); 216 showList( jl );
215} 217}
216 218
217void KOJournalView::showEvents(QPtrList<Event>) 219void KOJournalView::showEvents(QPtrList<Event>)
218{ 220{
219 // After new creation of list view no events are selected. 221 // After new creation of list view no events are selected.
220// emit incidenceSelected( 0 ); 222// emit incidenceSelected( 0 );
221} 223}
222 224
223void KOJournalView::changeEventDisplay(Event *, int /*action*/) 225void KOJournalView::changeEventDisplay(Event *, int /*action*/)
224{ 226{
225 updateView(); 227 updateView();
226} 228}
227 229
228void KOJournalView::keyPressEvent ( QKeyEvent * e ) 230void KOJournalView::keyPressEvent ( QKeyEvent * e )
229{ 231{
230 //qDebug("keyPressEven "); 232 //qDebug("keyPressEven ");
231 if ( e->state() == Qt::ControlButton ) { 233 if ( e->state() == Qt::ControlButton ) {
232 if ( e->key () == Qt::Key_Right || e->key () == Qt::Key_Left ) 234 if ( e->key () == Qt::Key_Right || e->key () == Qt::Key_Left )
233 e->ignore(); 235 e->ignore();
234 } 236 }
235} 237}
diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp
index bb3d720..a886735 100644
--- a/korganizer/koprefs.cpp
+++ b/korganizer/koprefs.cpp
@@ -456,96 +456,106 @@ void KOPrefs::usrReadConfig()
456 kkf->isEnabled = fc.readBoolEntry( prefix+"_isEnabled", true); 456 kkf->isEnabled = fc.readBoolEntry( prefix+"_isEnabled", true);
457 kkf->isAlarmEnabled = fc.readBoolEntry( prefix+"_isAlarmEnabled", true); 457 kkf->isAlarmEnabled = fc.readBoolEntry( prefix+"_isAlarmEnabled", true);
458 kkf->isReadOnly = fc.readBoolEntry( prefix+"_isReadOnly", false); 458 kkf->isReadOnly = fc.readBoolEntry( prefix+"_isReadOnly", false);
459 kkf->mName = fc.readEntry( prefix+"_Name", "Calendar"); 459 kkf->mName = fc.readEntry( prefix+"_Name", "Calendar");
460 kkf->mFileName = fc.readEntry( prefix+"_FileName", kkf->mFileName); 460 kkf->mFileName = fc.readEntry( prefix+"_FileName", kkf->mFileName);
461 kkf->mDefaultColor = fc.readColorEntry( prefix+"_Color",&mEventColor); 461 kkf->mDefaultColor = fc.readColorEntry( prefix+"_Color",&mEventColor);
462 if ( kkf->mCalNumber == 1 ) { 462 if ( kkf->mCalNumber == 1 ) {
463 kkf->mFileName = locateLocal( "data", "korganizer/mycalendar.ics" ); 463 kkf->mFileName = locateLocal( "data", "korganizer/mycalendar.ics" );
464 } 464 }
465 //qDebug("NAME %s %s", kkf->mName.latin1(), i18n("Birthdays").latin1() ); 465 //qDebug("NAME %s %s", kkf->mName.latin1(), i18n("Birthdays").latin1() );
466 if ( kkf->mName == i18n("Birthdays") ) { 466 if ( kkf->mName == i18n("Birthdays") ) {
467 kkf->mFileName = locateLocal( "data", "korganizer/birthdays.ics" ); 467 kkf->mFileName = locateLocal( "data", "korganizer/birthdays.ics" );
468 } 468 }
469 } 469 }
470 470
471 KPimPrefs::usrReadConfig(); 471 KPimPrefs::usrReadConfig();
472} 472}
473 473
474KopiCalendarFile * KOPrefs::getCalendar( int num ) 474KopiCalendarFile * KOPrefs::getCalendar( int num )
475{ 475{
476 return mDefCalColors[num-1]; 476 return mDefCalColors[num-1];
477} 477}
478 478
479KopiCalendarFile * KOPrefs::getNewCalendar() 479KopiCalendarFile * KOPrefs::getNewCalendar()
480{ 480{
481 KopiCalendarFile * kkf = new KopiCalendarFile(); 481 KopiCalendarFile * kkf = new KopiCalendarFile();
482 kkf->mCalNumber = mNextAvailableCalendar; 482 kkf->mCalNumber = mNextAvailableCalendar;
483 mDefCalColors.resize( mNextAvailableCalendar ); 483 mDefCalColors.resize( mNextAvailableCalendar );
484 mDefCalColors[mNextAvailableCalendar-1] = kkf; 484 mDefCalColors[mNextAvailableCalendar-1] = kkf;
485 ++mNextAvailableCalendar; 485 ++mNextAvailableCalendar;
486 kkf->mDefaultColor = mEventColor; 486 kkf->mDefaultColor = mEventColor;
487 kkf->mName = i18n("New Calendar"); 487 kkf->mName = i18n("New Calendar");
488 mCalendars.append( kkf ); 488 mCalendars.append( kkf );
489 return kkf; 489 return kkf;
490} 490}
491void KOPrefs::deleteCalendar( int num ) 491void KOPrefs::deleteCalendar( int num )
492{ 492{
493 KopiCalendarFile * kkf = mCalendars.first(); 493 KopiCalendarFile * kkf = mCalendars.first();
494 while ( kkf ) { 494 while ( kkf ) {
495 if ( kkf->mCalNumber == num ) { 495 if ( kkf->mCalNumber == num ) {
496 qDebug("KOPrefs::deleteCalendar %d ", num ); 496 qDebug("KOPrefs::deleteCalendar %d ", num );
497 mCalendars.remove( kkf ); 497 mCalendars.remove( kkf );
498 delete kkf; 498 delete kkf;
499 return; 499 return;
500 } 500 }
501 kkf = mCalendars.next(); 501 kkf = mCalendars.next();
502 } 502 }
503} 503}
504int KOPrefs::getCalendarID( const QString & name )
505{
506 KopiCalendarFile * kkf = mCalendars.first();
507 while ( kkf ) {
508 if ( name == kkf->mName)
509 return kkf->mCalNumber;
510 kkf = mCalendars.next();
511 }
512 return 1;
513}
504QString KOPrefs::calName( int calNum) const 514QString KOPrefs::calName( int calNum) const
505{ 515{
506 return (mDefCalColors[calNum-1])->mName; 516 return (mDefCalColors[calNum-1])->mName;
507} 517}
508QColor KOPrefs::defaultColor( int calNum ) const 518QColor KOPrefs::defaultColor( int calNum ) const
509{ 519{
510 if ( calNum == 1 ) return mEventColor; 520 if ( calNum == 1 ) return mEventColor;
511 return (mDefCalColors[calNum-1])->mDefaultColor; 521 return (mDefCalColors[calNum-1])->mDefaultColor;
512} 522}
513void KOPrefs::usrWriteConfig() 523void KOPrefs::usrWriteConfig()
514{ 524{
515 config()->setGroup("General"); 525 config()->setGroup("General");
516 config()->writeEntry("Custom Categories",mCustomCategories); 526 config()->writeEntry("Custom Categories",mCustomCategories);
517 527
518 config()->setGroup("Personal Settings"); 528 config()->setGroup("Personal Settings");
519 config()->writeEntry("user_name",mName); 529 config()->writeEntry("user_name",mName);
520 config()->writeEntry("user_email",mEmail); 530 config()->writeEntry("user_email",mEmail);
521 531
522 config()->setGroup("Category Colors"); 532 config()->setGroup("Category Colors");
523 QDictIterator<QColor> it(mCategoryColors); 533 QDictIterator<QColor> it(mCategoryColors);
524 while (it.current()) { 534 while (it.current()) {
525 config()->writeEntry(it.currentKey(),*(it.current())); 535 config()->writeEntry(it.currentKey(),*(it.current()));
526 ++it; 536 ++it;
527 } 537 }
528 KConfig fc (locateLocal("config","kopicalendarrc")); 538 KConfig fc (locateLocal("config","kopicalendarrc"));
529 fc.setGroup("CC"); 539 fc.setGroup("CC");
530 fc.writeEntry("NumberCalendars",mCalendars.count()); 540 fc.writeEntry("NumberCalendars",mCalendars.count());
531 int numCal = 1; 541 int numCal = 1;
532 int writeCal = 0; 542 int writeCal = 0;
533 while ( numCal < mNextAvailableCalendar ) { 543 while ( numCal < mNextAvailableCalendar ) {
534 KopiCalendarFile * kkf = mCalendars.first(); 544 KopiCalendarFile * kkf = mCalendars.first();
535 while ( kkf ) { 545 while ( kkf ) {
536 //qDebug("cal num %d %d ", kkf->mCalNumber, numCal); 546 //qDebug("cal num %d %d ", kkf->mCalNumber, numCal);
537 if ( kkf->mCalNumber == numCal ) { 547 if ( kkf->mCalNumber == numCal ) {
538 ++writeCal; 548 ++writeCal;
539 //qDebug("Write calendar %d %d ", numCal , writeCal); 549 //qDebug("Write calendar %d %d ", numCal , writeCal);
540 QString prefix = "Cal_" + QString::number( writeCal ); 550 QString prefix = "Cal_" + QString::number( writeCal );
541 fc.writeEntry( prefix+"_isStandard", kkf->isStandard ); 551 fc.writeEntry( prefix+"_isStandard", kkf->isStandard );
542 fc.writeEntry( prefix+"_isEnabled", kkf->isEnabled ); 552 fc.writeEntry( prefix+"_isEnabled", kkf->isEnabled );
543 fc.writeEntry( prefix+"_isAlarmEnabled", kkf->isAlarmEnabled ); 553 fc.writeEntry( prefix+"_isAlarmEnabled", kkf->isAlarmEnabled );
544 fc.writeEntry( prefix+"_isReadOnly", kkf->isReadOnly ); 554 fc.writeEntry( prefix+"_isReadOnly", kkf->isReadOnly );
545 fc.writeEntry( prefix+"_Name", kkf->mName); 555 fc.writeEntry( prefix+"_Name", kkf->mName);
546 fc.writeEntry( prefix+"_FileName", kkf->mFileName); 556 fc.writeEntry( prefix+"_FileName", kkf->mFileName);
547 fc.writeEntry( prefix+"_Color",kkf->mDefaultColor); 557 fc.writeEntry( prefix+"_Color",kkf->mDefaultColor);
548 } 558 }
549 kkf = mCalendars.next(); 559 kkf = mCalendars.next();
550 } 560 }
551 ++numCal; 561 ++numCal;
diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h
index 53d193b..7ec5327 100644
--- a/korganizer/koprefs.h
+++ b/korganizer/koprefs.h
@@ -55,96 +55,97 @@ class KopiCalendarFile : public QObject
55 mName = "Calendar"; 55 mName = "Calendar";
56 mFileName = QDir::homeDirPath() + "/icalfile.ics"; 56 mFileName = QDir::homeDirPath() + "/icalfile.ics";
57 mCalNumber = 0; 57 mCalNumber = 0;
58 mDefaultColor = Qt::red; 58 mDefaultColor = Qt::red;
59 mErrorOnLoad = false; 59 mErrorOnLoad = false;
60 } 60 }
61 bool isStandard; 61 bool isStandard;
62 bool isEnabled; 62 bool isEnabled;
63 bool isAlarmEnabled; 63 bool isAlarmEnabled;
64 bool isReadOnly; 64 bool isReadOnly;
65 bool mErrorOnLoad; 65 bool mErrorOnLoad;
66 QString mName; 66 QString mName;
67 QString mFileName; 67 QString mFileName;
68 int mCalNumber; 68 int mCalNumber;
69 QColor mDefaultColor; 69 QColor mDefaultColor;
70 QDateTime mLoadDt; 70 QDateTime mLoadDt;
71}; 71};
72class KOPrefs : public KPimPrefs 72class KOPrefs : public KPimPrefs
73{ 73{
74 public: 74 public:
75 enum { FormatVCalendar, FormatICalendar }; 75 enum { FormatVCalendar, FormatICalendar };
76 enum { MailClientKMail, MailClientSendmail }; 76 enum { MailClientKMail, MailClientSendmail };
77 enum { IMIPDummy, IMIPKMail }; 77 enum { IMIPDummy, IMIPKMail };
78 enum { IMIPOutbox, IMIPdirectsend }; 78 enum { IMIPOutbox, IMIPdirectsend };
79 enum { neverAuto, addressbookAuto, selectedAuto }; 79 enum { neverAuto, addressbookAuto, selectedAuto };
80 enum { standardDestination, askDestination }; 80 enum { standardDestination, askDestination };
81 81
82 virtual ~KOPrefs(); 82 virtual ~KOPrefs();
83 83
84 /** Get instance of KOPrefs. It is made sure that there is only one 84 /** Get instance of KOPrefs. It is made sure that there is only one
85 instance. */ 85 instance. */
86 static KOPrefs *instance(); 86 static KOPrefs *instance();
87 87
88 /** Set preferences to default values */ 88 /** Set preferences to default values */
89 void usrSetDefaults(); 89 void usrSetDefaults();
90 90
91 /** Read preferences from config file */ 91 /** Read preferences from config file */
92 void usrReadConfig(); 92 void usrReadConfig();
93 93
94 /** Write preferences to config file */ 94 /** Write preferences to config file */
95 void usrWriteConfig(); 95 void usrWriteConfig();
96 void setCategoryDefaults(); 96 void setCategoryDefaults();
97 void setAllDefaults(); 97 void setAllDefaults();
98 KopiCalendarFile * getNewCalendar(); 98 KopiCalendarFile * getNewCalendar();
99 KopiCalendarFile * getCalendar( int ); 99 KopiCalendarFile * getCalendar( int );
100 void deleteCalendar( int ); 100 void deleteCalendar( int );
101 QColor defaultColor( int ) const; 101 QColor defaultColor( int ) const;
102 QString calName( int ) const; 102 QString calName( int ) const;
103 int getCalendarID( const QString & name );
103 protected: 104 protected:
104 void setTimeZoneIdDefault(); 105 void setTimeZoneIdDefault();
105 106
106 /** Fill empty mail fields with default values. */ 107 /** Fill empty mail fields with default values. */
107 void fillMailDefaults(); 108 void fillMailDefaults();
108 109
109 private: 110 private:
110 /** Constructor disabled for public. Use instance() to create a KOPrefs 111 /** Constructor disabled for public. Use instance() to create a KOPrefs
111 object. */ 112 object. */
112 KOPrefs(); 113 KOPrefs();
113 114
114 static KOPrefs *mInstance; 115 static KOPrefs *mInstance;
115 QStringList getDefaultList(); 116 QStringList getDefaultList();
116 QStringList getLocationDefaultList(); 117 QStringList getLocationDefaultList();
117 public: 118 public:
118 // preferences data 119 // preferences data
119 KConfig* getConfig(); 120 KConfig* getConfig();
120 void setFullName(const QString &); 121 void setFullName(const QString &);
121 QString fullName(); 122 QString fullName();
122 void setEmail(const QString &); 123 void setEmail(const QString &);
123 QString email(); 124 QString email();
124 125
125 QString mAdditional; 126 QString mAdditional;
126 127
127 bool mEmailControlCenter; 128 bool mEmailControlCenter;
128 129
129 bool mBcc; 130 bool mBcc;
130 bool mAutoSave; 131 bool mAutoSave;
131 int mAutoSaveInterval; 132 int mAutoSaveInterval;
132 bool mConfirm; 133 bool mConfirm;
133 134
134 bool mEnableGroupScheduling; 135 bool mEnableGroupScheduling;
135 bool mEnableProjectView; 136 bool mEnableProjectView;
136 137
137 int mDefaultFormat; 138 int mDefaultFormat;
138 int mMailClient; 139 int mMailClient;
139 140
140 int mStartTime; 141 int mStartTime;
141 int mDefaultDuration; 142 int mDefaultDuration;
142 int mAlarmTime; 143 int mAlarmTime;
143 144
144 int mWorkingHoursStart; 145 int mWorkingHoursStart;
145 int mWorkingHoursEnd; 146 int mWorkingHoursEnd;
146 bool mExcludeHolidays; 147 bool mExcludeHolidays;
147 bool mExcludeSaturdays; 148 bool mExcludeSaturdays;
148 bool mMarcusBainsShowSeconds; 149 bool mMarcusBainsShowSeconds;
149 150
150 QFont mTimeBarFont; 151 QFont mTimeBarFont;