-rw-r--r-- | korganizer/journalentry.cpp | 53 | ||||
-rw-r--r-- | korganizer/journalentry.h | 7 | ||||
-rw-r--r-- | korganizer/koeditorgeneral.cpp | 8 | ||||
-rw-r--r-- | korganizer/kojournalview.cpp | 10 | ||||
-rw-r--r-- | korganizer/koprefs.cpp | 10 | ||||
-rw-r--r-- | korganizer/koprefs.h | 1 |
6 files changed, 63 insertions, 26 deletions
diff --git a/korganizer/journalentry.cpp b/korganizer/journalentry.cpp index 4751d40..56221dc 100644 --- a/korganizer/journalentry.cpp +++ b/korganizer/journalentry.cpp | |||
@@ -1,299 +1,328 @@ | |||
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 | 23 | ||
24 | // | 24 | // |
25 | // Journal Entry | 25 | // Journal Entry |
26 | 26 | ||
27 | #include <qlabel.h> | 27 | #include <qlabel.h> |
28 | #include <qlayout.h> | 28 | #include <qlayout.h> |
29 | #include <qvbox.h> | 29 | #include <qvbox.h> |
30 | #include <qfile.h> | 30 | #include <qfile.h> |
31 | #include <qdir.h> | 31 | #include <qdir.h> |
32 | #include <qtextstream.h> | 32 | #include <qtextstream.h> |
33 | #include <qtextcodec.h> | 33 | #include <qtextcodec.h> |
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 |
59 | JournalEntry::JournalEntry(Calendar *calendar,QWidget *parent) : | 59 | JournalEntry::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 | ||
118 | JournalEntry::~JournalEntry() | 119 | JournalEntry::~JournalEntry() |
119 | { | 120 | { |
120 | //qDebug("JournalEntry::~JournalEntry() "); | 121 | //qDebug("JournalEntry::~JournalEntry() "); |
121 | } | 122 | } |
122 | QSize JournalEntry::sizeHint() const | 123 | QSize JournalEntry::sizeHint() const |
123 | { | 124 | { |
124 | return QSize ( 240, heiHint ); | 125 | return QSize ( 240, heiHint ); |
125 | } | 126 | } |
126 | void JournalEntry::slotSaveTemplate() | 127 | void 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 | } |
149 | void JournalEntry::slotLoadTemplate() | 150 | void 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 | } |
174 | void JournalEntry::setDate(const QDate &date) | 175 | void 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 +")"); | 182 | void 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 | ||
184 | void JournalEntry::toggleShowJournal() | 210 | void 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 | } |
197 | void JournalEntry::setVisibleOn() | 223 | void JournalEntry::setVisibleOn() |
198 | { | 224 | { |
199 | visibleMode = true; | 225 | visibleMode = true; |
200 | } | 226 | } |
201 | void JournalEntry::setShowOnly() | 227 | void 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 | } |
209 | void JournalEntry::setJournal(Journal *journal) | 235 | void JournalEntry::setJournal(Journal *journal, bool saveJournal ) |
210 | { | 236 | { |
211 | writeJournal(); | 237 | if ( saveJournal ) |
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 | ||
228 | Journal *JournalEntry::journal() const | 252 | Journal *JournalEntry::journal() const |
229 | { | 253 | { |
230 | return mJournal; | 254 | return mJournal; |
231 | } | 255 | } |
232 | 256 | ||
233 | 257 | ||
234 | void JournalEntry::clear() | 258 | void 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 | ||
242 | bool JournalEntry::eventFilter( QObject *o, QEvent *e ) | 266 | bool 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 | ||
260 | void JournalEntry::writeJournal() | 284 | void 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 | ||
291 | void JournalEntry::flushEntry() | 320 | void JournalEntry::flushEntry() |
292 | { | 321 | { |
293 | writeJournal(); | 322 | writeJournal(); |
294 | } | 323 | } |
295 | void JournalEntry::keyPressEvent ( QKeyEvent * e ) | 324 | void 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 | ||
32 | class QLabel; | 32 | class QLabel; |
33 | class KTextEdit; | 33 | class KTextEdit; |
34 | class QComboBox; | ||
34 | class KLineEdit; | 35 | class KLineEdit; |
35 | class KOLocationBox; | 36 | class KOLocationBox; |
36 | 37 | ||
37 | using namespace KCal; | 38 | using namespace KCal; |
38 | 39 | ||
39 | class JournalEntry : public QFrame { | 40 | class 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 | |||
@@ -358,263 +358,257 @@ QString KOEditorGeneral::getFittingPath( const QString s ) | |||
358 | else | 358 | else |
359 | maxlen = 35; | 359 | maxlen = 35; |
360 | } | 360 | } |
361 | if ( s.length() > maxlen ) { | 361 | if ( s.length() > maxlen ) { |
362 | return "..."+s.right(maxlen -3); | 362 | return "..."+s.right(maxlen -3); |
363 | } | 363 | } |
364 | return s; | 364 | return s; |
365 | } | 365 | } |
366 | 366 | ||
367 | void KOEditorGeneral::enableAlarmEdit(bool enable) | 367 | void KOEditorGeneral::enableAlarmEdit(bool enable) |
368 | { | 368 | { |
369 | if ( enable ) { | 369 | if ( enable ) { |
370 | if (!mAlarmProgramButton->isOn() && !mAlarmSoundButton->isOn()) { | 370 | if (!mAlarmProgramButton->isOn() && !mAlarmSoundButton->isOn()) { |
371 | mAlarmSoundButton->setOn( true ); | 371 | mAlarmSoundButton->setOn( true ); |
372 | if ( mAlarmSound.isEmpty() ) | 372 | if ( mAlarmSound.isEmpty() ) |
373 | mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile; | 373 | mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile; |
374 | else { | 374 | else { |
375 | if ( ! QFile::exists( mAlarmSound ) ) | 375 | if ( ! QFile::exists( mAlarmSound ) ) |
376 | mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile; | 376 | mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile; |
377 | } | 377 | } |
378 | } | 378 | } |
379 | } | 379 | } |
380 | ((QWidget*)parent())->topLevelWidget()->setCaption(mAlarmMessage); | 380 | ((QWidget*)parent())->topLevelWidget()->setCaption(mAlarmMessage); |
381 | mAlarmTimeEdit->setEnabled(enable); | 381 | mAlarmTimeEdit->setEnabled(enable); |
382 | mAlarmSoundButton->setEnabled(enable); | 382 | mAlarmSoundButton->setEnabled(enable); |
383 | mAlarmProgramButton->setEnabled(enable); | 383 | mAlarmProgramButton->setEnabled(enable); |
384 | mAlarmIncrCombo->setEnabled(enable); | 384 | mAlarmIncrCombo->setEnabled(enable); |
385 | } | 385 | } |
386 | 386 | ||
387 | void KOEditorGeneral::disableAlarmEdit(bool disable) | 387 | void KOEditorGeneral::disableAlarmEdit(bool disable) |
388 | { | 388 | { |
389 | enableAlarmEdit( !disable ); | 389 | enableAlarmEdit( !disable ); |
390 | } | 390 | } |
391 | 391 | ||
392 | void KOEditorGeneral::enableAlarm( bool enable ) | 392 | void KOEditorGeneral::enableAlarm( bool enable ) |
393 | { | 393 | { |
394 | enableAlarmEdit( enable ); | 394 | enableAlarmEdit( enable ); |
395 | } | 395 | } |
396 | 396 | ||
397 | void KOEditorGeneral::alarmDisable(bool disable) | 397 | void KOEditorGeneral::alarmDisable(bool disable) |
398 | { | 398 | { |
399 | if (!disable) { | 399 | if (!disable) { |
400 | //mAlarmBell->setEnabled(true); | 400 | //mAlarmBell->setEnabled(true); |
401 | mAlarmButton->setEnabled(true); | 401 | mAlarmButton->setEnabled(true); |
402 | } else { | 402 | } else { |
403 | //mAlarmBell->setEnabled(false); | 403 | //mAlarmBell->setEnabled(false); |
404 | mAlarmButton->setEnabled(false); | 404 | mAlarmButton->setEnabled(false); |
405 | mAlarmButton->setChecked(false); | 405 | mAlarmButton->setChecked(false); |
406 | mAlarmTimeEdit->setEnabled(false); | 406 | mAlarmTimeEdit->setEnabled(false); |
407 | mAlarmSoundButton->setEnabled(false); | 407 | mAlarmSoundButton->setEnabled(false); |
408 | mAlarmProgramButton->setEnabled(false); | 408 | mAlarmProgramButton->setEnabled(false); |
409 | mAlarmIncrCombo->setEnabled(false); | 409 | mAlarmIncrCombo->setEnabled(false); |
410 | } | 410 | } |
411 | } | 411 | } |
412 | 412 | ||
413 | void KOEditorGeneral::setCategories(const QString &str) | 413 | void KOEditorGeneral::setCategories(const QString &str) |
414 | { | 414 | { |
415 | QString tt = str; | 415 | QString tt = str; |
416 | QToolTip::add( mCategoriesLabel, i18n("<b>Click here to edit categories: </b>") +"<em>"+tt.replace( QRegExp(","),", ")+"</em>"); | 416 | QToolTip::add( mCategoriesLabel, i18n("<b>Click here to edit categories: </b>") +"<em>"+tt.replace( QRegExp(","),", ")+"</em>"); |
417 | mCategoriesLabel->setText(str); | 417 | mCategoriesLabel->setText(str); |
418 | } | 418 | } |
419 | 419 | ||
420 | void KOEditorGeneral::setDefaults(bool allDay) | 420 | void KOEditorGeneral::setDefaults(bool allDay) |
421 | { | 421 | { |
422 | #if 0 | 422 | #if 0 |
423 | mOwnerLabel->setText(i18n("Owner: ") + KOPrefs::instance()->fullName()); | 423 | mOwnerLabel->setText(i18n("Owner: ") + KOPrefs::instance()->fullName()); |
424 | #endif | 424 | #endif |
425 | 425 | ||
426 | mAlarmMessage = i18n("Edit new item"); | 426 | mAlarmMessage = i18n("Edit new item"); |
427 | enableAlarmEdit( !allDay ); | 427 | enableAlarmEdit( !allDay ); |
428 | 428 | ||
429 | // TODO: Implement a KPrefsComboItem to solve this in a clean way. | 429 | // TODO: Implement a KPrefsComboItem to solve this in a clean way. |
430 | int alarmTime; | 430 | int alarmTime; |
431 | int a[] = { 1,5,10,15,30,60,180, 1440 }; | 431 | int a[] = { 1,5,10,15,30,60,180, 1440 }; |
432 | int index = KOPrefs::instance()->mAlarmTime; | 432 | int index = KOPrefs::instance()->mAlarmTime; |
433 | if (index < 0 || index > 7) { | 433 | if (index < 0 || index > 7) { |
434 | alarmTime = 15; | 434 | alarmTime = 15; |
435 | } else { | 435 | } else { |
436 | alarmTime = a[index]; | 436 | alarmTime = a[index]; |
437 | } | 437 | } |
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 | } |
452 | void KOEditorGeneral::setSecrecy( int num ) | 452 | void KOEditorGeneral::setSecrecy( int num ) |
453 | { | 453 | { |
454 | mSecrecyCombo->setCurrentItem(num); | 454 | mSecrecyCombo->setCurrentItem(num); |
455 | } | 455 | } |
456 | void KOEditorGeneral::fillCalCombo( int setToID ) | 456 | void 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 | } |
484 | int KOEditorGeneral::getCalendarID() | 484 | int 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 | ||
495 | void KOEditorGeneral::readIncidence(Incidence *event) | 489 | void 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 { |
541 | offset = alarm->startOffset().asSeconds(); | 535 | offset = alarm->startOffset().asSeconds(); |
542 | } | 536 | } |
543 | if ( offset != 0 ) { | 537 | if ( offset != 0 ) { |
544 | offset = offset / -60; // make minutes | 538 | offset = offset / -60; // make minutes |
545 | if (offset % 60 == 0) { // divides evenly into hours? | 539 | if (offset % 60 == 0) { // divides evenly into hours? |
546 | offset = offset / 60; | 540 | offset = offset / 60; |
547 | mAlarmIncrCombo->setCurrentItem(1); | 541 | mAlarmIncrCombo->setCurrentItem(1); |
548 | if (offset % 24 == 0) { // divides evenly into days? | 542 | if (offset % 24 == 0) { // divides evenly into days? |
549 | offset = offset / 24; | 543 | offset = offset / 24; |
550 | mAlarmIncrCombo->setCurrentItem(2); | 544 | mAlarmIncrCombo->setCurrentItem(2); |
551 | } | 545 | } |
552 | } | 546 | } |
553 | } | 547 | } |
554 | mAlarmTimeEdit->setValue( offset ); | 548 | mAlarmTimeEdit->setValue( offset ); |
555 | if (alarm->type() == Alarm::Procedure) { | 549 | if (alarm->type() == Alarm::Procedure) { |
556 | 550 | ||
557 | mAlarmProgram = alarm->programFile(); | 551 | mAlarmProgram = alarm->programFile(); |
558 | mAlarmProgramButton->setOn(true); | 552 | mAlarmProgramButton->setOn(true); |
559 | QString dispStr = i18n("Running '%1'").arg(mAlarmProgram); | 553 | QString dispStr = i18n("Running '%1'").arg(mAlarmProgram); |
560 | QToolTip::add(mAlarmProgramButton, dispStr); | 554 | QToolTip::add(mAlarmProgramButton, dispStr); |
561 | } | 555 | } |
562 | else if (alarm->type() == Alarm::Audio) { | 556 | else if (alarm->type() == Alarm::Audio) { |
563 | mAlarmSound = alarm->audioFile(); | 557 | mAlarmSound = alarm->audioFile(); |
564 | if ( ! QFile::exists( mAlarmSound ) ) | 558 | if ( ! QFile::exists( mAlarmSound ) ) |
565 | mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile; | 559 | mAlarmSound = KOPrefs::instance()->mDefaultAlarmFile; |
566 | mAlarmSoundButton->setOn(true); | 560 | mAlarmSoundButton->setOn(true); |
567 | QString dispStr = i18n("Playing '%1'").arg(mAlarmSound); | 561 | QString dispStr = i18n("Playing '%1'").arg(mAlarmSound); |
568 | QToolTip::add(mAlarmSoundButton, dispStr); | 562 | QToolTip::add(mAlarmSoundButton, dispStr); |
569 | } | 563 | } |
570 | mAlarmButton->setChecked(alarm->enabled()); | 564 | mAlarmButton->setChecked(alarm->enabled()); |
571 | enableAlarmEdit( alarm->enabled() ); | 565 | enableAlarmEdit( alarm->enabled() ); |
572 | //qDebug("nableAlarmEdit( alarm->enabled() )********* "); | 566 | //qDebug("nableAlarmEdit( alarm->enabled() )********* "); |
573 | // TODO: Deal with multiple alarms | 567 | // TODO: Deal with multiple alarms |
574 | break; // For now, stop after the first alarm | 568 | break; // For now, stop after the first alarm |
575 | } | 569 | } |
576 | 570 | ||
577 | setCategories(event->categoriesStr()); | 571 | setCategories(event->categoriesStr()); |
578 | } | 572 | } |
579 | 573 | ||
580 | void KOEditorGeneral::writeIncidence(Incidence *event) | 574 | void KOEditorGeneral::writeIncidence(Incidence *event) |
581 | { | 575 | { |
582 | // kdDebug() << "KOEditorGeneral::writeEvent()" << endl; | 576 | // kdDebug() << "KOEditorGeneral::writeEvent()" << endl; |
583 | mLocationEdit->save(KOLocationBox::LOCATION); | 577 | mLocationEdit->save(KOLocationBox::LOCATION); |
584 | event->setSummary(mSummaryEdit->currentText()); | 578 | event->setSummary(mSummaryEdit->currentText()); |
585 | event->setLocation(mLocationEdit->currentText()); | 579 | event->setLocation(mLocationEdit->currentText()); |
586 | event->setDescription(mDescriptionEdit->text()); | 580 | event->setDescription(mDescriptionEdit->text()); |
587 | event->setCategories(mCategoriesLabel->text()); | 581 | event->setCategories(mCategoriesLabel->text()); |
588 | event->setSecrecy(mSecrecyCombo->currentItem()); | 582 | event->setSecrecy(mSecrecyCombo->currentItem()); |
589 | event->setCancelled(mCancelBox->isChecked() );; | 583 | event->setCancelled(mCancelBox->isChecked() );; |
590 | // alarm stuff | 584 | // alarm stuff |
591 | if (mAlarmButton->isChecked()) { | 585 | if (mAlarmButton->isChecked()) { |
592 | if (event->alarms().count() == 0) | 586 | if (event->alarms().count() == 0) |
593 | event->newAlarm(); | 587 | event->newAlarm(); |
594 | QPtrList<Alarm> alarms = event->alarms(); | 588 | QPtrList<Alarm> alarms = event->alarms(); |
595 | Alarm *alarm; | 589 | Alarm *alarm; |
596 | for (alarm = alarms.first(); alarm; alarm = alarms.next() ) { | 590 | for (alarm = alarms.first(); alarm; alarm = alarms.next() ) { |
597 | alarm->setEnabled(true); | 591 | alarm->setEnabled(true); |
598 | int j = mAlarmTimeEdit->value()* -60; | 592 | int j = mAlarmTimeEdit->value()* -60; |
599 | if (mAlarmIncrCombo->currentItem() == 1) | 593 | if (mAlarmIncrCombo->currentItem() == 1) |
600 | j = j * 60; | 594 | j = j * 60; |
601 | else if (mAlarmIncrCombo->currentItem() == 2) | 595 | else if (mAlarmIncrCombo->currentItem() == 2) |
602 | j = j * (60 * 24); | 596 | j = j * (60 * 24); |
603 | alarm->setStartOffset( j ); | 597 | alarm->setStartOffset( j ); |
604 | 598 | ||
605 | if (!mAlarmProgram.isEmpty() && mAlarmProgramButton->isOn()) { | 599 | if (!mAlarmProgram.isEmpty() && mAlarmProgramButton->isOn()) { |
606 | alarm->setProcedureAlarm(mAlarmProgram); | 600 | alarm->setProcedureAlarm(mAlarmProgram); |
607 | } | 601 | } |
608 | else if (!mAlarmSound.isEmpty() && mAlarmSoundButton->isOn()) | 602 | else if (!mAlarmSound.isEmpty() && mAlarmSoundButton->isOn()) |
609 | alarm->setAudioAlarm(mAlarmSound); | 603 | alarm->setAudioAlarm(mAlarmSound); |
610 | else | 604 | else |
611 | alarm->setType(Alarm::Invalid); | 605 | alarm->setType(Alarm::Invalid); |
612 | //alarm->setAudioAlarm("default"); | 606 | //alarm->setAudioAlarm("default"); |
613 | // TODO: Deal with multiple alarms | 607 | // TODO: Deal with multiple alarms |
614 | break; // For now, stop after the first alarm | 608 | break; // For now, stop after the first alarm |
615 | } | 609 | } |
616 | } else { | 610 | } else { |
617 | Alarm* alarm = event->alarms().first(); | 611 | Alarm* alarm = event->alarms().first(); |
618 | if ( alarm ) { | 612 | if ( alarm ) { |
619 | alarm->setEnabled(false); | 613 | alarm->setEnabled(false); |
620 | alarm->setType(Alarm::Invalid); | 614 | alarm->setType(Alarm::Invalid); |
diff --git a/korganizer/kojournalview.cpp b/korganizer/kojournalview.cpp index 9b0e748..0523954 100644 --- a/korganizer/kojournalview.cpp +++ b/korganizer/kojournalview.cpp | |||
@@ -30,206 +30,208 @@ | |||
30 | #include <qhbox.h> | 30 | #include <qhbox.h> |
31 | #include <qpushbutton.h> | 31 | #include <qpushbutton.h> |
32 | #include <qlabel.h> | 32 | #include <qlabel.h> |
33 | #include <qpushbutton.h> | 33 | #include <qpushbutton.h> |
34 | #include <qapplication.h> | 34 | #include <qapplication.h> |
35 | 35 | ||
36 | #include <klocale.h> | 36 | #include <klocale.h> |
37 | #include <kdebug.h> | 37 | #include <kdebug.h> |
38 | #include "koprefs.h" | 38 | #include "koprefs.h" |
39 | #include <kglobal.h> | 39 | #include <kglobal.h> |
40 | 40 | ||
41 | #include <libkcal/calendar.h> | 41 | #include <libkcal/calendar.h> |
42 | 42 | ||
43 | #include "journalentry.h" | 43 | #include "journalentry.h" |
44 | 44 | ||
45 | #include "kojournalview.h" | 45 | #include "kojournalview.h" |
46 | using namespace KOrg; | 46 | using namespace KOrg; |
47 | 47 | ||
48 | KOJournalView::KOJournalView(Calendar *calendar, QWidget *parent, | 48 | KOJournalView::KOJournalView(Calendar *calendar, QWidget *parent, |
49 | const char *name) | 49 | const char *name) |
50 | : KOrg::BaseView(calendar, parent, name) | 50 | : KOrg::BaseView(calendar, parent, name) |
51 | { | 51 | { |
52 | mCalendar = calendar; | 52 | mCalendar = calendar; |
53 | QHBox * vb = new QHBox ( this ); | 53 | QHBox * vb = new QHBox ( this ); |
54 | QPushButton * newJournal = new QPushButton( vb ); | 54 | QPushButton * newJournal = new QPushButton( vb ); |
55 | QPixmap icon; | 55 | QPixmap icon; |
56 | if ( QApplication::desktop()->width() < 321 ) | 56 | if ( QApplication::desktop()->width() < 321 ) |
57 | icon = SmallIcon("ko16old"); | 57 | icon = SmallIcon("ko16old"); |
58 | else | 58 | else |
59 | icon = SmallIcon("ko24old"); | 59 | icon = SmallIcon("ko24old"); |
60 | newJournal->setPixmap (icon ) ; | 60 | newJournal->setPixmap (icon ) ; |
61 | int size = newJournal->sizeHint().height(); | 61 | int size = newJournal->sizeHint().height(); |
62 | newJournal->setFixedSize( size, size ); | 62 | newJournal->setFixedSize( size, size ); |
63 | mDateLabel = new QLabel ( vb ); | 63 | mDateLabel = new QLabel ( vb ); |
64 | mDateLabel->setMargin(1); | 64 | mDateLabel->setMargin(1); |
65 | mDateLabel->setAlignment(AlignCenter); | 65 | mDateLabel->setAlignment(AlignCenter); |
66 | QScrollView * sv = new QScrollView( this ); | 66 | QScrollView * sv = new QScrollView( this ); |
67 | QVBoxLayout * hbl = new QVBoxLayout( this ); | 67 | QVBoxLayout * hbl = new QVBoxLayout( this ); |
68 | hbl->addWidget( vb ); | 68 | hbl->addWidget( vb ); |
69 | hbl->addWidget( sv ); | 69 | hbl->addWidget( sv ); |
70 | parWid = new QWidget( sv->viewport() ); | 70 | parWid = new QWidget( sv->viewport() ); |
71 | sv->addChild(parWid); | 71 | sv->addChild(parWid); |
72 | sv->setResizePolicy( QScrollView:: AutoOneFit ); | 72 | sv->setResizePolicy( QScrollView:: AutoOneFit ); |
73 | mTopLayout = new QVBoxLayout(parWid); | 73 | mTopLayout = new QVBoxLayout(parWid); |
74 | connect( newJournal, SIGNAL( clicked() ), this , SLOT( newJournal() ) ); | 74 | connect( newJournal, SIGNAL( clicked() ), this , SLOT( newJournal() ) ); |
75 | getNewEntry(); | 75 | getNewEntry(); |
76 | } | 76 | } |
77 | 77 | ||
78 | KOJournalView::~KOJournalView() | 78 | KOJournalView::~KOJournalView() |
79 | { | 79 | { |
80 | } | 80 | } |
81 | 81 | ||
82 | int KOJournalView::currentDateCount() | 82 | int KOJournalView::currentDateCount() |
83 | { | 83 | { |
84 | return 0; | 84 | return 0; |
85 | } | 85 | } |
86 | JournalEntry* KOJournalView::getNewEntry() | 86 | JournalEntry* KOJournalView::getNewEntry() |
87 | { | 87 | { |
88 | JournalEntry* Entry = new JournalEntry(mCalendar,parWid); | 88 | JournalEntry* Entry = new JournalEntry(mCalendar,parWid); |
89 | jEntries.append( Entry ); | 89 | jEntries.append( Entry ); |
90 | mTopLayout->addWidget(Entry); | 90 | mTopLayout->addWidget(Entry); |
91 | Entry->setFont ( KOPrefs::instance()->mJornalViewFont ); | 91 | Entry->setFont ( KOPrefs::instance()->mJornalViewFont ); |
92 | connect ( Entry,SIGNAL(deleteJournal(Journal *) ),this ,SIGNAL(deleteJournal(Journal *) ) ) ; | 92 | connect ( Entry,SIGNAL(deleteJournal(Journal *) ),this ,SIGNAL(deleteJournal(Journal *) ) ) ; |
93 | connect ( Entry,SIGNAL(newJournal() ),this ,SLOT(newJournal() ) ) ; | 93 | connect ( Entry,SIGNAL(newJournal() ),this ,SLOT(newJournal() ) ) ; |
94 | connect ( Entry,SIGNAL(showJournalOnly( Journal * ) ),this ,SLOT(showOnly ( Journal* ) ) ) ; | 94 | connect ( Entry,SIGNAL(showJournalOnly( Journal * ) ),this ,SLOT(showOnly ( Journal* ) ) ) ; |
95 | return Entry; | 95 | return Entry; |
96 | } | 96 | } |
97 | 97 | ||
98 | QPtrList<Incidence> KOJournalView::selectedIncidences() | 98 | QPtrList<Incidence> KOJournalView::selectedIncidences() |
99 | { | 99 | { |
100 | QPtrList<Incidence> eventList; | 100 | QPtrList<Incidence> eventList; |
101 | 101 | ||
102 | return eventList; | 102 | return eventList; |
103 | } | 103 | } |
104 | void KOJournalView::updateConfig() | 104 | void KOJournalView::updateConfig() |
105 | { | 105 | { |
106 | JournalEntry* mEntry = jEntries.first(); | 106 | JournalEntry* mEntry = jEntries.first(); |
107 | while ( mEntry ) { | 107 | while ( mEntry ) { |
108 | mEntry->setFont ( KOPrefs::instance()->mJornalViewFont ); | 108 | mEntry->setFont ( KOPrefs::instance()->mJornalViewFont ); |
109 | mEntry = jEntries.next(); | 109 | mEntry = jEntries.next(); |
110 | } | 110 | } |
111 | } | 111 | } |
112 | void KOJournalView::updateView() | 112 | void 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 | } |
121 | void KOJournalView::checkModified() | 121 | void KOJournalView::checkModified() |
122 | { | 122 | { |
123 | flushView(); | 123 | flushView(); |
124 | } | 124 | } |
125 | void KOJournalView::flushView() | 125 | void 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 | ||
138 | void KOJournalView::clearList() | 138 | void 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 | } |
146 | void KOJournalView::newJournal() | 146 | void 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 | ||
156 | void KOJournalView::showOnly ( Journal* j ) | 156 | void 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 | } |
170 | void KOJournalView::showList(QPtrList<Journal> jl) | 170 | void 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 | ||
209 | void KOJournalView::showDates(const QDate &start, const QDate &) | 211 | void 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 | ||
217 | void KOJournalView::showEvents(QPtrList<Event>) | 219 | void 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 | ||
223 | void KOJournalView::changeEventDisplay(Event *, int /*action*/) | 225 | void KOJournalView::changeEventDisplay(Event *, int /*action*/) |
224 | { | 226 | { |
225 | updateView(); | 227 | updateView(); |
226 | } | 228 | } |
227 | 229 | ||
228 | void KOJournalView::keyPressEvent ( QKeyEvent * e ) | 230 | void 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 | |||
@@ -376,230 +376,240 @@ void KOPrefs::setCategoryDefaults() | |||
376 | QStringList::Iterator it; | 376 | QStringList::Iterator it; |
377 | for (it = mCustomCategories.begin();it != mCustomCategories.end();++it ) { | 377 | for (it = mCustomCategories.begin();it != mCustomCategories.end();++it ) { |
378 | setCategoryColor(*it,mDefaultCategoryColor); | 378 | setCategoryColor(*it,mDefaultCategoryColor); |
379 | } | 379 | } |
380 | } | 380 | } |
381 | QStringList KOPrefs::getLocationDefaultList() | 381 | QStringList KOPrefs::getLocationDefaultList() |
382 | { | 382 | { |
383 | QStringList retval ; | 383 | QStringList retval ; |
384 | retval << i18n("Home") << i18n("Office") << i18n("Library") << i18n("School") << i18n("Doctor") << i18n("Beach") | 384 | retval << i18n("Home") << i18n("Office") << i18n("Library") << i18n("School") << i18n("Doctor") << i18n("Beach") |
385 | << i18n("University") << i18n("Restaurant") << i18n("Bar") << i18n("Conference room") | 385 | << i18n("University") << i18n("Restaurant") << i18n("Bar") << i18n("Conference room") |
386 | << i18n("Cinema") << i18n("Lake") << i18n("Kindergarten") | 386 | << i18n("Cinema") << i18n("Lake") << i18n("Kindergarten") |
387 | << i18n("Germany") << i18n("Sweden") << i18n("Forest") << i18n("Desert") << i18n("Kitchen") ; | 387 | << i18n("Germany") << i18n("Sweden") << i18n("Forest") << i18n("Desert") << i18n("Kitchen") ; |
388 | // << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") | 388 | // << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") << i18n("") |
389 | 389 | ||
390 | retval.sort(); | 390 | retval.sort(); |
391 | return retval; | 391 | return retval; |
392 | } | 392 | } |
393 | QStringList KOPrefs::getDefaultList() | 393 | QStringList KOPrefs::getDefaultList() |
394 | { | 394 | { |
395 | QStringList retval ; | 395 | QStringList retval ; |
396 | retval << i18n("Anniversary") << i18n("Appointment") << i18n("Birthday") << i18n("Business") << i18n("Customer") | 396 | retval << i18n("Anniversary") << i18n("Appointment") << i18n("Birthday") << i18n("Business") << i18n("Customer") |
397 | << i18n("Break") | 397 | << i18n("Break") |
398 | << i18n("Family") << i18n("Favorites") << i18n("Fishing") << i18n("Gifts") | 398 | << i18n("Family") << i18n("Favorites") << i18n("Fishing") << i18n("Gifts") |
399 | << i18n("Holiday") << i18n("Holiday Cards")<< i18n("Hot Contacts") | 399 | << i18n("Holiday") << i18n("Holiday Cards")<< i18n("Hot Contacts") |
400 | << i18n("Meeting") << i18n("Miscellaneous") << i18n("Partner") << i18n("Personal") | 400 | << i18n("Meeting") << i18n("Miscellaneous") << i18n("Partner") << i18n("Personal") |
401 | << i18n("PHB") << i18n("Phone Calls") << i18n("Shopping") | 401 | << i18n("PHB") << i18n("Phone Calls") << i18n("Shopping") |
402 | << i18n("Sports") << i18n("Talk") << i18n("Travel") << i18n("TV") | 402 | << i18n("Sports") << i18n("Talk") << i18n("Travel") << i18n("TV") |
403 | << i18n("Vacation") ; | 403 | << i18n("Vacation") ; |
404 | retval.sort(); | 404 | retval.sort(); |
405 | //qDebug("cat %s ", retval.join("-").latin1()); | 405 | //qDebug("cat %s ", retval.join("-").latin1()); |
406 | return retval; | 406 | return retval; |
407 | } | 407 | } |
408 | // << i18n("Business Travel") << i18n("Education") << i18n("Hiking") << i18n("Hunting") << i18n("Recurring") << i18n("Personal Travel") << i18n("Speach") << i18n("Festival") << i18n("Competition")<< i18n("Party")<< i18n("Projects")<< i18n("Kids") << i18n("Special Occasion")<< i18n("Breakfast")<< i18n("Dinner") << i18n("Lunch")<< i18n("University")<< i18n("School")<< i18n("Flight")<< i18n("Key Customer") << i18n("VIP") << i18n("SyncEvent") << i18n("Cinema") | 408 | // << i18n("Business Travel") << i18n("Education") << i18n("Hiking") << i18n("Hunting") << i18n("Recurring") << i18n("Personal Travel") << i18n("Speach") << i18n("Festival") << i18n("Competition")<< i18n("Party")<< i18n("Projects")<< i18n("Kids") << i18n("Special Occasion")<< i18n("Breakfast")<< i18n("Dinner") << i18n("Lunch")<< i18n("University")<< i18n("School")<< i18n("Flight")<< i18n("Key Customer") << i18n("VIP") << i18n("SyncEvent") << i18n("Cinema") |
409 | void KOPrefs::usrReadConfig() | 409 | void KOPrefs::usrReadConfig() |
410 | { | 410 | { |
411 | config()->setGroup("General"); | 411 | config()->setGroup("General"); |
412 | 412 | ||
413 | //qDebug("KOPrefs::usrReadConfig() "); | 413 | //qDebug("KOPrefs::usrReadConfig() "); |
414 | mCustomCategories = config()->readListEntry("Custom Categories"); | 414 | mCustomCategories = config()->readListEntry("Custom Categories"); |
415 | mOldLoadedLanguage = mOldLanguage ; | 415 | mOldLoadedLanguage = mOldLanguage ; |
416 | mOldLanguage = KPimGlobalPrefs::instance()->mPreferredLanguage; | 416 | mOldLanguage = KPimGlobalPrefs::instance()->mPreferredLanguage; |
417 | if (mLocationDefaults.isEmpty()) { | 417 | if (mLocationDefaults.isEmpty()) { |
418 | mLocationDefaults = getLocationDefaultList(); | 418 | mLocationDefaults = getLocationDefaultList(); |
419 | } | 419 | } |
420 | 420 | ||
421 | if (mEventSummaryUser.isEmpty()) { | 421 | if (mEventSummaryUser.isEmpty()) { |
422 | mEventSummaryUser = getDefaultList() ; | 422 | mEventSummaryUser = getDefaultList() ; |
423 | } | 423 | } |
424 | if (mTodoSummaryUser.isEmpty()) { | 424 | if (mTodoSummaryUser.isEmpty()) { |
425 | mTodoSummaryUser = getDefaultList() ; | 425 | mTodoSummaryUser = getDefaultList() ; |
426 | } | 426 | } |
427 | 427 | ||
428 | if (mCustomCategories.isEmpty()) setCategoryDefaults(); | 428 | if (mCustomCategories.isEmpty()) setCategoryDefaults(); |
429 | 429 | ||
430 | config()->setGroup("Personal Settings"); | 430 | config()->setGroup("Personal Settings"); |
431 | mName = config()->readEntry("user_name",""); | 431 | mName = config()->readEntry("user_name",""); |
432 | mEmail = config()->readEntry("user_email",""); | 432 | mEmail = config()->readEntry("user_email",""); |
433 | fillMailDefaults(); | 433 | fillMailDefaults(); |
434 | 434 | ||
435 | config()->setGroup("Category Colors"); | 435 | config()->setGroup("Category Colors"); |
436 | QStringList::Iterator it; | 436 | QStringList::Iterator it; |
437 | for (it = mCustomCategories.begin();it != mCustomCategories.end();++it ) { | 437 | for (it = mCustomCategories.begin();it != mCustomCategories.end();++it ) { |
438 | setCategoryColor(*it,config()->readColorEntry(*it,&mDefaultCategoryColor)); | 438 | setCategoryColor(*it,config()->readColorEntry(*it,&mDefaultCategoryColor)); |
439 | 439 | ||
440 | } | 440 | } |
441 | KConfig fc (locateLocal("config","kopicalendarrc")); | 441 | KConfig fc (locateLocal("config","kopicalendarrc")); |
442 | fc.setGroup("CC"); | 442 | fc.setGroup("CC"); |
443 | int numCals = fc.readNumEntry("NumberCalendars",0 ); | 443 | int numCals = fc.readNumEntry("NumberCalendars",0 ); |
444 | mNextAvailableCalendar = 1; | 444 | mNextAvailableCalendar = 1; |
445 | if ( numCals == 0 ) { | 445 | if ( numCals == 0 ) { |
446 | KopiCalendarFile *kkf = getNewCalendar(); | 446 | KopiCalendarFile *kkf = getNewCalendar(); |
447 | kkf->isStandard = true; | 447 | kkf->isStandard = true; |
448 | kkf->mName = i18n("Standard"); | 448 | kkf->mName = i18n("Standard"); |
449 | kkf->mFileName = locateLocal( "data", "korganizer/mycalendar.ics" ); | 449 | kkf->mFileName = locateLocal( "data", "korganizer/mycalendar.ics" ); |
450 | } | 450 | } |
451 | while ( mNextAvailableCalendar <= numCals ) { | 451 | while ( mNextAvailableCalendar <= numCals ) { |
452 | //qDebug("Read cal #%d ", mNextAvailableCalendar ); | 452 | //qDebug("Read cal #%d ", mNextAvailableCalendar ); |
453 | QString prefix = "Cal_" +QString::number( mNextAvailableCalendar ); | 453 | QString prefix = "Cal_" +QString::number( mNextAvailableCalendar ); |
454 | KopiCalendarFile *kkf = getNewCalendar(); | 454 | KopiCalendarFile *kkf = getNewCalendar(); |
455 | kkf->isStandard = fc.readBoolEntry( prefix+"_isStandard", false ); | 455 | kkf->isStandard = fc.readBoolEntry( prefix+"_isStandard", false ); |
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 | ||
474 | KopiCalendarFile * KOPrefs::getCalendar( int num ) | 474 | KopiCalendarFile * KOPrefs::getCalendar( int num ) |
475 | { | 475 | { |
476 | return mDefCalColors[num-1]; | 476 | return mDefCalColors[num-1]; |
477 | } | 477 | } |
478 | 478 | ||
479 | KopiCalendarFile * KOPrefs::getNewCalendar() | 479 | KopiCalendarFile * 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 | } |
491 | void KOPrefs::deleteCalendar( int num ) | 491 | void 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 | } |
504 | int 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 | } | ||
504 | QString KOPrefs::calName( int calNum) const | 514 | QString KOPrefs::calName( int calNum) const |
505 | { | 515 | { |
506 | return (mDefCalColors[calNum-1])->mName; | 516 | return (mDefCalColors[calNum-1])->mName; |
507 | } | 517 | } |
508 | QColor KOPrefs::defaultColor( int calNum ) const | 518 | QColor 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 | } |
513 | void KOPrefs::usrWriteConfig() | 523 | void 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; |
552 | } | 562 | } |
553 | fc.sync(); | 563 | fc.sync(); |
554 | KPimPrefs::usrWriteConfig(); | 564 | KPimPrefs::usrWriteConfig(); |
555 | } | 565 | } |
556 | 566 | ||
557 | void KOPrefs::setCategoryColor(QString cat,const QColor & color) | 567 | void KOPrefs::setCategoryColor(QString cat,const QColor & color) |
558 | { | 568 | { |
559 | mCategoryColors.replace(cat,new QColor(color)); | 569 | mCategoryColors.replace(cat,new QColor(color)); |
560 | } | 570 | } |
561 | 571 | ||
562 | QColor *KOPrefs::categoryColor(QString cat) | 572 | QColor *KOPrefs::categoryColor(QString cat) |
563 | { | 573 | { |
564 | QColor *color = 0; | 574 | QColor *color = 0; |
565 | 575 | ||
566 | if (!cat.isEmpty()) color = mCategoryColors[cat]; | 576 | if (!cat.isEmpty()) color = mCategoryColors[cat]; |
567 | 577 | ||
568 | if (color) return color; | 578 | if (color) return color; |
569 | else return &mDefaultCategoryColor; | 579 | else return &mDefaultCategoryColor; |
570 | } | 580 | } |
571 | 581 | ||
572 | void KOPrefs::setFullName(const QString &name) | 582 | void KOPrefs::setFullName(const QString &name) |
573 | { | 583 | { |
574 | mName = name; | 584 | mName = name; |
575 | } | 585 | } |
576 | 586 | ||
577 | void KOPrefs::setEmail(const QString &email) | 587 | void KOPrefs::setEmail(const QString &email) |
578 | { | 588 | { |
579 | //qDebug(" KOPrefs::setEmai*********** %s",email.latin1() ); | 589 | //qDebug(" KOPrefs::setEmai*********** %s",email.latin1() ); |
580 | mEmail = email; | 590 | mEmail = email; |
581 | } | 591 | } |
582 | 592 | ||
583 | QString KOPrefs::fullName() | 593 | QString KOPrefs::fullName() |
584 | { | 594 | { |
585 | if (mEmailControlCenter) { | 595 | if (mEmailControlCenter) { |
586 | KEMailSettings settings; | 596 | KEMailSettings settings; |
587 | return settings.getSetting(KEMailSettings::RealName); | 597 | return settings.getSetting(KEMailSettings::RealName); |
588 | } else { | 598 | } else { |
589 | return mName; | 599 | return mName; |
590 | } | 600 | } |
591 | } | 601 | } |
592 | 602 | ||
593 | QString KOPrefs::email() | 603 | QString KOPrefs::email() |
594 | { | 604 | { |
595 | if (mEmailControlCenter) { | 605 | if (mEmailControlCenter) { |
596 | KEMailSettings settings; | 606 | KEMailSettings settings; |
597 | return settings.getSetting(KEMailSettings::EmailAddress); | 607 | return settings.getSetting(KEMailSettings::EmailAddress); |
598 | } else { | 608 | } else { |
599 | return mEmail; | 609 | return mEmail; |
600 | } | 610 | } |
601 | } | 611 | } |
602 | KConfig* KOPrefs::getConfig() | 612 | KConfig* KOPrefs::getConfig() |
603 | { | 613 | { |
604 | return config(); | 614 | return config(); |
605 | } | 615 | } |
diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h index 53d193b..7ec5327 100644 --- a/korganizer/koprefs.h +++ b/korganizer/koprefs.h | |||
@@ -1,230 +1,231 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of KOrganizer. | 2 | This file is part of KOrganizer. |
3 | Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org> | 3 | Copyright (c) 2000,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 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> | 29 | #include <qdir.h> |
30 | #include <qobject.h> | 30 | #include <qobject.h> |
31 | 31 | ||
32 | class KConfig; | 32 | class KConfig; |
33 | class QFont; | 33 | class QFont; |
34 | class QColor; | 34 | class QColor; |
35 | class QStringList; | 35 | class QStringList; |
36 | 36 | ||
37 | #define VIEW_WN_VIEW 1 | 37 | #define VIEW_WN_VIEW 1 |
38 | #define VIEW_NX_VIEW 2 | 38 | #define VIEW_NX_VIEW 2 |
39 | #define VIEW_J_VIEW 3 | 39 | #define VIEW_J_VIEW 3 |
40 | #define VIEW_A_VIEW 4 | 40 | #define VIEW_A_VIEW 4 |
41 | #define VIEW_ML_VIEW 5 | 41 | #define VIEW_ML_VIEW 5 |
42 | #define VIEW_M_VIEW 6 | 42 | #define VIEW_M_VIEW 6 |
43 | #define VIEW_L_VIEW 7 | 43 | #define VIEW_L_VIEW 7 |
44 | #define VIEW_T_VIEW 8 | 44 | #define VIEW_T_VIEW 8 |
45 | 45 | ||
46 | class KopiCalendarFile : public QObject | 46 | class KopiCalendarFile : public QObject |
47 | { | 47 | { |
48 | public: | 48 | public: |
49 | KopiCalendarFile( ) : QObject( ) | 49 | KopiCalendarFile( ) : QObject( ) |
50 | { | 50 | { |
51 | isStandard = false; | 51 | isStandard = false; |
52 | isEnabled = true; | 52 | isEnabled = true; |
53 | isAlarmEnabled = true; | 53 | isAlarmEnabled = true; |
54 | isReadOnly = false; | 54 | isReadOnly = false; |
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 | }; |
72 | class KOPrefs : public KPimPrefs | 72 | class 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; |
151 | QFont mMonthViewFont; | 152 | QFont mMonthViewFont; |
152 | QFont mAgendaViewFont; | 153 | QFont mAgendaViewFont; |
153 | QFont mMarcusBainsFont; | 154 | QFont mMarcusBainsFont; |
154 | QFont mTimeLabelsFont; | 155 | QFont mTimeLabelsFont; |
155 | QFont mTodoViewFont; | 156 | QFont mTodoViewFont; |
156 | QFont mListViewFont; | 157 | QFont mListViewFont; |
157 | QFont mDateNavigatorFont; | 158 | QFont mDateNavigatorFont; |
158 | QFont mEditBoxFont; | 159 | QFont mEditBoxFont; |
159 | QFont mJornalViewFont; | 160 | QFont mJornalViewFont; |
160 | QFont mWhatsNextFont; | 161 | QFont mWhatsNextFont; |
161 | QFont mEventViewFont; | 162 | QFont mEventViewFont; |
162 | 163 | ||
163 | 164 | ||
164 | 165 | ||
165 | 166 | ||
166 | QColor mHolidayColor; | 167 | QColor mHolidayColor; |
167 | QColor mHighlightColor; | 168 | QColor mHighlightColor; |
168 | QColor mEventColor; | 169 | QColor mEventColor; |
169 | QColor mTodoDoneColor; | 170 | QColor mTodoDoneColor; |
170 | QColor mAgendaBgColor; | 171 | QColor mAgendaBgColor; |
171 | QColor mWorkingHoursColor; | 172 | QColor mWorkingHoursColor; |
172 | QColor mTodoDueTodayColor; | 173 | QColor mTodoDueTodayColor; |
173 | QColor mTodoOverdueColor; | 174 | QColor mTodoOverdueColor; |
174 | QColor mTodoRunColor; | 175 | QColor mTodoRunColor; |
175 | QColor mMonthViewEvenColor; | 176 | QColor mMonthViewEvenColor; |
176 | QColor mMonthViewOddColor; | 177 | QColor mMonthViewOddColor; |
177 | QColor mMonthViewHolidayColor; | 178 | QColor mMonthViewHolidayColor; |
178 | bool mMonthViewUsesDayColors; | 179 | bool mMonthViewUsesDayColors; |
179 | bool mMonthViewSatSunTog; | 180 | bool mMonthViewSatSunTog; |
180 | bool mMonthViewWeek; | 181 | bool mMonthViewWeek; |
181 | QColor mAppColor1; | 182 | QColor mAppColor1; |
182 | QColor mAppColor2; | 183 | QColor mAppColor2; |
183 | bool mUseAppColors; | 184 | bool mUseAppColors; |
184 | 185 | ||
185 | int mDayBegins; | 186 | int mDayBegins; |
186 | int mHourSize; | 187 | int mHourSize; |
187 | int mAllDaySize; | 188 | int mAllDaySize; |
188 | bool mShowFullMenu; | 189 | bool mShowFullMenu; |
189 | bool mDailyRecur; | 190 | bool mDailyRecur; |
190 | bool mWeeklyRecur; | 191 | bool mWeeklyRecur; |
191 | bool mMonthDailyRecur; | 192 | bool mMonthDailyRecur; |
192 | bool mMonthWeeklyRecur; | 193 | bool mMonthWeeklyRecur; |
193 | bool mMonthShowIcons; | 194 | bool mMonthShowIcons; |
194 | bool mMonthShowTimes; | 195 | bool mMonthShowTimes; |
195 | bool mMonthShowShort; | 196 | bool mMonthShowShort; |
196 | bool mEnableToolTips; | 197 | bool mEnableToolTips; |
197 | bool mEnableMonthScroll; | 198 | bool mEnableMonthScroll; |
198 | bool mFullViewMonth; | 199 | bool mFullViewMonth; |
199 | bool mMonthViewUsesCategoryColor; | 200 | bool mMonthViewUsesCategoryColor; |
200 | bool mFullViewTodo; | 201 | bool mFullViewTodo; |
201 | bool mShowCompletedTodo; | 202 | bool mShowCompletedTodo; |
202 | bool mMarcusBainsEnabled; | 203 | bool mMarcusBainsEnabled; |
203 | int mNextXDays; | 204 | int mNextXDays; |
204 | int mWhatsNextDays; | 205 | int mWhatsNextDays; |
205 | int mWhatsNextPrios; | 206 | int mWhatsNextPrios; |
206 | bool mEnableQuickTodo; | 207 | bool mEnableQuickTodo; |
207 | 208 | ||
208 | bool mCompactDialogs; | 209 | bool mCompactDialogs; |
209 | bool mVerticalScreen; | 210 | bool mVerticalScreen; |
210 | 211 | ||
211 | bool mShowIconNewTodo; | 212 | bool mShowIconNewTodo; |
212 | bool mShowIconNewEvent; | 213 | bool mShowIconNewEvent; |
213 | bool mShowIconSearch; | 214 | bool mShowIconSearch; |
214 | bool mShowIconList; | 215 | bool mShowIconList; |
215 | bool mShowIconDay1; | 216 | bool mShowIconDay1; |
216 | bool mShowIconDay5; | 217 | bool mShowIconDay5; |
217 | bool mShowIconDay6; | 218 | bool mShowIconDay6; |
218 | bool mShowIconDay7; | 219 | bool mShowIconDay7; |
219 | bool mShowIconMonth; | 220 | bool mShowIconMonth; |
220 | bool mShowIconTodoview; | 221 | bool mShowIconTodoview; |
221 | bool mShowIconBackFast; | 222 | bool mShowIconBackFast; |
222 | bool mShowIconBack; | 223 | bool mShowIconBack; |
223 | bool mShowIconToday; | 224 | bool mShowIconToday; |
224 | bool mShowIconForward; | 225 | bool mShowIconForward; |
225 | bool mShowIconForwardFast; | 226 | bool mShowIconForwardFast; |
226 | bool mShowIconWhatsThis; | 227 | bool mShowIconWhatsThis; |
227 | bool mShowIconWeekNum; | 228 | bool mShowIconWeekNum; |
228 | bool mShowIconNextDays; | 229 | bool mShowIconNextDays; |
229 | bool mShowIconNext; | 230 | bool mShowIconNext; |
230 | bool mShowIconJournal; | 231 | bool mShowIconJournal; |