summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koeditorgeneraltodo.cpp7
-rw-r--r--korganizer/koeventviewer.cpp10
-rw-r--r--korganizer/komonthview.cpp61
-rw-r--r--korganizer/komonthview.h6
-rw-r--r--korganizer/koviewmanager.cpp5
5 files changed, 46 insertions, 43 deletions
diff --git a/korganizer/koeditorgeneraltodo.cpp b/korganizer/koeditorgeneraltodo.cpp
index cd78f54..ce66863 100644
--- a/korganizer/koeditorgeneraltodo.cpp
+++ b/korganizer/koeditorgeneraltodo.cpp
@@ -1,420 +1,423 @@
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 23
24#include <qtooltip.h> 24#include <qtooltip.h>
25#include <qfiledialog.h> 25#include <qfiledialog.h>
26#include <qlayout.h> 26#include <qlayout.h>
27#include <qvbox.h> 27#include <qvbox.h>
28#include <qbuttongroup.h> 28#include <qbuttongroup.h>
29#include <qvgroupbox.h> 29#include <qvgroupbox.h>
30#include <qwidgetstack.h> 30#include <qwidgetstack.h>
31#include <qdatetime.h> 31#include <qdatetime.h>
32#include <qapplication.h> 32#include <qapplication.h>
33 33
34#include <kglobal.h> 34#include <kglobal.h>
35#include <klocale.h> 35#include <klocale.h>
36#include <kiconloader.h> 36#include <kiconloader.h>
37#include <kmessagebox.h> 37#include <kmessagebox.h>
38#include <kdebug.h> 38#include <kdebug.h>
39#include <krestrictedline.h> 39#include <krestrictedline.h>
40#include <kstandarddirs.h> 40#include <kstandarddirs.h>
41#include <kfiledialog.h> 41#include <kfiledialog.h>
42 42
43#include <libkcal/todo.h> 43#include <libkcal/todo.h>
44 44
45#include <libkdepim/kdateedit.h> 45#include <libkdepim/kdateedit.h>
46 46
47#include "koprefs.h" 47#include "koprefs.h"
48#include "ktimeedit.h" 48#include "ktimeedit.h"
49 49
50#include "koeditorgeneraltodo.h" 50#include "koeditorgeneraltodo.h"
51#include "kolocationbox.h" 51#include "kolocationbox.h"
52 52
53KOEditorGeneralTodo::KOEditorGeneralTodo(QObject* parent, 53KOEditorGeneralTodo::KOEditorGeneralTodo(QObject* parent,
54 const char* name) 54 const char* name)
55 : KOEditorGeneral( parent, name) 55 : KOEditorGeneral( parent, name)
56{ 56{
57} 57}
58 58
59KOEditorGeneralTodo::~KOEditorGeneralTodo() 59KOEditorGeneralTodo::~KOEditorGeneralTodo()
60{ 60{
61} 61}
62 62
63void KOEditorGeneralTodo::finishSetup() 63void KOEditorGeneralTodo::finishSetup()
64{ 64{
65 65
66// QWidget::setTabOrder(mSummaryEdit, mLocationEdit); 66// QWidget::setTabOrder(mSummaryEdit, mLocationEdit);
67// QWidget::setTabOrder(mLocationEdit, mDueCheck); 67// QWidget::setTabOrder(mLocationEdit, mDueCheck);
68// QWidget::setTabOrder(mDueCheck, mDueDateEdit); 68// QWidget::setTabOrder(mDueCheck, mDueDateEdit);
69// QWidget::setTabOrder(mDueDateEdit, mDueTimeEdit); 69// QWidget::setTabOrder(mDueDateEdit, mDueTimeEdit);
70// QWidget::setTabOrder(mDueTimeEdit, mStartCheck); 70// QWidget::setTabOrder(mDueTimeEdit, mStartCheck);
71// QWidget::setTabOrder(mStartCheck, mStartDateEdit); 71// QWidget::setTabOrder(mStartCheck, mStartDateEdit);
72// QWidget::setTabOrder(mStartDateEdit, mStartTimeEdit); 72// QWidget::setTabOrder(mStartDateEdit, mStartTimeEdit);
73// QWidget::setTabOrder(mStartTimeEdit, mTimeButton); 73// QWidget::setTabOrder(mStartTimeEdit, mTimeButton);
74// QWidget::setTabOrder(mTimeButton, mCompletedCombo); 74// QWidget::setTabOrder(mTimeButton, mCompletedCombo);
75// QWidget::setTabOrder(mCompletedCombo, mPriorityCombo); 75// QWidget::setTabOrder(mCompletedCombo, mPriorityCombo);
76// QWidget::setTabOrder(mPriorityCombo, mAlarmButton); 76// QWidget::setTabOrder(mPriorityCombo, mAlarmButton);
77// QWidget::setTabOrder(mAlarmButton, mCategoriesButton); 77// QWidget::setTabOrder(mAlarmButton, mCategoriesButton);
78// QWidget::setTabOrder(mCategoriesButton, mSecrecyCombo); 78// QWidget::setTabOrder(mCategoriesButton, mSecrecyCombo);
79// QWidget::setTabOrder(mSecrecyCombo, mDescriptionEdit); 79// QWidget::setTabOrder(mSecrecyCombo, mDescriptionEdit);
80 mSummaryEdit->load(KOLocationBox::SUMMARYTODO); 80 mSummaryEdit->load(KOLocationBox::SUMMARYTODO);
81 mSummaryEdit->setFocus(); 81 mSummaryEdit->setFocus();
82} 82}
83 83
84void KOEditorGeneralTodo::initTime(QWidget *parent,QBoxLayout *topLayout) 84void KOEditorGeneralTodo::initTime(QWidget *parent,QBoxLayout *topLayout)
85{ 85{
86 QBoxLayout *timeLayout = new QVBoxLayout(topLayout); 86 QBoxLayout *timeLayout = new QVBoxLayout(topLayout);
87 87
88 QGroupBox *timeGroupBox = new QGroupBox(1,QGroupBox::Horizontal, 88 QGroupBox *timeGroupBox = new QGroupBox(1,QGroupBox::Horizontal,
89 i18n("Date && Time"),parent); 89 i18n("Date && Time"),parent);
90 timeLayout->addWidget(timeGroupBox); 90 timeLayout->addWidget(timeGroupBox);
91 timeGroupBox->layout()->setSpacing( 0 ); 91 timeGroupBox->layout()->setSpacing( 0 );
92 timeGroupBox->layout()->setMargin( 5 ); 92 timeGroupBox->layout()->setMargin( 5 );
93 QFrame *timeBoxFrame = new QFrame(timeGroupBox); 93 QFrame *timeBoxFrame = new QFrame(timeGroupBox);
94 94
95 QGridLayout *layoutTimeBox = new QGridLayout(timeBoxFrame,3,3); 95 QGridLayout *layoutTimeBox = new QGridLayout(timeBoxFrame,3,3);
96 layoutTimeBox->setSpacing(topLayout->spacing()); 96 layoutTimeBox->setSpacing(topLayout->spacing());
97 layoutTimeBox->setColStretch( 1, 1 ); 97 layoutTimeBox->setColStretch( 1, 1 );
98 98
99 mDueCheck = new QCheckBox(i18n("Due:"),timeBoxFrame); 99 mDueCheck = new QCheckBox(i18n("Due:"),timeBoxFrame);
100 layoutTimeBox->addWidget(mDueCheck,0,0); 100 layoutTimeBox->addWidget(mDueCheck,0,0);
101 connect(mDueCheck,SIGNAL(toggled(bool)),SLOT(enableDueEdit(bool))); 101 connect(mDueCheck,SIGNAL(toggled(bool)),SLOT(enableDueEdit(bool)));
102 connect(mDueCheck,SIGNAL(toggled(bool)),SLOT(showAlarm())); 102 connect(mDueCheck,SIGNAL(toggled(bool)),SLOT(showAlarm()));
103 103
104 104
105 mDueDateEdit = new KDateEdit(timeBoxFrame); 105 mDueDateEdit = new KDateEdit(timeBoxFrame);
106 layoutTimeBox->addWidget(mDueDateEdit,0,1); 106 layoutTimeBox->addWidget(mDueDateEdit,0,1);
107 107
108 mDueTimeEdit = new KOTimeEdit(timeBoxFrame); 108 mDueTimeEdit = new KOTimeEdit(timeBoxFrame);
109 layoutTimeBox->addWidget(mDueTimeEdit,0,2); 109 layoutTimeBox->addWidget(mDueTimeEdit,0,2);
110 110
111 111
112 mStartCheck = new QCheckBox(i18n("Start:"),timeBoxFrame); 112 mStartCheck = new QCheckBox(i18n("Start:"),timeBoxFrame);
113 layoutTimeBox->addWidget(mStartCheck,1,0); 113 layoutTimeBox->addWidget(mStartCheck,1,0);
114 connect(mStartCheck,SIGNAL(toggled(bool)),SLOT(enableStartEdit(bool))); 114 connect(mStartCheck,SIGNAL(toggled(bool)),SLOT(enableStartEdit(bool)));
115 115
116 mStartDateEdit = new KDateEdit(timeBoxFrame); 116 mStartDateEdit = new KDateEdit(timeBoxFrame);
117 layoutTimeBox->addWidget(mStartDateEdit,1,1); 117 layoutTimeBox->addWidget(mStartDateEdit,1,1);
118 118
119 mStartTimeEdit = new KOTimeEdit(timeBoxFrame); 119 mStartTimeEdit = new KOTimeEdit(timeBoxFrame);
120 layoutTimeBox->addWidget(mStartTimeEdit,1,2); 120 layoutTimeBox->addWidget(mStartTimeEdit,1,2);
121 121
122 122
123 mTimeButton = new QCheckBox(i18n("Time associated"),timeBoxFrame); 123 mTimeButton = new QCheckBox(i18n("Time associated"),timeBoxFrame);
124 layoutTimeBox->addMultiCellWidget(mTimeButton,2,2,0,1); 124 layoutTimeBox->addMultiCellWidget(mTimeButton,2,2,0,1);
125 125
126 connect(mTimeButton,SIGNAL(toggled(bool)),SLOT(enableTimeEdits(bool))); 126 connect(mTimeButton,SIGNAL(toggled(bool)),SLOT(enableTimeEdits(bool)));
127 127
128 // some more layouting 128 // some more layouting
129 //layoutTimeBox->setColStretch(3,1); 129 //layoutTimeBox->setColStretch(3,1);
130} 130}
131 131
132 132
133void KOEditorGeneralTodo::initCompletion(QWidget *parent, QBoxLayout *topLayout) 133void KOEditorGeneralTodo::initCompletion(QWidget *parent, QBoxLayout *topLayout)
134{ 134{
135 mCompletedCombo = new QComboBox(parent); 135 mCompletedCombo = new QComboBox(parent);
136 // xgettext:no-c-format 136 // xgettext:no-c-format
137 mCompletedCombo->insertItem(i18n(" 0 %")); 137 mCompletedCombo->insertItem(i18n(" 0 %"));
138 // xgettext:no-c-format 138 // xgettext:no-c-format
139 mCompletedCombo->insertItem(i18n(" 20 %")); 139 mCompletedCombo->insertItem(i18n(" 20 %"));
140 // xgettext:no-c-format 140 // xgettext:no-c-format
141 mCompletedCombo->insertItem(i18n(" 40 %")); 141 mCompletedCombo->insertItem(i18n(" 40 %"));
142 // xgettext:no-c-format 142 // xgettext:no-c-format
143 mCompletedCombo->insertItem(i18n(" 60 %")); 143 mCompletedCombo->insertItem(i18n(" 60 %"));
144 // xgettext:no-c-format 144 // xgettext:no-c-format
145 mCompletedCombo->insertItem(i18n(" 80 %")); 145 mCompletedCombo->insertItem(i18n(" 80 %"));
146 // xgettext:no-c-format 146 // xgettext:no-c-format
147 mCompletedCombo->insertItem(i18n("100 %")); 147 mCompletedCombo->insertItem(i18n("100 %"));
148 connect(mCompletedCombo,SIGNAL(activated(int)),SLOT(completedChanged(int))); 148 connect(mCompletedCombo,SIGNAL(activated(int)),SLOT(completedChanged(int)));
149 topLayout->addWidget(mCompletedCombo); 149 topLayout->addWidget(mCompletedCombo);
150 150
151 mCompletedLabel = new QLabel(i18n("completed"),parent); 151 mCompletedLabel = new QLabel(i18n("completed"),parent);
152 topLayout->addWidget(mCompletedLabel); 152 topLayout->addWidget(mCompletedLabel);
153 153
154 mCompleteDateEdit = new KDateEdit(parent); 154 mCompleteDateEdit = new KDateEdit(parent);
155 topLayout->addWidget(mCompleteDateEdit ); 155 topLayout->addWidget(mCompleteDateEdit );
156 156
157 mCompleteTimeEdit = new KOTimeEdit(parent); 157 mCompleteTimeEdit = new KOTimeEdit(parent);
158 topLayout->addWidget( mCompleteTimeEdit); 158 topLayout->addWidget( mCompleteTimeEdit);
159 159
160 mCompletedCombo->setSizePolicy( QSizePolicy( QSizePolicy::Preferred,QSizePolicy::Preferred) ); 160 mCompletedCombo->setSizePolicy( QSizePolicy( QSizePolicy::Preferred,QSizePolicy::Preferred) );
161 mCompletedLabel->setSizePolicy( QSizePolicy( QSizePolicy::Expanding,QSizePolicy::Preferred) ); 161 mCompletedLabel->setSizePolicy( QSizePolicy( QSizePolicy::Expanding,QSizePolicy::Preferred) );
162 162
163 if ( QApplication::desktop()->width() < 320 ) { 163 if ( QApplication::desktop()->width() <= 480 ) {
164 mCompleteDateEdit->setMaximumWidth( 85 ); 164 if ( QApplication::desktop()->width() < 320 )
165 mCompleteDateEdit->setMaximumWidth( 85 );
166 else
167 mCompleteDateEdit->setMaximumWidth( 130 );
165 topLayout->setSpacing( 0 ); 168 topLayout->setSpacing( 0 );
166 } 169 }
167} 170}
168 171
169void KOEditorGeneralTodo::initPriority(QWidget *parent, QBoxLayout *topLayout) 172void KOEditorGeneralTodo::initPriority(QWidget *parent, QBoxLayout *topLayout)
170{ 173{
171 174
172 QHBox* h = new QHBox ( parent ); 175 QHBox* h = new QHBox ( parent );
173 topLayout->addWidget( h ); 176 topLayout->addWidget( h );
174 QLabel *priorityLabel = new QLabel(i18n("Priority:"), h); 177 QLabel *priorityLabel = new QLabel(i18n("Priority:"), h);
175 // topLayout->addWidget(priorityLabel); 178 // topLayout->addWidget(priorityLabel);
176 mPriorityCombo = new QComboBox( h ); 179 mPriorityCombo = new QComboBox( h );
177 mPriorityCombo->insertItem(i18n("1 (high)")); 180 mPriorityCombo->insertItem(i18n("1 (high)"));
178 mPriorityCombo->insertItem(i18n("2")); 181 mPriorityCombo->insertItem(i18n("2"));
179 mPriorityCombo->insertItem(i18n("3")); 182 mPriorityCombo->insertItem(i18n("3"));
180 mPriorityCombo->insertItem(i18n("4")); 183 mPriorityCombo->insertItem(i18n("4"));
181 mPriorityCombo->insertItem(i18n("5 (low)")); 184 mPriorityCombo->insertItem(i18n("5 (low)"));
182 //topLayout->addWidget(mPriorityCombo); 185 //topLayout->addWidget(mPriorityCombo);
183} 186}
184 187
185void KOEditorGeneralTodo::initStatus(QWidget *parent,QBoxLayout *topLayout) 188void KOEditorGeneralTodo::initStatus(QWidget *parent,QBoxLayout *topLayout)
186{ 189{
187 QBoxLayout *statusLayout = new QHBoxLayout(topLayout); 190 QBoxLayout *statusLayout = new QHBoxLayout(topLayout);
188 191
189 initCompletion( parent, statusLayout ); 192 initCompletion( parent, statusLayout );
190 193
191 statusLayout->addStretch( 1 ); 194 statusLayout->addStretch( 1 );
192 195
193 initPriority( parent, statusLayout ); 196 initPriority( parent, statusLayout );
194} 197}
195 198
196void KOEditorGeneralTodo::setDefaults(QDateTime due,bool allDay) 199void KOEditorGeneralTodo::setDefaults(QDateTime due,bool allDay)
197{ 200{
198 201
199 mSummaryEdit->load(KOLocationBox::SUMMARYTODO); 202 mSummaryEdit->load(KOLocationBox::SUMMARYTODO);
200 mLocationEdit->load(KOLocationBox::LOCATION); 203 mLocationEdit->load(KOLocationBox::LOCATION);
201 KOEditorGeneral::setDefaults(allDay); 204 KOEditorGeneral::setDefaults(allDay);
202 205
203 mTimeButton->setChecked( !allDay ); 206 mTimeButton->setChecked( !allDay );
204 if(mTimeButton->isChecked()) { 207 if(mTimeButton->isChecked()) {
205 mTimeButton->setEnabled(true); 208 mTimeButton->setEnabled(true);
206 } 209 }
207 else { 210 else {
208 mTimeButton->setEnabled(false); 211 mTimeButton->setEnabled(false);
209 } 212 }
210 213
211 enableTimeEdits( !allDay ); 214 enableTimeEdits( !allDay );
212 if ( due.isValid() ) { 215 if ( due.isValid() ) {
213 mDueCheck->setChecked(true); 216 mDueCheck->setChecked(true);
214 enableDueEdit(true); 217 enableDueEdit(true);
215 } else { 218 } else {
216 mDueCheck->setChecked(false); 219 mDueCheck->setChecked(false);
217 enableDueEdit(false); 220 enableDueEdit(false);
218 due = QDateTime::currentDateTime().addDays(7); 221 due = QDateTime::currentDateTime().addDays(7);
219 } 222 }
220 223
221 alarmDisable(true); 224 alarmDisable(true);
222 225
223 mStartCheck->setChecked(false); 226 mStartCheck->setChecked(false);
224 enableStartEdit(false); 227 enableStartEdit(false);
225 228
226 mDueDateEdit->setDate(due.date()); 229 mDueDateEdit->setDate(due.date());
227 mDueTimeEdit->setTime(due.time()); 230 mDueTimeEdit->setTime(due.time());
228 due = due.addDays(-7); 231 due = due.addDays(-7);
229 mStartDateEdit->setDate(due.date()); 232 mStartDateEdit->setDate(due.date());
230 mStartTimeEdit->setTime(due.time()); 233 mStartTimeEdit->setTime(due.time());
231 234
232 mPriorityCombo->setCurrentItem(2); 235 mPriorityCombo->setCurrentItem(2);
233 mCompletedLabel->setText(i18n("completed"));; 236 mCompletedLabel->setText(i18n("completed"));;
234 mCompletedCombo->setCurrentItem(0); 237 mCompletedCombo->setCurrentItem(0);
235} 238}
236 239
237void KOEditorGeneralTodo::readTodo(Todo *todo) 240void KOEditorGeneralTodo::readTodo(Todo *todo)
238{ 241{
239 242
240 mSummaryEdit->load(KOLocationBox::SUMMARYTODO); 243 mSummaryEdit->load(KOLocationBox::SUMMARYTODO);
241 mLocationEdit->load(KOLocationBox::LOCATION); 244 mLocationEdit->load(KOLocationBox::LOCATION);
242 KOEditorGeneral::readIncidence(todo); 245 KOEditorGeneral::readIncidence(todo);
243 246
244 QDateTime dueDT; 247 QDateTime dueDT;
245 248
246 if (todo->hasDueDate()) { 249 if (todo->hasDueDate()) {
247 enableAlarmEdit(true); 250 enableAlarmEdit(true);
248 dueDT = todo->dtDue(); 251 dueDT = todo->dtDue();
249 mDueDateEdit->setDate(todo->dtDue().date()); 252 mDueDateEdit->setDate(todo->dtDue().date());
250 mDueTimeEdit->setTime(todo->dtDue().time()); 253 mDueTimeEdit->setTime(todo->dtDue().time());
251 mDueCheck->setChecked(true); 254 mDueCheck->setChecked(true);
252 } else { 255 } else {
253 alarmDisable(true); 256 alarmDisable(true);
254 mDueDateEdit->setEnabled(false); 257 mDueDateEdit->setEnabled(false);
255 mDueTimeEdit->setEnabled(false); 258 mDueTimeEdit->setEnabled(false);
256 mDueDateEdit->setDate(QDate::currentDate()); 259 mDueDateEdit->setDate(QDate::currentDate());
257 mDueTimeEdit->setTime(QTime::currentTime()); 260 mDueTimeEdit->setTime(QTime::currentTime());
258 mDueCheck->setChecked(false); 261 mDueCheck->setChecked(false);
259 } 262 }
260 263
261 if (todo->hasStartDate()) { 264 if (todo->hasStartDate()) {
262 mStartDateEdit->setDate(todo->dtStart().date()); 265 mStartDateEdit->setDate(todo->dtStart().date());
263 mStartTimeEdit->setTime(todo->dtStart().time()); 266 mStartTimeEdit->setTime(todo->dtStart().time());
264 mStartCheck->setChecked(true); 267 mStartCheck->setChecked(true);
265 } else { 268 } else {
266 mStartDateEdit->setEnabled(false); 269 mStartDateEdit->setEnabled(false);
267 mStartTimeEdit->setEnabled(false); 270 mStartTimeEdit->setEnabled(false);
268 mStartDateEdit->setDate(QDate::currentDate()); 271 mStartDateEdit->setDate(QDate::currentDate());
269 mStartTimeEdit->setTime(QTime::currentTime()); 272 mStartTimeEdit->setTime(QTime::currentTime());
270 mStartCheck->setChecked(false); 273 mStartCheck->setChecked(false);
271 } 274 }
272 275
273 mTimeButton->setChecked( !todo->doesFloat() ); 276 mTimeButton->setChecked( !todo->doesFloat() );
274 277
275 mCompletedCombo->setCurrentItem(todo->percentComplete() / 20); 278 mCompletedCombo->setCurrentItem(todo->percentComplete() / 20);
276 if (todo->isCompleted() && todo->hasCompletedDate()) { 279 if (todo->isCompleted() && todo->hasCompletedDate()) {
277 mCompleted = todo->completed(); 280 mCompleted = todo->completed();
278 } 281 }
279 setCompletedDate(); 282 setCompletedDate();
280 283
281 mPriorityCombo->setCurrentItem(todo->priority()-1); 284 mPriorityCombo->setCurrentItem(todo->priority()-1);
282} 285}
283 286
284void KOEditorGeneralTodo::writeTodo(Todo *todo) 287void KOEditorGeneralTodo::writeTodo(Todo *todo)
285{ 288{
286 KOEditorGeneral::writeIncidence(todo); 289 KOEditorGeneral::writeIncidence(todo);
287 290
288 // temp. until something better happens. 291 // temp. until something better happens.
289 QString tmpStr; 292 QString tmpStr;
290 293
291 todo->setHasDueDate(mDueCheck->isChecked()); 294 todo->setHasDueDate(mDueCheck->isChecked());
292 todo->setHasStartDate(mStartCheck->isChecked()); 295 todo->setHasStartDate(mStartCheck->isChecked());
293 296
294 QDate tmpDate; 297 QDate tmpDate;
295 QTime tmpTime; 298 QTime tmpTime;
296 QDateTime tmpDT; 299 QDateTime tmpDT;
297 if ( mTimeButton->isChecked() ) { 300 if ( mTimeButton->isChecked() ) {
298 todo->setFloats(false); 301 todo->setFloats(false);
299 302
300 // set due date/time 303 // set due date/time
301 tmpDate = mDueDateEdit->date(); 304 tmpDate = mDueDateEdit->date();
302 tmpTime = mDueTimeEdit->getTime(); 305 tmpTime = mDueTimeEdit->getTime();
303 tmpDT.setDate(tmpDate); 306 tmpDT.setDate(tmpDate);
304 tmpDT.setTime(tmpTime); 307 tmpDT.setTime(tmpTime);
305 todo->setDtDue(tmpDT); 308 todo->setDtDue(tmpDT);
306 309
307 // set start date/time 310 // set start date/time
308 tmpDate = mStartDateEdit->date(); 311 tmpDate = mStartDateEdit->date();
309 tmpTime = mStartTimeEdit->getTime(); 312 tmpTime = mStartTimeEdit->getTime();
310 tmpDT.setDate(tmpDate); 313 tmpDT.setDate(tmpDate);
311 tmpDT.setTime(tmpTime); 314 tmpDT.setTime(tmpTime);
312 todo->setDtStart(tmpDT); 315 todo->setDtStart(tmpDT);
313 } else { 316 } else {
314 todo->setFloats(true); 317 todo->setFloats(true);
315 318
316 // need to change this. 319 // need to change this.
317 tmpDate = mDueDateEdit->date(); 320 tmpDate = mDueDateEdit->date();
318 tmpTime.setHMS(0,0,0); 321 tmpTime.setHMS(0,0,0);
319 tmpDT.setDate(tmpDate); 322 tmpDT.setDate(tmpDate);
320 tmpDT.setTime(tmpTime); 323 tmpDT.setTime(tmpTime);
321 todo->setDtDue(tmpDT); 324 todo->setDtDue(tmpDT);
322 325
323 tmpDate = mStartDateEdit->date(); 326 tmpDate = mStartDateEdit->date();
324 tmpTime.setHMS(0,0,0); 327 tmpTime.setHMS(0,0,0);
325 tmpDT.setDate(tmpDate); 328 tmpDT.setDate(tmpDate);
326 tmpDT.setTime(tmpTime); 329 tmpDT.setTime(tmpTime);
327 todo->setDtStart(tmpDT); 330 todo->setDtStart(tmpDT);
328 } 331 }
329 todo->setPriority(mPriorityCombo->currentItem()+1); 332 todo->setPriority(mPriorityCombo->currentItem()+1);
330 333
331 // set completion state 334 // set completion state
332 if ( mCompletedCombo->currentItem() == 5 ) { 335 if ( mCompletedCombo->currentItem() == 5 ) {
333 QDateTime comp ( mCompleteDateEdit->date(), mCompleteTimeEdit->getTime() ); 336 QDateTime comp ( mCompleteDateEdit->date(), mCompleteTimeEdit->getTime() );
334 if ( comp.isValid () ) { 337 if ( comp.isValid () ) {
335 todo->setPercentComplete(0); 338 todo->setPercentComplete(0);
336 todo->setPercentComplete(100); 339 todo->setPercentComplete(100);
337 todo->setCompleted(comp); 340 todo->setCompleted(comp);
338 } else { 341 } else {
339 todo->setPercentComplete( 100 ); 342 todo->setPercentComplete( 100 );
340 if ( mCompleted.isValid() ) 343 if ( mCompleted.isValid() )
341 todo->setCompleted(mCompleted); 344 todo->setCompleted(mCompleted);
342 } 345 }
343 } else { 346 } else {
344 todo->setPercentComplete(mCompletedCombo->currentItem() * 20); 347 todo->setPercentComplete(mCompletedCombo->currentItem() * 20);
345 } 348 }
346 349
347 mSummaryEdit->save(KOLocationBox::SUMMARYTODO); 350 mSummaryEdit->save(KOLocationBox::SUMMARYTODO);
348} 351}
349 352
350void KOEditorGeneralTodo::enableDueEdit(bool enable) 353void KOEditorGeneralTodo::enableDueEdit(bool enable)
351{ 354{
352 mDueDateEdit->setEnabled( enable ); 355 mDueDateEdit->setEnabled( enable );
353 356
354 if(mDueCheck->isChecked() || mStartCheck->isChecked()) { 357 if(mDueCheck->isChecked() || mStartCheck->isChecked()) {
355 mTimeButton->setEnabled(true); 358 mTimeButton->setEnabled(true);
356 } 359 }
357 else { 360 else {
358 mTimeButton->setEnabled(false); 361 mTimeButton->setEnabled(false);
359 mTimeButton->setChecked(false); 362 mTimeButton->setChecked(false);
360 } 363 }
361 364
362 if (enable) { 365 if (enable) {
363 mDueTimeEdit->setEnabled( mTimeButton->isChecked() ); 366 mDueTimeEdit->setEnabled( mTimeButton->isChecked() );
364 } else { 367 } else {
365 mDueTimeEdit->setEnabled( false ); 368 mDueTimeEdit->setEnabled( false );
366 } 369 }
367} 370}
368 371
369void KOEditorGeneralTodo::enableStartEdit( bool enable ) 372void KOEditorGeneralTodo::enableStartEdit( bool enable )
370{ 373{
371 mStartDateEdit->setEnabled( enable ); 374 mStartDateEdit->setEnabled( enable );
372 375
373 if(mDueCheck->isChecked() || mStartCheck->isChecked()) { 376 if(mDueCheck->isChecked() || mStartCheck->isChecked()) {
374 mTimeButton->setEnabled(true); 377 mTimeButton->setEnabled(true);
375 } 378 }
376 else { 379 else {
377 mTimeButton->setEnabled(false); 380 mTimeButton->setEnabled(false);
378 mTimeButton->setChecked(false); 381 mTimeButton->setChecked(false);
379 } 382 }
380 383
381 if (enable) { 384 if (enable) {
382 mStartTimeEdit->setEnabled( mTimeButton->isChecked() ); 385 mStartTimeEdit->setEnabled( mTimeButton->isChecked() );
383 } else { 386 } else {
384 mStartTimeEdit->setEnabled( false ); 387 mStartTimeEdit->setEnabled( false );
385 } 388 }
386} 389}
387 390
388void KOEditorGeneralTodo::enableTimeEdits(bool enable) 391void KOEditorGeneralTodo::enableTimeEdits(bool enable)
389{ 392{
390 if(mStartCheck->isChecked()) { 393 if(mStartCheck->isChecked()) {
391 mStartTimeEdit->setEnabled( enable ); 394 mStartTimeEdit->setEnabled( enable );
392 } 395 }
393 if(mDueCheck->isChecked()) { 396 if(mDueCheck->isChecked()) {
394 mDueTimeEdit->setEnabled( enable ); 397 mDueTimeEdit->setEnabled( enable );
395 } 398 }
396} 399}
397 400
398void KOEditorGeneralTodo::showAlarm() 401void KOEditorGeneralTodo::showAlarm()
399{ 402{
400 if ( mDueCheck->isChecked() ) { 403 if ( mDueCheck->isChecked() ) {
401 alarmDisable(false); 404 alarmDisable(false);
402 } 405 }
403 else { 406 else {
404 alarmDisable(true); 407 alarmDisable(true);
405 } 408 }
406} 409}
407 410
408bool KOEditorGeneralTodo::validateInput() 411bool KOEditorGeneralTodo::validateInput()
409{ 412{
410 if (mDueCheck->isChecked()) { 413 if (mDueCheck->isChecked()) {
411 if (!mDueDateEdit->inputIsValid()) { 414 if (!mDueDateEdit->inputIsValid()) {
412 KMessageBox::sorry(0,i18n("Please specify a valid due date.")); 415 KMessageBox::sorry(0,i18n("Please specify a valid due date."));
413 return false; 416 return false;
414 } 417 }
415 } 418 }
416 419
417 if (mStartCheck->isChecked()) { 420 if (mStartCheck->isChecked()) {
418 if (!mStartDateEdit->inputIsValid()) { 421 if (!mStartDateEdit->inputIsValid()) {
419 KMessageBox::sorry(0,i18n("Please specify a valid start date.")); 422 KMessageBox::sorry(0,i18n("Please specify a valid start date."));
420 return false; 423 return false;
diff --git a/korganizer/koeventviewer.cpp b/korganizer/koeventviewer.cpp
index 2faf18f..de11c13 100644
--- a/korganizer/koeventviewer.cpp
+++ b/korganizer/koeventviewer.cpp
@@ -168,493 +168,493 @@ void KOEventViewer::setSource(const QString& n)
168 /* 168 /*
169 KaddressBook is not already running. Pass it the UID of the contact via the command line while starting it - its neater. 169 KaddressBook is not already running. Pass it the UID of the contact via the command line while starting it - its neater.
170 We start it without its main interface 170 We start it without its main interface
171 */ 171 */
172 KIconLoader* iconLoader = new KIconLoader(); 172 KIconLoader* iconLoader = new KIconLoader();
173 QString iconPath = iconLoader->iconPath("go",KIcon::Small); 173 QString iconPath = iconLoader->iconPath("go",KIcon::Small);
174 ActionManager::setStartedKAddressBook(true); 174 ActionManager::setStartedKAddressBook(true);
175 tmpStr = "kaddressbook --editor-only --uid "; 175 tmpStr = "kaddressbook --editor-only --uid ";
176 tmpStr += KProcess::quote(n.mid(6)); 176 tmpStr += KProcess::quote(n.mid(6));
177 KRun::runCommand(tmpStr,"KAddressBook",iconPath); 177 KRun::runCommand(tmpStr,"KAddressBook",iconPath);
178 return; 178 return;
179 } 179 }
180 } else { 180 } else {
181 //QTextBrowser::setSource(n); 181 //QTextBrowser::setSource(n);
182 } 182 }
183#endif 183#endif
184} 184}
185void KOEventViewer::mailToAttendees( bool all ) 185void KOEventViewer::mailToAttendees( bool all )
186{ 186{
187 QPtrList<Attendee> attendees = mCurrentIncidence->attendees(); 187 QPtrList<Attendee> attendees = mCurrentIncidence->attendees();
188 if (attendees.count() == 0) return; 188 if (attendees.count() == 0) return;
189 QStringList nameList; 189 QStringList nameList;
190 QStringList emailList; 190 QStringList emailList;
191 QStringList uidList; 191 QStringList uidList;
192 Attendee* a; 192 Attendee* a;
193 for(a=attendees.first();a;a=attendees.next()) { 193 for(a=attendees.first();a;a=attendees.next()) {
194 if ( !all && !a->RSVP() ) continue; 194 if ( !all && !a->RSVP() ) continue;
195 if (!a->email().isEmpty()) { 195 if (!a->email().isEmpty()) {
196 nameList.append (a->name() ); 196 nameList.append (a->name() );
197 emailList.append (a->email() ); 197 emailList.append (a->email() );
198 uidList.append (a->uid() ); 198 uidList.append (a->uid() );
199 } 199 }
200 } 200 }
201 QString uid = "ComposeMailUIpick2"+mMailSubject; 201 QString uid = "ComposeMailUIpick2"+mMailSubject;
202#ifndef DESKTOP_VERSION 202#ifndef DESKTOP_VERSION
203 bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI("QPE/Application/ompi", uid, nameList, emailList, uidList); 203 bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI("QPE/Application/ompi", uid, nameList, emailList, uidList);
204#endif 204#endif
205 205
206} 206}
207void KOEventViewer::addTag(const QString & tag,const QString & text) 207void KOEventViewer::addTag(const QString & tag,const QString & text)
208{ 208{
209 int number=text.contains("\n"); 209 int number=text.contains("\n");
210 QString str = "<" + tag + ">"; 210 QString str = "<" + tag + ">";
211 QString tmpText=text; 211 QString tmpText=text;
212 QString tmpStr=str; 212 QString tmpStr=str;
213 if(number !=-1) 213 if(number !=-1)
214 { 214 {
215 if (number > 0) { 215 if (number > 0) {
216 int pos=0; 216 int pos=0;
217 QString tmp; 217 QString tmp;
218 for(int i=0;i<=number;i++) { 218 for(int i=0;i<=number;i++) {
219 pos=tmpText.find("\n"); 219 pos=tmpText.find("\n");
220 tmp=tmpText.left(pos); 220 tmp=tmpText.left(pos);
221 tmpText=tmpText.right(tmpText.length()-pos-1); 221 tmpText=tmpText.right(tmpText.length()-pos-1);
222 tmpStr+=tmp+"<br>"; 222 tmpStr+=tmp+"<br>";
223 } 223 }
224 } 224 }
225 else tmpStr += tmpText; 225 else tmpStr += tmpText;
226 tmpStr+="</" + tag + ">"; 226 tmpStr+="</" + tag + ">";
227 mText.append(tmpStr); 227 mText.append(tmpStr);
228 } 228 }
229 else 229 else
230 { 230 {
231 str += text + "</" + tag + ">"; 231 str += text + "</" + tag + ">";
232 mText.append(str); 232 mText.append(str);
233 } 233 }
234} 234}
235 235
236void KOEventViewer::setColorMode( int m ) 236void KOEventViewer::setColorMode( int m )
237{ 237{
238 mColorMode = m; 238 mColorMode = m;
239} 239}
240void KOEventViewer::appendEvent(Event *event, int mode ) 240void KOEventViewer::appendEvent(Event *event, int mode )
241{ 241{
242 mMailSubject = ""; 242 mMailSubject = "";
243 mCurrentIncidence = event; 243 mCurrentIncidence = event;
244 bool shortDate = KOPrefs::instance()->mShortDateInViewer; 244 bool shortDate = KOPrefs::instance()->mShortDateInViewer;
245 topLevelWidget()->setCaption(i18n("Event Viewer")); 245 topLevelWidget()->setCaption(i18n("Event Viewer"));
246 if ( mode == 0 ) { 246 if ( mode == 0 ) {
247 addTag("h2",event->summary()); 247 addTag("h2",event->summary());
248 } 248 }
249 else { 249 else {
250 if ( mColorMode == 1 ) { 250 if ( mColorMode == 1 ) {
251 mText +="<font color=\"#00A000\">"; 251 mText +="<font color=\"#00A000\">";
252 } 252 }
253 if ( mColorMode == 2 ) { 253 if ( mColorMode == 2 ) {
254 mText +="<font color=\"#C00000\">"; 254 mText +="<font color=\"#C00000\">";
255 } 255 }
256 // mText +="<font color=\"#F00000\">" + i18n("O-due!") + "</font>"; 256 // mText +="<font color=\"#F00000\">" + i18n("O-due!") + "</font>";
257 if ( mode == 1 ) { 257 if ( mode == 1 ) {
258 addTag("h2",i18n( "Local: " ) +event->summary()); 258 addTag("h2",i18n( "Local: " ) +event->summary());
259 } else { 259 } else {
260 addTag("h2",i18n( "Remote: " ) +event->summary()); 260 addTag("h2",i18n( "Remote: " ) +event->summary());
261 } 261 }
262 addTag("h3",i18n( "Last modified: " ) + KGlobal::locale()->formatDateTime(event->lastModified(),shortDate, true ) ); 262 addTag("h3",i18n( "Last modified: " ) + KGlobal::locale()->formatDateTime(event->lastModified(),shortDate, true ) );
263 if ( mColorMode ) 263 if ( mColorMode )
264 mText += "</font>"; 264 mText += "</font>";
265 } 265 }
266 mMailSubject += i18n( "Meeting " )+ event->summary(); 266 mMailSubject += i18n( "Meeting " )+ event->summary();
267 if (event->cancelled ()) { 267 if (event->cancelled ()) {
268 mText +="<font color=\"#B00000\">"; 268 mText +="<font color=\"#B00000\">";
269 addTag("i",i18n("This event has been cancelled!")); 269 addTag("i",i18n("This event has been cancelled!"));
270 mText.append("<br>"); 270 mText.append("<br>");
271 mText += "</font>"; 271 mText += "</font>";
272 mMailSubject += i18n("(cancelled)"); 272 mMailSubject += i18n("(cancelled)");
273 } 273 }
274 if (!event->location().isEmpty()) { 274 if (!event->location().isEmpty()) {
275 addTag("b",i18n("Location: ")); 275 addTag("b",i18n("Location: "));
276 mText.append(event->location()+"<br>"); 276 mText.append(event->location()+"<br>");
277 mMailSubject += i18n(" at ") + event->location(); 277 mMailSubject += i18n(" at ") + event->location();
278 } 278 }
279 if (event->doesFloat()) { 279 if (event->doesFloat()) {
280 if (event->isMultiDay()) { 280 if (event->isMultiDay()) {
281 mText.append(i18n("<p><b>From:</b> %1 </p><p><b>To:</b> %2</p>") 281 mText.append(i18n("<p><b>From:</b> %1 </p><p><b>To:</b> %2</p>")
282 .arg(event->dtStartDateStr(shortDate)) 282 .arg(event->dtStartDateStr(shortDate))
283 .arg(event->dtEndDateStr(shortDate))); 283 .arg(event->dtEndDateStr(shortDate)));
284 } else { 284 } else {
285 mText.append(i18n("<p><b>On:</b> %1</p>").arg(event->dtStartDateStr( shortDate ))); 285 mText.append(i18n("<p><b>On:</b> %1</p>").arg(event->dtStartDateStr( shortDate )));
286 } 286 }
287 } else { 287 } else {
288 if (event->isMultiDay()) { 288 if (event->isMultiDay()) {
289 mText.append(i18n("<p><b>From:</b> %1</p> ") 289 mText.append(i18n("<p><b>From:</b> %1</p> ")
290 .arg(event->dtStartStr( shortDate))); 290 .arg(event->dtStartStr( shortDate)));
291 mText.append(i18n("<p><b>To:</b> %1</p>") 291 mText.append(i18n("<p><b>To:</b> %1</p>")
292 .arg(event->dtEndStr(shortDate))); 292 .arg(event->dtEndStr(shortDate)));
293 } else { 293 } else {
294 mText.append(i18n("<p><b>On:</b> %1</p> ") 294 mText.append(i18n("<p><b>On:</b> %1</p> ")
295 .arg(event->dtStartDateStr( shortDate ))); 295 .arg(event->dtStartDateStr( shortDate )));
296 mText.append(i18n("<p><b>From:</b> %1 <b>To:</b> %2</p>") 296 mText.append(i18n("<p><b>From:</b> %1 <b>To:</b> %2</p>")
297 .arg(event->dtStartTimeStr()) 297 .arg(event->dtStartTimeStr())
298 .arg(event->dtEndTimeStr())); 298 .arg(event->dtEndTimeStr()));
299 } 299 }
300 } 300 }
301 301
302 if (event->recurrence()->doesRecur()) { 302 if (event->recurrence()->doesRecur()) {
303 303
304 QString recurText = event->recurrence()->recurrenceText(); 304 QString recurText = event->recurrence()->recurrenceText();
305 addTag("p","<em>" + i18n("This is a %1 recurring event.").arg(recurText ) + "</em>"); 305 addTag("p","<em>" + i18n("This is a %1 recurring event.").arg(recurText ) + "</em>");
306 bool last; 306 bool last;
307 QDate start = QDate::currentDate(); 307 QDate start = QDate::currentDate();
308 QDate next; 308 QDate next;
309 next = event->recurrence()->getPreviousDate( start , &last ); 309 next = event->recurrence()->getPreviousDate( start , &last );
310 if ( !last ) { 310 if ( !last ) {
311 next = event->recurrence()->getNextDate( start.addDays( - 1 ) ); 311 next = event->recurrence()->getNextDate( start.addDays( - 1 ) );
312 addTag("p",i18n("<b>Next recurrence is on:</b>") ); 312 addTag("p",i18n("<b>Next recurrence is on:</b>") );
313 addTag("p", KGlobal::locale()->formatDate( next, shortDate )); 313 addTag("p", KGlobal::locale()->formatDate( next, shortDate ));
314 QDateTime nextdt = QDateTime( next, event->dtStart().time()); 314 QDateTime nextdt = QDateTime( next, event->dtStart().time());
315 mMailSubject += i18n(" - " )+ KGlobal::locale()->formatDateTime( nextdt, true ); 315 mMailSubject += i18n(" - " )+ KGlobal::locale()->formatDateTime( nextdt, true );
316 316
317 } else { 317 } else {
318 addTag("p",i18n("<b>Last recurrence was on:</b>") ); 318 addTag("p",i18n("<b>Last recurrence was on:</b>") );
319 addTag("p", KGlobal::locale()->formatDate( next, shortDate )); 319 addTag("p", KGlobal::locale()->formatDate( next, shortDate ));
320 } 320 }
321 } else { 321 } else {
322 mMailSubject += i18n(" - " )+event->dtStartStr( true ); 322 mMailSubject += i18n(" - " )+event->dtStartStr( true );
323 323
324 } 324 }
325 325
326 326
327 if (event->isAlarmEnabled()) { 327 if (event->isAlarmEnabled()) {
328 Alarm *alarm =event->alarms().first() ; 328 Alarm *alarm =event->alarms().first() ;
329 QDateTime t = alarm->time(); 329 QDateTime t = alarm->time();
330 int min = t.secsTo( event->dtStart() )/60; 330 int min = t.secsTo( event->dtStart() )/60;
331 QString s =i18n("( %1 min before )").arg( min ); 331 QString s =i18n("( %1 min before )").arg( min );
332 addTag("p",i18n("<b>Alarm on: ") + s +" </b>"); 332 addTag("p",i18n("<b>Alarm on: ") + s +" </b>");
333 addTag("p", KGlobal::locale()->formatDateTime( t, shortDate )); 333 addTag("p", KGlobal::locale()->formatDateTime( t, shortDate ));
334 //addTag("p",s); 334 //addTag("p",s);
335 } 335 }
336 336
337 addTag("b",i18n("Access: ")); 337 addTag("b",i18n("Access: "));
338 mText.append(event->secrecyStr()+"<br>"); 338 mText.append(event->secrecyStr()+"<br>");
339 if (!event->description().isEmpty()) { 339 if (!event->description().isEmpty()) {
340 addTag("p",i18n("<b>Details: </b>")); 340 addTag("p",i18n("<b>Details: </b>"));
341 addTag("p",event->description()); 341 addTag("p",event->description());
342 } 342 }
343 343
344 formatCategories(event); 344 formatCategories(event);
345 345
346 formatReadOnly(event); 346 formatReadOnly(event);
347 formatAttendees(event); 347 formatAttendees(event);
348 348
349 setText(mText); 349 setText(mText);
350 //QWhatsThis::add(this,mText); 350 //QWhatsThis::add(this,mText);
351 351
352} 352}
353 353
354void KOEventViewer::appendTodo(Todo *event, int mode ) 354void KOEventViewer::appendTodo(Todo *event, int mode )
355{ 355{
356 mMailSubject = ""; 356 mMailSubject = "";
357 mCurrentIncidence = event; 357 mCurrentIncidence = event;
358 topLevelWidget()->setCaption(i18n("Todo Viewer")); 358 topLevelWidget()->setCaption(i18n("Todo Viewer"));
359 bool shortDate = KOPrefs::instance()->mShortDateInViewer; 359 bool shortDate = KOPrefs::instance()->mShortDateInViewer;
360 if (mode == 0 ) 360 if (mode == 0 )
361 addTag("h2",event->summary()); 361 addTag("h2",event->summary());
362 else { 362 else {
363 if ( mColorMode == 1 ) { 363 if ( mColorMode == 1 ) {
364 mText +="<font color=\"#00A000\">"; 364 mText +="<font color=\"#00A000\">";
365 } 365 }
366 if ( mColorMode == 2 ) { 366 if ( mColorMode == 2 ) {
367 mText +="<font color=\"#B00000\">"; 367 mText +="<font color=\"#B00000\">";
368 } 368 }
369 if ( mode == 1 ) { 369 if ( mode == 1 ) {
370 addTag("h2",i18n( "Local: " ) +event->summary()); 370 addTag("h2",i18n( "Local: " ) +event->summary());
371 } else { 371 } else {
372 addTag("h2",i18n( "Remote: " ) +event->summary()); 372 addTag("h2",i18n( "Remote: " ) +event->summary());
373 } 373 }
374 addTag("h3",i18n( "Last modified: " ) + KGlobal::locale()->formatDateTime(event->lastModified(),shortDate, true ) ); 374 addTag("h3",i18n( "Last modified: " ) + KGlobal::locale()->formatDateTime(event->lastModified(),shortDate, true ) );
375 if ( mColorMode ) 375 if ( mColorMode )
376 mText += "</font>"; 376 mText += "</font>";
377 } 377 }
378 mMailSubject += i18n( "Todo " )+ event->summary(); 378 mMailSubject += i18n( "Todo " )+ event->summary();
379 379
380 if ( event->percentComplete() == 100 && event->hasCompletedDate() ) { 380 if ( event->percentComplete() == 100 && event->hasCompletedDate() ) {
381 mText +="<font color=\"#B00000\">"; 381 mText +="<font color=\"#B00000\">";
382 addTag("i", i18n("<p><i>Completed on %1</i></p>").arg( event->completedStr(KOPrefs::instance()->mShortDateInViewer) ) ); 382 addTag("i", i18n("<p><i>Completed on %1</i></p>").arg( event->completedStr(KOPrefs::instance()->mShortDateInViewer) ) );
383 mText += "</font>"; 383 mText += "</font>";
384 } else { 384 } else {
385 mText.append(i18n("<p><i>%1 % completed</i></p>") 385 mText.append(i18n("<p><i>%1 % completed</i></p>")
386 .arg(event->percentComplete())); 386 .arg(event->percentComplete()));
387 } 387 }
388 388
389 if (event->cancelled ()) { 389 if (event->cancelled ()) {
390 mText +="<font color=\"#B00000\">"; 390 mText +="<font color=\"#B00000\">";
391 addTag("i",i18n("This todo has been cancelled!")); 391 addTag("i",i18n("This todo has been cancelled!"));
392 mText.append("<br>"); 392 mText.append("<br>");
393 mText += "</font>"; 393 mText += "</font>";
394 mMailSubject += i18n("(cancelled)"); 394 mMailSubject += i18n("(cancelled)");
395 } 395 }
396 396
397 if (!event->location().isEmpty()) { 397 if (!event->location().isEmpty()) {
398 addTag("b",i18n("Location: ")); 398 addTag("b",i18n("Location: "));
399 mText.append(event->location()+"<br>"); 399 mText.append(event->location()+"<br>");
400 mMailSubject += i18n(" at ") + event->location(); 400 mMailSubject += i18n(" at ") + event->location();
401 } 401 }
402 if (event->hasStartDate()) { 402 if (event->hasStartDate()) {
403 mText.append(i18n("<p><b>Start on:</b> %1</p>").arg(event->dtStartStr(KOPrefs::instance()->mShortDateInViewer))); 403 mText.append(i18n("<p><b>Start on:</b> %1</p>").arg(event->dtStartStr(KOPrefs::instance()->mShortDateInViewer)));
404 } 404 }
405 if (event->hasDueDate()) { 405 if (event->hasDueDate()) {
406 mText.append(i18n("<p><b>Due on:</b> %1</p>").arg(event->dtDueStr(KOPrefs::instance()->mShortDateInViewer))); 406 mText.append(i18n("<p><b>Due on:</b> %1</p>").arg(event->dtDueStr(KOPrefs::instance()->mShortDateInViewer)));
407 mMailSubject += i18n(" - " )+event->dtDueStr( true ); 407 mMailSubject += i18n(" - " )+event->dtDueStr( true );
408 } 408 }
409 addTag("b",i18n("Access: ")); 409 addTag("b",i18n("Access: "));
410 mText.append(event->secrecyStr()+"<br>"); 410 mText.append(event->secrecyStr()+"<br>");
411 if (!event->description().isEmpty()) { 411 if (!event->description().isEmpty()) {
412 addTag("p",i18n("<b>Details: </b>")); 412 addTag("p",i18n("<b>Details: </b>"));
413 addTag("p",event->description()); 413 addTag("p",event->description());
414 } 414 }
415 415
416 formatCategories(event); 416 formatCategories(event);
417 417
418 mText.append(i18n("<p><b>Priority:</b> %2</p>") 418 mText.append(i18n("<p><b>Priority:</b> %2</p>")
419 .arg(QString::number(event->priority()))); 419 .arg(QString::number(event->priority())));
420 420
421 formatReadOnly(event); 421 formatReadOnly(event);
422 formatAttendees(event); 422 formatAttendees(event);
423 if ( event->relatedTo() ) { 423 if ( event->relatedTo() ) {
424 addTag("b",i18n("Parent todo: ")); 424 addTag("b",i18n("Parent todo:<br>"));
425 mText.append(event->relatedTo()->summary()+" [" +QString::number(event->relatedTo()->priority()) + "/" + QString::number(((Todo*)event->relatedTo())->percentComplete())+"%] <br>"); 425 mText.append(event->relatedTo()->summary()+" [" +QString::number(event->relatedTo()->priority()) + "/" + QString::number(((Todo*)event->relatedTo())->percentComplete())+"%] <br>");
426 } 426 }
427 QPtrList<Incidence> Relations = event->relations(); 427 QPtrList<Incidence> Relations = event->relations();
428 Incidence *to; 428 Incidence *to;
429 if ( Relations.first() ) 429 if ( Relations.first() )
430 addTag("b",i18n("Sub todos:<br>")); 430 addTag("b",i18n("Sub todos:<br>"));
431 for (to=Relations.first();to;to=Relations.next()) { 431 for (to=Relations.first();to;to=Relations.next()) {
432 mText.append( to->summary()+" [" +QString::number(to->priority()) + "/" + QString::number(((Todo*)to)->percentComplete())+"%]<br>"); 432 mText.append( to->summary()+" [" +QString::number(to->priority()) + "/" + QString::number(((Todo*)to)->percentComplete())+"%]<br>");
433 433
434 } 434 }
435 setText(mText); 435 setText(mText);
436} 436}
437 437
438void KOEventViewer::formatCategories(Incidence *event) 438void KOEventViewer::formatCategories(Incidence *event)
439{ 439{
440 if (!event->categoriesStr().isEmpty()) { 440 if (!event->categoriesStr().isEmpty()) {
441 if (event->categories().count() == 1) { 441 if (event->categories().count() == 1) {
442 addTag("h3",i18n("Category")); 442 addTag("h3",i18n("Category"));
443 } else { 443 } else {
444 addTag("h3",i18n("Categories")); 444 addTag("h3",i18n("Categories"));
445 } 445 }
446 addTag("p",event->categoriesStr()); 446 addTag("p",event->categoriesStr());
447 } 447 }
448} 448}
449void KOEventViewer::formatAttendees(Incidence *event) 449void KOEventViewer::formatAttendees(Incidence *event)
450{ 450{
451 QPtrList<Attendee> attendees = event->attendees(); 451 QPtrList<Attendee> attendees = event->attendees();
452 if (attendees.count()) { 452 if (attendees.count()) {
453 453
454 454
455 QString iconPath = KGlobal::iconLoader()->iconPath("mailappt",KIcon::Small); 455 QString iconPath = KGlobal::iconLoader()->iconPath("mailappt",KIcon::Small);
456 QString NOiconPath = KGlobal::iconLoader()->iconPath("nomailappt",KIcon::Small); 456 QString NOiconPath = KGlobal::iconLoader()->iconPath("nomailappt",KIcon::Small);
457 addTag("h3",i18n("Organizer")); 457 addTag("h3",i18n("Organizer"));
458 mText.append("<ul><li>"); 458 mText.append("<ul><li>");
459#ifndef KORG_NOKABC 459#ifndef KORG_NOKABC
460 460
461#ifdef DESKTOP_VERSION 461#ifdef DESKTOP_VERSION
462 KABC::AddressBook *add_book = KABC::StdAddressBook::self(); 462 KABC::AddressBook *add_book = KABC::StdAddressBook::self();
463 KABC::Addressee::List addressList; 463 KABC::Addressee::List addressList;
464 addressList = add_book->findByEmail(event->organizer()); 464 addressList = add_book->findByEmail(event->organizer());
465 KABC::Addressee o = addressList.first(); 465 KABC::Addressee o = addressList.first();
466 if (!o.isEmpty() && addressList.size()<2) { 466 if (!o.isEmpty() && addressList.size()<2) {
467 mText += "<a href=\"uid:" + o.uid() + "\">"; 467 mText += "<a href=\"uid:" + o.uid() + "\">";
468 mText += o.formattedName(); 468 mText += o.formattedName();
469 mText += "</a>\n"; 469 mText += "</a>\n";
470 } else { 470 } else {
471 mText.append(event->organizer()); 471 mText.append(event->organizer());
472 } 472 }
473#else //DESKTOP_VERSION 473#else //DESKTOP_VERSION
474 mText += "<a href=\"uid:organizer\">"; 474 mText += "<a href=\"uid:organizer\">";
475 mText += event->organizer(); 475 mText += event->organizer();
476 mText += "</a>\n"; 476 mText += "</a>\n";
477#endif //DESKTOP_VERSION 477#endif //DESKTOP_VERSION
478 478
479 479
480#else 480#else
481 mText.append(event->organizer()); 481 mText.append(event->organizer());
482#endif 482#endif
483 483
484 if (iconPath) { 484 if (iconPath) {
485 mText += " <a href=\"mailto:" + event->organizer() + "\">"; 485 mText += " <a href=\"mailto:" + event->organizer() + "\">";
486 mText += "<IMG src=\"" + iconPath + "\">"; 486 mText += "<IMG src=\"" + iconPath + "\">";
487 mText += "</a>\n"; 487 mText += "</a>\n";
488 } 488 }
489 mText.append("</li></ul>"); 489 mText.append("</li></ul>");
490 490
491 addTag("h3",i18n("Attendees")); 491 addTag("h3",i18n("Attendees"));
492 Attendee *a; 492 Attendee *a;
493 mText.append("<ul>"); 493 mText.append("<ul>");
494 int a_count = 0; 494 int a_count = 0;
495 int a_count_nr = 0; 495 int a_count_nr = 0;
496 496
497 for(a=attendees.first();a;a=attendees.next()) { 497 for(a=attendees.first();a;a=attendees.next()) {
498#ifndef KORG_NOKABC 498#ifndef KORG_NOKABC
499#ifdef DESKTOP_VERSION 499#ifdef DESKTOP_VERSION
500 if (a->name().isEmpty()) { 500 if (a->name().isEmpty()) {
501 addressList = add_book->findByEmail(a->email()); 501 addressList = add_book->findByEmail(a->email());
502 KABC::Addressee o = addressList.first(); 502 KABC::Addressee o = addressList.first();
503 if (!o.isEmpty() && addressList.size()<2) { 503 if (!o.isEmpty() && addressList.size()<2) {
504 mText += "<a href=\"uid:" + o.uid() + "\">"; 504 mText += "<a href=\"uid:" + o.uid() + "\">";
505 mText += o.formattedName(); 505 mText += o.formattedName();
506 mText += "</a>\n"; 506 mText += "</a>\n";
507 } else { 507 } else {
508 mText += "<li>"; 508 mText += "<li>";
509 mText.append(a->email()); 509 mText.append(a->email());
510 mText += "\n"; 510 mText += "\n";
511 } 511 }
512 } else { 512 } else {
513 mText += "<li><a href=\"uid:" + a->uid() + "\">"; 513 mText += "<li><a href=\"uid:" + a->uid() + "\">";
514 if (!a->name().isEmpty()) mText += a->name(); 514 if (!a->name().isEmpty()) mText += a->name();
515 else mText += a->email(); 515 else mText += a->email();
516 mText += "</a>\n"; 516 mText += "</a>\n";
517 } 517 }
518#else //DESKTOP_VERSION 518#else //DESKTOP_VERSION
519 mText += "<li><a href=\"uid:" + a->uid() + "\">"; 519 mText += "<li><a href=\"uid:" + a->uid() + "\">";
520 if (!a->name().isEmpty()) mText += a->name(); 520 if (!a->name().isEmpty()) mText += a->name();
521 else mText += a->email(); 521 else mText += a->email();
522 mText += "</a>\n"; 522 mText += "</a>\n";
523#endif //DESKTOP_VERSION 523#endif //DESKTOP_VERSION
524#else 524#else
525 //qDebug("nokabc "); 525 //qDebug("nokabc ");
526 mText += "<li><a href=\"uid:" + a->uid() + "\">"; 526 mText += "<li><a href=\"uid:" + a->uid() + "\">";
527 if (!a->name().isEmpty()) mText += a->name(); 527 if (!a->name().isEmpty()) mText += a->name();
528 else mText += a->email(); 528 else mText += a->email();
529 mText += "</a>\n"; 529 mText += "</a>\n";
530#endif 530#endif
531 531
532 532
533 if (!a->email().isEmpty()) { 533 if (!a->email().isEmpty()) {
534 if (iconPath) { 534 if (iconPath) {
535 mText += "<a href=\"mailto:" + a->name() +" <" + a->email() + ">:" + mMailSubject + "\">"; 535 mText += "<a href=\"mailto:" + a->name() +" <" + a->email() + ">:" + mMailSubject + "\">";
536 if ( a->RSVP() ) { 536 if ( a->RSVP() ) {
537 ++a_count; 537 ++a_count_nr;
538 mText += "<IMG src=\"" + iconPath + "\">"; 538 mText += "<IMG src=\"" + iconPath + "\">";
539 } 539 }
540 else { 540 else {
541 ++a_count_nr; 541 ++a_count;
542 mText += "<IMG src=\"" + NOiconPath + "\">"; 542 mText += "<IMG src=\"" + NOiconPath + "\">";
543 } 543 }
544 mText += "</a>\n"; 544 mText += "</a>\n";
545 } 545 }
546 } 546 }
547 if (a->status() != Attendee::NeedsAction ) 547 if (a->status() != Attendee::NeedsAction )
548 mText +="[" + a->statusStr() + "] "; 548 mText +="[" + a->statusStr() + "] ";
549 if (a->role() == Attendee::Chair ) 549 if (a->role() == Attendee::Chair )
550 mText +="(" + a->roleStr().left(1) + ".)"; 550 mText +="(" + a->roleStr().left(1) + ".)";
551 } 551 }
552 mText.append("</li></ul>"); 552 mText.append("</li></ul>");
553 if ( a_count > 1 ) { 553 if ( (a_count+a_count_nr) > 1 ) {
554 mText += "<a href=\"mailto:ALL\">"; 554 mText += "<a href=\"mailto:ALL\">";
555 mText += i18n( "Mail to all" ); 555 mText += i18n( "Mail to all" );
556 mText += "</a> ( "; 556 mText += "</a> ( ";
557 mText += "<IMG src=\"" + iconPath + "\">"; 557 mText += "<IMG src=\"" + iconPath + "\">";
558 mText += i18n( " and " ); 558 mText += i18n( " and " );
559 mText += "<IMG src=\"" + NOiconPath + "\"> )"; 559 mText += "<IMG src=\"" + NOiconPath + "\"> )";
560 mText += "<br>\n"; 560 mText += "<br>\n";
561 561
562 562
563 } 563 }
564 if ( a_count_nr > 1 ) { 564 if ( a_count_nr > 1 ) {
565 mText += "<a href=\"mailto:RSVP\">"; 565 mText += "<a href=\"mailto:RSVP\">";
566 mText += i18n( "Mail to selected" ); 566 mText += i18n( "Mail to selected" );
567 mText += "</a> ( "; 567 mText += "</a> ( ";
568 mText += i18n( "<IMG src=\"%1\"> only )").arg ( iconPath ); 568 mText += i18n( "<IMG src=\"%1\"> only )").arg ( iconPath );
569 mText += "\n"; 569 mText += "<br>\n";
570 } 570 }
571 } 571 }
572 572
573} 573}
574void KOEventViewer::appendJournal(Journal *jour, int mode ) 574void KOEventViewer::appendJournal(Journal *jour, int mode )
575{ 575{
576 bool shortDate = KOPrefs::instance()->mShortDateInViewer; 576 bool shortDate = KOPrefs::instance()->mShortDateInViewer;
577 if (mode == 0 ) { 577 if (mode == 0 ) {
578 addTag("h2",i18n("Journal from: ")); 578 addTag("h2",i18n("Journal from: "));
579 } 579 }
580 else { 580 else {
581 if ( mode == 1 ) { 581 if ( mode == 1 ) {
582 addTag("h2",i18n( "Local: " ) +i18n("Journal from: ")); 582 addTag("h2",i18n( "Local: " ) +i18n("Journal from: "));
583 } else { 583 } else {
584 addTag("h2",i18n( "Remote: " ) +i18n("Journal from: ")); 584 addTag("h2",i18n( "Remote: " ) +i18n("Journal from: "));
585 } 585 }
586 } 586 }
587 topLevelWidget()->setCaption("Journal Viewer"); 587 topLevelWidget()->setCaption("Journal Viewer");
588 mText.append(i18n("<h3> %1 </h3> ").arg(jour->dtStartDateStr(KOPrefs::instance()->mShortDateInViewer))); 588 mText.append(i18n("<h3> %1 </h3> ").arg(jour->dtStartDateStr(KOPrefs::instance()->mShortDateInViewer)));
589 addTag("b",i18n( "Last modified: " ) + KGlobal::locale()->formatDateTime(jour->lastModified(),shortDate ) ); 589 addTag("b",i18n( "Last modified: " ) + KGlobal::locale()->formatDateTime(jour->lastModified(),shortDate ) );
590 if (!jour->description().isEmpty()) { 590 if (!jour->description().isEmpty()) {
591 addTag("p",jour->description()); 591 addTag("p",jour->description());
592 } 592 }
593 setText(mText); 593 setText(mText);
594} 594}
595 595
596void KOEventViewer::formatReadOnly(Incidence *event) 596void KOEventViewer::formatReadOnly(Incidence *event)
597{ 597{
598 if (event->isReadOnly()) { 598 if (event->isReadOnly()) {
599 addTag("p","<em>(" + i18n("read-only") + ")</em>"); 599 addTag("p","<em>(" + i18n("read-only") + ")</em>");
600 } 600 }
601} 601}
602void KOEventViewer::setSyncMode( bool b ) 602void KOEventViewer::setSyncMode( bool b )
603{ 603{
604 mSyncMode = b; 604 mSyncMode = b;
605} 605}
606 606
607 607
608void KOEventViewer::setTodo(Todo *event, bool clearV ) 608void KOEventViewer::setTodo(Todo *event, bool clearV )
609{ 609{
610 if ( clearV ) 610 if ( clearV )
611 clearEvents(); 611 clearEvents();
612 if ( mSyncMode ) { 612 if ( mSyncMode ) {
613 if ( clearV ) 613 if ( clearV )
614 appendTodo(event,1 ); 614 appendTodo(event,1 );
615 else 615 else
616 appendTodo(event,2); 616 appendTodo(event,2);
617 } else 617 } else
618 appendTodo(event); 618 appendTodo(event);
619} 619}
620void KOEventViewer::setJournal(Journal *event, bool clearV ) 620void KOEventViewer::setJournal(Journal *event, bool clearV )
621{ 621{
622 if ( clearV ) 622 if ( clearV )
623 clearEvents(); 623 clearEvents();
624 if ( mSyncMode ) { 624 if ( mSyncMode ) {
625 if ( clearV ) 625 if ( clearV )
626 appendJournal(event, 1); 626 appendJournal(event, 1);
627 else 627 else
628 appendJournal(event, 2); 628 appendJournal(event, 2);
629 } else 629 } else
630 appendJournal(event); 630 appendJournal(event);
631} 631}
632 632
633void KOEventViewer::setEvent(Event *event) 633void KOEventViewer::setEvent(Event *event)
634{ 634{
635 clearEvents(); 635 clearEvents();
636 if ( mSyncMode ) 636 if ( mSyncMode )
637 appendEvent(event, 1); 637 appendEvent(event, 1);
638 else 638 else
639 appendEvent(event); 639 appendEvent(event);
640} 640}
641 641
642void KOEventViewer::addEvent(Event *event) 642void KOEventViewer::addEvent(Event *event)
643{ 643{
644 if ( mSyncMode ) 644 if ( mSyncMode )
645 appendEvent(event, 2); 645 appendEvent(event, 2);
646 else 646 else
647 appendEvent(event); 647 appendEvent(event);
648} 648}
649 649
650void KOEventViewer::clearEvents(bool now) 650void KOEventViewer::clearEvents(bool now)
651{ 651{
652 mText = ""; 652 mText = "";
653 if (now) setText(mText); 653 if (now) setText(mText);
654} 654}
655 655
656void KOEventViewer::addText(QString text) 656void KOEventViewer::addText(QString text)
657{ 657{
658 mText.append(text); 658 mText.append(text);
659 setText(mText); 659 setText(mText);
660} 660}
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp
index 65accdc..5926abe 100644
--- a/korganizer/komonthview.cpp
+++ b/korganizer/komonthview.cpp
@@ -542,1038 +542,1035 @@ void MonthViewCell::insertEvent(Event *event)
542 if ( me != 0 ) { 542 if ( me != 0 ) {
543 if ( me->status() == Attendee::NeedsAction && me->RSVP()) 543 if ( me->status() == Attendee::NeedsAction && me->RSVP())
544 item->setReply(true); 544 item->setReply(true);
545 else 545 else
546 item->setReply(false); 546 item->setReply(false);
547 } else 547 } else
548 item->setReply(false); 548 item->setReply(false);
549#endif 549#endif
550 mItemList->insertItem( item ); 550 mItemList->insertItem( item );
551 mToolTip += "\n"; 551 mToolTip += "\n";
552} 552}
553void MonthViewCell::insertTodo(Todo *todo) 553void MonthViewCell::insertTodo(Todo *todo)
554{ 554{
555 QString text; 555 QString text;
556 if (todo->hasDueDate()) { 556 if (todo->hasDueDate()) {
557 if (!todo->doesFloat()) { 557 if (!todo->doesFloat()) {
558 text += KGlobal::locale()->formatTime(todo->dtDue().time()); 558 text += KGlobal::locale()->formatTime(todo->dtDue().time());
559 text += " "; 559 text += " ";
560 } 560 }
561 } 561 }
562 text += i18n("Td: %1").arg(todo->summary()); 562 text += i18n("Td: %1").arg(todo->summary());
563 563
564 MonthViewItem *item = new MonthViewItem( todo, mDate, text ); 564 MonthViewItem *item = new MonthViewItem( todo, mDate, text );
565 //item->setPalette( mStandardPalette ); 565 //item->setPalette( mStandardPalette );
566 QPalette pal; 566 QPalette pal;
567 if (KOPrefs::instance()->mMonthViewUsesCategoryColor) { 567 if (KOPrefs::instance()->mMonthViewUsesCategoryColor) {
568 QStringList categories = todo->categories(); 568 QStringList categories = todo->categories();
569 QString cat = categories.first(); 569 QString cat = categories.first();
570 if ( KOPrefs::instance()->mMonthViewUsesForegroundColor ) { 570 if ( KOPrefs::instance()->mMonthViewUsesForegroundColor ) {
571 pal = getPalette(); 571 pal = getPalette();
572 if (cat.isEmpty()) { 572 if (cat.isEmpty()) {
573 pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->mEventColor); 573 pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->mEventColor);
574 } else { 574 } else {
575 pal.setColor(QColorGroup::Foreground, *(KOPrefs::instance()->categoryColor(cat))); 575 pal.setColor(QColorGroup::Foreground, *(KOPrefs::instance()->categoryColor(cat)));
576 } 576 }
577 577
578 } else { 578 } else {
579 if (cat.isEmpty()) { 579 if (cat.isEmpty()) {
580 pal = QPalette(KOPrefs::instance()->mEventColor, KOPrefs::instance()->mEventColor); 580 pal = QPalette(KOPrefs::instance()->mEventColor, KOPrefs::instance()->mEventColor);
581 } else { 581 } else {
582 pal = QPalette(*(KOPrefs::instance()->categoryColor(cat)), *(KOPrefs::instance()->categoryColor(cat))); 582 pal = QPalette(*(KOPrefs::instance()->categoryColor(cat)), *(KOPrefs::instance()->categoryColor(cat)));
583 } 583 }
584 } 584 }
585 585
586 } else { 586 } else {
587 pal = mStandardPalette ; 587 pal = mStandardPalette ;
588 } 588 }
589 item->setPalette( pal ); 589 item->setPalette( pal );
590 mItemList->insertItem( item ); 590 mItemList->insertItem( item );
591 mToolTip += text+"\n"; 591 mToolTip += text+"\n";
592} 592}
593void MonthViewCell::finishUpdateCell() 593void MonthViewCell::finishUpdateCell()
594{ 594{
595#ifdef DESKTOP_VERSION 595#ifdef DESKTOP_VERSION
596 if (mToolTip != "") 596 if (mToolTip != "")
597 QToolTip::add(this,mToolTip,toolTipGroup(),""); 597 QToolTip::add(this,mToolTip,toolTipGroup(),"");
598#endif 598#endif
599 mItemList->sort(); 599 mItemList->sort();
600 //setMyPalette(); 600 //setMyPalette();
601 setMyPalette(); 601 setMyPalette();
602 QString text; 602 QString text;
603 bool smallDisplay = QApplication::desktop()->width() < 320 && KOPrefs::instance()->mMonthViewSatSunTog; 603 bool smallDisplay = QApplication::desktop()->width() < 320 && KOPrefs::instance()->mMonthViewSatSunTog;
604 if ( KOPrefs::instance()->mMonthViewWeek || KOGlobals::self()->calendarSystem()->day( mDate ) == 1 || (mDate.dayOfWeek() == 7 && !smallDisplay ) || KOPrefs::instance()->mMonthShowShort) { 604 if ( KOPrefs::instance()->mMonthViewWeek || KOGlobals::self()->calendarSystem()->day( mDate ) == 1 || (mDate.dayOfWeek() == 7 && !smallDisplay ) || KOPrefs::instance()->mMonthShowShort) {
605 text = KOGlobals::self()->calendarSystem()->monthName( mDate, true ) + " "; 605 text = KOGlobals::self()->calendarSystem()->monthName( mDate, true ) + " ";
606 mLabel->resize( mLabelBigSize ); 606 mLabel->resize( mLabelBigSize );
607 text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) ); 607 text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) );
608 } else { 608 } else {
609 mLabel->resize( mLabelSize ); 609 mLabel->resize( mLabelSize );
610 text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) ); 610 text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) );
611 } 611 }
612 612
613 mLabel->setText( text ); 613 mLabel->setText( text );
614 resizeEvent( 0 ); 614 resizeEvent( 0 );
615} 615}
616void MonthViewCell::updateCell() 616void MonthViewCell::updateCell()
617{ 617{
618 if ( !mMonthView->isUpdatePossible() ) 618 if ( !mMonthView->isUpdatePossible() )
619 return; 619 return;
620 startUpdateCell(); 620 startUpdateCell();
621 //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2); 621 //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2);
622 QPtrList<Event> events = mMonthView->calendar()->events( mDate, true ); 622 QPtrList<Event> events = mMonthView->calendar()->events( mDate, true );
623 Event *event; 623 Event *event;
624 for( event = events.first(); event; event = events.next() ) { // for event 624 for( event = events.first(); event; event = events.next() ) { // for event
625 insertEvent(event); 625 insertEvent(event);
626 } 626 }
627 // insert due todos 627 // insert due todos
628 QPtrList<Todo> todos = mMonthView->calendar()->todos( mDate ); 628 QPtrList<Todo> todos = mMonthView->calendar()->todos( mDate );
629 Todo *todo; 629 Todo *todo;
630 for(todo = todos.first(); todo; todo = todos.next()) { 630 for(todo = todos.first(); todo; todo = todos.next()) {
631 insertTodo( todo ); 631 insertTodo( todo );
632 } 632 }
633 finishUpdateCell(); 633 finishUpdateCell();
634 // if ( isVisible()) 634 // if ( isVisible())
635 //qApp->processEvents(); 635 //qApp->processEvents();
636} 636}
637 637
638void MonthViewCell::updateConfig( bool bigFont ) // = false 638void MonthViewCell::updateConfig( bool bigFont ) // = false
639{ 639{
640 640
641 if ( bigFont ) { 641 if ( bigFont ) {
642 QFont fo = KOPrefs::instance()->mMonthViewFont; 642 QFont fo = KOPrefs::instance()->mMonthViewFont;
643 int ps = fo.pointSize() + 2; 643 int ps = fo.pointSize() + 2;
644 if ( ps < 18 ) 644 if ( ps < 18 )
645 ps += 2; 645 ps += 2;
646 fo.setPointSize( ps ); 646 fo.setPointSize( ps );
647 setFont( fo ); 647 setFont( fo );
648 } else 648 } else
649 setFont( KOPrefs::instance()->mMonthViewFont ); 649 setFont( KOPrefs::instance()->mMonthViewFont );
650 650
651 QFontMetrics fm( font() ); 651 QFontMetrics fm( font() );
652 mLabelSize = fm.size( 0, "30" ) + QSize( 4, 2 ); 652 mLabelSize = fm.size( 0, "30" ) + QSize( 4, 2 );
653 mLabelBigSize = fm.size( 0, "Mag 30" ) + QSize( 2, 2 ); 653 mLabelBigSize = fm.size( 0, "Mag 30" ) + QSize( 2, 2 );
654 mHolidayPalette = mStandardPalette; 654 mHolidayPalette = mStandardPalette;
655 mPrimaryPalette = mStandardPalette; 655 mPrimaryPalette = mStandardPalette;
656 mNonPrimaryPalette = mStandardPalette; 656 mNonPrimaryPalette = mStandardPalette;
657 if ( KOPrefs::instance()->mMonthViewUsesDayColors ) { 657 if ( KOPrefs::instance()->mMonthViewUsesDayColors ) {
658 mHolidayPalette.setColor(QColorGroup::Base, KOPrefs::instance()->mMonthViewHolidayColor ); 658 mHolidayPalette.setColor(QColorGroup::Base, KOPrefs::instance()->mMonthViewHolidayColor );
659 mHolidayPalette.setColor(QColorGroup::Background, KOPrefs::instance()->mMonthViewHolidayColor ); 659 mHolidayPalette.setColor(QColorGroup::Background, KOPrefs::instance()->mMonthViewHolidayColor );
660 mHolidayPalette.setColor(QColorGroup::Foreground, KOPrefs::instance()->mMonthViewHolidayColor.dark()); 660 mHolidayPalette.setColor(QColorGroup::Foreground, KOPrefs::instance()->mMonthViewHolidayColor.dark());
661 mPrimaryPalette.setColor(QColorGroup::Foreground,KOPrefs::instance()->mMonthViewOddColor.dark()); 661 mPrimaryPalette.setColor(QColorGroup::Foreground,KOPrefs::instance()->mMonthViewOddColor.dark());
662 mPrimaryPalette.setColor(QColorGroup::Base,KOPrefs::instance()->mMonthViewOddColor); 662 mPrimaryPalette.setColor(QColorGroup::Base,KOPrefs::instance()->mMonthViewOddColor);
663 mPrimaryPalette.setColor(QColorGroup::Background,KOPrefs::instance()->mMonthViewOddColor); 663 mPrimaryPalette.setColor(QColorGroup::Background,KOPrefs::instance()->mMonthViewOddColor);
664 mNonPrimaryPalette.setColor(QColorGroup::Foreground,KOPrefs::instance()->mMonthViewEvenColor.dark()); 664 mNonPrimaryPalette.setColor(QColorGroup::Foreground,KOPrefs::instance()->mMonthViewEvenColor.dark());
665 mNonPrimaryPalette.setColor(QColorGroup::Base,KOPrefs::instance()->mMonthViewEvenColor); 665 mNonPrimaryPalette.setColor(QColorGroup::Base,KOPrefs::instance()->mMonthViewEvenColor);
666 mNonPrimaryPalette.setColor(QColorGroup::Background,KOPrefs::instance()->mMonthViewEvenColor); 666 mNonPrimaryPalette.setColor(QColorGroup::Background,KOPrefs::instance()->mMonthViewEvenColor);
667 } 667 }
668 //updateCell(); 668 //updateCell();
669} 669}
670 670
671void MonthViewCell::enableScrollBars( bool enabled ) 671void MonthViewCell::enableScrollBars( bool enabled )
672{ 672{
673 if ( enabled ) { 673 if ( enabled ) {
674 mItemList->setVScrollBarMode(QScrollView::Auto); 674 mItemList->setVScrollBarMode(QScrollView::Auto);
675 mItemList->setHScrollBarMode(QScrollView::Auto); 675 mItemList->setHScrollBarMode(QScrollView::Auto);
676 } else { 676 } else {
677 mItemList->setVScrollBarMode(QScrollView::AlwaysOff); 677 mItemList->setVScrollBarMode(QScrollView::AlwaysOff);
678 mItemList->setHScrollBarMode(QScrollView::AlwaysOff); 678 mItemList->setHScrollBarMode(QScrollView::AlwaysOff);
679 } 679 }
680} 680}
681 681
682Incidence *MonthViewCell::selectedIncidence() 682Incidence *MonthViewCell::selectedIncidence()
683{ 683{
684 int index = mItemList->currentItem(); 684 int index = mItemList->currentItem();
685 if ( index < 0 ) return 0; 685 if ( index < 0 ) return 0;
686 686
687 MonthViewItem *item = 687 MonthViewItem *item =
688 static_cast<MonthViewItem *>( mItemList->item( index ) ); 688 static_cast<MonthViewItem *>( mItemList->item( index ) );
689 689
690 if ( !item ) return 0; 690 if ( !item ) return 0;
691 691
692 return item->incidence(); 692 return item->incidence();
693} 693}
694 694
695QDate MonthViewCell::selectedIncidenceDate() 695QDate MonthViewCell::selectedIncidenceDate()
696{ 696{
697 QDate qd; 697 QDate qd;
698 int index = mItemList->currentItem(); 698 int index = mItemList->currentItem();
699 if ( index < 0 ) return qd; 699 if ( index < 0 ) return qd;
700 700
701 MonthViewItem *item = 701 MonthViewItem *item =
702 static_cast<MonthViewItem *>( mItemList->item( index ) ); 702 static_cast<MonthViewItem *>( mItemList->item( index ) );
703 703
704 if ( !item ) return qd; 704 if ( !item ) return qd;
705 705
706 return item->incidenceDate(); 706 return item->incidenceDate();
707} 707}
708 708
709void MonthViewCell::deselect() 709void MonthViewCell::deselect()
710{ 710{
711 mItemList->clearSelection(); 711 mItemList->clearSelection();
712 enableScrollBars( false ); 712 enableScrollBars( false );
713 // updateCell(); 713 // updateCell();
714} 714}
715void MonthViewCell::select() 715void MonthViewCell::select()
716{ 716{
717 ;// updateCell(); 717 ;// updateCell();
718} 718}
719 719
720void MonthViewCell::resizeEvent ( QResizeEvent * ) 720void MonthViewCell::resizeEvent ( QResizeEvent * )
721{ 721{
722 if ( !mMonthView->isUpdatePossible() ) 722 if ( !mMonthView->isUpdatePossible() )
723 return; 723 return;
724 724
725 int size = height() - mLabel->height() - 2; 725 int size = height() - mLabel->height() - 2;
726 if ( size > 0 ) 726 if ( size > 0 )
727 mItemList->verticalScrollBar()->setMaximumHeight( size ); 727 mItemList->verticalScrollBar()->setMaximumHeight( size );
728 size = width() - mLabel->width() -2; 728 size = width() - mLabel->width() -2;
729 if ( size > 0 ) 729 if ( size > 0 )
730 mItemList->horizontalScrollBar()->setMaximumWidth( size ); 730 mItemList->horizontalScrollBar()->setMaximumWidth( size );
731 mLabel->move( width()-mItemList->lineWidth() - mLabel->width(), height()-mItemList->lineWidth() - mLabel->height() ); 731 mLabel->move( width()-mItemList->lineWidth() - mLabel->width(), height()-mItemList->lineWidth() - mLabel->height() );
732 //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2); 732 //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2);
733} 733}
734 734
735void MonthViewCell::defaultAction( QListBoxItem *item ) 735void MonthViewCell::defaultAction( QListBoxItem *item )
736{ 736{
737 if ( !item ) return; 737 if ( !item ) return;
738 738
739 MonthViewItem *eventItem = static_cast<MonthViewItem *>( item ); 739 MonthViewItem *eventItem = static_cast<MonthViewItem *>( item );
740 Incidence *incidence = eventItem->incidence(); 740 Incidence *incidence = eventItem->incidence();
741 if ( incidence ) mMonthView->defaultAction( incidence ); 741 if ( incidence ) mMonthView->defaultAction( incidence );
742} 742}
743void MonthViewCell::showDay() 743void MonthViewCell::showDay()
744{ 744{
745 emit showDaySignal( date() ); 745 emit showDaySignal( date() );
746} 746}
747void MonthViewCell::newEvent() 747void MonthViewCell::newEvent()
748{ 748{
749 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) ); 749 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) );
750 emit newEventSignal( dt ); 750 emit newEventSignal( dt );
751} 751}
752void MonthViewCell::cellClicked( QListBoxItem *item ) 752void MonthViewCell::cellClicked( QListBoxItem *item )
753{ 753{
754 static QListBoxItem * lastClicked = 0; 754 static QListBoxItem * lastClicked = 0;
755 if ( item == 0 ) { 755 if ( item == 0 ) {
756 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) ); 756 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) );
757 emit newEventSignal( dt ); 757 emit newEventSignal( dt );
758 return; 758 return;
759 } 759 }
760 /* 760 /*
761 if ( lastClicked ) 761 if ( lastClicked )
762 if ( ! item ) { 762 if ( ! item ) {
763 if ( lastClicked->listBox() != item->listBox() ) 763 if ( lastClicked->listBox() != item->listBox() )
764 lastClicked->listBox()->clearSelection(); 764 lastClicked->listBox()->clearSelection();
765 } 765 }
766 */ 766 */
767 767
768 mMonthView->setSelectedCell( this ); 768 mMonthView->setSelectedCell( this );
769 if( KOPrefs::instance()->mEnableMonthScroll || KOPrefs::instance()->mMonthViewWeek ) enableScrollBars( true ); 769 if( KOPrefs::instance()->mEnableMonthScroll || KOPrefs::instance()->mMonthViewWeek ) enableScrollBars( true );
770 select(); 770 select();
771} 771}
772 772
773void MonthViewCell::contextMenu( QListBoxItem *item ) 773void MonthViewCell::contextMenu( QListBoxItem *item )
774{ 774{
775 if ( !item ) return; 775 if ( !item ) return;
776 776
777 MonthViewItem *eventItem = static_cast<MonthViewItem *>( item ); 777 MonthViewItem *eventItem = static_cast<MonthViewItem *>( item );
778 Incidence *incidence = eventItem->incidence(); 778 Incidence *incidence = eventItem->incidence();
779 if ( incidence ) mMonthView->showContextMenu( incidence ); 779 if ( incidence ) mMonthView->showContextMenu( incidence );
780} 780}
781 781
782void MonthViewCell::selection( QListBoxItem *item ) 782void MonthViewCell::selection( QListBoxItem *item )
783{ 783{
784 if ( !item ) return; 784 if ( !item ) return;
785 785
786 mMonthView->setSelectedCell( this ); 786 mMonthView->setSelectedCell( this );
787} 787}
788 788
789 789
790// ******************************************************************************* 790// *******************************************************************************
791// ******************************************************************************* 791// *******************************************************************************
792// ******************************************************************************* 792// *******************************************************************************
793 793
794 794
795KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name) 795KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name)
796 : KOEventView( calendar, parent, name ), 796 : KOEventView( calendar, parent, name ),
797 mDaysPerWeek( 7 ), mNumWeeks( 6 ), mNumCells( mDaysPerWeek * mNumWeeks ), 797 mDaysPerWeek( 7 ), mNumWeeks( 6 ), mNumCells( mDaysPerWeek * mNumWeeks ),
798 mShortDayLabels( false ), mWidthLongDayLabel( 0 ), mSelectedCell( 0 ) 798 mWidthLongDayLabel( 0 ), mSelectedCell( 0 )
799{ 799{
800 800 ignoreResizeEvent = 0;
801 mShortDayLabelsW = false;
802 mShortDayLabelsM = false;
801 clPending = true; 803 clPending = true;
802 mWidStack = new QWidgetStack( this ); 804 mWidStack = new QWidgetStack( this );
803 QHBoxLayout* hb = new QHBoxLayout( this ); 805 QHBoxLayout* hb = new QHBoxLayout( this );
804 mMonthView = new QWidget( mWidStack ); 806 mMonthView = new QWidget( mWidStack );
805 mWeekView = new QWidget( mWidStack ); 807 mWeekView = new QWidget( mWidStack );
806#if QT_VERSION >= 0x030000 808#if QT_VERSION >= 0x030000
807 mWidStack->addWidget(mMonthView ); 809 mWidStack->addWidget(mMonthView );
808 mWidStack->addWidget(mWeekView ); 810 mWidStack->addWidget(mWeekView );
809#else 811#else
810 mWidStack->addWidget( mMonthView, 1 ); 812 mWidStack->addWidget( mMonthView, 1 );
811 mWidStack->addWidget( mWeekView , 1 ); 813 mWidStack->addWidget( mWeekView , 1 );
812#endif 814#endif
813 hb->addWidget( mWidStack ); 815 hb->addWidget( mWidStack );
814 mWeekStartsMonday = KGlobal::locale()->weekStartsMonday(); 816 mWeekStartsMonday = KGlobal::locale()->weekStartsMonday();
815 mShowWeekView = KOPrefs::instance()->mMonthViewWeek; 817 mShowWeekView = KOPrefs::instance()->mMonthViewWeek;
816 if ( mShowWeekView ) 818 if ( mShowWeekView )
817 mWeekStartsMonday = true; 819 mWeekStartsMonday = true;
818 updatePossible = false; 820 updatePossible = false;
819 mCells.setAutoDelete( true ); 821 mCells.setAutoDelete( true );
820 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ;
821 mDayLabels.resize( mDaysPerWeek ); 822 mDayLabels.resize( mDaysPerWeek );
822 mDayLabelsW.resize( mDaysPerWeek ); 823 mDayLabelsW.resize( mDaysPerWeek );
823 QFont bfont = font(); 824 QFont bfont = font();
824 if ( QApplication::desktop()->width() < 650 ) { 825 if ( QApplication::desktop()->width() < 650 ) {
825 bfont.setPointSize( bfont.pointSize() - 2 ); 826 bfont.setPointSize( bfont.pointSize() - 2 );
826 } 827 }
827 bfont.setBold( true ); 828 bfont.setBold( true );
828 int i; 829 int i;
829 830
830 for( i = 0; i < mDaysPerWeek; i++ ) { 831 for( i = 0; i < mDaysPerWeek; i++ ) {
831 QLabel *label = new QLabel( mMonthView ); 832 QLabel *label = new QLabel( mMonthView );
832 label->setFont(bfont); 833 label->setFont(bfont);
833 label->setFrameStyle(QFrame::Panel|QFrame::Raised); 834 label->setFrameStyle(QFrame::Panel|QFrame::Raised);
834 label->setLineWidth(1); 835 label->setLineWidth(1);
835 label->setAlignment(AlignCenter); 836 label->setAlignment(AlignCenter);
836 mDayLabels.insert( i, label ); 837 mDayLabels.insert( i, label );
837 label = new QLabel( mWeekView ); 838 label = new QLabel( mWeekView );
838 label->setFont(bfont); 839 label->setFont(bfont);
839 label->setFrameStyle(QFrame::Panel|QFrame::Raised); 840 label->setFrameStyle(QFrame::Panel|QFrame::Raised);
840 label->setLineWidth(1); 841 label->setLineWidth(1);
841 label->setAlignment(AlignCenter); 842 label->setAlignment(AlignCenter);
842 mDayLabelsW.insert( i, label ); 843 mDayLabelsW.insert( i, label );
843 } 844 }
844 845
845 bfont.setBold( false ); 846 bfont.setBold( false );
846 mWeekLabels.resize( mNumWeeks+1 ); 847 mWeekLabels.resize( mNumWeeks+1 );
847 mWeekLabelsW.resize( 2 ); 848 mWeekLabelsW.resize( 2 );
848 for( i = 0; i < mNumWeeks+1; i++ ) { 849 for( i = 0; i < mNumWeeks+1; i++ ) {
849 KOWeekButton *label = new KOWeekButton( mMonthView ); 850 KOWeekButton *label = new KOWeekButton( mMonthView );
850 label->setFocusPolicy(NoFocus); 851 label->setFocusPolicy(NoFocus);
851 label->setFont(bfont); 852 label->setFont(bfont);
852 connect( label, SIGNAL( selectWeekNum ( int )),this, SLOT( selectInternalWeekNum ( int )) ); 853 connect( label, SIGNAL( selectWeekNum ( int )),this, SLOT( selectInternalWeekNum ( int )) );
853 label->setFlat(true); 854 label->setFlat(true);
854 QWhatsThis::add(label,i18n("Click on the week number to\nshow week zoomed")); 855 QWhatsThis::add(label,i18n("Click on the week number to\nshow week zoomed"));
855 //label->setFrameStyle(QFrame::Panel|QFrame::Raised); 856 //label->setFrameStyle(QFrame::Panel|QFrame::Raised);
856 //label->setLineWidth(1); 857 //label->setLineWidth(1);
857 //label->setAlignment(AlignCenter); 858 //label->setAlignment(AlignCenter);
858 mWeekLabels.insert( i, label ); 859 mWeekLabels.insert( i, label );
859 } 860 }
860 mWeekLabels[mNumWeeks]->setText( i18n("W")); 861 mWeekLabels[mNumWeeks]->setText( i18n("W"));
861 QWhatsThis::add(mWeekLabels[mNumWeeks],i18n("Click on this to\nselect week number")); 862 QWhatsThis::add(mWeekLabels[mNumWeeks],i18n("Click on this to\nselect week number"));
862 863
863 for( i = 0; i < 1+1; i++ ) { 864 for( i = 0; i < 1+1; i++ ) {
864 KOWeekButton *label = new KOWeekButton( mWeekView ); 865 KOWeekButton *label = new KOWeekButton( mWeekView );
865 label->setFocusPolicy(NoFocus); 866 label->setFocusPolicy(NoFocus);
866 label->setFont(bfont); 867 label->setFont(bfont);
867 connect( label, SIGNAL( selectWeekNum ( int )),this, SLOT( selectInternalWeekNum ( int )) ); 868 connect( label, SIGNAL( selectWeekNum ( int )),this, SLOT( selectInternalWeekNum ( int )) );
868 label->setFlat(true); 869 label->setFlat(true);
869 QWhatsThis::add(label,i18n("Click on the week number to\nshow week zoomed")); 870 QWhatsThis::add(label,i18n("Click on the week number to\nshow week zoomed"));
870 //label->setFrameStyle(QFrame::Panel|QFrame::Raised); 871 //label->setFrameStyle(QFrame::Panel|QFrame::Raised);
871 //label->setLineWidth(1); 872 //label->setLineWidth(1);
872 //label->setAlignment(AlignCenter); 873 //label->setAlignment(AlignCenter);
873 mWeekLabelsW.insert( i, label ); 874 mWeekLabelsW.insert( i, label );
874 } 875 }
875 mWeekLabelsW[1]->setText( i18n("W")); 876 mWeekLabelsW[1]->setText( i18n("W"));
876 877
877 878
878 int row, col; 879 int row, col;
879 mCells.resize( mNumCells ); 880 mCells.resize( mNumCells );
880 for( row = 0; row < mNumWeeks; ++row ) { 881 for( row = 0; row < mNumWeeks; ++row ) {
881 for( col = 0; col < mDaysPerWeek; ++col ) { 882 for( col = 0; col < mDaysPerWeek; ++col ) {
882 MonthViewCell *cell = new MonthViewCell( this, mMonthView ); 883 MonthViewCell *cell = new MonthViewCell( this, mMonthView );
883 mCells.insert( row * mDaysPerWeek + col, cell ); 884 mCells.insert( row * mDaysPerWeek + col, cell );
884 885
885 connect( cell, SIGNAL( defaultAction( Incidence * ) ), 886 connect( cell, SIGNAL( defaultAction( Incidence * ) ),
886 SLOT( defaultAction( Incidence * ) ) ); 887 SLOT( defaultAction( Incidence * ) ) );
887 connect( cell, SIGNAL( newEventSignal( QDateTime ) ), 888 connect( cell, SIGNAL( newEventSignal( QDateTime ) ),
888 SIGNAL( newEventSignal( QDateTime ) ) ); 889 SIGNAL( newEventSignal( QDateTime ) ) );
889 connect( cell, SIGNAL( showDaySignal( QDate ) ), 890 connect( cell, SIGNAL( showDaySignal( QDate ) ),
890 SIGNAL( showDaySignal( QDate ) ) ); 891 SIGNAL( showDaySignal( QDate ) ) );
891 } 892 }
892 } 893 }
893 mCellsW.resize( mDaysPerWeek ); 894 mCellsW.resize( mDaysPerWeek );
894 for( col = 0; col < mDaysPerWeek; ++col ) { 895 for( col = 0; col < mDaysPerWeek; ++col ) {
895 MonthViewCell *cell = new MonthViewCell( this, mWeekView ); 896 MonthViewCell *cell = new MonthViewCell( this, mWeekView );
896 mCellsW.insert( col, cell ); 897 mCellsW.insert( col, cell );
897 898
898 connect( cell, SIGNAL( defaultAction( Incidence * ) ), 899 connect( cell, SIGNAL( defaultAction( Incidence * ) ),
899 SLOT( defaultAction( Incidence * ) ) ); 900 SLOT( defaultAction( Incidence * ) ) );
900 connect( cell, SIGNAL( newEventSignal( QDateTime ) ), 901 connect( cell, SIGNAL( newEventSignal( QDateTime ) ),
901 SIGNAL( newEventSignal( QDateTime ) ) ); 902 SIGNAL( newEventSignal( QDateTime ) ) );
902 connect( cell, SIGNAL( showDaySignal( QDate ) ), 903 connect( cell, SIGNAL( showDaySignal( QDate ) ),
903 SIGNAL( showDaySignal( QDate ) ) ); 904 SIGNAL( showDaySignal( QDate ) ) );
904 cell->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont ); 905 cell->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont );
905 } 906 }
906 907
907 //connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), SLOT( switchView() ) ); 908 //connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), SLOT( switchView() ) );
908 mContextMenu = eventPopup(); 909 mContextMenu = eventPopup();
909 // updateConfig(); //useless here 910 updateConfig(); //useless here
910 911
911 //mWeekLabels[mNumWeeks]->setText( i18n("W")); 912 //mWeekLabels[mNumWeeks]->setText( i18n("W"));
912#if 0 913
913 mWidStack = new QWidgetStack( this );
914 mMonthView = new QWidget( mWidStack );
915 mWeekView = new QWidget( mWidStack );
916#endif
917 if ( mShowWeekView ) 914 if ( mShowWeekView )
918 mWidStack->raiseWidget( mWeekView ); 915 mWidStack->raiseWidget( mWeekView );
919 else 916 else
920 mWidStack->raiseWidget( mMonthView ); 917 mWidStack->raiseWidget( mMonthView );
921 918
922 emit incidenceSelected( 0 ); 919 emit incidenceSelected( 0 );
923} 920}
924 921
925KOMonthView::~KOMonthView() 922KOMonthView::~KOMonthView()
926{ 923{
927 delete mContextMenu; 924 delete mContextMenu;
928} 925}
929 926
930void KOMonthView::selectInternalWeekNum ( int n ) 927void KOMonthView::selectInternalWeekNum ( int n )
931{ 928{
932 switchView(); 929 switchView();
933 emit selectWeekNum ( n ); 930 emit selectWeekNum ( n );
934} 931}
935 932
936int KOMonthView::currentWeek() 933int KOMonthView::currentWeek()
937{ 934{
938 if ( mShowWeekView ) 935 if ( mShowWeekView )
939 return mWeekLabelsW[0]->getWeekNum(); 936 return mWeekLabelsW[0]->getWeekNum();
940 return mWeekLabels[0]->getWeekNum(); 937 return mWeekLabels[0]->getWeekNum();
941} 938}
942void KOMonthView::switchView() 939void KOMonthView::switchView()
943{ 940{
944 941
945 if ( selectedCell( ) ) 942 if ( selectedCell( ) )
946 selectedCell()->deselect(); 943 selectedCell()->deselect();
947 mShowWeekView = !mShowWeekView; 944 mShowWeekView = !mShowWeekView;
948 KOPrefs::instance()->mMonthViewWeek = mShowWeekView; 945 KOPrefs::instance()->mMonthViewWeek = mShowWeekView;
949 //emit showNavigator( !mShowWeekView ); 946 //emit showNavigator( !mShowWeekView );
950 if ( clPending ) { 947 if ( clPending ) {
951 computeLayout(); 948 computeLayout();
952 updateConfig(); 949 updateConfig();
953 } 950 }
954 if ( mShowWeekView ) 951 if ( mShowWeekView )
955 mWidStack->raiseWidget( mWeekView ); 952 mWidStack->raiseWidget( mWeekView );
956 else 953 else
957 mWidStack->raiseWidget( mMonthView ); 954 mWidStack->raiseWidget( mMonthView );
958 clPending = false; 955 clPending = false;
959} 956}
960 957
961int KOMonthView::maxDatesHint() 958int KOMonthView::maxDatesHint()
962{ 959{
963 return mNumCells; 960 return mNumCells;
964} 961}
965 962
966int KOMonthView::currentDateCount() 963int KOMonthView::currentDateCount()
967{ 964{
968 return mNumCells; 965 return mNumCells;
969} 966}
970 967
971QPtrList<Incidence> KOMonthView::selectedIncidences() 968QPtrList<Incidence> KOMonthView::selectedIncidences()
972{ 969{
973 QPtrList<Incidence> selected; 970 QPtrList<Incidence> selected;
974 971
975 if ( mSelectedCell ) { 972 if ( mSelectedCell ) {
976 Incidence *incidence = mSelectedCell->selectedIncidence(); 973 Incidence *incidence = mSelectedCell->selectedIncidence();
977 if ( incidence ) selected.append( incidence ); 974 if ( incidence ) selected.append( incidence );
978 } 975 }
979 976
980 return selected; 977 return selected;
981} 978}
982 979
983DateList KOMonthView::selectedDates() 980DateList KOMonthView::selectedDates()
984{ 981{
985 DateList selected; 982 DateList selected;
986 983
987 if ( mSelectedCell ) { 984 if ( mSelectedCell ) {
988 QDate qd = mSelectedCell->selectedIncidenceDate(); 985 QDate qd = mSelectedCell->selectedIncidenceDate();
989 if ( qd.isValid() ) selected.append( qd ); 986 if ( qd.isValid() ) selected.append( qd );
990 } 987 }
991 988
992 return selected; 989 return selected;
993} 990}
994 991
995void KOMonthView::printPreview(CalPrinter *calPrinter, const QDate &fd, 992void KOMonthView::printPreview(CalPrinter *calPrinter, const QDate &fd,
996 const QDate &td) 993 const QDate &td)
997{ 994{
998#ifndef KORG_NOPRINTER 995#ifndef KORG_NOPRINTER
999 calPrinter->preview(CalPrinter::Month, fd, td); 996 calPrinter->preview(CalPrinter::Month, fd, td);
1000#endif 997#endif
1001} 998}
1002 999
1003void KOMonthView::updateConfig() 1000void KOMonthView::updateConfig()
1004{ 1001{
1005 1002
1006 mWeekStartsMonday = KGlobal::locale()->weekStartsMonday(); 1003 mWeekStartsMonday = KGlobal::locale()->weekStartsMonday();
1007 1004
1008 if ( mShowWeekView ) { 1005 if ( mShowWeekView ) {
1009 mWeekStartsMonday = true; 1006 mWeekStartsMonday = true;
1010 } 1007 }
1011 QFontMetrics fontmetric(mDayLabels[0]->font()); 1008 QFontMetrics fontmetric(mDayLabels[0]->font());
1012 mWidthLongDayLabel = 0; 1009 mWidthLongDayLabel = 0;
1013 1010 qDebug("KOMonthView::updateConfig() ");
1014 for (int i = 0; i < 7; i++) { 1011 for (int i = 0; i < 7; i++) {
1015 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1)); 1012 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1));
1016 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width; 1013 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width;
1017 } 1014 }
1018 bool temp = mShowSatSunComp ;
1019 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ;
1020 if ( ! mShowWeekView ) { 1015 if ( ! mShowWeekView ) {
1021 if ( temp != KOPrefs::instance()->mMonthViewSatSunTog )
1022 computeLayout(); 1016 computeLayout();
1023 } 1017 }
1024 updateDayLabels(); 1018 updateDayLabels();
1025 //qDebug("KOMonthView::updateConfig() %d %d %d ",height(), mDayLabels[0]->sizeHint().height() ,mNumWeeks); 1019 //qDebug("KOMonthView::updateConfig() %d %d %d ",height(), mDayLabels[0]->sizeHint().height() ,mNumWeeks);
1026 //int cellHeight = (height() - mDayLabels[0]->sizeHint().height()) /mNumWeeks; 1020 //int cellHeight = (height() - mDayLabels[0]->sizeHint().height()) /mNumWeeks;
1027 //resizeEvent( 0 ); 1021 //resizeEvent( 0 );
1028 for (uint i = 0; i < mCells.count(); ++i) { 1022 for (uint i = 0; i < mCells.count(); ++i) {
1029 mCells[i]->updateConfig(); 1023 mCells[i]->updateConfig();
1030 } 1024 }
1031 1025
1032 for (uint i = 0; i < mCellsW.count(); ++i) { 1026 for (uint i = 0; i < mCellsW.count(); ++i) {
1033 mCellsW[i]->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont); 1027 mCellsW[i]->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont);
1034 } 1028 }
1035#ifdef DESKTOP_VERSION 1029#ifdef DESKTOP_VERSION
1036 MonthViewCell::toolTipGroup()->setEnabled(KOPrefs::instance()->mEnableToolTips); 1030 MonthViewCell::toolTipGroup()->setEnabled(KOPrefs::instance()->mEnableToolTips);
1037#endif 1031#endif
1038 updateView(); 1032 updateView();
1039} 1033}
1040 1034
1041void KOMonthView::updateDayLabels() 1035void KOMonthView::updateDayLabels()
1042{ 1036{
1043 1037
1044 QPtrVector<QLabel> *mDayLabelsT; 1038 QPtrVector<QLabel> *mDayLabelsT;
1045#if 0 1039#if 0
1046 if (mShowWeekView ) 1040 if (mShowWeekView )
1047 mDayLabelsT = &mDayLabelsW; 1041 mDayLabelsT = &mDayLabelsW;
1048 else 1042 else
1049 mDayLabelsT = &mDayLabels; 1043 mDayLabelsT = &mDayLabels;
1050#endif 1044#endif
1051 1045 qDebug("updateDayLabels W %d M %d ",mShortDayLabelsW ,mShortDayLabelsM);
1052 mDayLabelsT = &mDayLabelsW; 1046 mDayLabelsT = &mDayLabelsW;
1053 for (int i = 0; i < 7; i++) { 1047 for (int i = 0; i < 7; i++) {
1054 if (mWeekStartsMonday) { 1048 if (mWeekStartsMonday) {
1055 bool show = mShortDayLabels; 1049 bool show = mShortDayLabelsW;
1056 if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() ) 1050 if ( i > 4 && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() )
1057 show = true; 1051 show = true;
1058 (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show)); 1052 (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show));
1059 } else { 1053 } else {
1060 if (i==0) (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(7,mShortDayLabels)); 1054 if (i==0) (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(7,mShortDayLabelsW));
1061 else (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i,mShortDayLabels)); 1055 else (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i,mShortDayLabelsW));
1062 1056
1063 } 1057 }
1064 } 1058 }
1065 mDayLabelsT = &mDayLabels; 1059 mDayLabelsT = &mDayLabels;
1066 for (int i = 0; i < 7; i++) { 1060 for (int i = 0; i < 7; i++) {
1067 if (mWeekStartsMonday) { 1061 if (mWeekStartsMonday) {
1068 bool show = mShortDayLabels; 1062 bool show = mShortDayLabelsM;
1069 if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() ) 1063 if ( i > 4 && KOPrefs::instance()->mMonthViewSatSunTog && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() )
1070 show = true; 1064 show = true;
1071 (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show)); 1065 (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show));
1072 } else { 1066 } else {
1073 if (i==0) (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(7,mShortDayLabels)); 1067 if (i==0) (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(7,mShortDayLabelsM));
1074 else (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i,mShortDayLabels)); 1068 else (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i,mShortDayLabelsM));
1075 1069
1076 } 1070 }
1077 } 1071 }
1078 1072
1079} 1073}
1080 1074
1081void KOMonthView::showDates(const QDate &start, const QDate &) 1075void KOMonthView::showDates(const QDate &start, const QDate &)
1082{ 1076{
1083 // kdDebug() << "KOMonthView::showDates(): " << start.toString() << endl; 1077 // kdDebug() << "KOMonthView::showDates(): " << start.toString() << endl;
1084 1078
1085 QPtrVector<MonthViewCell> *cells; 1079 QPtrVector<MonthViewCell> *cells;
1086 QPtrVector<QLabel> *dayLabels; 1080 QPtrVector<QLabel> *dayLabels;
1087 QPtrVector<KOWeekButton> *weekLabels; 1081 QPtrVector<KOWeekButton> *weekLabels;
1088 int weekNum = 6; 1082 int weekNum = 6;
1089 if ( mShowWeekView ) { 1083 if ( mShowWeekView ) {
1090 weekNum = 1; 1084 weekNum = 1;
1091 cells = &mCellsW; 1085 cells = &mCellsW;
1092 dayLabels = &mDayLabelsW; 1086 dayLabels = &mDayLabelsW;
1093 weekLabels = &mWeekLabelsW; 1087 weekLabels = &mWeekLabelsW;
1094 } else { 1088 } else {
1095 cells = &mCells; 1089 cells = &mCells;
1096 dayLabels = &mDayLabels; 1090 dayLabels = &mDayLabels;
1097 weekLabels = &mWeekLabels; 1091 weekLabels = &mWeekLabels;
1098 } 1092 }
1099 1093
1100 mStartDate = start; 1094 mStartDate = start;
1101 1095
1102 int startWeekDay = mWeekStartsMonday ? 1 : 7; 1096 int startWeekDay = mWeekStartsMonday ? 1 : 7;
1103 1097
1104 while( KOGlobals::self()->calendarSystem()->dayOfWeek(mStartDate) != startWeekDay ) { 1098 while( KOGlobals::self()->calendarSystem()->dayOfWeek(mStartDate) != startWeekDay ) {
1105 mStartDate = mStartDate.addDays( -1 ); 1099 mStartDate = mStartDate.addDays( -1 );
1106 } 1100 }
1107 1101
1108 bool primary = false; 1102 bool primary = false;
1109 uint i; 1103 uint i;
1110 for( i = 0; i < (*cells).size(); ++i ) { 1104 for( i = 0; i < (*cells).size(); ++i ) {
1111 QDate date = mStartDate.addDays( i ); 1105 QDate date = mStartDate.addDays( i );
1112 (*cells)[i]->setDate( date ); 1106 (*cells)[i]->setDate( date );
1113 1107
1114#ifndef KORG_NOPLUGINS 1108#ifndef KORG_NOPLUGINS
1115 // add holiday, if present 1109 // add holiday, if present
1116 QString hstring(KOCore::self()->holiday(date)); 1110 QString hstring(KOCore::self()->holiday(date));
1117 (*cells)[i]->setHoliday( hstring ); 1111 (*cells)[i]->setHoliday( hstring );
1118#endif 1112#endif
1119 1113
1120 } 1114 }
1121 QDate date = mStartDate.addDays( mWeekStartsMonday ? 3 : 4 ); 1115 QDate date = mStartDate.addDays( mWeekStartsMonday ? 3 : 4 );
1122 for( i = 0; i < weekNum; ++i ) { 1116 for( i = 0; i < weekNum; ++i ) {
1123 int wno; 1117 int wno;
1124 // remember, according to ISO 8601, the first week of the year is the 1118 // remember, according to ISO 8601, the first week of the year is the
1125 // first week that contains a thursday. Thus we must subtract off 4, 1119 // first week that contains a thursday. Thus we must subtract off 4,
1126 // not just 1. 1120 // not just 1.
1127 int dayOfYear = date.dayOfYear(); 1121 int dayOfYear = date.dayOfYear();
1128 if (dayOfYear % 7 != 0) 1122 if (dayOfYear % 7 != 0)
1129 wno = dayOfYear / 7 + 1; 1123 wno = dayOfYear / 7 + 1;
1130 else 1124 else
1131 wno =dayOfYear / 7; 1125 wno =dayOfYear / 7;
1132 (*weekLabels)[i]->setWeekNum( wno ); 1126 (*weekLabels)[i]->setWeekNum( wno );
1133 date = date.addDays( 7 ); 1127 date = date.addDays( 7 );
1134 } 1128 }
1135 updateView(); 1129 updateView();
1136} 1130}
1137 1131
1138void KOMonthView::showEvents(QPtrList<Event>) 1132void KOMonthView::showEvents(QPtrList<Event>)
1139{ 1133{
1140 qDebug("KOMonthView::selectEvents is not implemented yet. "); 1134 qDebug("KOMonthView::selectEvents is not implemented yet. ");
1141} 1135}
1142 1136
1143void KOMonthView::changeEventDisplay(Event *, int) 1137void KOMonthView::changeEventDisplay(Event *, int)
1144{ 1138{
1145 // this should be re-written to be much more efficient, but this 1139 // this should be re-written to be much more efficient, but this
1146 // quick-and-dirty-hack gets the job done for right now. 1140 // quick-and-dirty-hack gets the job done for right now.
1147 updateView(); 1141 updateView();
1148} 1142}
1149 1143
1150void KOMonthView::updateView() 1144void KOMonthView::updateView()
1151{ 1145{
1152 1146
1153 if ( !updatePossible ) 1147 if ( !updatePossible )
1154 return; 1148 return;
1155 //QTime ti; 1149 //QTime ti;
1156 //ti.start(); 1150 //ti.start();
1157 QPtrVector<MonthViewCell> *cells; 1151 QPtrVector<MonthViewCell> *cells;
1158 if ( mShowWeekView ) { 1152 if ( mShowWeekView ) {
1159 cells = &mCellsW; 1153 cells = &mCellsW;
1160 } else { 1154 } else {
1161 cells = &mCells; 1155 cells = &mCells;
1162 } 1156 }
1163#if 1 1157#if 1
1164 int i; 1158 int i;
1165 int timeSpan = (*cells).size()-1; 1159 int timeSpan = (*cells).size()-1;
1166 if ( KOPrefs::instance()->mMonthViewWeek ) 1160 if ( KOPrefs::instance()->mMonthViewWeek )
1167 timeSpan = 6; 1161 timeSpan = 6;
1168 for( i = 0; i < timeSpan + 1; ++i ) { 1162 for( i = 0; i < timeSpan + 1; ++i ) {
1169 (*cells)[i]->startUpdateCell(); 1163 (*cells)[i]->startUpdateCell();
1170 } 1164 }
1171 1165
1172 QPtrList<Event> events = calendar()->events(); 1166 QPtrList<Event> events = calendar()->events();
1173 Event *event; 1167 Event *event;
1174 QDateTime dt; 1168 QDateTime dt;
1175 bool ok; 1169 bool ok;
1176 QDate endDate = mStartDate.addDays( timeSpan ); 1170 QDate endDate = mStartDate.addDays( timeSpan );
1177 for( event = events.first(); event; event = events.next() ) { // for event 1171 for( event = events.first(); event; event = events.next() ) { // for event
1178 if ( event->doesRecur() ) { 1172 if ( event->doesRecur() ) {
1179 bool last; 1173 bool last;
1180 QDateTime incidenceStart = event->recurrence()->getPreviousDateTime( QDateTime( mStartDate ) , &last ); 1174 QDateTime incidenceStart = event->recurrence()->getPreviousDateTime( QDateTime( mStartDate ) , &last );
1181 QDateTime incidenceEnd; 1175 QDateTime incidenceEnd;
1182 int eventlen = event->dtStart().date().daysTo ( event->dtEnd().date() ); 1176 int eventlen = event->dtStart().date().daysTo ( event->dtEnd().date() );
1183 bool invalid = false; 1177 bool invalid = false;
1184 while( true ) { 1178 while( true ) {
1185 if ( incidenceStart.isValid() ) { 1179 if ( incidenceStart.isValid() ) {
1186 incidenceEnd = incidenceStart.addDays( eventlen ); 1180 incidenceEnd = incidenceStart.addDays( eventlen );
1187 int st = incidenceStart.date().daysTo( endDate ); 1181 int st = incidenceStart.date().daysTo( endDate );
1188 if ( st >= 0 ) { // start before timeend 1182 if ( st >= 0 ) { // start before timeend
1189 int end = mStartDate.daysTo( incidenceEnd.date() ); 1183 int end = mStartDate.daysTo( incidenceEnd.date() );
1190 if ( end >= 0 ) { // end after timestart --- got one! 1184 if ( end >= 0 ) { // end after timestart --- got one!
1191 //normalize 1185 //normalize
1192 st = timeSpan - st; 1186 st = timeSpan - st;
1193 if ( st < 0 ) st = 0; 1187 if ( st < 0 ) st = 0;
1194 if ( end > timeSpan ) end = timeSpan; 1188 if ( end > timeSpan ) end = timeSpan;
1195 int iii; 1189 int iii;
1196 //qDebug("found %s %d %d ",event->summary().latin1(), st, end ); 1190 //qDebug("found %s %d %d ",event->summary().latin1(), st, end );
1197 for ( iii = st;iii<= end;++iii) 1191 for ( iii = st;iii<= end;++iii)
1198 (*cells)[iii]->insertEvent( event ); 1192 (*cells)[iii]->insertEvent( event );
1199 } 1193 }
1200 } 1194 }
1201 } else { 1195 } else {
1202 if ( invalid ) 1196 if ( invalid )
1203 break; 1197 break;
1204 invalid = true; 1198 invalid = true;
1205 //qDebug("invalid %s", event->summary().latin1()); 1199 //qDebug("invalid %s", event->summary().latin1());
1206 incidenceStart = QDateTime( mStartDate ).addSecs( -2 );; 1200 incidenceStart = QDateTime( mStartDate ).addSecs( -2 );;
1207 } 1201 }
1208 if ( last ) 1202 if ( last )
1209 break; 1203 break;
1210 bool ok; 1204 bool ok;
1211 incidenceStart = event->getNextOccurence( incidenceStart.addSecs( 1 ) ,&ok ); 1205 incidenceStart = event->getNextOccurence( incidenceStart.addSecs( 1 ) ,&ok );
1212 if ( ! ok ) 1206 if ( ! ok )
1213 break; 1207 break;
1214 if ( incidenceStart.date() > endDate ) 1208 if ( incidenceStart.date() > endDate )
1215 break; 1209 break;
1216 } 1210 }
1217 } else { // no recur 1211 } else { // no recur
1218 int st = event->dtStart().date().daysTo( endDate ); 1212 int st = event->dtStart().date().daysTo( endDate );
1219 if ( st >= 0 ) { // start before timeend 1213 if ( st >= 0 ) { // start before timeend
1220 int end = mStartDate.daysTo( event->dtEnd().date() ); 1214 int end = mStartDate.daysTo( event->dtEnd().date() );
1221 if ( end >= 0 ) { // end after timestart --- got one! 1215 if ( end >= 0 ) { // end after timestart --- got one!
1222 //normalize 1216 //normalize
1223 st = timeSpan - st; 1217 st = timeSpan - st;
1224 if ( st < 0 ) st = 0; 1218 if ( st < 0 ) st = 0;
1225 if ( end > timeSpan ) end = timeSpan; 1219 if ( end > timeSpan ) end = timeSpan;
1226 int iii; 1220 int iii;
1227 for ( iii = st;iii<= end;++iii) 1221 for ( iii = st;iii<= end;++iii)
1228 (*cells)[iii]->insertEvent( event ); 1222 (*cells)[iii]->insertEvent( event );
1229 } 1223 }
1230 } 1224 }
1231 } 1225 }
1232 } 1226 }
1233 // insert due todos 1227 // insert due todos
1234 QPtrList<Todo> todos = calendar()->todos( ); 1228 QPtrList<Todo> todos = calendar()->todos( );
1235 Todo *todo; 1229 Todo *todo;
1236 for(todo = todos.first(); todo; todo = todos.next()) { 1230 for(todo = todos.first(); todo; todo = todos.next()) {
1237 //insertTodo( todo ); 1231 //insertTodo( todo );
1238 if ( todo->hasDueDate() ) { 1232 if ( todo->hasDueDate() ) {
1239 int day = mStartDate.daysTo( todo->dtDue().date() ); 1233 int day = mStartDate.daysTo( todo->dtDue().date() );
1240 if ( day >= 0 && day < timeSpan + 1) { 1234 if ( day >= 0 && day < timeSpan + 1) {
1241 (*cells)[day]->insertTodo( todo ); 1235 (*cells)[day]->insertTodo( todo );
1242 } 1236 }
1243 } 1237 }
1244 } 1238 }
1245 1239
1246 for( i = 0; i < timeSpan+1; ++i ) { 1240 for( i = 0; i < timeSpan+1; ++i ) {
1247 (*cells)[i]->finishUpdateCell(); 1241 (*cells)[i]->finishUpdateCell();
1248 } 1242 }
1249 processSelectionChange(); 1243 processSelectionChange();
1250 (*cells)[0]->setFocus(); 1244 (*cells)[0]->setFocus();
1251 1245
1252 1246
1253#else 1247#else
1254 // old code 1248 // old code
1255 //qDebug("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ "); 1249 //qDebug("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ");
1256 int i; 1250 int i;
1257 for( i = 0; i < (*cells).count(); ++i ) { 1251 for( i = 0; i < (*cells).count(); ++i ) {
1258 (*cells)[i]->updateCell(); 1252 (*cells)[i]->updateCell();
1259 } 1253 }
1260 1254
1261 //qDebug("KOMonthView::updateView() "); 1255 //qDebug("KOMonthView::updateView() ");
1262 processSelectionChange(); 1256 processSelectionChange();
1263 // qDebug("---------------------------------------------------------------------+ "); 1257 // qDebug("---------------------------------------------------------------------+ ");
1264 (*cells)[0]->setFocus(); 1258 (*cells)[0]->setFocus();
1265#endif 1259#endif
1266 1260
1267 //qDebug("update time %d ", ti.elapsed()); 1261 //qDebug("update time %d ", ti.elapsed());
1268} 1262}
1269 1263
1270void KOMonthView::resizeEvent(QResizeEvent * e) 1264void KOMonthView::resizeEvent(QResizeEvent * e)
1271{ 1265{
1266 qDebug("KOMonthView::resizeEvent %d %d -- %d %d ", e->size().width(), e->size().height(), e->oldSize().width(), e->oldSize().height());
1267 if ( ignoreResizeEvent ) {
1268 qDebug("KOMonthView::resizeEvent ignored ");
1269 --ignoreResizeEvent;
1270 return;
1271 }
1272 if ( e->size().width()+ e->size().height() < 240 )
1273 return;
1272 computeLayout(); 1274 computeLayout();
1273 clPending = true; 1275 clPending = true;
1274 if ( mShowWeekView ) 1276 if ( mShowWeekView )
1275 mCellsW[0]->setFocus(); 1277 mCellsW[0]->setFocus();
1276 else 1278 else
1277 mCells[0]->setFocus(); 1279 mCells[0]->setFocus();
1278} 1280}
1279void KOMonthView::computeLayoutWeek() 1281void KOMonthView::computeLayoutWeek()
1280{ 1282{
1281 1283
1282 int daysToShow; 1284 int daysToShow;
1283 bool combinedSatSun = false;
1284 if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) {
1285 daysToShow = 6;
1286 combinedSatSun = true;
1287 }
1288 int tWid = topLevelWidget()->size().width(); 1285 int tWid = topLevelWidget()->size().width();
1289 int tHei = topLevelWidget()->size().height(); 1286 int tHei = topLevelWidget()->size().height();
1290 1287
1291 int wid = size().width();//e 1288 int wid = size().width();//e
1292 int hei = size().height()-1; 1289 int hei = size().height()-1;
1293 1290
1294 if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) 1291 if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei )
1295 return; 1292 return;
1296 1293
1297 if ( wid < hei ) 1294 if ( wid < hei )
1298 daysToShow = 2; 1295 daysToShow = 2;
1299 else 1296 else
1300 daysToShow = 3; 1297 daysToShow = 3;
1301 mShowSatSunComp = true; 1298 bool combinedSatSun = true;
1302 combinedSatSun = true;
1303 1299
1304 //qDebug("KOMonthView::computeLayout()------------------------------------ "); 1300 //qDebug("KOMonthView::computeLayout()------------------------------------ ");
1305 QFontMetrics fm ( mWeekLabels[0]->font() ); 1301 QFontMetrics fm ( mWeekLabels[0]->font() );
1306 int weeklabelwid = fm.width( "888" ); 1302 int weeklabelwid = fm.width( "888" );
1307 wid -= weeklabelwid; 1303 wid -= weeklabelwid;
1308 1304
1309 int colWid = wid / daysToShow; 1305 int colWid = wid / daysToShow;
1310 int lastCol = wid - ( colWid*6 ); 1306 int lastCol = wid - ( colWid*6 );
1311 int dayLabelHei = mDayLabelsW[0]->sizeHint().height(); 1307 int dayLabelHei = mDayLabelsW[0]->sizeHint().height();
1312 int cellHei = (hei - (5- daysToShow )*dayLabelHei) /(5- daysToShow ); 1308 int cellHei = (hei - (5- daysToShow )*dayLabelHei) /(5- daysToShow );
1313 int colModulo = wid % daysToShow; 1309 int colModulo = wid % daysToShow;
1314 int rowModulo = (hei- (5- daysToShow )*dayLabelHei) % daysToShow-1; 1310 int rowModulo = (hei- (5- daysToShow )*dayLabelHei) % daysToShow-1;
1315 //qDebug("rowmod %d ", rowModulo); 1311 //qDebug("rowmod %d ", rowModulo);
1316 int i; 1312 int i;
1317 int x,y,w,h; 1313 int x,y,w,h;
1318 x= 0; 1314 x= 0;
1319 y= 0; 1315 y= 0;
1320 w = colWid; 1316 w = colWid;
1321 h = dayLabelHei ; 1317 h = dayLabelHei ;
1322 for ( i = 0; i < 7; i++) { 1318 for ( i = 0; i < 7; i++) {
1323 if ( i && !( i % daysToShow) && i < 6) { 1319 if ( i && !( i % daysToShow) && i < 6) {
1324 y += hei/(5-daysToShow); 1320 y += hei/(5-daysToShow);
1325 x = 0; 1321 x = 0;
1326 w = colWid; 1322 w = colWid;
1327 } 1323 }
1328 if ( ((i) % daysToShow) >= daysToShow-colModulo ) { 1324 if ( ((i) % daysToShow) >= daysToShow-colModulo ) {
1329 ++w; 1325 ++w;
1330 } 1326 }
1331 if ( i >= 5 ) { 1327 if ( i >= 5 ) {
1332 mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,w/2+w%2,h); 1328 mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,w/2+w%2,h);
1333 x -= (w/2 ); 1329 x -= (w/2 );
1334 } 1330 }
1335 else 1331 else
1336 mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,w,h); 1332 mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,w,h);
1337 x += w; 1333 x += w;
1338 } 1334 }
1339 x= 0; 1335 x= 0;
1340 y= dayLabelHei; 1336 y= dayLabelHei;
1341 w = colWid; 1337 w = colWid;
1342 h = cellHei; 1338 h = cellHei;
1343 for ( i = 0; i < mCellsW.count(); ++i) { 1339 for ( i = 0; i < mCellsW.count(); ++i) {
1344 if ( i > 6 ) { 1340 if ( i > 6 ) {
1345 mCellsW[i]->hide(); 1341 mCellsW[i]->hide();
1346 continue; 1342 continue;
1347 } 1343 }
1348 1344
1349 w = colWid; 1345 w = colWid;
1350 if ( ((i) % daysToShow) >= daysToShow-colModulo ) { 1346 if ( ((i) % daysToShow) >= daysToShow-colModulo ) {
1351 ++w; 1347 ++w;
1352 } 1348 }
1353 if ( i == (daysToShow-1-rowModulo)*7) 1349 if ( i == (daysToShow-1-rowModulo)*7)
1354 ++h; 1350 ++h;
1355 1351
1356 if ( i >= 5 ) { 1352 if ( i >= 5 ) {
1357 if ( i ==5 ) { 1353 if ( i ==5 ) {
1358 mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h/2 ); 1354 mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h/2 );
1359 x -= w ;y += h/2; 1355 x -= w ;y += h/2;
1360 } else { 1356 } else {
1361 if ( ((i-1) % daysToShow) >= daysToShow-colModulo ) { 1357 if ( ((i-1) % daysToShow) >= daysToShow-colModulo ) {
1362 ++w; 1358 ++w;
1363 } 1359 }
1364 mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h-h/2 ); 1360 mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h-h/2 );
1365 y -= h/2; 1361 y -= h/2;
1366 } 1362 }
1367 } else 1363 } else
1368 mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h ); 1364 mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h );
1369 1365
1370 1366
1371 x += w; 1367 x += w;
1372 if ( x + w/2 > wid ) { 1368 if ( x + w/2 > wid ) {
1373 x = 0; 1369 x = 0;
1374 y += h+dayLabelHei ; 1370 y += h+dayLabelHei ;
1375 } 1371 }
1376 } 1372 }
1377 y= dayLabelHei; 1373 y= dayLabelHei;
1378 h = cellHei ; 1374 h = cellHei ;
1379 mWeekLabelsW[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei); 1375 mWeekLabelsW[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei);
1380 mWeekLabelsW[1]->setGeometry( 0,0,weeklabelwid,dayLabelHei); 1376 mWeekLabelsW[1]->setGeometry( 0,0,weeklabelwid,dayLabelHei);
1381 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); 1377 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height());
1382 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); 1378 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height());
1383 mShortDayLabels = mDayLabelsW[0]->width() < mWidthLongDayLabel ; 1379 mShortDayLabelsW = mDayLabelsW[0]->width() < mWidthLongDayLabel ;
1384 updateDayLabels(); 1380 updateDayLabels();
1385 bool forceUpdate = !updatePossible; 1381 bool forceUpdate = !updatePossible;
1386 updatePossible = true; 1382 updatePossible = true;
1387 //mWeekLabels[mNumWeeks]->setText( i18n("M")); 1383 //mWeekLabels[mNumWeeks]->setText( i18n("M"));
1388 if ( forceUpdate ) 1384 if ( forceUpdate )
1389 updateView(); 1385 updateView();
1390} 1386}
1391void KOMonthView::computeLayout() 1387void KOMonthView::computeLayout()
1392{ 1388{
1393 // select the appropriate heading string size. E.g. "Wednesday" or "Wed". 1389 // select the appropriate heading string size. E.g. "Wednesday" or "Wed".
1394 // note this only changes the text if the requested size crosses the 1390 // note this only changes the text if the requested size crosses the
1395 // threshold between big enough to support the full name and not big 1391 // threshold between big enough to support the full name and not big
1396 // enough. 1392 // enough.
1397 if ( mShowWeekView ){ 1393 if ( mShowWeekView ){
1398 computeLayoutWeek(); 1394 computeLayoutWeek();
1399 return; 1395 return;
1400 } 1396 }
1401 int daysToShow = 7; 1397 int daysToShow = 7;
1402 bool combinedSatSun = false; 1398 bool combinedSatSun = false;
1403 if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { 1399 if (KOPrefs::instance()->mMonthViewSatSunTog ) {
1404 daysToShow = 6; 1400 daysToShow = 6;
1405 combinedSatSun = true; 1401 combinedSatSun = true;
1406 } 1402 }
1407 int tWid = topLevelWidget()->size().width(); 1403 int tWid = topLevelWidget()->size().width();
1408 int tHei = topLevelWidget()->size().height(); 1404 int tHei = topLevelWidget()->size().height();
1409 1405
1410 int wid = size().width();//e 1406 int wid = size().width();//e
1411 int hei = size().height()-1; 1407 int hei = size().height()-1;
1412 1408
1413 if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) 1409 if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei )
1414 return; 1410 return;
1415 //qDebug("KOMonthView::computeLayout()------------------------------------ "); 1411 //qDebug("KOMonthView::computeLayout()------------------------------------ ");
1416 QFontMetrics fm ( mWeekLabels[0]->font() ); 1412 QFontMetrics fm ( mWeekLabels[0]->font() );
1417 int weeklabelwid = fm.width( "888" ); 1413 int weeklabelwid = fm.width( "888" );
1418 wid -= weeklabelwid; 1414 wid -= weeklabelwid;
1419 1415
1420 int colWid = wid / daysToShow; 1416 int colWid = wid / daysToShow;
1421 int lastCol = wid - ( colWid*6 ); 1417 int lastCol = wid - ( colWid*6 );
1422 int dayLabelHei = mDayLabels[0]->sizeHint().height(); 1418 int dayLabelHei = mDayLabels[0]->sizeHint().height();
1423 int cellHei = (hei - dayLabelHei) /6; 1419 int cellHei = (hei - dayLabelHei) /6;
1424 int colModulo = wid % daysToShow; 1420 int colModulo = wid % daysToShow;
1425 int rowModulo = (hei- dayLabelHei) % 6; 1421 int rowModulo = (hei- dayLabelHei) % 6;
1426 //qDebug("rowmod %d ", rowModulo); 1422 //qDebug("rowmod %d ", rowModulo);
1427 int i; 1423 int i;
1428 int x,y,w,h; 1424 int x,y,w,h;
1429 x= 0; 1425 x= 0;
1430 y= 0; 1426 y= 0;
1431 w = colWid; 1427 w = colWid;
1432 h = dayLabelHei ; 1428 h = dayLabelHei ;
1433 for ( i = 0; i < 7; i++) { 1429 for ( i = 0; i < 7; i++) {
1434 if ( i == daysToShow-colModulo ) 1430 if ( i == daysToShow-colModulo )
1435 ++w; 1431 ++w;
1436 if ( combinedSatSun ) { 1432 if ( combinedSatSun ) {
1437 if ( i >= daysToShow-1 ) { 1433 if ( i >= daysToShow-1 ) {
1438 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w/2,h); 1434 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w/2,h);
1439 x -= w/2 ; 1435 x -= w/2 ;
1440 } 1436 }
1441 else 1437 else
1442 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h); 1438 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h);
1443 } else 1439 } else
1444 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h); 1440 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h);
1445 x += w; 1441 x += w;
1446 } 1442 }
1447 x= 0; 1443 x= 0;
1448 y= dayLabelHei; 1444 y= dayLabelHei;
1449 w = colWid; 1445 w = colWid;
1450 h = cellHei ; 1446 h = cellHei ;
1451 for ( i = 0; i < mCells.count(); ++i) { 1447 for ( i = 0; i < mCells.count(); ++i) {
1452 w = colWid; 1448 w = colWid;
1453 if ( ((i) % 7) >= 7-colModulo ) { 1449 if ( ((i) % 7) >= 7-colModulo ) {
1454 ++w; 1450 ++w;
1455 } 1451 }
1456 if ( i == (6-rowModulo)*7) 1452 if ( i == (6-rowModulo)*7)
1457 ++h; 1453 ++h;
1458 if ( combinedSatSun ) { 1454 if ( combinedSatSun ) {
1459 if ( (i)%7 >= daysToShow-1 ) { 1455 if ( (i)%7 >= daysToShow-1 ) {
1460 if ( (i)%7 == daysToShow-1 ) { 1456 if ( (i)%7 == daysToShow-1 ) {
1461 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h/2 ); 1457 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h/2 );
1462 x -= w ;y += h/2; 1458 x -= w ;y += h/2;
1463 } else { 1459 } else {
1464 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h-h/2 ); 1460 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h-h/2 );
1465 y -= h/2; 1461 y -= h/2;
1466 } 1462 }
1467 } else 1463 } else
1468 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); 1464 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h );
1469 1465
1470 } 1466 }
1471 else 1467 else
1472 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); 1468 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h );
1473 x += w; 1469 x += w;
1474 if ( x + w/2 > wid ) { 1470 if ( x + w/2 > wid ) {
1475 x = 0; 1471 x = 0;
1476 y += h; 1472 y += h;
1477 } 1473 }
1478 } 1474 }
1479 y= dayLabelHei; 1475 y= dayLabelHei;
1480 h = cellHei ; 1476 h = cellHei ;
1481 for ( i = 0; i < 6; i++) { 1477 for ( i = 0; i < 6; i++) {
1482 if ( i == (6-rowModulo)) 1478 if ( i == (6-rowModulo))
1483 ++h; 1479 ++h;
1484 mWeekLabels[i]->setGeometry( 0,y,weeklabelwid,h); 1480 mWeekLabels[i]->setGeometry( 0,y,weeklabelwid,h);
1485 y += h; 1481 y += h;
1486 } 1482 }
1487 mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei); 1483 mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei);
1488 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); 1484 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height());
1489 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); 1485 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height());
1490 mShortDayLabels = mDayLabels[0]->width() < mWidthLongDayLabel ; 1486 mShortDayLabelsM = mDayLabels[0]->width() < mWidthLongDayLabel ;
1487 qDebug("dlwid %d %d ",mDayLabels[0]->width() , mWidthLongDayLabel);
1491 updateDayLabels(); 1488 updateDayLabels();
1492 bool forceUpdate = !updatePossible; 1489 bool forceUpdate = !updatePossible;
1493 updatePossible = true; 1490 updatePossible = true;
1494 //mWeekLabels[mNumWeeks]->setText( i18n("W")); 1491 //mWeekLabels[mNumWeeks]->setText( i18n("W"));
1495 if ( forceUpdate ) 1492 if ( forceUpdate )
1496 updateView(); 1493 updateView();
1497} 1494}
1498 1495
1499void KOMonthView::showContextMenu( Incidence *incidence ) 1496void KOMonthView::showContextMenu( Incidence *incidence )
1500{ 1497{
1501 mContextMenu->showIncidencePopup(incidence); 1498 mContextMenu->showIncidencePopup(incidence);
1502 /* 1499 /*
1503 if( incidence && incidence->type() == "Event" ) { 1500 if( incidence && incidence->type() == "Event" ) {
1504 Event *event = static_cast<Event *>(incidence); 1501 Event *event = static_cast<Event *>(incidence);
1505 mContextMenu->showEventPopup(event); 1502 mContextMenu->showEventPopup(event);
1506 } else { 1503 } else {
1507 kdDebug() << "MonthView::showContextMenu(): cast failed." << endl; 1504 kdDebug() << "MonthView::showContextMenu(): cast failed." << endl;
1508 } 1505 }
1509 */ 1506 */
1510} 1507}
1511MonthViewCell * KOMonthView::selectedCell( ) 1508MonthViewCell * KOMonthView::selectedCell( )
1512{ 1509{
1513 return mSelectedCell; 1510 return mSelectedCell;
1514} 1511}
1515void KOMonthView::setSelectedCell( MonthViewCell *cell ) 1512void KOMonthView::setSelectedCell( MonthViewCell *cell )
1516{ 1513{
1517 // qDebug("KOMonthView::setSelectedCell "); 1514 // qDebug("KOMonthView::setSelectedCell ");
1518 if ( mSelectedCell && mSelectedCell != cell ) { 1515 if ( mSelectedCell && mSelectedCell != cell ) {
1519 MonthViewCell * mvc = mSelectedCell; 1516 MonthViewCell * mvc = mSelectedCell;
1520 mSelectedCell = cell; 1517 mSelectedCell = cell;
1521 mvc->deselect(); 1518 mvc->deselect();
1522 } else 1519 } else
1523 mSelectedCell = cell; 1520 mSelectedCell = cell;
1524 // if ( mSelectedCell ) 1521 // if ( mSelectedCell )
1525 // mSelectedCell->select(); 1522 // mSelectedCell->select();
1526 if ( !mSelectedCell ) 1523 if ( !mSelectedCell )
1527 emit incidenceSelected( 0 ); 1524 emit incidenceSelected( 0 );
1528 else 1525 else
1529 emit incidenceSelected( mSelectedCell->selectedIncidence() ); 1526 emit incidenceSelected( mSelectedCell->selectedIncidence() );
1530} 1527}
1531 1528
1532void KOMonthView::processSelectionChange() 1529void KOMonthView::processSelectionChange()
1533{ 1530{
1534 QPtrList<Incidence> incidences = selectedIncidences(); 1531 QPtrList<Incidence> incidences = selectedIncidences();
1535 if (incidences.count() > 0) { 1532 if (incidences.count() > 0) {
1536 emit incidenceSelected( incidences.first() ); 1533 emit incidenceSelected( incidences.first() );
1537 } else { 1534 } else {
1538 emit incidenceSelected( 0 ); 1535 emit incidenceSelected( 0 );
1539 } 1536 }
1540} 1537}
1541 1538
1542void KOMonthView::clearSelection() 1539void KOMonthView::clearSelection()
1543{ 1540{
1544 if ( mSelectedCell ) { 1541 if ( mSelectedCell ) {
1545 mSelectedCell->deselect(); 1542 mSelectedCell->deselect();
1546 mSelectedCell = 0; 1543 mSelectedCell = 0;
1547 } 1544 }
1548} 1545}
1549void KOMonthView::keyPressEvent ( QKeyEvent * e ) 1546void KOMonthView::keyPressEvent ( QKeyEvent * e )
1550{ 1547{
1551 //qDebug("KOMonthView::keyPressEvent "); 1548 //qDebug("KOMonthView::keyPressEvent ");
1552 switch(e->key()) { 1549 switch(e->key()) {
1553 case Key_Up: 1550 case Key_Up:
1554 { 1551 {
1555 emit prevMonth(); 1552 emit prevMonth();
1556 mCells[0]->setFocus(); 1553 mCells[0]->setFocus();
1557 } 1554 }
1558 e->accept(); 1555 e->accept();
1559 break; 1556 break;
1560 case Key_Down: 1557 case Key_Down:
1561 { 1558 {
1562 emit nextMonth(); 1559 emit nextMonth();
1563 mCells[0]->setFocus(); 1560 mCells[0]->setFocus();
1564 1561
1565 } 1562 }
1566 e->accept(); 1563 e->accept();
1567 break; 1564 break;
1568 case Key_Return: 1565 case Key_Return:
1569 case Key_Enter: 1566 case Key_Enter:
1570 { 1567 {
1571 selectInternalWeekNum ( currentWeek() ); 1568 selectInternalWeekNum ( currentWeek() );
1572 } 1569 }
1573 e->accept(); 1570 e->accept();
1574 break; 1571 break;
1575 default: 1572 default:
1576 e->ignore(); 1573 e->ignore();
1577 break; 1574 break;
1578 } 1575 }
1579} 1576}
diff --git a/korganizer/komonthview.h b/korganizer/komonthview.h
index 51eb9e6..9dbe319 100644
--- a/korganizer/komonthview.h
+++ b/korganizer/komonthview.h
@@ -1,295 +1,297 @@
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 19
20#ifndef _KOMONTHVIEW_H 20#ifndef _KOMONTHVIEW_H
21#define _KOMONTHVIEW_H 21#define _KOMONTHVIEW_H
22 22
23#include <qlabel.h> 23#include <qlabel.h>
24#include <qframe.h> 24#include <qframe.h>
25#include <qdatetime.h> 25#include <qdatetime.h>
26#include <qlistbox.h> 26#include <qlistbox.h>
27#include <qpoint.h> 27#include <qpoint.h>
28#include <qwidgetstack.h> 28#include <qwidgetstack.h>
29#include <qlayout.h> 29#include <qlayout.h>
30#include <qintdict.h> 30#include <qintdict.h>
31#include <qpushbutton.h> 31#include <qpushbutton.h>
32#include <qvaluelist.h> 32#include <qvaluelist.h>
33#include <qptrvector.h> 33#include <qptrvector.h>
34 34
35#include <libkcal/calendar.h> 35#include <libkcal/calendar.h>
36#include <libkcal/event.h> 36#include <libkcal/event.h>
37 37
38#include "koeventview.h" 38#include "koeventview.h"
39 39
40#ifdef DESKTOP_VERSION 40#ifdef DESKTOP_VERSION
41class QToolTipGroup; 41class QToolTipGroup;
42#endif 42#endif
43 43
44class KNOWhatsThis; 44class KNOWhatsThis;
45class KOWeekButton : public QPushButton 45class KOWeekButton : public QPushButton
46{ 46{
47 Q_OBJECT 47 Q_OBJECT
48 public: 48 public:
49 KOWeekButton( QWidget *parent=0, const char *name=0 ) : 49 KOWeekButton( QWidget *parent=0, const char *name=0 ) :
50 QPushButton( parent, name) 50 QPushButton( parent, name)
51 { 51 {
52 connect( this, SIGNAL( clicked() ), 52 connect( this, SIGNAL( clicked() ),
53 SLOT( bottonClicked() )); 53 SLOT( bottonClicked() ));
54 mNumber = -1; 54 mNumber = -1;
55 } 55 }
56 void setWeekNum ( int num ) {mNumber = num; setText( QString::number ( num ));} 56 void setWeekNum ( int num ) {mNumber = num; setText( QString::number ( num ));}
57 int getWeekNum() { return mNumber;} 57 int getWeekNum() { return mNumber;}
58 signals: 58 signals:
59 void selectWeekNum ( int ); 59 void selectWeekNum ( int );
60private: 60private:
61 int mNumber; 61 int mNumber;
62private slots : 62private slots :
63 void bottonClicked() { if ( mNumber > 0 ) emit selectWeekNum ( mNumber ); } 63 void bottonClicked() { if ( mNumber > 0 ) emit selectWeekNum ( mNumber ); }
64}; 64};
65 65
66class KNoScrollListBox: public QListBox 66class KNoScrollListBox: public QListBox
67{ 67{
68 Q_OBJECT 68 Q_OBJECT
69 public: 69 public:
70 KNoScrollListBox(QWidget *parent=0, const char *name=0); 70 KNoScrollListBox(QWidget *parent=0, const char *name=0);
71 ~KNoScrollListBox(); 71 ~KNoScrollListBox();
72 QString getWhatsThisText(QPoint p) ; 72 QString getWhatsThisText(QPoint p) ;
73 73
74 signals: 74 signals:
75 void shiftDown(); 75 void shiftDown();
76 void shiftUp(); 76 void shiftUp();
77 void rightClick(); 77 void rightClick();
78 78
79 protected slots: 79 protected slots:
80 void oneDown(); 80 void oneDown();
81 void keyPressEvent(QKeyEvent *); 81 void keyPressEvent(QKeyEvent *);
82 void keyReleaseEvent(QKeyEvent *); 82 void keyReleaseEvent(QKeyEvent *);
83 void mousePressEvent(QMouseEvent *); 83 void mousePressEvent(QMouseEvent *);
84 84
85 private: 85 private:
86 KNOWhatsThis * mWT; 86 KNOWhatsThis * mWT;
87}; 87};
88 88
89 89
90class MonthViewItem: public QListBoxItem 90class MonthViewItem: public QListBoxItem
91{ 91{
92 public: 92 public:
93 MonthViewItem( Incidence *, QDate qd, const QString & title ); 93 MonthViewItem( Incidence *, QDate qd, const QString & title );
94 94
95 void setRecur(bool on) { mRecur = on; } 95 void setRecur(bool on) { mRecur = on; }
96 void setAlarm(bool on) { mAlarm = on; } 96 void setAlarm(bool on) { mAlarm = on; }
97 void setReply(bool on) { mReply = on; } 97 void setReply(bool on) { mReply = on; }
98 void setMoreInfo(bool on) { mInfo = on; } 98 void setMoreInfo(bool on) { mInfo = on; }
99 99
100 100
101 void setPalette(const QPalette &p) { mPalette = p; } 101 void setPalette(const QPalette &p) { mPalette = p; }
102 QPalette palette() const { return mPalette; } 102 QPalette palette() const { return mPalette; }
103 103
104 Incidence *incidence() const { return mIncidence; } 104 Incidence *incidence() const { return mIncidence; }
105 QDate incidenceDate() { return mDate; } 105 QDate incidenceDate() { return mDate; }
106 106
107 protected: 107 protected:
108 virtual void paint(QPainter *); 108 virtual void paint(QPainter *);
109 virtual int height(const QListBox *) const; 109 virtual int height(const QListBox *) const;
110 virtual int width(const QListBox *) const; 110 virtual int width(const QListBox *) const;
111 111
112 private: 112 private:
113 bool mRecur; 113 bool mRecur;
114 bool mAlarm; 114 bool mAlarm;
115 bool mReply; 115 bool mReply;
116 bool mInfo; 116 bool mInfo;
117 117
118 QPalette mPalette; 118 QPalette mPalette;
119 QDate mDate; 119 QDate mDate;
120 120
121 Incidence *mIncidence; 121 Incidence *mIncidence;
122}; 122};
123 123
124 124
125class KOMonthView; 125class KOMonthView;
126 126
127class MonthViewCell : public QWidget 127class MonthViewCell : public QWidget
128{ 128{
129 Q_OBJECT 129 Q_OBJECT
130 public: 130 public:
131 MonthViewCell(KOMonthView *,QWidget* ); 131 MonthViewCell(KOMonthView *,QWidget* );
132 132
133 void setDate( const QDate & ); 133 void setDate( const QDate & );
134 QDate date() const; 134 QDate date() const;
135 135
136 void setPrimary( bool ); 136 void setPrimary( bool );
137 bool isPrimary() const; 137 bool isPrimary() const;
138 138
139 void setHoliday( bool ); 139 void setHoliday( bool );
140 void setHoliday( const QString & ); 140 void setHoliday( const QString & );
141 141
142 void updateCell(); 142 void updateCell();
143 void startUpdateCell(); 143 void startUpdateCell();
144 void finishUpdateCell(); 144 void finishUpdateCell();
145 void insertEvent(Event *); 145 void insertEvent(Event *);
146 void insertTodo(Todo *); 146 void insertTodo(Todo *);
147 147
148 void updateConfig( bool bigFont = false ); 148 void updateConfig( bool bigFont = false );
149 149
150 void enableScrollBars( bool ); 150 void enableScrollBars( bool );
151 151
152 Incidence *selectedIncidence(); 152 Incidence *selectedIncidence();
153 QDate selectedIncidenceDate(); 153 QDate selectedIncidenceDate();
154 154
155 void deselect(); 155 void deselect();
156 void select(); 156 void select();
157 void clear(); 157 void clear();
158 158
159#ifdef DESKTOP_VERSION 159#ifdef DESKTOP_VERSION
160 static QToolTipGroup *toolTipGroup(); 160 static QToolTipGroup *toolTipGroup();
161#endif 161#endif
162 signals: 162 signals:
163 void defaultAction( Incidence * ); 163 void defaultAction( Incidence * );
164 void newEventSignal( QDateTime ); 164 void newEventSignal( QDateTime );
165 void showDaySignal( QDate ); 165 void showDaySignal( QDate );
166 166
167 protected: 167 protected:
168 QString mToolTip; 168 QString mToolTip;
169 void resizeEvent( QResizeEvent * ); 169 void resizeEvent( QResizeEvent * );
170 170
171 protected slots: 171 protected slots:
172 void defaultAction( QListBoxItem * ); 172 void defaultAction( QListBoxItem * );
173 void contextMenu( QListBoxItem * ); 173 void contextMenu( QListBoxItem * );
174 void selection( QListBoxItem * ); 174 void selection( QListBoxItem * );
175 void cellClicked( QListBoxItem * ); 175 void cellClicked( QListBoxItem * );
176 void newEvent(); 176 void newEvent();
177 void showDay(); 177 void showDay();
178 178
179 private: 179 private:
180 KOMonthView *mMonthView; 180 KOMonthView *mMonthView;
181 181
182 QDate mDate; 182 QDate mDate;
183 bool mPrimary; 183 bool mPrimary;
184 bool mHoliday; 184 bool mHoliday;
185 QString mHolidayString; 185 QString mHolidayString;
186 186
187 //QLabel *mLabel; 187 //QLabel *mLabel;
188 QPushButton *mLabel; 188 QPushButton *mLabel;
189 QListBox *mItemList; 189 QListBox *mItemList;
190#ifdef DESKTOP_VERSION 190#ifdef DESKTOP_VERSION
191 static QToolTipGroup *mToolTipGroup; 191 static QToolTipGroup *mToolTipGroup;
192#endif 192#endif
193 QSize mLabelSize; 193 QSize mLabelSize;
194 QSize mLabelBigSize; 194 QSize mLabelBigSize;
195 QPalette mHolidayPalette; 195 QPalette mHolidayPalette;
196 QPalette mStandardPalette; 196 QPalette mStandardPalette;
197 QPalette mPrimaryPalette; 197 QPalette mPrimaryPalette;
198 QPalette mNonPrimaryPalette; 198 QPalette mNonPrimaryPalette;
199 void setMyPalette(); 199 void setMyPalette();
200 QPalette getPalette (); 200 QPalette getPalette ();
201 void keyPressEvent ( QKeyEvent * ) ; 201 void keyPressEvent ( QKeyEvent * ) ;
202 202
203}; 203};
204 204
205 205
206class KOMonthView: public KOEventView 206class KOMonthView: public KOEventView
207{ 207{
208 Q_OBJECT 208 Q_OBJECT
209 public: 209 public:
210 KOMonthView(Calendar *cal, QWidget *parent = 0, const char *name = 0 ); 210 KOMonthView(Calendar *cal, QWidget *parent = 0, const char *name = 0 );
211 ~KOMonthView(); 211 ~KOMonthView();
212 212
213 /** Returns maximum number of days supported by the komonthview */ 213 /** Returns maximum number of days supported by the komonthview */
214 virtual int maxDatesHint(); 214 virtual int maxDatesHint();
215 215
216 /** Returns number of currently shown dates. */ 216 /** Returns number of currently shown dates. */
217 virtual int currentDateCount(); 217 virtual int currentDateCount();
218 218
219 /** returns the currently selected events */ 219 /** returns the currently selected events */
220 virtual QPtrList<Incidence> selectedIncidences(); 220 virtual QPtrList<Incidence> selectedIncidences();
221 221
222 /** returns dates of the currently selected events */ 222 /** returns dates of the currently selected events */
223 virtual DateList selectedDates(); 223 virtual DateList selectedDates();
224 224
225 virtual void printPreview(CalPrinter *calPrinter, 225 virtual void printPreview(CalPrinter *calPrinter,
226 const QDate &, const QDate &); 226 const QDate &, const QDate &);
227 bool isMonthView() { return true; } 227 bool isMonthView() { return true; }
228 bool isUpdatePossible() { return updatePossible; } 228 bool isUpdatePossible() { return updatePossible; }
229 void setIgnoreResizeEvent( int c ) { ignoreResizeEvent = c ;}
229 230
230 MonthViewCell * selectedCell(); 231 MonthViewCell * selectedCell();
231 public slots: 232 public slots:
232 virtual void updateView(); 233 virtual void updateView();
233 virtual void updateConfig(); 234 virtual void updateConfig();
234 virtual void showDates(const QDate &start, const QDate &end); 235 virtual void showDates(const QDate &start, const QDate &end);
235 virtual void showEvents(QPtrList<Event> eventList); 236 virtual void showEvents(QPtrList<Event> eventList);
236 237
237 void changeEventDisplay(Event *, int); 238 void changeEventDisplay(Event *, int);
238 239
239 void clearSelection(); 240 void clearSelection();
240 241
241 void showContextMenu( Incidence * ); 242 void showContextMenu( Incidence * );
242 243
243 void setSelectedCell( MonthViewCell * ); 244 void setSelectedCell( MonthViewCell * );
244 245
245 protected slots: 246 protected slots:
246 void selectInternalWeekNum ( int ); 247 void selectInternalWeekNum ( int );
247 void switchView(); 248 void switchView();
248 void processSelectionChange(); 249 void processSelectionChange();
249 signals: 250 signals:
250 void nextMonth(); 251 void nextMonth();
251 void prevMonth(); 252 void prevMonth();
252 void showNavigator( bool ); 253 void showNavigator( bool );
253 void selectWeekNum ( int ); 254 void selectWeekNum ( int );
254 void showDaySignal( QDate ); 255 void showDaySignal( QDate );
255 protected: 256 protected:
256 void resizeEvent(QResizeEvent *); 257 void resizeEvent(QResizeEvent *);
257 void viewChanged(); 258 void viewChanged();
258 void updateDayLabels(); 259 void updateDayLabels();
259 260
260 private: 261 private:
262 int ignoreResizeEvent;
261 int currentWeek(); 263 int currentWeek();
262 bool clPending; 264 bool clPending;
263 QWidgetStack * mWidStack; 265 QWidgetStack * mWidStack;
264 QWidget* mMonthView; 266 QWidget* mMonthView;
265 QWidget* mWeekView; 267 QWidget* mWeekView;
266 bool mShowWeekView; 268 bool mShowWeekView;
267 bool updatePossible; 269 bool updatePossible;
268 int mDaysPerWeek; 270 int mDaysPerWeek;
269 int mNumWeeks; 271 int mNumWeeks;
270 int mNumCells; 272 int mNumCells;
271 bool mWeekStartsMonday; 273 bool mWeekStartsMonday;
272 bool mShowSatSunComp;
273 void computeLayout(); 274 void computeLayout();
274 void computeLayoutWeek(); 275 void computeLayoutWeek();
275 276
276 QPtrVector<MonthViewCell> mCells; 277 QPtrVector<MonthViewCell> mCells;
277 QPtrVector<QLabel> mDayLabels; 278 QPtrVector<QLabel> mDayLabels;
278 QPtrVector<KOWeekButton> mWeekLabels; 279 QPtrVector<KOWeekButton> mWeekLabels;
279 QPtrVector<MonthViewCell> mCellsW; 280 QPtrVector<MonthViewCell> mCellsW;
280 QPtrVector<QLabel> mDayLabelsW; 281 QPtrVector<QLabel> mDayLabelsW;
281 QPtrVector<KOWeekButton> mWeekLabelsW; 282 QPtrVector<KOWeekButton> mWeekLabelsW;
282 283
283 bool mShortDayLabels; 284 bool mShortDayLabelsM;
285 bool mShortDayLabelsW;
284 int mWidthLongDayLabel; 286 int mWidthLongDayLabel;
285 287
286 QDate mStartDate; 288 QDate mStartDate;
287 289
288 MonthViewCell *mSelectedCell; 290 MonthViewCell *mSelectedCell;
289 291
290 KOEventPopupMenu *mContextMenu; 292 KOEventPopupMenu *mContextMenu;
291 void keyPressEvent ( QKeyEvent * ) ; 293 void keyPressEvent ( QKeyEvent * ) ;
292 294
293}; 295};
294 296
295#endif 297#endif
diff --git a/korganizer/koviewmanager.cpp b/korganizer/koviewmanager.cpp
index a74c5fe..dcb51dc 100644
--- a/korganizer/koviewmanager.cpp
+++ b/korganizer/koviewmanager.cpp
@@ -1,664 +1,665 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 3
4 Copyright (c) 2001 4 Copyright (c) 2001
5 Cornelius Schumacher <schumacher@kde.org> 5 Cornelius Schumacher <schumacher@kde.org>
6 6
7 This program is free software; you can redistribute it and/or modify 7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by 8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or 9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version. 10 (at your option) any later version.
11 11
12 This program is distributed in the hope that it will be useful, 12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
15 GNU General Public License for more details. 15 GNU General Public License for more details.
16 16
17 You should have received a copy of the GNU General Public License 17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software 18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 20
21 As a special exception, permission is given to link this program 21 As a special exception, permission is given to link this program
22 with any edition of Qt, and distribute the resulting executable, 22 with any edition of Qt, and distribute the resulting executable,
23 without including the source code for Qt in the source distribution. 23 without including the source code for Qt in the source distribution.
24*/ 24*/
25 25
26#include <qwidgetstack.h> 26#include <qwidgetstack.h>
27 27
28#include <kconfig.h> 28#include <kconfig.h>
29#include <kglobal.h> 29#include <kglobal.h>
30#ifndef DESKTOP_VERSION 30#ifndef DESKTOP_VERSION
31#include <qpe/qpeapplication.h> 31#include <qpe/qpeapplication.h>
32#else 32#else
33#include <qapplication.h> 33#include <qapplication.h>
34#endif 34#endif
35#include <qdatetime.h> 35#include <qdatetime.h>
36#include "calendarview.h" 36#include "calendarview.h"
37#include "datenavigator.h" 37#include "datenavigator.h"
38#include "kotodoview.h" 38#include "kotodoview.h"
39#include "koagendaview.h" 39#include "koagendaview.h"
40#include "kodialogmanager.h" 40#include "kodialogmanager.h"
41#include "komonthview.h" 41#include "komonthview.h"
42#include "kolistview.h" 42#include "kolistview.h"
43#include "kowhatsnextview.h" 43#include "kowhatsnextview.h"
44#include "kojournalview.h" 44#include "kojournalview.h"
45#include "kotimespanview.h" 45#include "kotimespanview.h"
46#include "koprefs.h" 46#include "koprefs.h"
47#include "navigatorbar.h" 47#include "navigatorbar.h"
48#include "kdatenavigator.h" 48#include "kdatenavigator.h"
49 49
50#include "koviewmanager.h" 50#include "koviewmanager.h"
51//extern bool externFlagMonthviewBlockPainting; 51//extern bool externFlagMonthviewBlockPainting;
52 52
53//bool globalFlagBlockPainting = false; 53//bool globalFlagBlockPainting = false;
54int globalFlagBlockAgenda = 0; 54int globalFlagBlockAgenda = 0;
55int globalFlagBlockLabel = 0; 55int globalFlagBlockLabel = 0;
56int globalFlagBlockAgendaItemPaint = 1; 56int globalFlagBlockAgendaItemPaint = 1;
57int globalFlagBlockAgendaItemUpdate = 1; 57int globalFlagBlockAgendaItemUpdate = 1;
58 58
59 59
60KOViewManager::KOViewManager( CalendarView *mainView ) : 60KOViewManager::KOViewManager( CalendarView *mainView ) :
61 QObject(), mMainView( mainView ) 61 QObject(), mMainView( mainView )
62{ 62{
63 mCurrentView = 0; 63 mCurrentView = 0;
64 64
65 mWhatsNextView = 0; 65 mWhatsNextView = 0;
66 mTodoView = 0; 66 mTodoView = 0;
67 mAgendaView = 0; 67 mAgendaView = 0;
68 mMonthView = 0; 68 mMonthView = 0;
69 mListView = 0; 69 mListView = 0;
70 mJournalView = 0; 70 mJournalView = 0;
71 mTimeSpanView = 0; 71 mTimeSpanView = 0;
72 mCurrentAgendaView = 0 ; 72 mCurrentAgendaView = 0 ;
73 mFlagShowNextxDays = false; 73 mFlagShowNextxDays = false;
74} 74}
75 75
76KOViewManager::~KOViewManager() 76KOViewManager::~KOViewManager()
77{ 77{
78} 78}
79 79
80 80
81KOrg::BaseView *KOViewManager::currentView() 81KOrg::BaseView *KOViewManager::currentView()
82{ 82{
83 return mCurrentView; 83 return mCurrentView;
84} 84}
85 85
86void KOViewManager::readSettings(KConfig *config) 86void KOViewManager::readSettings(KConfig *config)
87{ 87{
88 config->setGroup("General"); 88 config->setGroup("General");
89 QString view = config->readEntry("Current View"); 89 QString view = config->readEntry("Current View");
90 if (view == "WhatsNext") showWhatsNextView(); 90 if (view == "WhatsNext") showWhatsNextView();
91 else if (view == "Month") showMonthView(); 91 else if (view == "Month") showMonthView();
92 else if (view == "List") showListView(); 92 else if (view == "List") showListView();
93 else if (view == "Journal") showJournalView(); 93 else if (view == "Journal") showJournalView();
94 else if (view == "TimeSpan") showTimeSpanView(); 94 else if (view == "TimeSpan") showTimeSpanView();
95 else if (view == "Todo") showTodoView(); 95 else if (view == "Todo") showTodoView();
96 else { 96 else {
97 showAgendaView(); 97 showAgendaView();
98 } 98 }
99} 99}
100 100
101void KOViewManager::showDateView( int view, QDate date) 101void KOViewManager::showDateView( int view, QDate date)
102{ 102{
103 static int lastMode = 0; 103 static int lastMode = 0;
104 static int lastCount = 0; 104 static int lastCount = 0;
105 static bool lastNDMode = false; 105 static bool lastNDMode = false;
106 static QDate lastDate; 106 static QDate lastDate;
107 //qDebug("date %d %s", view, date.toString().latin1()); 107 //qDebug("date %d %s", view, date.toString().latin1());
108 108
109 //qDebug("%d %d ", lastNDMode, mFlagShowNextxDays ); 109 //qDebug("%d %d ", lastNDMode, mFlagShowNextxDays );
110 bool savemFlagShowNextxDays = mFlagShowNextxDays; 110 bool savemFlagShowNextxDays = mFlagShowNextxDays;
111 mFlagShowNextxDays = false; 111 mFlagShowNextxDays = false;
112 if ( view == 3 ) { 112 if ( view == 3 ) {
113 //mCurrentAgendaView = 1 ; 113 //mCurrentAgendaView = 1 ;
114 lastDate = mMainView->dateNavigator()->selectedDates().first(); 114 lastDate = mMainView->dateNavigator()->selectedDates().first();
115 lastCount = mMainView->dateNavigator()->selectedDates().count(); 115 lastCount = mMainView->dateNavigator()->selectedDates().count();
116 lastNDMode = savemFlagShowNextxDays; 116 lastNDMode = savemFlagShowNextxDays;
117 mMainView->showDay( date ); 117 mMainView->showDay( date );
118 } else if (view == 4 ) { 118 } else if (view == 4 ) {
119 mCurrentAgendaView = 7 ; 119 mCurrentAgendaView = 7 ;
120 mMainView->dateNavigator()->selectDates( date, 7 ); 120 mMainView->dateNavigator()->selectDates( date, 7 );
121 } else if (view == 5 ) { 121 } else if (view == 5 ) {
122 mCurrentAgendaView = 14 ; 122 mCurrentAgendaView = 14 ;
123 mMainView->dateNavigator()->selectDates( date, 14); 123 mMainView->dateNavigator()->selectDates( date, 14);
124 } else if (view == 6 ) { 124 } else if (view == 6 ) {
125 mMainView->dateNavigator()->selectDates( date, 7 ); 125 //mMainView->dateNavigator()->selectDates( date, 7 );
126 showMonthView(); 126 showMonthView();
127 } else if (view == 7 ) { 127 } else if (view == 7 ) {
128 mMainView->dateNavigator()->selectDate( date ); 128 mMainView->dateNavigator()->selectDate( date );
129 showJournalView(); 129 showJournalView();
130 } else if (view == 8 ) { 130 } else if (view == 8 ) {
131 globalFlagBlockAgenda = 1; 131 globalFlagBlockAgenda = 1;
132 if ( mCurrentAgendaView != 3 ) 132 if ( mCurrentAgendaView != 3 )
133 mCurrentAgendaView = -1; 133 mCurrentAgendaView = -1;
134 showAgendaView(KOPrefs::instance()->mFullViewMonth); 134 showAgendaView(KOPrefs::instance()->mFullViewMonth);
135 globalFlagBlockAgenda = 2; 135 globalFlagBlockAgenda = 2;
136 mMainView->dateNavigator()->selectDates( date , 136 mMainView->dateNavigator()->selectDates( date ,
137 KOPrefs::instance()->mNextXDays ); 137 KOPrefs::instance()->mNextXDays );
138 mFlagShowNextxDays = true; 138 mFlagShowNextxDays = true;
139 mCurrentAgendaView = 3 ; 139 mCurrentAgendaView = 3 ;
140 } if (view == 9) { // return behaviour, for getting back from mode == 3 (single day mode ) 140 } if (view == 9) { // return behaviour, for getting back from mode == 3 (single day mode )
141 if ( lastMode ) { 141 if ( lastMode ) {
142 mCurrentAgendaView = lastCount ; 142 mCurrentAgendaView = lastCount ;
143 mMainView->dateNavigator()->selectDates( lastDate, lastCount); 143 mMainView->dateNavigator()->selectDates( lastDate, lastCount);
144 mFlagShowNextxDays = lastNDMode; 144 mFlagShowNextxDays = lastNDMode;
145 if ( mFlagShowNextxDays ) { 145 if ( mFlagShowNextxDays ) {
146 mCurrentAgendaView = 3 ; 146 mCurrentAgendaView = 3 ;
147 } 147 }
148 } else 148 } else
149 showWeekView(); 149 showWeekView();
150 } else if (view == 10) { 150 } else if (view == 10) {
151 mMainView->dateNavigator()->selectDates( date,mMainView->dateNavigator()->selectedDates().count() ); 151 mMainView->dateNavigator()->selectDates( date,mMainView->dateNavigator()->selectedDates().count() );
152 } 152 }
153 lastMode = view; 153 lastMode = view;
154} 154}
155 155
156 156
157 157
158void KOViewManager::writeSettings(KConfig *config) 158void KOViewManager::writeSettings(KConfig *config)
159{ 159{
160 config->setGroup("General"); 160 config->setGroup("General");
161 161
162 QString view; 162 QString view;
163 if (mCurrentView == mWhatsNextView) view = "WhatsNext"; 163 if (mCurrentView == mWhatsNextView) view = "WhatsNext";
164 else if (mCurrentView == mMonthView) view = "Month"; 164 else if (mCurrentView == mMonthView) view = "Month";
165 else if (mCurrentView == mListView) view = "List"; 165 else if (mCurrentView == mListView) view = "List";
166 else if (mCurrentView == mJournalView) view = "Journal"; 166 else if (mCurrentView == mJournalView) view = "Journal";
167 else if (mCurrentView == mTimeSpanView) view = "TimeSpan"; 167 else if (mCurrentView == mTimeSpanView) view = "TimeSpan";
168 else if (mCurrentView == mTodoView) view = "Todo"; 168 else if (mCurrentView == mTodoView) view = "Todo";
169 else view = "Agenda"; 169 else view = "Agenda";
170 170
171 config->writeEntry("Current View",view); 171 config->writeEntry("Current View",view);
172 172
173 if (mAgendaView) { 173 if (mAgendaView) {
174 mAgendaView->writeSettings(config); 174 mAgendaView->writeSettings(config);
175 } 175 }
176 if (mTimeSpanView) { 176 if (mTimeSpanView) {
177 mTimeSpanView->writeSettings(config); 177 mTimeSpanView->writeSettings(config);
178 } 178 }
179 if (mListView) { 179 if (mListView) {
180 mListView->writeSettings(config); 180 mListView->writeSettings(config);
181 } 181 }
182 if (mTodoView) { 182 if (mTodoView) {
183 mTodoView->saveLayout(config,"Todo View"); 183 mTodoView->saveLayout(config,"Todo View");
184 } 184 }
185} 185}
186 186
187void KOViewManager::showView(KOrg::BaseView *view, bool fullScreen ) 187void KOViewManager::showView(KOrg::BaseView *view, bool fullScreen )
188{ 188{
189 189
190 //mFlagShowNextxDays = false; 190 //mFlagShowNextxDays = false;
191 //if(view == mCurrentView) return; 191 //if(view == mCurrentView) return;
192 if ( view == 0 ) { 192 if ( view == 0 ) {
193 view = mCurrentView; 193 view = mCurrentView;
194 if ( view == 0 ) 194 if ( view == 0 )
195 return; 195 return;
196 } 196 }
197 bool full = fullScreen; 197 bool full = fullScreen;
198 if(view == mCurrentView && view != mWhatsNextView ) { 198 if(view == mCurrentView && view != mWhatsNextView ) {
199 if ( mCurrentAgendaView < 0 ) 199 if ( mCurrentAgendaView < 0 )
200 return; 200 return;
201 full = mMainView->leftFrame()->isVisible(); 201 full = mMainView->leftFrame()->isVisible();
202 } else { 202 } else {
203 mCurrentView = view; 203 mCurrentView = view;
204 // bool full = fullScreen; 204 // bool full = fullScreen;
205 bool isFull = !mMainView->leftFrame()->isVisible(); 205 bool isFull = !mMainView->leftFrame()->isVisible();
206 if ( isFull && KOPrefs::instance()->mViewChangeHoldFullscreen ) 206 if ( isFull && KOPrefs::instance()->mViewChangeHoldFullscreen )
207 full = true; 207 full = true;
208 if ( !isFull && KOPrefs::instance()->mViewChangeHoldNonFullscreen ) 208 if ( !isFull && KOPrefs::instance()->mViewChangeHoldNonFullscreen )
209 full = false; 209 full = false;
210 } 210 }
211 if ( mAgendaView ) mAgendaView->deleteSelectedDateTime(); 211 if ( mAgendaView ) mAgendaView->deleteSelectedDateTime();
212 //raiseCurrentView( full ); 212 //raiseCurrentView( full );
213 mMainView->processIncidenceSelection( 0 ); 213 mMainView->processIncidenceSelection( 0 );
214 //mMainView->updateView(); 214 //mMainView->updateView();
215 raiseCurrentView( full, true ); 215 raiseCurrentView( full, true );
216 mMainView->adaptNavigationUnits(); 216 mMainView->adaptNavigationUnits();
217} 217}
218 218
219void KOViewManager::raiseCurrentView( bool fullScreen, bool callUpdateView ) 219void KOViewManager::raiseCurrentView( bool fullScreen, bool callUpdateView )
220{ 220{
221 mCurrentAgendaView = 0; 221 mCurrentAgendaView = 0;
222 int wid = mMainView->width() ; 222 int wid = mMainView->width() ;
223 int hei = mMainView->height(); 223 int hei = mMainView->height();
224 if ( mCurrentView == mMonthView ) { 224 if ( mCurrentView == mMonthView ) {
225 if ( true /* !KOPrefs::instance()->mMonthViewWeek*/ ) { 225 if ( true /* !KOPrefs::instance()->mMonthViewWeek*/ ) {
226 mMonthView->setIgnoreResizeEvent( 2 );
226 mMainView->navigatorBar()->show(); 227 mMainView->navigatorBar()->show();
227 hei -= mMainView->navigatorBar()->sizeHint().height(); 228 hei -= mMainView->navigatorBar()->sizeHint().height();
228 } 229 }
229 //mMainView->navigatorBar()->hide(); 230 //mMainView->navigatorBar()->hide();
230 } else { 231 } else {
231 mMainView->navigatorBar()->hide(); 232 mMainView->navigatorBar()->hide();
232 } 233 }
233 if ( fullScreen ) { 234 if ( fullScreen ) {
234 mMainView->leftFrame()->hide(); 235 mMainView->leftFrame()->hide();
235 } else { 236 } else {
236 mMainView->leftFrame()->show(); 237 mMainView->leftFrame()->show();
237 if ( KOPrefs::instance()->mVerticalScreen ) 238 if ( KOPrefs::instance()->mVerticalScreen )
238 hei -= mMainView->leftFrame()->height(); 239 hei -= mMainView->leftFrame()->height();
239 else 240 else
240 wid -= mMainView->leftFrame()->width(); 241 wid -= mMainView->leftFrame()->width();
241 } 242 }
242 emit signalFullScreen( !fullScreen ); 243 emit signalFullScreen( !fullScreen );
243 if ( callUpdateView ) 244 if ( callUpdateView )
244 mMainView->updateView(); 245 mMainView->updateView();
245 246
246 if ( globalFlagBlockAgenda == 5 ) { 247 if ( globalFlagBlockAgenda == 5 ) {
247 globalFlagBlockAgenda = 4; 248 globalFlagBlockAgenda = 4;
248 globalFlagBlockAgendaItemPaint = 1; 249 globalFlagBlockAgendaItemPaint = 1;
249 } 250 }
250 mMainView->viewStack()->raiseWidget(mCurrentView); 251 mMainView->viewStack()->raiseWidget(mCurrentView);
251 if ( globalFlagBlockAgenda == 4 ) { 252 if ( globalFlagBlockAgenda == 4 ) {
252 if ( mCurrentView == mAgendaView ) { 253 if ( mCurrentView == mAgendaView ) {
253 //globalFlagBlockAgenda =1 ; 254 //globalFlagBlockAgenda =1 ;
254 if ( KOPrefs::instance()->mSetTimeToDayStartAt ) 255 if ( KOPrefs::instance()->mSetTimeToDayStartAt )
255 mAgendaView->setStartHour( KOPrefs::instance()->mDayBegins ); 256 mAgendaView->setStartHour( KOPrefs::instance()->mDayBegins );
256 else if ( KOPrefs::instance()->mCenterOnCurrentTime ) 257 else if ( KOPrefs::instance()->mCenterOnCurrentTime )
257 mAgendaView->setStartHour( QTime::currentTime ().hour() ); 258 mAgendaView->setStartHour( QTime::currentTime ().hour() );
258 qApp->processEvents(); 259 qApp->processEvents();
259 //qDebug("qApp->processEvents() "); 260 //qDebug("qApp->processEvents() ");
260 globalFlagBlockAgenda = 0; 261 globalFlagBlockAgenda = 0;
261 mAgendaView->repaintAgenda(); 262 mAgendaView->repaintAgenda();
262 263
263 } 264 }
264 globalFlagBlockAgenda = 0; 265 globalFlagBlockAgenda = 0;
265 } 266 }
266 emit signalAgendaView( mCurrentView == mAgendaView ); 267 emit signalAgendaView( mCurrentView == mAgendaView );
267 //qDebug("raiseCurrentView ende "); 268 //qDebug("raiseCurrentView ende ");
268 269
269} 270}
270 271
271void KOViewManager::updateView() 272void KOViewManager::updateView()
272{ 273{
273 // qDebug("KOViewManager::updateView() "); 274 // qDebug("KOViewManager::updateView() ");
274 // if we are updating mTodoView, we get endless recursion 275 // if we are updating mTodoView, we get endless recursion
275 if ( mTodoView == mCurrentView ) 276 if ( mTodoView == mCurrentView )
276 return; 277 return;
277 if ( mCurrentView ) mCurrentView->updateView(); 278 if ( mCurrentView ) mCurrentView->updateView();
278 279
279} 280}
280 281
281void KOViewManager::updateView(const QDate &start, const QDate &end) 282void KOViewManager::updateView(const QDate &start, const QDate &end)
282{ 283{
283 // kdDebug() << "KOViewManager::updateView()" << endl; 284 // kdDebug() << "KOViewManager::updateView()" << endl;
284 285
285 if (mCurrentView) mCurrentView->showDates(start, end); 286 if (mCurrentView) mCurrentView->showDates(start, end);
286 287
287 if (mTodoView && mTodoView == mCurrentView ) mTodoView->updateView(); 288 if (mTodoView && mTodoView == mCurrentView ) mTodoView->updateView();
288} 289}
289 290
290 291
291void KOViewManager::updateWNview() 292void KOViewManager::updateWNview()
292{ 293{
293 if ( mCurrentView == mWhatsNextView && mWhatsNextView ) 294 if ( mCurrentView == mWhatsNextView && mWhatsNextView )
294 mWhatsNextView->updateView(); 295 mWhatsNextView->updateView();
295 296
296} 297}
297void KOViewManager::showWhatsNextView() 298void KOViewManager::showWhatsNextView()
298{ 299{
299 if (!mWhatsNextView) { 300 if (!mWhatsNextView) {
300 mWhatsNextView = new KOWhatsNextView(mMainView->calendar(),mMainView->viewStack(), 301 mWhatsNextView = new KOWhatsNextView(mMainView->calendar(),mMainView->viewStack(),
301 "KOViewManager::WhatsNextView"); 302 "KOViewManager::WhatsNextView");
302 mWhatsNextView->setEventViewer( mMainView->getEventViewerDialog()); 303 mWhatsNextView->setEventViewer( mMainView->getEventViewerDialog());
303 connect(mMainView, SIGNAL(configChanged()), mWhatsNextView, SLOT(updateConfig())); 304 connect(mMainView, SIGNAL(configChanged()), mWhatsNextView, SLOT(updateConfig()));
304 addView(mWhatsNextView); 305 addView(mWhatsNextView);
305 connect(this, SIGNAL( printWNV() ), 306 connect(this, SIGNAL( printWNV() ),
306 mWhatsNextView, SLOT( printMe() ) ); 307 mWhatsNextView, SLOT( printMe() ) );
307 } 308 }
308 globalFlagBlockAgenda = 1; 309 globalFlagBlockAgenda = 1;
309 showView(mWhatsNextView, true ); 310 showView(mWhatsNextView, true );
310 //mWhatsNextView->updateView(); 311 //mWhatsNextView->updateView();
311 312
312} 313}
313 314
314void KOViewManager::showListView() 315void KOViewManager::showListView()
315{ 316{
316 if (!mListView) { 317 if (!mListView) {
317 mListView = new KOListView(mMainView->calendar(), mMainView->viewStack(), "KOViewManager::ListView"); 318 mListView = new KOListView(mMainView->calendar(), mMainView->viewStack(), "KOViewManager::ListView");
318 addView(mListView); 319 addView(mListView);
319 320
320 connect(mListView, SIGNAL(showIncidenceSignal(Incidence *)), 321 connect(mListView, SIGNAL(showIncidenceSignal(Incidence *)),
321 mMainView, SLOT(showIncidence(Incidence *))); 322 mMainView, SLOT(showIncidence(Incidence *)));
322 connect(mListView, SIGNAL(editIncidenceSignal(Incidence *)), 323 connect(mListView, SIGNAL(editIncidenceSignal(Incidence *)),
323 mMainView, SLOT(editIncidence(Incidence *))); 324 mMainView, SLOT(editIncidence(Incidence *)));
324 connect(mListView, SIGNAL(deleteIncidenceSignal(Incidence *)), 325 connect(mListView, SIGNAL(deleteIncidenceSignal(Incidence *)),
325 mMainView, SLOT(deleteIncidence(Incidence *))); 326 mMainView, SLOT(deleteIncidence(Incidence *)));
326 connect( mListView, SIGNAL( incidenceSelected( Incidence * ) ), 327 connect( mListView, SIGNAL( incidenceSelected( Incidence * ) ),
327 mMainView, SLOT( processMainViewSelection( Incidence * ) ) ); 328 mMainView, SLOT( processMainViewSelection( Incidence * ) ) );
328 connect( mListView, SIGNAL( signalNewEvent() ), 329 connect( mListView, SIGNAL( signalNewEvent() ),
329 mMainView, SLOT( newEvent() ) ); 330 mMainView, SLOT( newEvent() ) );
330 connect(mMainView, SIGNAL(configChanged()), mListView, SLOT(updateConfig())); 331 connect(mMainView, SIGNAL(configChanged()), mListView, SLOT(updateConfig()));
331 connect( mListView, SIGNAL( cloneIncidenceSignal( Incidence * ) ), 332 connect( mListView, SIGNAL( cloneIncidenceSignal( Incidence * ) ),
332 mMainView, SLOT ( cloneIncidence( Incidence * ) ) ); 333 mMainView, SLOT ( cloneIncidence( Incidence * ) ) );
333 connect( mListView, SIGNAL( cancelIncidenceSignal( Incidence * ) ), 334 connect( mListView, SIGNAL( cancelIncidenceSignal( Incidence * ) ),
334 mMainView, SLOT ( cancelIncidence( Incidence * ) ) ); 335 mMainView, SLOT ( cancelIncidence( Incidence * ) ) );
335 connect( mListView, SIGNAL( moveIncidenceSignal( Incidence * ) ), 336 connect( mListView, SIGNAL( moveIncidenceSignal( Incidence * ) ),
336 mMainView, SLOT ( moveIncidence( Incidence * ) ) ); 337 mMainView, SLOT ( moveIncidence( Incidence * ) ) );
337 connect( mListView, SIGNAL( beamIncidenceSignal( Incidence * ) ), 338 connect( mListView, SIGNAL( beamIncidenceSignal( Incidence * ) ),
338 mMainView, SLOT ( beamIncidence( Incidence * ) ) ); 339 mMainView, SLOT ( beamIncidence( Incidence * ) ) );
339 } 340 }
340 // bool temp = mFlagShowNextxDays; 341 // bool temp = mFlagShowNextxDays;
341 //globalFlagBlockPainting = true; 342 //globalFlagBlockPainting = true;
342 globalFlagBlockAgenda = 1; 343 globalFlagBlockAgenda = 1;
343 if ( KOPrefs::instance()->mListViewMonthTimespan ) { 344 if ( KOPrefs::instance()->mListViewMonthTimespan ) {
344 mMainView->setBlockShowDates( true ); 345 mMainView->setBlockShowDates( true );
345 mMainView->dateNavigator()->selectMonth(); 346 mMainView->dateNavigator()->selectMonth();
346 mMainView->setBlockShowDates( false ); 347 mMainView->setBlockShowDates( false );
347 } 348 }
348 showView(mListView, KOPrefs::instance()->mFullViewTodo); 349 showView(mListView, KOPrefs::instance()->mFullViewTodo);
349 //mFlagShowNextxDays = temp; 350 //mFlagShowNextxDays = temp;
350} 351}
351 352
352void KOViewManager::showAgendaView( bool fullScreen ) 353void KOViewManager::showAgendaView( bool fullScreen )
353{ 354{
354 355
355 mMainView->dialogManager()->hideSearchDialog(); 356 mMainView->dialogManager()->hideSearchDialog();
356 // qDebug("KOViewManager::showAgendaView "); 357 // qDebug("KOViewManager::showAgendaView ");
357 bool full; 358 bool full;
358 full = fullScreen; 359 full = fullScreen;
359 if (!mAgendaView) { 360 if (!mAgendaView) {
360 full = false; 361 full = false;
361 mAgendaView = new KOAgendaView(mMainView->calendar(), mMainView->viewStack(), "KOViewManager::AgendaView"); 362 mAgendaView = new KOAgendaView(mMainView->calendar(), mMainView->viewStack(), "KOViewManager::AgendaView");
362 addView(mAgendaView); 363 addView(mAgendaView);
363#ifndef DESKTOP_VERSION 364#ifndef DESKTOP_VERSION
364 QPEApplication::setStylusOperation( mAgendaView, QPEApplication::RightOnHold ); 365 QPEApplication::setStylusOperation( mAgendaView, QPEApplication::RightOnHold );
365#endif 366#endif
366 connect( mAgendaView, SIGNAL( incidenceChanged(Incidence *, int )), 367 connect( mAgendaView, SIGNAL( incidenceChanged(Incidence *, int )),
367 mMainView, SLOT( changeIncidenceDisplay( Incidence *, int ) )); 368 mMainView, SLOT( changeIncidenceDisplay( Incidence *, int ) ));
368 369
369 // SIGNALS/SLOTS FOR DAY/WEEK VIEW 370 // SIGNALS/SLOTS FOR DAY/WEEK VIEW
370 371
371 connect(mAgendaView,SIGNAL(showDateView( int, QDate )),SLOT(showDateView( int, QDate ))); 372 connect(mAgendaView,SIGNAL(showDateView( int, QDate )),SLOT(showDateView( int, QDate )));
372 373
373 connect(mAgendaView,SIGNAL(newTodoSignal(QDateTime,bool)), 374 connect(mAgendaView,SIGNAL(newTodoSignal(QDateTime,bool)),
374 mMainView, SLOT(newTodoDateTime(QDateTime,bool))); 375 mMainView, SLOT(newTodoDateTime(QDateTime,bool)));
375 connect(mAgendaView,SIGNAL(newEventSignal(QDateTime)), 376 connect(mAgendaView,SIGNAL(newEventSignal(QDateTime)),
376 mMainView, SLOT(newEvent(QDateTime))); 377 mMainView, SLOT(newEvent(QDateTime)));
377 connect(mAgendaView,SIGNAL(newEventSignal(QDateTime,QDateTime)), 378 connect(mAgendaView,SIGNAL(newEventSignal(QDateTime,QDateTime)),
378 mMainView, SLOT(newEvent(QDateTime,QDateTime))); 379 mMainView, SLOT(newEvent(QDateTime,QDateTime)));
379 connect(mAgendaView,SIGNAL(newEventSignal(QDate)), 380 connect(mAgendaView,SIGNAL(newEventSignal(QDate)),
380 mMainView, SLOT(newEvent(QDate))); 381 mMainView, SLOT(newEvent(QDate)));
381 382
382 connect(mAgendaView, SIGNAL(editIncidenceSignal(Incidence *)), 383 connect(mAgendaView, SIGNAL(editIncidenceSignal(Incidence *)),
383 mMainView, SLOT(editIncidence(Incidence *))); 384 mMainView, SLOT(editIncidence(Incidence *)));
384 connect(mAgendaView, SIGNAL(showIncidenceSignal(Incidence *)), 385 connect(mAgendaView, SIGNAL(showIncidenceSignal(Incidence *)),
385 mMainView, SLOT(showIncidence(Incidence *))); 386 mMainView, SLOT(showIncidence(Incidence *)));
386 connect(mAgendaView, SIGNAL(deleteIncidenceSignal(Incidence *)), 387 connect(mAgendaView, SIGNAL(deleteIncidenceSignal(Incidence *)),
387 mMainView, SLOT(deleteIncidence(Incidence *))); 388 mMainView, SLOT(deleteIncidence(Incidence *)));
388 389
389 connect( mAgendaView, SIGNAL( incidenceSelected( Incidence * ) ), 390 connect( mAgendaView, SIGNAL( incidenceSelected( Incidence * ) ),
390 mMainView, SLOT( processMainViewSelection( Incidence * ) ) ); 391 mMainView, SLOT( processMainViewSelection( Incidence * ) ) );
391 392
392 connect(mAgendaView, SIGNAL( toggleExpand() ), 393 connect(mAgendaView, SIGNAL( toggleExpand() ),
393 mMainView, SLOT( toggleExpand() ) ); 394 mMainView, SLOT( toggleExpand() ) );
394 395
395 connect(mMainView, SIGNAL( calendarViewExpanded( bool ) ), 396 connect(mMainView, SIGNAL( calendarViewExpanded( bool ) ),
396 mAgendaView, SLOT( setExpandedButton( bool ) ) ); 397 mAgendaView, SLOT( setExpandedButton( bool ) ) );
397 connect( mAgendaView, SIGNAL( cloneIncidenceSignal(Incidence *) ), 398 connect( mAgendaView, SIGNAL( cloneIncidenceSignal(Incidence *) ),
398 mMainView, SLOT(cloneIncidence(Incidence *) ) ) ; 399 mMainView, SLOT(cloneIncidence(Incidence *) ) ) ;
399 connect( mAgendaView, SIGNAL( cancelIncidenceSignal(Incidence *) ), 400 connect( mAgendaView, SIGNAL( cancelIncidenceSignal(Incidence *) ),
400 mMainView, SLOT(cancelIncidence(Incidence *) ) ) ; 401 mMainView, SLOT(cancelIncidence(Incidence *) ) ) ;
401 connect(mMainView, SIGNAL(configChanged()), mAgendaView, SLOT(updateConfig())); 402 connect(mMainView, SIGNAL(configChanged()), mAgendaView, SLOT(updateConfig()));
402 connect( mMainView, SIGNAL( todoModified( Todo *, int )), mAgendaView, 403 connect( mMainView, SIGNAL( todoModified( Todo *, int )), mAgendaView,
403 SLOT( updateTodo( Todo *, int ) ) ); 404 SLOT( updateTodo( Todo *, int ) ) );
404 connect( mAgendaView,SIGNAL( todoMoved( Todo *, int )), 405 connect( mAgendaView,SIGNAL( todoMoved( Todo *, int )),
405 mMainView, SIGNAL( todoModified( Todo *, int ))); 406 mMainView, SIGNAL( todoModified( Todo *, int )));
406 connect( mAgendaView, SIGNAL( moveIncidenceSignal( Incidence * ) ), 407 connect( mAgendaView, SIGNAL( moveIncidenceSignal( Incidence * ) ),
407 mMainView, SLOT ( moveIncidence( Incidence * ) ) ); 408 mMainView, SLOT ( moveIncidence( Incidence * ) ) );
408 connect( mAgendaView, SIGNAL( beamIncidenceSignal( Incidence * ) ), 409 connect( mAgendaView, SIGNAL( beamIncidenceSignal( Incidence * ) ),
409 mMainView, SLOT ( beamIncidence( Incidence * ) ) ); 410 mMainView, SLOT ( beamIncidence( Incidence * ) ) );
410 connect( mAgendaView, SIGNAL( selectWeekNum( int ) ), 411 connect( mAgendaView, SIGNAL( selectWeekNum( int ) ),
411 mMainView->dateNavigator(), SLOT ( selectWeek( int ) ) ); 412 mMainView->dateNavigator(), SLOT ( selectWeek( int ) ) );
412 mAgendaView->readSettings(); 413 mAgendaView->readSettings();
413 mAgendaView->updateConfig(); 414 mAgendaView->updateConfig();
414 } 415 }
415 416
416 showView( mAgendaView, full); 417 showView( mAgendaView, full);
417 418
418} 419}
419 420
420void KOViewManager::showDayView() 421void KOViewManager::showDayView()
421{ 422{
422 mFlagShowNextxDays = false; 423 mFlagShowNextxDays = false;
423 globalFlagBlockLabel = 1; 424 globalFlagBlockLabel = 1;
424 globalFlagBlockAgenda = 1; 425 globalFlagBlockAgenda = 1;
425 if ( mCurrentAgendaView != 1 ) 426 if ( mCurrentAgendaView != 1 )
426 mCurrentAgendaView = -1; 427 mCurrentAgendaView = -1;
427 showAgendaView(); 428 showAgendaView();
428 qApp->processEvents(); 429 qApp->processEvents();
429 globalFlagBlockAgenda = 2; 430 globalFlagBlockAgenda = 2;
430 globalFlagBlockLabel = 0; 431 globalFlagBlockLabel = 0;
431 mMainView->dateNavigator()->selectDates( 1 ); 432 mMainView->dateNavigator()->selectDates( 1 );
432 mCurrentAgendaView = 1 ; 433 mCurrentAgendaView = 1 ;
433 434
434} 435}
435 436
436void KOViewManager::showWorkWeekView() 437void KOViewManager::showWorkWeekView()
437{ 438{
438 mFlagShowNextxDays = false; 439 mFlagShowNextxDays = false;
439 globalFlagBlockAgenda = 1; 440 globalFlagBlockAgenda = 1;
440 globalFlagBlockLabel = 1; 441 globalFlagBlockLabel = 1;
441 if ( mCurrentAgendaView != 5 ) 442 if ( mCurrentAgendaView != 5 )
442 mCurrentAgendaView = -1; 443 mCurrentAgendaView = -1;
443 showAgendaView(); 444 showAgendaView();
444 qApp->processEvents(); 445 qApp->processEvents();
445 globalFlagBlockAgenda = 2; 446 globalFlagBlockAgenda = 2;
446 globalFlagBlockLabel = 0; 447 globalFlagBlockLabel = 0;
447 mMainView->dateNavigator()->selectWorkWeek(); 448 mMainView->dateNavigator()->selectWorkWeek();
448 mCurrentAgendaView = 5 ; 449 mCurrentAgendaView = 5 ;
449 450
450} 451}
451 452
452void KOViewManager::showWeekView() 453void KOViewManager::showWeekView()
453{ 454{
454 /* 455 /*
455 globalFlagBlockAgenda = 2; 456 globalFlagBlockAgenda = 2;
456 qDebug("4globalFlagBlockAgenda = 2; "); 457 qDebug("4globalFlagBlockAgenda = 2; ");
457 //globalFlagBlockPainting = true; 458 //globalFlagBlockPainting = true;
458 mMainView->dateNavigator()->selectWeek(); 459 mMainView->dateNavigator()->selectWeek();
459 showAgendaView(); 460 showAgendaView();
460 */ 461 */
461 462
462 463
463 mFlagShowNextxDays = false; 464 mFlagShowNextxDays = false;
464 globalFlagBlockAgenda = 1; 465 globalFlagBlockAgenda = 1;
465 globalFlagBlockLabel = 1; 466 globalFlagBlockLabel = 1;
466 if ( mCurrentAgendaView != 7 ) 467 if ( mCurrentAgendaView != 7 )
467 mCurrentAgendaView = -1; 468 mCurrentAgendaView = -1;
468 showAgendaView(); 469 showAgendaView();
469 qApp->processEvents(); 470 qApp->processEvents();
470 globalFlagBlockAgenda = 2; 471 globalFlagBlockAgenda = 2;
471 globalFlagBlockLabel = 0; 472 globalFlagBlockLabel = 0;
472 mMainView->dateNavigator()->selectWeek(); 473 mMainView->dateNavigator()->selectWeek();
473 mCurrentAgendaView = 7 ; 474 mCurrentAgendaView = 7 ;
474} 475}
475 476
476void KOViewManager::showNextXView() 477void KOViewManager::showNextXView()
477{ 478{
478 479
479 globalFlagBlockAgenda = 1; 480 globalFlagBlockAgenda = 1;
480 if ( mCurrentAgendaView != 3 ) 481 if ( mCurrentAgendaView != 3 )
481 mCurrentAgendaView = -1; 482 mCurrentAgendaView = -1;
482 showAgendaView(KOPrefs::instance()->mFullViewMonth); 483 showAgendaView(KOPrefs::instance()->mFullViewMonth);
483 globalFlagBlockAgenda = 2; 484 globalFlagBlockAgenda = 2;
484 mMainView->dateNavigator()->selectDates( QDate::currentDate(), 485 mMainView->dateNavigator()->selectDates( QDate::currentDate(),
485 KOPrefs::instance()->mNextXDays ); 486 KOPrefs::instance()->mNextXDays );
486 mFlagShowNextxDays = true; 487 mFlagShowNextxDays = true;
487 mCurrentAgendaView = 3 ; 488 mCurrentAgendaView = 3 ;
488} 489}
489bool KOViewManager::showsNextDays() 490bool KOViewManager::showsNextDays()
490{ 491{
491 return mFlagShowNextxDays; 492 return mFlagShowNextxDays;
492} 493}
493void KOViewManager::showMonthView() 494void KOViewManager::showMonthView()
494{ 495 {
495 if (!mMonthView) { 496 if (!mMonthView) {
496 mMonthView = new KOMonthView(mMainView->calendar(), mMainView->viewStack(), "KOViewManager::MonthView"); 497 mMonthView = new KOMonthView(mMainView->calendar(), mMainView->viewStack(), "KOViewManager::MonthView");
497 498
498 addView(mMonthView); 499 addView(mMonthView);
499 // mMonthView->show(); 500 // mMonthView->show();
500 // SIGNALS/SLOTS FOR MONTH VIEW 501 // SIGNALS/SLOTS FOR MONTH VIEW
501 connect(mMonthView, SIGNAL(newEventSignal(QDateTime)), 502 connect(mMonthView, SIGNAL(newEventSignal(QDateTime)),
502 mMainView, SLOT(newEvent(QDateTime))); 503 mMainView, SLOT(newEvent(QDateTime)));
503 504
504 connect(mMonthView, SIGNAL(showIncidenceSignal(Incidence *)), 505 connect(mMonthView, SIGNAL(showIncidenceSignal(Incidence *)),
505 mMainView, SLOT(showIncidence(Incidence *))); 506 mMainView, SLOT(showIncidence(Incidence *)));
506 connect(mMonthView, SIGNAL(editIncidenceSignal(Incidence *)), 507 connect(mMonthView, SIGNAL(editIncidenceSignal(Incidence *)),
507 mMainView, SLOT(editIncidence(Incidence *))); 508 mMainView, SLOT(editIncidence(Incidence *)));
508 connect(mMonthView, SIGNAL(deleteIncidenceSignal(Incidence *)), 509 connect(mMonthView, SIGNAL(deleteIncidenceSignal(Incidence *)),
509 mMainView, SLOT(deleteIncidence(Incidence *))); 510 mMainView, SLOT(deleteIncidence(Incidence *)));
510 511
511 connect( mMonthView, SIGNAL( incidenceSelected( Incidence * ) ), 512 connect( mMonthView, SIGNAL( incidenceSelected( Incidence * ) ),
512 mMainView, SLOT( processMainViewSelection( Incidence * ) ) ); 513 mMainView, SLOT( processMainViewSelection( Incidence * ) ) );
513 connect( mMonthView, SIGNAL( cloneIncidenceSignal( Incidence * ) ), 514 connect( mMonthView, SIGNAL( cloneIncidenceSignal( Incidence * ) ),
514 mMainView, SLOT ( cloneIncidence( Incidence * ) ) ); 515 mMainView, SLOT ( cloneIncidence( Incidence * ) ) );
515 connect( mMonthView, SIGNAL( cancelIncidenceSignal( Incidence * ) ), 516 connect( mMonthView, SIGNAL( cancelIncidenceSignal( Incidence * ) ),
516 mMainView, SLOT ( cancelIncidence( Incidence * ) ) ); 517 mMainView, SLOT ( cancelIncidence( Incidence * ) ) );
517 518
518 connect( mMonthView, SIGNAL( moveIncidenceSignal( Incidence * ) ), 519 connect( mMonthView, SIGNAL( moveIncidenceSignal( Incidence * ) ),
519 mMainView, SLOT ( moveIncidence( Incidence * ) ) ); 520 mMainView, SLOT ( moveIncidence( Incidence * ) ) );
520 connect( mMonthView, SIGNAL( beamIncidenceSignal( Incidence * ) ), 521 connect( mMonthView, SIGNAL( beamIncidenceSignal( Incidence * ) ),
521 mMainView, SLOT ( beamIncidence( Incidence * ) ) ); 522 mMainView, SLOT ( beamIncidence( Incidence * ) ) );
522 connect( mMonthView, SIGNAL( selectWeekNum( int ) ), 523 connect( mMonthView, SIGNAL( selectWeekNum( int ) ),
523 mMainView->dateNavigator(), SLOT ( selectWeek( int ) ) ); 524 mMainView->dateNavigator(), SLOT ( selectWeek( int ) ) );
524 connect( mMonthView, SIGNAL( showDaySignal( QDate ) ), 525 connect( mMonthView, SIGNAL( showDaySignal( QDate ) ),
525 mMainView, SLOT ( showDay( QDate ) ) ); 526 mMainView, SLOT ( showDay( QDate ) ) );
526 connect(mMainView, SIGNAL(configChanged()), mMonthView, SLOT(updateConfig())); 527 connect(mMainView, SIGNAL(configChanged()), mMonthView, SLOT(updateConfig()));
527 connect( mMonthView, SIGNAL(nextMonth() ), 528 connect( mMonthView, SIGNAL(nextMonth() ),
528 mMainView->navigatorBar(), SIGNAL(goNextMonth() ) ); 529 mMainView->navigatorBar(), SIGNAL(goNextMonth() ) );
529 connect( mMonthView, SIGNAL(prevMonth() ), 530 connect( mMonthView, SIGNAL(prevMonth() ),
530 mMainView->navigatorBar(), SIGNAL(goPrevMonth() ) ); 531 mMainView->navigatorBar(), SIGNAL(goPrevMonth() ) );
531 connect( mMonthView, SIGNAL( showNavigator(bool) ), 532 connect( mMonthView, SIGNAL( showNavigator(bool) ),
532 mMainView, SLOT ( showNavigatorBar(bool) ) ); 533 mMainView, SLOT ( showNavigatorBar(bool) ) );
533 } 534 }
534 535
535 globalFlagBlockAgenda = 1; 536 globalFlagBlockAgenda = 1;
536 //mFlagShowNextxDays = false; 537 //mFlagShowNextxDays = false;
537 // if(mMonthView == mCurrentView) return; 538 // if(mMonthView == mCurrentView) return;
538 if ( KOPrefs::instance()->mMonthViewWeek ) 539 if ( KOPrefs::instance()->mMonthViewWeek )
539 mMainView->dateNavigator()->selectWeek(); 540 mMainView->dateNavigator()->selectWeek();
540 else 541 else
541 mMainView->dateNavigator()->selectMonth(); 542 mMainView->dateNavigator()->selectMonth();
542 543
543 showView(mMonthView, true ); 544 showView(mMonthView, true );
544 545
545} 546}
546 547
547void KOViewManager::showTodoView() 548void KOViewManager::showTodoView()
548{ 549{
549 //mFlagShowNextxDays = false; 550 //mFlagShowNextxDays = false;
550 if ( !mTodoView ) { 551 if ( !mTodoView ) {
551 mTodoView = new KOTodoView( mMainView->calendar(), mMainView->viewStack(), 552 mTodoView = new KOTodoView( mMainView->calendar(), mMainView->viewStack(),
552 "KOViewManager::TodoView" ); 553 "KOViewManager::TodoView" );
553 554
554 addView( mTodoView ); 555 addView( mTodoView );
555 // QPEApplication::setStylusOperation( mTodoView, QPEApplication::RightOnHold ); 556 // QPEApplication::setStylusOperation( mTodoView, QPEApplication::RightOnHold );
556 557
557 // SIGNALS/SLOTS FOR TODO VIEW 558 // SIGNALS/SLOTS FOR TODO VIEW
558 connect( mTodoView, SIGNAL( newTodoSignal() ), 559 connect( mTodoView, SIGNAL( newTodoSignal() ),
559 mMainView, SLOT( newTodo() ) ); 560 mMainView, SLOT( newTodo() ) );
560 connect( mTodoView, SIGNAL( newSubTodoSignal( Todo * ) ), 561 connect( mTodoView, SIGNAL( newSubTodoSignal( Todo * ) ),
561 mMainView, SLOT( newSubTodo( Todo *) ) ); 562 mMainView, SLOT( newSubTodo( Todo *) ) );
562 connect( mTodoView, SIGNAL( showTodoSignal( Todo *) ), 563 connect( mTodoView, SIGNAL( showTodoSignal( Todo *) ),
563 mMainView, SLOT( showTodo( Todo * ) ) ); 564 mMainView, SLOT( showTodo( Todo * ) ) );
564 connect( mTodoView, SIGNAL( editTodoSignal( Todo * ) ), 565 connect( mTodoView, SIGNAL( editTodoSignal( Todo * ) ),
565 mMainView, SLOT( editTodo( Todo * ) ) ); 566 mMainView, SLOT( editTodo( Todo * ) ) );
566 connect( mTodoView, SIGNAL( deleteTodoSignal( Todo * ) ), 567 connect( mTodoView, SIGNAL( deleteTodoSignal( Todo * ) ),
567 mMainView, SLOT( deleteTodo( Todo * ) ) ); 568 mMainView, SLOT( deleteTodo( Todo * ) ) );
568 connect( mTodoView, SIGNAL( purgeCompletedSignal() ), 569 connect( mTodoView, SIGNAL( purgeCompletedSignal() ),
569 mMainView, SLOT( purgeCompleted() ) ); 570 mMainView, SLOT( purgeCompleted() ) );
570 571
571 connect( mTodoView, SIGNAL( incidenceSelected( Incidence * ) ), 572 connect( mTodoView, SIGNAL( incidenceSelected( Incidence * ) ),
572 mMainView, SLOT( processMainViewSelection( Incidence * ) ) ); 573 mMainView, SLOT( processMainViewSelection( Incidence * ) ) );
573 574
574 connect( mMainView, SIGNAL( configChanged() ), mTodoView, 575 connect( mMainView, SIGNAL( configChanged() ), mTodoView,
575 SLOT( updateConfig() ) ); 576 SLOT( updateConfig() ) );
576 connect( mMainView, SIGNAL( todoModified( Todo *, int )), mTodoView, 577 connect( mMainView, SIGNAL( todoModified( Todo *, int )), mTodoView,
577 SLOT( updateTodo( Todo *, int ) ) ); 578 SLOT( updateTodo( Todo *, int ) ) );
578 connect( mTodoView, SIGNAL( todoModifiedSignal( Todo *, int ) ), 579 connect( mTodoView, SIGNAL( todoModifiedSignal( Todo *, int ) ),
579 mMainView, SIGNAL ( todoModified( Todo *, int ) ) ); 580 mMainView, SIGNAL ( todoModified( Todo *, int ) ) );
580 connect( mTodoView, SIGNAL( cloneTodoSignal( Incidence * ) ), 581 connect( mTodoView, SIGNAL( cloneTodoSignal( Incidence * ) ),
581 mMainView, SLOT ( cloneIncidence( Incidence * ) ) ); 582 mMainView, SLOT ( cloneIncidence( Incidence * ) ) );
582 connect( mTodoView, SIGNAL( cancelTodoSignal( Incidence * ) ), 583 connect( mTodoView, SIGNAL( cancelTodoSignal( Incidence * ) ),
583 mMainView, SLOT ( cancelIncidence( Incidence * ) ) ); 584 mMainView, SLOT ( cancelIncidence( Incidence * ) ) );
584 connect( mTodoView, SIGNAL( unparentTodoSignal( Todo * ) ), 585 connect( mTodoView, SIGNAL( unparentTodoSignal( Todo * ) ),
585 mMainView, SLOT ( todo_unsub( Todo * ) ) ); 586 mMainView, SLOT ( todo_unsub( Todo * ) ) );
586 connect( mTodoView, SIGNAL( reparentTodoSignal( Todo *,Todo * ) ), 587 connect( mTodoView, SIGNAL( reparentTodoSignal( Todo *,Todo * ) ),
587 mMainView, SLOT ( todo_resub( Todo *, Todo *) ) ); 588 mMainView, SLOT ( todo_resub( Todo *, Todo *) ) );
588 connect( mTodoView, SIGNAL( moveTodoSignal( Incidence * ) ), 589 connect( mTodoView, SIGNAL( moveTodoSignal( Incidence * ) ),
589 mMainView, SLOT ( moveIncidence( Incidence * ) ) ); 590 mMainView, SLOT ( moveIncidence( Incidence * ) ) );
590 connect( mTodoView, SIGNAL( beamTodoSignal( Incidence * ) ), 591 connect( mTodoView, SIGNAL( beamTodoSignal( Incidence * ) ),
591 mMainView, SLOT ( beamIncidence( Incidence * ) ) ); 592 mMainView, SLOT ( beamIncidence( Incidence * ) ) );
592 KConfig *config = KOGlobals::config(); 593 KConfig *config = KOGlobals::config();
593 mTodoView->restoreLayout(config,"Todo View"); 594 mTodoView->restoreLayout(config,"Todo View");
594 mTodoView->setNavigator( mMainView->dateNavigator() ); 595 mTodoView->setNavigator( mMainView->dateNavigator() );
595 } 596 }
596 597
597 globalFlagBlockAgenda = 1; 598 globalFlagBlockAgenda = 1;
598 showView( mTodoView, true ); 599 showView( mTodoView, true );
599 600
600} 601}
601 602
602void KOViewManager::showJournalView() 603void KOViewManager::showJournalView()
603{ 604{
604 //mFlagShowNextxDays = false; 605 //mFlagShowNextxDays = false;
605 if (!mJournalView) { 606 if (!mJournalView) {
606 mJournalView = new KOJournalView(mMainView->calendar(),mMainView->viewStack(), 607 mJournalView = new KOJournalView(mMainView->calendar(),mMainView->viewStack(),
607 "KOViewManager::JournalView"); 608 "KOViewManager::JournalView");
608 connect( mMainView, SIGNAL( configChanged() ), mJournalView, 609 connect( mMainView, SIGNAL( configChanged() ), mJournalView,
609 SLOT( updateConfig() ) ); 610 SLOT( updateConfig() ) );
610 connect(mJournalView, SIGNAL(deleteJournal(Journal *) ), mMainView,SLOT(deleteJournal(Journal *)) ); 611 connect(mJournalView, SIGNAL(deleteJournal(Journal *) ), mMainView,SLOT(deleteJournal(Journal *)) );
611 addView(mJournalView); 612 addView(mJournalView);
612 } 613 }
613 614
614 showView(mJournalView); 615 showView(mJournalView);
615 mMainView->dateNavigator()->selectDates( 1 ); 616 mMainView->dateNavigator()->selectDates( 1 );
616} 617}
617 618
618void KOViewManager::showTimeSpanView() 619void KOViewManager::showTimeSpanView()
619{ 620{
620 //mFlagShowNextxDays = false; 621 //mFlagShowNextxDays = false;
621 if (!mTimeSpanView) { 622 if (!mTimeSpanView) {
622 mTimeSpanView = new KOTimeSpanView(mMainView->calendar(),mMainView->viewStack(), 623 mTimeSpanView = new KOTimeSpanView(mMainView->calendar(),mMainView->viewStack(),
623 "KOViewManager::TimeSpanView"); 624 "KOViewManager::TimeSpanView");
624 addView(mTimeSpanView); 625 addView(mTimeSpanView);
625 626
626 mTimeSpanView->readSettings(); 627 mTimeSpanView->readSettings();
627 } 628 }
628 629
629 showView(mTimeSpanView); 630 showView(mTimeSpanView);
630} 631}
631 632
632Incidence *KOViewManager::currentSelection() 633Incidence *KOViewManager::currentSelection()
633{ 634{
634 if (!mCurrentView) return 0; 635 if (!mCurrentView) return 0;
635 if ( mCurrentView == mListView ) { 636 if ( mCurrentView == mListView ) {
636 if ( mListView->currentItem() ) 637 if ( mListView->currentItem() )
637 return mListView->currentItem(); 638 return mListView->currentItem();
638 } 639 }
639 return mCurrentView->selectedIncidences().first(); 640 return mCurrentView->selectedIncidences().first();
640} 641}
641 642
642QDate KOViewManager::currentSelectionDate() 643QDate KOViewManager::currentSelectionDate()
643{ 644{
644 QDate qd; 645 QDate qd;
645 if (mCurrentView) { 646 if (mCurrentView) {
646 DateList qvl = mCurrentView->selectedDates(); 647 DateList qvl = mCurrentView->selectedDates();
647 if (!qvl.isEmpty()) qd = qvl.first(); 648 if (!qvl.isEmpty()) qd = qvl.first();
648 } 649 }
649 return qd; 650 return qd;
650} 651}
651 652
652void KOViewManager::addView(KOrg::BaseView *view) 653void KOViewManager::addView(KOrg::BaseView *view)
653{ 654{
654#if QT_VERSION >= 0x030000 655#if QT_VERSION >= 0x030000
655 mMainView->viewStack()->addWidget( view ); 656 mMainView->viewStack()->addWidget( view );
656#else 657#else
657 mMainView->viewStack()->addWidget( view, 1 ); 658 mMainView->viewStack()->addWidget( view, 1 );
658#endif 659#endif
659} 660}
660 661
661void KOViewManager::setDocumentId( const QString &id ) 662void KOViewManager::setDocumentId( const QString &id )
662{ 663{
663 if (mTodoView) mTodoView->setDocumentId( id ); 664 if (mTodoView) mTodoView->setDocumentId( id );
664} 665}