summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/kodaymatrix.cpp87
-rw-r--r--korganizer/kodaymatrix.h1
-rw-r--r--korganizer/komonthview.cpp3
-rw-r--r--korganizer/koprefsdialog.cpp13
-rw-r--r--korganizer/koviewmanager.cpp9
-rw-r--r--korganizer/mainwindow.cpp13
-rw-r--r--korganizer/mainwindow.h2
7 files changed, 92 insertions, 36 deletions
diff --git a/korganizer/kodaymatrix.cpp b/korganizer/kodaymatrix.cpp
index 17a1d13..df606d0 100644
--- a/korganizer/kodaymatrix.cpp
+++ b/korganizer/kodaymatrix.cpp
@@ -1,1129 +1,1166 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2001 Eitzenberger Thomas <thomas.eitzenberger@siemens.at> 3 Copyright (c) 2001 Eitzenberger Thomas <thomas.eitzenberger@siemens.at>
4 Parts of the source code have been copied from kdpdatebutton.cpp 4 Parts of the source code have been copied from kdpdatebutton.cpp
5 5
6 This program is free software; you can redistribute it and/or modify 6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or 8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version. 9 (at your option) any later version.
10 10
11 This program is distributed in the hope that it will be useful, 11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details. 14 GNU General Public License for more details.
15 15
16 You should have received a copy of the GNU General Public License 16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software 17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19 19
20 As a special exception, permission is given to link this program 20 As a special exception, permission is given to link this program
21 with any edition of Qt, and distribute the resulting executable, 21 with any edition of Qt, and distribute the resulting executable,
22 without including the source ode for Qt in the source distribution. 22 without including the source ode for Qt in the source distribution.
23*/ 23*/
24 24
25#include <qevent.h> 25#include <qevent.h>
26#include <qpainter.h> 26#include <qpainter.h>
27#include <qptrlist.h> 27#include <qptrlist.h>
28#include <qtimer.h> 28#include <qtimer.h>
29#include <qwhatsthis.h> 29#include <qwhatsthis.h>
30 30
31#include <kglobal.h> 31#include <kglobal.h>
32#include <kdebug.h> 32#include <kdebug.h>
33#include <klocale.h> 33#include <klocale.h>
34 34
35#include <libkcal/vcaldrag.h> 35#include <libkcal/vcaldrag.h>
36#include <libkcal/icaldrag.h> 36#include <libkcal/icaldrag.h>
37#include <libkcal/dndfactory.h> 37#include <libkcal/dndfactory.h>
38#include <libkcal/calendarresources.h> 38#include <libkcal/calendarresources.h>
39#include <libkcal/resourcecalendar.h> 39#include <libkcal/resourcecalendar.h>
40#include <kresources/resourceselectdialog.h> 40#include <kresources/resourceselectdialog.h>
41 41
42#include <kcalendarsystem.h> 42#include <kcalendarsystem.h>
43 43
44#ifndef KORG_NOPLUGINS 44#ifndef KORG_NOPLUGINS
45#include "kocore.h" 45#include "kocore.h"
46#endif 46#endif
47#include "koprefs.h" 47#include "koprefs.h"
48#include "koglobals.h" 48#include "koglobals.h"
49 49
50#include "kodaymatrix.h" 50#include "kodaymatrix.h"
51 51
52// ============================================================================ 52// ============================================================================
53// D Y N A M I C T I P 53// D Y N A M I C T I P
54// ============================================================================ 54// ============================================================================
55 55
56DynamicTip::DynamicTip( QWidget * parent ) 56DynamicTip::DynamicTip( QWidget * parent )
57 : QToolTip( parent ) 57 : QToolTip( parent )
58{ 58{
59 matrix = (KODayMatrix*)parent; 59 matrix = (KODayMatrix*)parent;
60} 60}
61 61
62class KODaymatrixWhatsThis :public QWhatsThis 62class KODaymatrixWhatsThis :public QWhatsThis
63{ 63{
64public: 64public:
65 KODaymatrixWhatsThis( KODayMatrix* view ) : QWhatsThis( view ),_view (view) { ;}; 65 KODaymatrixWhatsThis( KODayMatrix* view ) : QWhatsThis( view ),_view (view) { ;};
66 ~KODaymatrixWhatsThis() { ; }; 66 ~KODaymatrixWhatsThis() { ; };
67 67
68protected: 68protected:
69 virtual QString text( const QPoint& p ) 69 virtual QString text( const QPoint& p )
70 { 70 {
71 return _view->getWhatsThisText( p ) ; 71 return _view->getWhatsThisText( p ) ;
72 } 72 }
73private: 73private:
74 KODayMatrix * _view; 74 KODayMatrix * _view;
75}; 75};
76 76
77void DynamicTip::maybeTip( const QPoint &pos ) 77void DynamicTip::maybeTip( const QPoint &pos )
78{ 78{
79 //calculate which cell of the matrix the mouse is in 79 //calculate which cell of the matrix the mouse is in
80 QRect sz = matrix->frameRect(); 80 QRect sz = matrix->frameRect();
81 int dheight = sz.height()*7 / 42; 81 int dheight = sz.height()*7 / 42;
82 int dwidth = sz.width() / 7; 82 int dwidth = sz.width() / 7;
83 int row = pos.y()/dheight; 83 int row = pos.y()/dheight;
84 int col = pos.x()/dwidth; 84 int col = pos.x()/dwidth;
85 85
86 QRect rct(col*dwidth, row*dheight, dwidth, dheight); 86 QRect rct(col*dwidth, row*dheight, dwidth, dheight);
87 87
88// kdDebug() << "DynamicTip::maybeTip matrix cell index [" << 88// kdDebug() << "DynamicTip::maybeTip matrix cell index [" <<
89// col << "][" << row << "] => " <<(col+row*7) << endl; 89// col << "][" << row << "] => " <<(col+row*7) << endl;
90 90
91 //show holiday names only 91 //show holiday names only
92 QString str = matrix->getHolidayLabel(col+row*7); 92 QString str = matrix->getHolidayLabel(col+row*7);
93 if (str.isEmpty()) return; 93 if (str.isEmpty()) return;
94 tip(rct, str); 94 tip(rct, str);
95} 95}
96 96
97 97
98// ============================================================================ 98// ============================================================================
99// K O D A Y M A T R I X 99// K O D A Y M A T R I X
100// ============================================================================ 100// ============================================================================
101 101
102const int KODayMatrix::NOSELECTION = -1000; 102const int KODayMatrix::NOSELECTION = -1000;
103const int KODayMatrix::NUMDAYS = 42; 103const int KODayMatrix::NUMDAYS = 42;
104 104
105KODayMatrix::KODayMatrix( QWidget *parent, const char *name ) 105KODayMatrix::KODayMatrix( QWidget *parent, const char *name )
106 : QFrame( parent, name , Qt::WRepaintNoErase ), mCalendar( 0 ) 106 : QFrame( parent, name , Qt::WRepaintNoErase ), mCalendar( 0 )
107 107
108#if 0 108#if 0
109KODayMatrix::KODayMatrix(QWidget *parent, Calendar* calendar, QDate date, const char *name) : 109KODayMatrix::KODayMatrix(QWidget *parent, Calendar* calendar, QDate date, const char *name) :
110 QFrame(parent, name) 110 QFrame(parent, name)
111#endif 111#endif
112{ 112{
113 oldW = 0; 113 oldW = 0;
114 oldH = 0; 114 oldH = 0;
115 myPix.resize( 150, 120 ); 115 myPix.resize( 150, 120 );
116 mRedrawNeeded = true; 116 mRedrawNeeded = true;
117 mKODaymatrixWhatsThis = new KODaymatrixWhatsThis(this); 117 mKODaymatrixWhatsThis = new KODaymatrixWhatsThis(this);
118 mPendingUpdateBeforeRepaint = false; 118 mPendingUpdateBeforeRepaint = false;
119 mouseDown = false; 119 mouseDown = false;
120 // initialize dynamic arrays 120 // initialize dynamic arrays
121 bDays.resize ( NUMDAYS ); 121 bDays.resize ( NUMDAYS );
122 pDays.resize ( NUMDAYS ); 122 pDays.resize ( NUMDAYS );
123 hDays.resize ( NUMDAYS ); 123 hDays.resize ( NUMDAYS );
124 eDays.resize ( NUMDAYS ); 124 eDays.resize ( NUMDAYS );
125 days = new QDate[NUMDAYS]; 125 days = new QDate[NUMDAYS];
126 daylbls = new QString[NUMDAYS]; 126 daylbls = new QString[NUMDAYS];
127 //events = new int[NUMDAYS]; 127 //events = new int[NUMDAYS];
128 mToolTip = new DynamicTip(this); 128 mToolTip = new DynamicTip(this);
129 129
130 // set default values used for drawing the matrix 130 // set default values used for drawing the matrix
131 mDefaultBackColor = palette().active().base(); 131 mDefaultBackColor = palette().active().base();
132 mDefaultTextColor = palette().active().foreground(); 132 mDefaultTextColor = palette().active().foreground();
133 mDefaultTextColorShaded = getShadedColor(mDefaultTextColor); 133 mDefaultTextColorShaded = getShadedColor(mDefaultTextColor);
134 mHolidayColorShaded = getShadedColor(KOPrefs::instance()->mHolidayColor); 134 mHolidayColorShaded = getShadedColor(KOPrefs::instance()->mHolidayColor);
135 mSelectedDaysColor = QColor("white"); 135 mSelectedDaysColor = QColor("white");
136 mTodayMarginWidth = 2; 136 mTodayMarginWidth = 2;
137 mSelEnd = mSelStart = NOSELECTION; 137 mSelEnd = mSelStart = NOSELECTION;
138 138
139 setAcceptDrops(true); 139 setAcceptDrops(true);
140 //setFont( QFont("Arial", 10) ); 140 //setFont( QFont("Arial", 10) );
141 141
142 mUpdateTimer = new QTimer( this ); 142 mUpdateTimer = new QTimer( this );
143 connect (mUpdateTimer ,SIGNAL(timeout()), this, SLOT ( updateViewTimed() )); 143 connect (mUpdateTimer ,SIGNAL(timeout()), this, SLOT ( updateViewTimed() ));
144 mRepaintTimer = new QTimer( this ); 144 mRepaintTimer = new QTimer( this );
145 connect (mRepaintTimer ,SIGNAL(timeout()), this, SLOT ( repaintViewTimed() )); 145 connect (mRepaintTimer ,SIGNAL(timeout()), this, SLOT ( repaintViewTimed() ));
146 mDayChanged = false; 146 mDayChanged = false;
147 updateView(); 147 updateView();
148} 148}
149QString KODayMatrix::getWhatsThisText( QPoint p ) 149QString KODayMatrix::getWhatsThisText( QPoint p )
150{ 150{
151 151
152 int tmp = getDayIndexFrom(p.x(), p.y()); 152 int tmp = getDayIndexFrom(p.x(), p.y());
153 if ( tmp < 0 || tmp > NUMDAYS-1 || !mCalendar ) 153 if ( tmp < 0 || tmp > NUMDAYS-1 || !mCalendar )
154 return QString(); 154 return QString();
155 QDate mDate = days[tmp]; 155 QDate mDate = days[tmp];
156 QPtrList<Event> eventlist = mCalendar->events(mDate); 156 QPtrList<Event> eventlist = mCalendar->events(mDate);
157 Event *event; 157 Event *event;
158 QStringList mToolTip; 158 QStringList mToolTip;
159 for(event=eventlist.first();event != 0;event=eventlist.next()) { 159 for(event=eventlist.first();event != 0;event=eventlist.next()) {
160 QString mToolTipText; 160 QString mToolTipText;
161 QString text; 161 QString text;
162 int multiday = 0;// 1 = start, 2 = midddle, 3 = end day 162 int multiday = 0;// 1 = start, 2 = midddle, 3 = end day
163 if (event->isMultiDay()) { 163 if (event->isMultiDay()) {
164 QString prefix = "<->";multiday = 2; 164 QString prefix = "<->";multiday = 2;
165 QString time; 165 QString time;
166 if ( event->doesRecur() ) { 166 if ( event->doesRecur() ) {
167 if ( event->recursOn( mDate) ) { 167 if ( event->recursOn( mDate) ) {
168 prefix ="->" ;multiday = 1; 168 prefix ="->" ;multiday = 1;
169 } 169 }
170 else { 170 else {
171 int days = event->dtStart().date().daysTo ( event->dtEnd().date() ); 171 int days = event->dtStart().date().daysTo ( event->dtEnd().date() );
172 if ( event->recursOn( mDate.addDays( -days)) ) { 172 if ( event->recursOn( mDate.addDays( -days)) ) {
173 prefix ="<-" ;multiday = 3; 173 prefix ="<-" ;multiday = 3;
174 } 174 }
175 } 175 }
176 } else { 176 } else {
177 if (mDate == event->dtStart().date()) { 177 if (mDate == event->dtStart().date()) {
178 prefix ="->" ;multiday = 1; 178 prefix ="->" ;multiday = 1;
179 } else if (mDate == event->dtEnd().date()) { 179 } else if (mDate == event->dtEnd().date()) {
180 prefix ="<-" ;multiday = 3; 180 prefix ="<-" ;multiday = 3;
181 } 181 }
182 } 182 }
183 if ( !event->doesFloat() ) { 183 if ( !event->doesFloat() ) {
184 if ( mDate == event->dtStart().date () ) 184 if ( mDate == event->dtStart().date () )
185 time = KGlobal::locale()->formatTime(event->dtStart().time())+" "; 185 time = KGlobal::locale()->formatTime(event->dtStart().time())+" ";
186 else if ( mDate == event->dtEnd().date () ) 186 else if ( mDate == event->dtEnd().date () )
187 time = KGlobal::locale()->formatTime(event->dtEnd().time())+" "; 187 time = KGlobal::locale()->formatTime(event->dtEnd().time())+" ";
188 188
189 } 189 }
190 text = time + event->summary(); 190 text = time + event->summary();
191 mToolTipText += prefix + text; 191 mToolTipText += prefix + text;
192 } else { 192 } else {
193 if (event->doesFloat()) { 193 if (event->doesFloat()) {
194 text = event->summary(); 194 text = event->summary();
195 mToolTipText += text; 195 mToolTipText += text;
196 } 196 }
197 else { 197 else {
198 text = KGlobal::locale()->formatTime(event->dtStart().time()); 198 text = KGlobal::locale()->formatTime(event->dtStart().time());
199 text += " " + event->summary(); 199 text += " " + event->summary();
200 mToolTipText += KGlobal::locale()->formatTime(event->dtStart().time()) +"-"+KGlobal::locale()->formatTime(event->dtEnd().time())+" " + event->summary(); 200 mToolTipText += KGlobal::locale()->formatTime(event->dtStart().time()) +"-"+KGlobal::locale()->formatTime(event->dtEnd().time())+" " + event->summary();
201 } 201 }
202 } 202 }
203 if ( !event->location().isEmpty() ) 203 if ( !event->location().isEmpty() )
204 mToolTipText += " (" + event->location() + ")"; 204 mToolTipText += " (" + event->location() + ")";
205#if QT_VERSION >= 0x030000 205#if QT_VERSION >= 0x030000
206 mToolTipText.replace( '<' , "&lt;" ); 206 mToolTipText.replace( '<' , "&lt;" );
207 mToolTipText.replace( '>' , "&gt;" ); 207 mToolTipText.replace( '>' , "&gt;" );
208#else 208#else
209 if ( mToolTipText.find ('<') >= 0 ) { 209 if ( mToolTipText.find ('<') >= 0 ) {
210 mToolTipText.replace( QRegExp("<") , "&lt;" ); 210 mToolTipText.replace( QRegExp("<") , "&lt;" );
211 } 211 }
212 if ( mToolTipText.find ('>') >= 0 ) { 212 if ( mToolTipText.find ('>') >= 0 ) {
213 mToolTipText.replace( QRegExp(">") , "&gt;" ); 213 mToolTipText.replace( QRegExp(">") , "&gt;" );
214 } 214 }
215#endif 215#endif
216 //qDebug("TTT: %s ", mToolTipText.latin1()); 216 //qDebug("TTT: %s ", mToolTipText.latin1());
217 mToolTip.append( mToolTipText ); 217 mToolTip.append( mToolTipText );
218 } 218 }
219 mToolTip.sort(); 219 mToolTip.sort();
220 return "<b>"+KGlobal::locale()->formatDate(days[tmp]) + "</b><br>" + mToolTip.join("<br>"); 220 return "<b>"+KGlobal::locale()->formatDate(days[tmp]) + "</b><br>" + mToolTip.join("<br>");
221} 221}
222void KODayMatrix::setCalendar( Calendar *cal ) 222void KODayMatrix::setCalendar( Calendar *cal )
223{ 223{
224 mCalendar = cal; 224 mCalendar = cal;
225 225
226 setAcceptDrops( mCalendar ); 226 setAcceptDrops( mCalendar );
227 227
228 updateEvents(); 228 updateEvents();
229} 229}
230 230
231QColor KODayMatrix::getShadedColor(QColor color) 231QColor KODayMatrix::getShadedColor(QColor color)
232{ 232{
233 QColor shaded; 233 QColor shaded;
234 int h=0; 234 int h=0;
235 int s=0; 235 int s=0;
236 int v=0; 236 int v=0;
237 color.hsv(&h,&s,&v); 237 color.hsv(&h,&s,&v);
238 s = s/4; 238 s = s/4;
239 v = 192+v/4; 239 v = 192+v/4;
240 shaded.setHsv(h,s,v); 240 shaded.setHsv(h,s,v);
241 241
242 return shaded; 242 return shaded;
243} 243}
244 244
245KODayMatrix::~KODayMatrix() 245KODayMatrix::~KODayMatrix()
246{ 246{
247 // delete mKODaymatrixWhatsThis; 247 // delete mKODaymatrixWhatsThis;
248 delete [] days; 248 delete [] days;
249 delete [] daylbls; 249 delete [] daylbls;
250 //delete [] events; 250 //delete [] events;
251 delete mToolTip; 251 delete mToolTip;
252} 252}
253 253
254/* 254/*
255void KODayMatrix::setStartDate(QDate start) 255void KODayMatrix::setStartDate(QDate start)
256{ 256{
257 updateView(start); 257 updateView(start);
258} 258}
259*/ 259*/
260 260
261void KODayMatrix::addSelectedDaysTo(DateList& selDays) 261void KODayMatrix::addSelectedDaysTo(DateList& selDays)
262{ 262{
263 263
264 if (mSelStart == NOSELECTION) { 264 if (mSelStart == NOSELECTION) {
265 return; 265 return;
266 } 266 }
267 267
268 //cope with selection being out of matrix limits at top (< 0) 268 //cope with selection being out of matrix limits at top (< 0)
269 int i0 = mSelStart; 269 int i0 = mSelStart;
270 if (i0 < 0) { 270 if (i0 < 0) {
271 for (int i = i0; i < 0; i++) { 271 for (int i = i0; i < 0; i++) {
272 selDays.append(days[0].addDays(i)); 272 selDays.append(days[0].addDays(i));
273 } 273 }
274 i0 = 0; 274 i0 = 0;
275 } 275 }
276 276
277 //cope with selection being out of matrix limits at bottom (> NUMDAYS-1) 277 //cope with selection being out of matrix limits at bottom (> NUMDAYS-1)
278 if (mSelEnd > NUMDAYS-1) { 278 if (mSelEnd > NUMDAYS-1) {
279 for (int i = i0; i <= NUMDAYS-1; i++) { 279 for (int i = i0; i <= NUMDAYS-1; i++) {
280 selDays.append(days[i]); 280 selDays.append(days[i]);
281 } 281 }
282 for (int i = NUMDAYS; i < mSelEnd; i++) { 282 for (int i = NUMDAYS; i < mSelEnd; i++) {
283 selDays.append(days[0].addDays(i)); 283 selDays.append(days[0].addDays(i));
284 } 284 }
285 285
286 // apply normal routine to selection being entirely within matrix limits 286 // apply normal routine to selection being entirely within matrix limits
287 } else { 287 } else {
288 for (int i = i0; i <= mSelEnd; i++) { 288 for (int i = i0; i <= mSelEnd; i++) {
289 selDays.append(days[i]); 289 selDays.append(days[i]);
290 } 290 }
291 } 291 }
292} 292}
293 293
294bool KODayMatrix::setSelectedDaysFrom(const QDate& start, const QDate& end) 294bool KODayMatrix::setSelectedDaysFrom(const QDate& start, const QDate& end)
295{ 295{
296 mRedrawNeeded = true; 296 mRedrawNeeded = true;
297 bool noSel = (mSelEnd == NOSELECTION && mSelStart == NOSELECTION ); 297 bool noSel = (mSelEnd == NOSELECTION && mSelStart == NOSELECTION );
298 mSelStart = startdate.daysTo(start); 298 mSelStart = startdate.daysTo(start);
299 if ( mSelStart < 0 ) 299 if ( mSelStart < 0 )
300 mSelStart = 0; 300 mSelStart = 0;
301 mSelEnd = startdate.daysTo(end); 301 mSelEnd = startdate.daysTo(end);
302 if ( mSelEnd > NUMDAYS-1 ) 302 if ( mSelEnd > NUMDAYS-1 )
303 mSelEnd = NUMDAYS-1; 303 mSelEnd = NUMDAYS-1;
304 if ( mSelEnd < 0 || mSelStart > NUMDAYS-1 ) { 304 if ( mSelEnd < 0 || mSelStart > NUMDAYS-1 ) {
305 clearSelection(); 305 clearSelection();
306 if ( noSel ) 306 if ( noSel )
307 return false; 307 return false;
308 } 308 }
309 309
310 return true; 310 return true;
311} 311}
312void KODayMatrix::clearSelection() 312void KODayMatrix::clearSelection()
313{ 313{
314 mSelEnd = mSelStart = NOSELECTION; 314 mSelEnd = mSelStart = NOSELECTION;
315} 315}
316 316
317 317
318void KODayMatrix::recalculateToday() 318void KODayMatrix::recalculateToday()
319{ 319{
320 today = -1; 320 today = -1;
321 for (int i=0; i<NUMDAYS; i++) { 321 for (int i=0; i<NUMDAYS; i++) {
322 //events[i] = 0; 322 //events[i] = 0;
323 days[i] = startdate.addDays(i); 323 days[i] = startdate.addDays(i);
324 daylbls[i] = QString::number( KOGlobals::self()->calendarSystem()->day( days[i] )); 324 daylbls[i] = QString::number( KOGlobals::self()->calendarSystem()->day( days[i] ));
325 325
326 // if today is in the currently displayed month, hilight today 326 // if today is in the currently displayed month, hilight today
327 if (days[i].year() == QDate::currentDate().year() && 327 if (days[i].year() == QDate::currentDate().year() &&
328 days[i].month() == QDate::currentDate().month() && 328 days[i].month() == QDate::currentDate().month() &&
329 days[i].day() == QDate::currentDate().day()) { 329 days[i].day() == QDate::currentDate().day()) {
330 today = i; 330 today = i;
331 } 331 }
332 } 332 }
333 // qDebug(QString("Today is visible at %1.").arg(today)); 333 // qDebug(QString("Today is visible at %1.").arg(today));
334} 334}
335 335
336void KODayMatrix::updateView() 336void KODayMatrix::updateView()
337{ 337{
338 updateView(startdate); 338 updateView(startdate);
339} 339}
340void KODayMatrix::repaintViewTimed() 340void KODayMatrix::repaintViewTimed()
341{ 341{
342 mRedrawNeeded = true; 342 mRedrawNeeded = true;
343 // bDays.fill( false); 343 // bDays.fill( false);
344 //pDays.fill( false); 344 //pDays.fill( false);
345 //hDays.fill( false); 345 //hDays.fill( false);
346 //eDays.fill( false); 346 //eDays.fill( false);
347 mRepaintTimer->stop(); 347 mRepaintTimer->stop();
348 int startDay = days[0].dayOfWeek(); // 1...7 7 = sunday 348 int startDay = days[0].dayOfWeek(); // 1...7 7 = sunday
349 int i; 349 int i;
350 for(i = 0; i < NUMDAYS; i++) { 350 for(i = 0; i < NUMDAYS; i++) {
351 if ( ( (i+startDay) % 7 == 0 ) ) { 351 if ( ( (i+startDay) % 7 == 0 ) ) {
352 pDays.setBit(i); 352 pDays.setBit(i);
353 } 353 }
354 } 354 }
355 repaint(false); 355 repaint(false);
356} 356}
357void KODayMatrix::computeEvent(Event *event, int i ) 357void KODayMatrix::computeEvent(Event *event, int i )
358{ 358{
359 QString holiStr = mHolidays[i]; 359 QString holiStr = mHolidays[i];
360 if ( event->isHoliday()) { 360 if ( event->isHoliday()) {
361 pDays.setBit(i); 361 pDays.setBit(i);
362 hDays.setBit(i); 362 hDays.setBit(i);
363 if ( !holiStr.isEmpty() ) 363 if ( !holiStr.isEmpty() )
364 holiStr += "\n"; 364 holiStr += "\n";
365 holiStr += event->summary(); 365 holiStr += event->summary();
366 if ( !event->location().isEmpty() ) 366 if ( !event->location().isEmpty() )
367 holiStr += " (" + event->location() + ")"; 367 holiStr += " (" + event->location() + ")";
368 mHolidays[i] =holiStr ; 368 mHolidays[i] =holiStr ;
369 eDays.setBit(i);
369 } 370 }
370 if ( event->isBirthday()) { 371 if ( KOPrefs::instance()->mCurrentDisplayedView != VIEW_T_VIEW && KOPrefs::instance()->mCurrentDisplayedView != VIEW_J_VIEW ) {
371 pDays.setBit(i); 372 if ( event->isBirthday()) {
372 if ( !holiStr.isEmpty() ) 373 pDays.setBit(i);
373 holiStr += "\n"; 374 if ( !holiStr.isEmpty() )
374 holiStr += i18n("Birthday") + ": "+event->summary(); 375 holiStr += "\n";
375 if ( !event->location().isEmpty() ) 376 holiStr += i18n("Birthday") + ": "+event->summary();
376 holiStr += " (" + event->location() + ")"; 377 if ( !event->location().isEmpty() )
377 bDays.setBit(i); 378 holiStr += " (" + event->location() + ")";
378 mHolidays[i] =holiStr ; 379 bDays.setBit(i);
380 mHolidays[i] =holiStr ;
381 }
379 } 382 }
380 eDays.setBit(i); 383 if ( KOPrefs::instance()->mCurrentDisplayedView != VIEW_J_VIEW )
384 eDays.setBit(i);
381} 385}
382void KODayMatrix::updateViewTimed() 386void KODayMatrix::updateViewTimed()
383{ 387{
384 mUpdateTimer->stop(); 388 mUpdateTimer->stop();
385 if ( !mCalendar ) { 389 if ( !mCalendar ) {
386 qDebug("NOT CAL "); 390 qDebug("NOT CAL ");
387 return; 391 return;
388 } 392 }
389#if 1 393#if 1
390 394
395
391 int i; 396 int i;
392 int timeSpan = NUMDAYS-1; 397 int timeSpan = NUMDAYS-1;
393 QPtrList<Event> events = mCalendar->events(); 398 QPtrList<Event> events = mCalendar->events();
394 Event *event; 399 Event *event;
395 QDateTime dt; 400 QDateTime dt;
396 bool ok; 401 bool ok;
397 bDays.fill( false); 402 bDays.fill( false);
398 pDays.fill( false); 403 pDays.fill( false);
399 hDays.fill( false); 404 hDays.fill( false);
400 eDays.fill( false); 405 eDays.fill( false);
401 mHolidays.clear(); 406 mHolidays.clear();
402 QDate mStartDate = days[0]; 407 QDate mStartDate = days[0];
403 QDate endDate = mStartDate.addDays( timeSpan ); 408 QDate endDate = mStartDate.addDays( timeSpan );
404 for( event = events.first(); event; event = events.next() ) { // for event 409 for( event = events.first(); event; event = events.next() ) { // for event
405 ushort recurType = event->recurrence()->doesRecur(); 410 ushort recurType = event->recurrence()->doesRecur();
406 if ((recurType == Recurrence::rDaily && !KOPrefs::instance()->mDailyRecur) || 411 if ((recurType == Recurrence::rDaily && !KOPrefs::instance()->mDailyRecur) ||
407 (recurType == Recurrence::rWeekly && !KOPrefs::instance()->mWeeklyRecur)) { 412 (recurType == Recurrence::rWeekly && !KOPrefs::instance()->mWeeklyRecur)) {
408 continue; 413 continue;
409 } 414 }
410 if ( event->doesRecur() ) { 415 if ( event->doesRecur() ) {
411 bool last; 416 bool last;
412 QDateTime incidenceStart = event->recurrence()->getPreviousDateTime( QDateTime( mStartDate ) , &last ); 417 QDateTime incidenceStart = event->recurrence()->getPreviousDateTime( QDateTime( mStartDate ) , &last );
413 QDateTime incidenceEnd; 418 QDateTime incidenceEnd;
414 int eventlen = event->dtStart().date().daysTo ( event->dtEnd().date() ); 419 int eventlen = event->dtStart().date().daysTo ( event->dtEnd().date() );
415 bool invalid = false; 420 bool invalid = false;
416 while( true ) { 421 while( true ) {
417 if ( incidenceStart.isValid() ) { 422 if ( incidenceStart.isValid() ) {
418 incidenceEnd = incidenceStart.addDays( eventlen ); 423 incidenceEnd = incidenceStart.addDays( eventlen );
419 int st = incidenceStart.date().daysTo( endDate ); 424 int st = incidenceStart.date().daysTo( endDate );
420 if ( st >= 0 ) { // start before timeend 425 if ( st >= 0 ) { // start before timeend
421 int end = mStartDate.daysTo( incidenceEnd.date() ); 426 int end = mStartDate.daysTo( incidenceEnd.date() );
422 if ( end >= 0 ) { // end after timestart --- got one! 427 if ( end >= 0 ) { // end after timestart --- got one!
423 //normalize 428 //normalize
424 st = timeSpan - st; 429 st = timeSpan - st;
425 if ( st < 0 ) st = 0; 430 if ( st < 0 ) st = 0;
426 if ( end > timeSpan ) end = timeSpan; 431 if ( end > timeSpan ) end = timeSpan;
427 int iii; 432 int iii;
428 //qDebug("found %s %d %d ",event->summary().latin1(), st, end ); 433 //qDebug("found %s %d %d ",event->summary().latin1(), st, end );
429 for ( iii = st;iii<= end;++iii) { 434 for ( iii = st;iii<= end;++iii) {
430 computeEvent( event, iii ); 435 computeEvent( event, iii );
431 } 436 }
432 } 437 }
433 } 438 }
434 } else { 439 } else {
435 if ( invalid ) 440 if ( invalid )
436 break; 441 break;
437 invalid = true; 442 invalid = true;
438 //qDebug("invalid %s", event->summary().latin1()); 443 //qDebug("invalid %s", event->summary().latin1());
439 incidenceStart = QDateTime( mStartDate ).addSecs( -2 );; 444 incidenceStart = QDateTime( mStartDate ).addSecs( -2 );;
440 } 445 }
441 if ( last ) 446 if ( last )
442 break; 447 break;
443 bool ok; 448 bool ok;
444 incidenceStart = event->getNextOccurence( incidenceStart.addSecs( 1 ) ,&ok ); 449 incidenceStart = event->getNextOccurence( incidenceStart.addSecs( 1 ) ,&ok );
445 if ( ! ok ) 450 if ( ! ok )
446 break; 451 break;
447 if ( incidenceStart.date() > endDate ) 452 if ( incidenceStart.date() > endDate )
448 break; 453 break;
449 } 454 }
450 } else { // no recur 455 } else { // no recur
451 int st = event->dtStart().date().daysTo( endDate ); 456 int st = event->dtStart().date().daysTo( endDate );
452 if ( st >= 0 ) { // start before timeend 457 if ( st >= 0 ) { // start before timeend
453 int end = mStartDate.daysTo( event->dtEnd().date() ); 458 int end = mStartDate.daysTo( event->dtEnd().date() );
454 if ( end >= 0 ) { // end after timestart --- got one! 459 if ( end >= 0 ) { // end after timestart --- got one!
455 //normalize 460 //normalize
456 st = timeSpan - st; 461 st = timeSpan - st;
457 if ( st < 0 ) st = 0; 462 if ( st < 0 ) st = 0;
458 if ( end > timeSpan ) end = timeSpan; 463 if ( end > timeSpan ) end = timeSpan;
459 int iii; 464 int iii;
460 for ( iii = st;iii<= end;++iii) 465 for ( iii = st;iii<= end;++iii)
461 computeEvent( event, iii ); 466 computeEvent( event, iii );
462 } 467 }
463 } 468 }
464 } 469 }
465 } 470 }
466 int startDay = days[0].dayOfWeek(); // 1...7 7 = sunday 471 int startDay = days[0].dayOfWeek(); // 1...7 7 = sunday
467 for(i = 0; i < NUMDAYS; i++) { 472 for(i = 0; i < NUMDAYS; i++) {
468 if ( ( (i+startDay) % 7 == 0 ) ) { 473 if ( ( (i+startDay) % 7 == 0 ) ) {
469 pDays.setBit(i); 474 pDays.setBit(i);
470 } 475 }
471 } 476 }
472 477 if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_T_VIEW ) {
473#if 0 478 bDays.fill( false);
474 // insert due todos 479 // insert due todos
475 QPtrList<Todo> todos = calendar()->todos( ); 480 QPtrList<Todo> todos = mCalendar->todos( );
476 Todo *todo; 481 Todo *todo;
477 for(todo = todos.first(); todo; todo = todos.next()) { 482 for(todo = todos.first(); todo; todo = todos.next()) {
478 //insertTodo( todo ); 483 //insertTodo( todo );
479 if ( todo->hasDueDate() ) { 484 if ( todo->hasDueDate() ) {
480 int day = mStartDate.daysTo( todo->dtDue().date() ); 485 int day = mStartDate.daysTo( todo->dtDue().date() );
486 if ( day >= 0 && day < timeSpan + 1) {
487 int i = day;
488 QString holiStr = mHolidays[i];
489 pDays.setBit(i);
490 if ( !holiStr.isEmpty() )
491 holiStr += "\n";
492 holiStr += i18n("Todo") + ": "+todo->summary();
493 if ( !todo->location().isEmpty() )
494 holiStr += " (" + todo->location() + ")";
495 bDays.setBit(i);
496 mHolidays[i] =holiStr ;
497 eDays.setBit(i);
498 }
499 }
500 }
501 }
502 if ( KOPrefs::instance()->mCurrentDisplayedView == VIEW_J_VIEW ) {
503 bDays.fill( false);
504 // insert due todos
505 QPtrList<Journal> todos = mCalendar->journals( );
506 Journal *todo;
507 for(todo = todos.first(); todo; todo = todos.next()) {
508 int day = mStartDate.daysTo( todo->dtStart().date() );
481 if ( day >= 0 && day < timeSpan + 1) { 509 if ( day >= 0 && day < timeSpan + 1) {
482 (*cells)[day]->insertTodo( todo ); 510 int i = day;
511 QString holiStr = mHolidays[i];
512 pDays.setBit(i);
513 if ( !holiStr.isEmpty() )
514 holiStr += "\n";
515 holiStr += i18n("Journal");
516 bDays.setBit(i);
517 mHolidays[i] =holiStr ;
518 eDays.setBit(i);
519
483 } 520 }
484 } 521 }
485 } 522 }
486#endif
487
488#else 523#else
489 //qDebug("KODayMatrix::updateViewTimed "); 524 //qDebug("KODayMatrix::updateViewTimed ");
490 for(int i = 0; i < NUMDAYS; i++) { 525 for(int i = 0; i < NUMDAYS; i++) {
491 // if events are set for the day then remember to draw it bold 526 // if events are set for the day then remember to draw it bold
492 QPtrList<Event> eventlist = mCalendar->events(days[i]); 527 QPtrList<Event> eventlist = mCalendar->events(days[i]);
493 Event *event; 528 Event *event;
494 int numEvents = eventlist.count(); 529 int numEvents = eventlist.count();
495 QString holiStr = ""; 530 QString holiStr = "";
496 bDays.clearBit(i); 531 bDays.clearBit(i);
497 hDays.clearBit(i); 532 hDays.clearBit(i);
498 eDays.clearBit(i); 533 eDays.clearBit(i);
499 for(event=eventlist.first();event != 0;event=eventlist.next()) { 534 for(event=eventlist.first();event != 0;event=eventlist.next()) {
500 ushort recurType = event->recurrence()->doesRecur(); 535 ushort recurType = event->recurrence()->doesRecur();
501 if ((recurType == Recurrence::rDaily && !KOPrefs::instance()->mDailyRecur) || 536 if ((recurType == Recurrence::rDaily && !KOPrefs::instance()->mDailyRecur) ||
502 (recurType == Recurrence::rWeekly && !KOPrefs::instance()->mWeeklyRecur)) { 537 (recurType == Recurrence::rWeekly && !KOPrefs::instance()->mWeeklyRecur)) {
503 numEvents--; 538 numEvents--;
504 } 539 }
505 if ( event->isHoliday()) { 540 if ( event->isHoliday()) {
506 hDays.setBit(i); 541 hDays.setBit(i);
507 if ( !holiStr.isEmpty() ) 542 if ( !holiStr.isEmpty() )
508 holiStr += "\n"; 543 holiStr += "\n";
509 holiStr += event->summary(); 544 holiStr += event->summary();
510 if ( !event->location().isEmpty() ) 545 if ( !event->location().isEmpty() )
511 holiStr += " (" + event->location() + ")"; 546 holiStr += " (" + event->location() + ")";
512 } 547 }
513 if ( event->isBirthday()) { 548 if ( event->isBirthday()) {
514 if ( !holiStr.isEmpty() ) 549 if ( !holiStr.isEmpty() )
515 holiStr += "\n"; 550 holiStr += "\n";
516 holiStr += i18n("Birthday") + ": "+event->summary(); 551 holiStr += i18n("Birthday") + ": "+event->summary();
517 if ( !event->location().isEmpty() ) 552 if ( !event->location().isEmpty() )
518 holiStr += " (" + event->location() + ")"; 553 holiStr += " (" + event->location() + ")";
519 bDays.setBit(i); 554 bDays.setBit(i);
520 } 555 }
521 } 556 }
522 if ( numEvents ) 557 if ( numEvents )
523 eDays.setBit(i); 558 eDays.setBit(i);
524 //if it is a holy day then draw it red. Sundays are consider holidays, too 559 //if it is a holy day then draw it red. Sundays are consider holidays, too
525 if ( (KOGlobals::self()->calendarSystem()->dayOfWeek(days[i]) == KOGlobals::self()->calendarSystem()->weekDayOfPray()) || 560 if ( (KOGlobals::self()->calendarSystem()->dayOfWeek(days[i]) == KOGlobals::self()->calendarSystem()->weekDayOfPray()) ||
526 !holiStr.isEmpty()) { 561 !holiStr.isEmpty()) {
527 mHolidays[i] = holiStr; 562 mHolidays[i] = holiStr;
528 } else { 563 } else {
529 mHolidays[i] = QString::null; 564 mHolidays[i] = QString::null;
530 } 565 }
531 } 566 }
532#endif 567#endif
533 mRedrawNeeded = true; 568 mRedrawNeeded = true;
534 if ( ! mPendingUpdateBeforeRepaint ) 569 if ( ! mPendingUpdateBeforeRepaint )
535 repaint(false); 570 repaint(false);
536} 571}
537void KODayMatrix::updateView(QDate actdate) 572void KODayMatrix::updateView(QDate actdate)
538{ 573{
539 574 if ( mLastView != KOPrefs::instance()->mCurrentDisplayedView )
575 mRedrawNeeded = true;
576 mLastView = KOPrefs::instance()->mCurrentDisplayedView;
540 if ( ! actdate.isValid() ) { 577 if ( ! actdate.isValid() ) {
541 //qDebug("date not valid "); 578 //qDebug("date not valid ");
542 return; 579 return;
543 } 580 }
544 mDayChanged = false; 581 mDayChanged = false;
545 //flag to indicate if the starting day of the matrix has changed by this call 582 //flag to indicate if the starting day of the matrix has changed by this call
546 //mDayChanged = false; 583 //mDayChanged = false;
547 // if a new startdate is to be set then apply Cornelius's calculation 584 // if a new startdate is to be set then apply Cornelius's calculation
548 // of the first day to be shown 585 // of the first day to be shown
549 if (actdate != startdate) { 586 if (actdate != startdate) {
550 // reset index of selection according to shift of starting date from startdate to actdate 587 // reset index of selection according to shift of starting date from startdate to actdate
551 if (mSelStart != NOSELECTION) { 588 if (mSelStart != NOSELECTION) {
552 int tmp = actdate.daysTo(startdate); 589 int tmp = actdate.daysTo(startdate);
553 //kdDebug() << "Shift of Selection1: " << mSelStart << " - " << mSelEnd << " -> " << tmp << "(" << offset << ")" << endl; 590 //kdDebug() << "Shift of Selection1: " << mSelStart << " - " << mSelEnd << " -> " << tmp << "(" << offset << ")" << endl;
554 // shift selection if new one would be visible at least partly ! 591 // shift selection if new one would be visible at least partly !
555 592
556 if (mSelStart+tmp < NUMDAYS && mSelEnd+tmp >= 0) { 593 if (mSelStart+tmp < NUMDAYS && mSelEnd+tmp >= 0) {
557 // nested if is required for next X display pushed from a different month - correction required 594 // nested if is required for next X display pushed from a different month - correction required
558 // otherwise, for month forward and backward, it must be avoided 595 // otherwise, for month forward and backward, it must be avoided
559 if( mSelStart > NUMDAYS || mSelStart < 0 ) 596 if( mSelStart > NUMDAYS || mSelStart < 0 )
560 mSelStart = mSelStart + tmp; 597 mSelStart = mSelStart + tmp;
561 if( mSelEnd > NUMDAYS || mSelEnd < 0 ) 598 if( mSelEnd > NUMDAYS || mSelEnd < 0 )
562 mSelEnd = mSelEnd + tmp; 599 mSelEnd = mSelEnd + tmp;
563 } 600 }
564 } 601 }
565 startdate = actdate; 602 startdate = actdate;
566 mDayChanged = true; 603 mDayChanged = true;
567 recalculateToday(); 604 recalculateToday();
568 mRedrawNeeded = true; 605 mRedrawNeeded = true;
569 } 606 }
570 //qDebug("restart Timer %d vis: %d", mDayChanged, isVisible() ); 607 //qDebug("restart Timer %d vis: %d", mDayChanged, isVisible() );
571 if ( !isVisible() ) { 608 if ( !isVisible() ) {
572 mPendingUpdateBeforeRepaint = true; 609 mPendingUpdateBeforeRepaint = true;
573 } else { 610 } else {
574#ifdef DESKTOP_VERSION 611#ifdef DESKTOP_VERSION
575 //mRepaintTimer->start( 100 ); 612 //mRepaintTimer->start( 100 );
576 //updateViewTimed(); 613 //updateViewTimed();
577 mUpdateTimer->start( 50 ); 614 mUpdateTimer->start( 50 );
578#else 615#else
579 mRepaintTimer->start( 350 ); 616 mRepaintTimer->start( 350 );
580 mUpdateTimer->start( 800 ); 617 mUpdateTimer->start( 800 );
581#endif 618#endif
582 } 619 }
583} 620}
584void KODayMatrix::updateEvents() 621void KODayMatrix::updateEvents()
585{ 622{
586 if ( !mCalendar ) return; 623 if ( !mCalendar ) return;
587 624
588 for( int i = 0; i < NUMDAYS; i++ ) { 625 for( int i = 0; i < NUMDAYS; i++ ) {
589 // if events are set for the day then remember to draw it bold 626 // if events are set for the day then remember to draw it bold
590 QPtrList<Event> eventlist = mCalendar->events( days[ i ] ); 627 QPtrList<Event> eventlist = mCalendar->events( days[ i ] );
591 int numEvents = eventlist.count(); 628 int numEvents = eventlist.count();
592 Event *event; 629 Event *event;
593 for( event = eventlist.first(); event != 0;event=eventlist.next()) { 630 for( event = eventlist.first(); event != 0;event=eventlist.next()) {
594 ushort recurType = event->doesRecur(); 631 ushort recurType = event->doesRecur();
595 632
596 if ( ( recurType == Recurrence::rDaily && 633 if ( ( recurType == Recurrence::rDaily &&
597 !KOPrefs::instance()->mDailyRecur ) || 634 !KOPrefs::instance()->mDailyRecur ) ||
598 ( recurType == Recurrence::rWeekly && 635 ( recurType == Recurrence::rWeekly &&
599 !KOPrefs::instance()->mWeeklyRecur ) ) { 636 !KOPrefs::instance()->mWeeklyRecur ) ) {
600 numEvents--; 637 numEvents--;
601 } 638 }
602 } 639 }
603 if ( numEvents ) 640 if ( numEvents )
604 eDays.setBit(i); 641 eDays.setBit(i);
605 else 642 else
606 eDays.clearBit(i); 643 eDays.clearBit(i);
607 } 644 }
608} 645}
609 646
610const QDate& KODayMatrix::getDate(int offset) 647const QDate& KODayMatrix::getDate(int offset)
611{ 648{
612 if (offset < 0 || offset > NUMDAYS-1) { 649 if (offset < 0 || offset > NUMDAYS-1) {
613 qDebug("Wrong offset2 %d", offset); 650 qDebug("Wrong offset2 %d", offset);
614 return days[0]; 651 return days[0];
615 } 652 }
616 return days[offset]; 653 return days[offset];
617} 654}
618 655
619QString KODayMatrix::getHolidayLabel(int offset) 656QString KODayMatrix::getHolidayLabel(int offset)
620{ 657{
621 if (offset < 0 || offset > NUMDAYS-1) { 658 if (offset < 0 || offset > NUMDAYS-1) {
622 qDebug("Wrong offset1 %d", offset); 659 qDebug("Wrong offset1 %d", offset);
623 return QString(); 660 return QString();
624 } 661 }
625 return mHolidays[offset]; 662 return mHolidays[offset];
626} 663}
627 664
628int KODayMatrix::getDayIndexFrom(int x, int y) 665int KODayMatrix::getDayIndexFrom(int x, int y)
629{ 666{
630 int colModulo = (width()-2) % 7; 667 int colModulo = (width()-2) % 7;
631 int rowModulo = (height()-2) % 6; 668 int rowModulo = (height()-2) % 6;
632#if 0 669#if 0
633 return 7*(y/daysize.height()) + (KOGlobals::self()->reverseLayout() ? 670 return 7*(y/daysize.height()) + (KOGlobals::self()->reverseLayout() ?
634 6 - x/daysize.width() : x/daysize.width()); 671 6 - x/daysize.width() : x/daysize.width());
635#endif 672#endif
636 int xVal = (x-colModulo/2-2)/daysize.width(); 673 int xVal = (x-colModulo/2-2)/daysize.width();
637 int yVal = (y-rowModulo/2-2)/daysize.height(); 674 int yVal = (y-rowModulo/2-2)/daysize.height();
638 675
639 676
640 return 7*(yVal) + xVal; 677 return 7*(yVal) + xVal;
641 678
642} 679}
643 680
644// ---------------------------------------------------------------------------- 681// ----------------------------------------------------------------------------
645// M O U S E E V E N T H A N D L I N G 682// M O U S E E V E N T H A N D L I N G
646// ---------------------------------------------------------------------------- 683// ----------------------------------------------------------------------------
647 684
648void KODayMatrix::mousePressEvent (QMouseEvent* e) 685void KODayMatrix::mousePressEvent (QMouseEvent* e)
649{ 686{
650 687
651 if ( e->button() == LeftButton ) 688 if ( e->button() == LeftButton )
652 mouseDown = true; 689 mouseDown = true;
653 mSelStart = getDayIndexFrom(e->x(), e->y()); 690 mSelStart = getDayIndexFrom(e->x(), e->y());
654 if (mSelStart > NUMDAYS-1) mSelStart=NUMDAYS-1; 691 if (mSelStart > NUMDAYS-1) mSelStart=NUMDAYS-1;
655 mSelInit = mSelStart; 692 mSelInit = mSelStart;
656 mSelEnd = mSelStart; 693 mSelEnd = mSelStart;
657 mRedrawNeeded = true; 694 mRedrawNeeded = true;
658 repaint(false); 695 repaint(false);
659} 696}
660 697
661void KODayMatrix::mouseReleaseEvent (QMouseEvent* e) 698void KODayMatrix::mouseReleaseEvent (QMouseEvent* e)
662{ 699{
663 mRedrawNeeded = true; 700 mRedrawNeeded = true;
664 if ( e->button() == LeftButton ) 701 if ( e->button() == LeftButton )
665 if ( ! mouseDown ) { 702 if ( ! mouseDown ) {
666 return; 703 return;
667 } 704 }
668 else 705 else
669 mouseDown = false; 706 mouseDown = false;
670 int tmp = getDayIndexFrom(e->x(), e->y()); 707 int tmp = getDayIndexFrom(e->x(), e->y());
671 if (tmp > NUMDAYS-1) tmp=NUMDAYS-1; 708 if (tmp > NUMDAYS-1) tmp=NUMDAYS-1;
672 709
673 if (mSelInit > tmp) { 710 if (mSelInit > tmp) {
674 mSelEnd = mSelInit; 711 mSelEnd = mSelInit;
675 if (tmp != mSelStart) { 712 if (tmp != mSelStart) {
676 mSelStart = tmp; 713 mSelStart = tmp;
677 repaint(false); 714 repaint(false);
678 } 715 }
679 } else { 716 } else {
680 mSelStart = mSelInit; 717 mSelStart = mSelInit;
681 718
682 //repaint only if selection has changed 719 //repaint only if selection has changed
683 if (tmp != mSelEnd) { 720 if (tmp != mSelEnd) {
684 mSelEnd = tmp; 721 mSelEnd = tmp;
685 repaint(false); 722 repaint(false);
686 } 723 }
687 } 724 }
688 725
689 DateList daylist; 726 DateList daylist;
690 if ( mSelStart < 0 ) 727 if ( mSelStart < 0 )
691 mSelStart = 0; 728 mSelStart = 0;
692 for (int i = mSelStart; i <= mSelEnd; i++) { 729 for (int i = mSelStart; i <= mSelEnd; i++) {
693 daylist.append(days[i]); 730 daylist.append(days[i]);
694 } 731 }
695 emit selected((const DateList)daylist); 732 emit selected((const DateList)daylist);
696 733
697} 734}
698 735
699void KODayMatrix::mouseMoveEvent (QMouseEvent* e) 736void KODayMatrix::mouseMoveEvent (QMouseEvent* e)
700{ 737{
701 if ( ! mouseDown ) { 738 if ( ! mouseDown ) {
702 return; 739 return;
703 } 740 }
704 mRedrawNeeded = true; 741 mRedrawNeeded = true;
705 int tmp = getDayIndexFrom(e->x(), e->y()); 742 int tmp = getDayIndexFrom(e->x(), e->y());
706 if (tmp > NUMDAYS-1) tmp=NUMDAYS-1; 743 if (tmp > NUMDAYS-1) tmp=NUMDAYS-1;
707 744
708 if (mSelInit > tmp) { 745 if (mSelInit > tmp) {
709 mSelEnd = mSelInit; 746 mSelEnd = mSelInit;
710 if (tmp != mSelStart) { 747 if (tmp != mSelStart) {
711 mSelStart = tmp; 748 mSelStart = tmp;
712 repaint(false); 749 repaint(false);
713 } 750 }
714 } else { 751 } else {
715 mSelStart = mSelInit; 752 mSelStart = mSelInit;
716 753
717 //repaint only if selection has changed 754 //repaint only if selection has changed
718 if (tmp != mSelEnd) { 755 if (tmp != mSelEnd) {
719 mSelEnd = tmp; 756 mSelEnd = tmp;
720 repaint(false); 757 repaint(false);
721 } 758 }
722 } 759 }
723} 760}
724 761
725// ---------------------------------------------------------------------------- 762// ----------------------------------------------------------------------------
726// D R A G ' N D R O P H A N D L I N G 763// D R A G ' N D R O P H A N D L I N G
727// ---------------------------------------------------------------------------- 764// ----------------------------------------------------------------------------
728 765
729void KODayMatrix::dragEnterEvent(QDragEnterEvent *e) 766void KODayMatrix::dragEnterEvent(QDragEnterEvent *e)
730{ 767{
731#ifndef KORG_NODND 768#ifndef KORG_NODND
732 if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) { 769 if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) {
733 e->ignore(); 770 e->ignore();
734 return; 771 return;
735 } 772 }
736 773
737 // some visual feedback 774 // some visual feedback
738// oldPalette = palette(); 775// oldPalette = palette();
739// setPalette(my_HilitePalette); 776// setPalette(my_HilitePalette);
740// update(); 777// update();
741#endif 778#endif
742} 779}
743 780
744void KODayMatrix::dragMoveEvent(QDragMoveEvent *e) 781void KODayMatrix::dragMoveEvent(QDragMoveEvent *e)
745{ 782{
746#ifndef KORG_NODND 783#ifndef KORG_NODND
747 if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) { 784 if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) {
748 e->ignore(); 785 e->ignore();
749 return; 786 return;
750 } 787 }
751 788
752 e->accept(); 789 e->accept();
753#endif 790#endif
754} 791}
755 792
756void KODayMatrix::dragLeaveEvent(QDragLeaveEvent */*dl*/) 793void KODayMatrix::dragLeaveEvent(QDragLeaveEvent */*dl*/)
757{ 794{
758#ifndef KORG_NODND 795#ifndef KORG_NODND
759// setPalette(oldPalette); 796// setPalette(oldPalette);
760// update(); 797// update();
761#endif 798#endif
762} 799}
763 800
764void KODayMatrix::dropEvent(QDropEvent *e) 801void KODayMatrix::dropEvent(QDropEvent *e)
765{ 802{
766#ifndef KORG_NODND 803#ifndef KORG_NODND
767// kdDebug() << "KODayMatrix::dropEvent(e) begin" << endl; 804// kdDebug() << "KODayMatrix::dropEvent(e) begin" << endl;
768 805
769 if (!mCalendar || !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) { 806 if (!mCalendar || !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) {
770 e->ignore(); 807 e->ignore();
771 return; 808 return;
772 } 809 }
773 810
774 DndFactory factory( mCalendar ); 811 DndFactory factory( mCalendar );
775 Event *event = factory.createDrop(e); 812 Event *event = factory.createDrop(e);
776 813
777 if (event) { 814 if (event) {
778 e->acceptAction(); 815 e->acceptAction();
779 816
780 Event *existingEvent = mCalendar->event(event->uid()); 817 Event *existingEvent = mCalendar->event(event->uid());
781 818
782 if(existingEvent) { 819 if(existingEvent) {
783 // uniquify event 820 // uniquify event
784 event->recreate(); 821 event->recreate();
785/* 822/*
786 KMessageBox::sorry(this, 823 KMessageBox::sorry(this,
787 i18n("Event already exists in this calendar."), 824 i18n("Event already exists in this calendar."),
788 i18n("Drop Event")); 825 i18n("Drop Event"));
789 delete event; 826 delete event;
790 return; 827 return;
791*/ 828*/
792 } 829 }
793// kdDebug() << "Drop new Event" << endl; 830// kdDebug() << "Drop new Event" << endl;
794 // Adjust date 831 // Adjust date
795 QDateTime start = event->dtStart(); 832 QDateTime start = event->dtStart();
796 QDateTime end = event->dtEnd(); 833 QDateTime end = event->dtEnd();
797 int duration = start.daysTo(end); 834 int duration = start.daysTo(end);
798 int idx = getDayIndexFrom(e->pos().x(), e->pos().y()); 835 int idx = getDayIndexFrom(e->pos().x(), e->pos().y());
799 836
800 start.setDate(days[idx]); 837 start.setDate(days[idx]);
801 end.setDate(days[idx].addDays(duration)); 838 end.setDate(days[idx].addDays(duration));
802 839
803 event->setDtStart(start); 840 event->setDtStart(start);
804 event->setDtEnd(end); 841 event->setDtEnd(end);
805 mCalendar->addEvent(event); 842 mCalendar->addEvent(event);
806 843
807 emit eventDropped(event); 844 emit eventDropped(event);
808 } else { 845 } else {
809// kdDebug() << "KODayMatrix::dropEvent(): Event from drop not decodable" << endl; 846// kdDebug() << "KODayMatrix::dropEvent(): Event from drop not decodable" << endl;
810 e->ignore(); 847 e->ignore();
811 } 848 }
812#endif 849#endif
813} 850}
814 851
815// ---------------------------------------------------------------------------- 852// ----------------------------------------------------------------------------
816// P A I N T E V E N T H A N D L I N G 853// P A I N T E V E N T H A N D L I N G
817// ---------------------------------------------------------------------------- 854// ----------------------------------------------------------------------------
818 855
819void KODayMatrix::paintEvent(QPaintEvent * pevent) 856void KODayMatrix::paintEvent(QPaintEvent * pevent)
820{ 857{
821 858
822 if ( width() <= 0 || height() <= 0 ) 859 if ( width() <= 0 || height() <= 0 )
823 return; 860 return;
824 if ( mPendingUpdateBeforeRepaint ) { 861 if ( mPendingUpdateBeforeRepaint ) {
825 updateViewTimed(); 862 updateViewTimed();
826 mPendingUpdateBeforeRepaint = false; 863 mPendingUpdateBeforeRepaint = false;
827 } 864 }
828#if 0 865#if 0
829 if ( myPix.width() != width() || myPix.height()!=height() ) { 866 if ( myPix.width() != width() || myPix.height()!=height() ) {
830 myPix.resize(size() ); 867 myPix.resize(size() );
831 mRedrawNeeded = true; 868 mRedrawNeeded = true;
832 } 869 }
833#endif 870#endif
834 if ( oldW != width() || oldH !=height() ) 871 if ( oldW != width() || oldH !=height() )
835 mRedrawNeeded = true; 872 mRedrawNeeded = true;
836 873
837 oldH = height() ; 874 oldH = height() ;
838 oldW = width(); 875 oldW = width();
839 if ( myPix.width() < width() || myPix.height() < height() ) { 876 if ( myPix.width() < width() || myPix.height() < height() ) {
840 myPix.resize(size() ); 877 myPix.resize(size() );
841 mRedrawNeeded = true; 878 mRedrawNeeded = true;
842 879
843 } 880 }
844 881
845 if ( mRedrawNeeded ) { 882 if ( mRedrawNeeded ) {
846 //qDebug("REDRAW "); 883 //qDebug("REDRAW ");
847 QPainter p(&myPix); 884 QPainter p(&myPix);
848 p.setFont(font()); 885 p.setFont(font());
849 886
850 887
851 int dheight = daysize.height(); 888 int dheight = daysize.height();
852 int dwidth = daysize.width(); 889 int dwidth = daysize.width();
853 int row,col; 890 int row,col;
854 int selw, selh; 891 int selw, selh;
855 int xyOff = frameWidth(); 892 int xyOff = frameWidth();
856 int colModulo = (width()-2) % 7; 893 int colModulo = (width()-2) % 7;
857 int rowModulo = (height()-2) % 6; 894 int rowModulo = (height()-2) % 6;
858 //qDebug("col %d row %d ",colModulo,rowModulo ); 895 //qDebug("col %d row %d ",colModulo,rowModulo );
859 896
860 bool isRTL = KOGlobals::self()->reverseLayout(); 897 bool isRTL = KOGlobals::self()->reverseLayout();
861 898
862 // draw background and topleft frame 899 // draw background and topleft frame
863 p.fillRect(0,0,width(),height(), mDefaultBackColor); 900 p.fillRect(0,0,width(),height(), mDefaultBackColor);
864 p.setPen(mDefaultTextColor); 901 p.setPen(mDefaultTextColor);
865 p.drawRect(0, 0, width(), height()); 902 p.drawRect(0, 0, width(), height());
866 int mSelStartT = mSelStart; 903 int mSelStartT = mSelStart;
867 int mSelEndT = mSelEnd; 904 int mSelEndT = mSelEnd;
868 if ( mSelEndT >= NUMDAYS ) 905 if ( mSelEndT >= NUMDAYS )
869 mSelEndT = NUMDAYS-1; 906 mSelEndT = NUMDAYS-1;
870 // draw selected days with highlighted background color 907 // draw selected days with highlighted background color
871 if (mSelStart != NOSELECTION) { 908 if (mSelStart != NOSELECTION) {
872 bool skip = false; 909 bool skip = false;
873 if ( ! mouseDown ) { 910 if ( ! mouseDown ) {
874 int mo = days[20].month(); 911 int mo = days[20].month();
875 //qDebug("-- %d %d ", mSelStartT, mSelEndT); 912 //qDebug("-- %d %d ", mSelStartT, mSelEndT);
876 //qDebug("%d %d %d - d %d", mo, days[mSelStartT].month() , days[mSelEndT].month(), days[mSelEndT].day() ); 913 //qDebug("%d %d %d - d %d", mo, days[mSelStartT].month() , days[mSelEndT].month(), days[mSelEndT].day() );
877 int startMo = days[mSelStartT].month(); 914 int startMo = days[mSelStartT].month();
878 int endMo = days[mSelEndT].month(); 915 int endMo = days[mSelEndT].month();
879 if ( startMo == 12 && mo == 1 && endMo <= 2 ) 916 if ( startMo == 12 && mo == 1 && endMo <= 2 )
880 startMo = 1; 917 startMo = 1;
881 if ( endMo == 1 && mo == 12 ) 918 if ( endMo == 1 && mo == 12 )
882 endMo = 12; 919 endMo = 12;
883 if ( mo == 12 && startMo == 1 ) 920 if ( mo == 12 && startMo == 1 )
884 startMo = 13; 921 startMo = 13;
885 if ( (startMo > mo || endMo < mo) ) { 922 if ( (startMo > mo || endMo < mo) ) {
886 skip = true; 923 skip = true;
887 } else { 924 } else {
888 if ( days[mSelStartT].month() != mo ) { 925 if ( days[mSelStartT].month() != mo ) {
889 int add = days[mSelStartT].daysInMonth ()-days[mSelStartT].day(); 926 int add = days[mSelStartT].daysInMonth ()-days[mSelStartT].day();
890 mSelStartT += add +1; 927 mSelStartT += add +1;
891 } 928 }
892 if ( days[mSelEndT].month() != mo ) { 929 if ( days[mSelEndT].month() != mo ) {
893 int sub = days[mSelEndT].day(); 930 int sub = days[mSelEndT].day();
894 mSelEndT -= sub ; 931 mSelEndT -= sub ;
895 } 932 }
896 } 933 }
897 } 934 }
898 //qDebug("SKIP %d ", skip); 935 //qDebug("SKIP %d ", skip);
899 if ( ! skip ) { 936 if ( ! skip ) {
900 row = mSelStartT/7; 937 row = mSelStartT/7;
901 col = mSelStartT -row*7; 938 col = mSelStartT -row*7;
902 QColor selcol = KOPrefs::instance()->mHighlightColor; 939 QColor selcol = KOPrefs::instance()->mHighlightColor;
903 int addCol = 0; 940 int addCol = 0;
904 int addRow = 0; 941 int addRow = 0;
905 int addRow2 = 0; 942 int addRow2 = 0;
906 int addCol2 = 0; 943 int addCol2 = 0;
907 if (row == mSelEndT/7) { 944 if (row == mSelEndT/7) {
908 if ( rowModulo ) { 945 if ( rowModulo ) {
909 if ( row >= 6 - rowModulo ) 946 if ( row >= 6 - rowModulo )
910 addRow = row - 5 + rowModulo; 947 addRow = row - 5 + rowModulo;
911 } 948 }
912 if ( colModulo ) { 949 if ( colModulo ) {
913 int colt1 = mSelEndT%7; 950 int colt1 = mSelEndT%7;
914 //qDebug("colt1 %d ", colt1 ); 951 //qDebug("colt1 %d ", colt1 );
915 if ( colt1 >= 7 - colModulo ) 952 if ( colt1 >= 7 - colModulo )
916 addCol = colt1 - 7 + colModulo+1; 953 addCol = colt1 - 7 + colModulo+1;
917 int colt = mSelStartT%7; 954 int colt = mSelStartT%7;
918 if ( colt >= 7 - colModulo ) 955 if ( colt >= 7 - colModulo )
919 addCol2 = colt - 7 + colModulo; 956 addCol2 = colt - 7 + colModulo;
920 addCol -= addCol2; 957 addCol -= addCol2;
921 //qDebug("COL %d %d %d %d ",col , colt1 ,addCol ,addCol2 ); 958 //qDebug("COL %d %d %d %d ",col , colt1 ,addCol ,addCol2 );
922 } 959 }
923 // Single row selection 960 // Single row selection
924 //if ( row == 0) 961 //if ( row == 0)
925 // addRow = 1; 962 // addRow = 1;
926 p.fillRect(isRTL ? (7 - (mSelEndT-mSelStartT+1) - col)*dwidth : col*dwidth+1+addCol2, 963 p.fillRect(isRTL ? (7 - (mSelEndT-mSelStartT+1) - col)*dwidth : col*dwidth+1+addCol2,
927 row*dheight+addRow, (mSelEndT-mSelStartT+1)*dwidth+addCol, dheight+1, selcol); 964 row*dheight+addRow, (mSelEndT-mSelStartT+1)*dwidth+addCol, dheight+1, selcol);
928 } else { 965 } else {
929 // draw first row to the right 966 // draw first row to the right
930 if ( colModulo ) { 967 if ( colModulo ) {
931 if ( col >= 7 - colModulo ) 968 if ( col >= 7 - colModulo )
932 addCol2 = col - 7 + colModulo; 969 addCol2 = col - 7 + colModulo;
933 } 970 }
934 if ( rowModulo ) { 971 if ( rowModulo ) {
935 if ( row >= 6 - rowModulo ) 972 if ( row >= 6 - rowModulo )
936 addRow = row - 5 + rowModulo; 973 addRow = row - 5 + rowModulo;
937 } 974 }
938 //if ( row == 0) 975 //if ( row == 0)
939 // addRow = 1; 976 // addRow = 1;
940 int drawWid = width()-(col*dwidth+1+addCol2)-1; 977 int drawWid = width()-(col*dwidth+1+addCol2)-1;
941 p.fillRect(isRTL ? 0 : col*dwidth+1+addCol2, row*dheight+addRow, drawWid, 978 p.fillRect(isRTL ? 0 : col*dwidth+1+addCol2, row*dheight+addRow, drawWid,
942 dheight+1, selcol); 979 dheight+1, selcol);
943 // draw full block till last line 980 // draw full block till last line
944 selh = mSelEndT/7-row; 981 selh = mSelEndT/7-row;
945 addRow = 0; 982 addRow = 0;
946 if ( rowModulo ) { 983 if ( rowModulo ) {
947 if ( mSelEndT/7 >= 6 - rowModulo ) 984 if ( mSelEndT/7 >= 6 - rowModulo )
948 addRow = mSelEndT/7 - 5 + rowModulo; 985 addRow = mSelEndT/7 - 5 + rowModulo;
949 } 986 }
950 //qDebug("%d %d %d ",selh, row, addRow ); 987 //qDebug("%d %d %d ",selh, row, addRow );
951 int addrow2 = addRow-selh+1; 988 int addrow2 = addRow-selh+1;
952 if ( addrow2 < 0 ) 989 if ( addrow2 < 0 )
953 addrow2 = 0; 990 addrow2 = 0;
954 if (selh > 1) { 991 if (selh > 1) {
955 p.fillRect(1, (row+1)*dheight+addrow2, 7*dwidth+colModulo, (selh-1)*dheight+addRow,selcol); 992 p.fillRect(1, (row+1)*dheight+addrow2, 7*dwidth+colModulo, (selh-1)*dheight+addRow,selcol);
956 } 993 }
957 // draw last block from left to mSelEndT 994 // draw last block from left to mSelEndT
958 selw = mSelEndT-7*(mSelEndT/7)+1; 995 selw = mSelEndT-7*(mSelEndT/7)+1;
959 //qDebug("esl %d ",selw ); 996 //qDebug("esl %d ",selw );
960 int add = 0; 997 int add = 0;
961 if ( colModulo ) { 998 if ( colModulo ) {
962 add = 7 - colModulo; 999 add = 7 - colModulo;
963 if ( selw > add ) 1000 if ( selw > add )
964 add = selw - add; 1001 add = selw - add;
965 else 1002 else
966 add = 0; 1003 add = 0;
967 } 1004 }
968 //qDebug("add %d ", add); 1005 //qDebug("add %d ", add);
969 p.fillRect(isRTL ? (7-selw)*dwidth : 1, (row+selh)*dheight+addRow, 1006 p.fillRect(isRTL ? (7-selw)*dwidth : 1, (row+selh)*dheight+addRow,
970 selw*dwidth+add, dheight+1, selcol); 1007 selw*dwidth+add, dheight+1, selcol);
971 } 1008 }
972 } 1009 }
973 } 1010 }
974 1011
975 // iterate over all days in the matrix and draw the day label in appropriate colors 1012 // iterate over all days in the matrix and draw the day label in appropriate colors
976 QColor actcol = mDefaultTextColorShaded; 1013 QColor actcol = mDefaultTextColorShaded;
977 p.setPen(actcol); 1014 p.setPen(actcol);
978 QPen tmppen; 1015 QPen tmppen;
979 for(int i = 0; i < NUMDAYS; i++) { 1016 for(int i = 0; i < NUMDAYS; i++) {
980 row = i/7; 1017 row = i/7;
981 col = isRTL ? 6-(i-row*7) : i-row*7; 1018 col = isRTL ? 6-(i-row*7) : i-row*7;
982 1019
983 // if it is the first day of a month switch color from normal to shaded and vice versa 1020 // if it is the first day of a month switch color from normal to shaded and vice versa
984 if ( KOGlobals::self()->calendarSystem()->day( days[i] ) == 1) { 1021 if ( KOGlobals::self()->calendarSystem()->day( days[i] ) == 1) {
985 if (actcol == mDefaultTextColorShaded) { 1022 if (actcol == mDefaultTextColorShaded) {
986 actcol = mDefaultTextColor; 1023 actcol = mDefaultTextColor;
987 } else { 1024 } else {
988 actcol = mDefaultTextColorShaded; 1025 actcol = mDefaultTextColorShaded;
989 } 1026 }
990 p.setPen(actcol); 1027 p.setPen(actcol);
991 } 1028 }
992 if (actcol == mDefaultTextColorShaded) { 1029 if (actcol == mDefaultTextColorShaded) {
993 if ( ! mouseDown ) { 1030 if ( ! mouseDown ) {
994 continue; 1031 continue;
995 } 1032 }
996 } 1033 }
997 //Reset pen color after selected days block 1034 //Reset pen color after selected days block
998 if (i == mSelEndT+1) { 1035 if (i == mSelEndT+1) {
999 p.setPen(actcol); 1036 p.setPen(actcol);
1000 } 1037 }
1001 1038
1002 // if today then draw rectangle around day 1039 // if today then draw rectangle around day
1003 if (today == i) { 1040 if (today == i) {
1004 tmppen = p.pen(); 1041 tmppen = p.pen();
1005 QPen mTodayPen(p.pen()); 1042 QPen mTodayPen(p.pen());
1006 if ( daysize.width() < 20 ) 1043 if ( daysize.width() < 20 )
1007 mTodayPen.setWidth(1); 1044 mTodayPen.setWidth(1);
1008 else 1045 else
1009 mTodayPen.setWidth(mTodayMarginWidth); 1046 mTodayPen.setWidth(mTodayMarginWidth);
1010 //draw red rectangle for holidays 1047 //draw red rectangle for holidays
1011 if (pDays.testBit(i)) { 1048 if (pDays.testBit(i)) {
1012 if (actcol == mDefaultTextColor) { 1049 if (actcol == mDefaultTextColor) {
1013 mTodayPen.setColor(KOPrefs::instance()->mHolidayColor); 1050 mTodayPen.setColor(KOPrefs::instance()->mHolidayColor);
1014 } else { 1051 } else {
1015 mTodayPen.setColor(mHolidayColorShaded); 1052 mTodayPen.setColor(mHolidayColorShaded);
1016 } 1053 }
1017 } 1054 }
1018 //draw gray rectangle for today if in selection 1055 //draw gray rectangle for today if in selection
1019 if (i >= mSelStartT && i <= mSelEndT) { 1056 if (i >= mSelStartT && i <= mSelEndT) {
1020 QColor grey("grey"); 1057 QColor grey("grey");
1021 mTodayPen.setColor(grey); 1058 mTodayPen.setColor(grey);
1022 } 1059 }
1023 p.setPen(mTodayPen); 1060 p.setPen(mTodayPen);
1024 1061
1025 1062
1026 int addCol = 0; 1063 int addCol = 0;
1027 int addRow = 0; 1064 int addRow = 0;
1028 if (rowModulo) { 1065 if (rowModulo) {
1029 if ( row >= 6 - rowModulo ) 1066 if ( row >= 6 - rowModulo )
1030 addRow = row - 5 + rowModulo; 1067 addRow = row - 5 + rowModulo;
1031 } 1068 }
1032 if ( colModulo ) { 1069 if ( colModulo ) {
1033 if ( col >= 7 - colModulo ) 1070 if ( col >= 7 - colModulo )
1034 addCol = col - 6 + colModulo-1; 1071 addCol = col - 6 + colModulo-1;
1035 } 1072 }
1036 1073
1037 addCol += 1; 1074 addCol += 1;
1038 if ( row == 0 ) 1075 if ( row == 0 )
1039 addRow = 1; 1076 addRow = 1;
1040 p.drawRect(col*dwidth+addCol, row*dheight+addRow, dwidth+1, dheight+1); 1077 p.drawRect(col*dwidth+addCol, row*dheight+addRow, dwidth+1, dheight+1);
1041 p.setPen(tmppen); 1078 p.setPen(tmppen);
1042 } 1079 }
1043 1080
1044 // if any events are on that day then draw it using a bold font 1081 // if any events are on that day then draw it using a bold font
1045 if ( eDays.testBit(i) ) { 1082 if ( eDays.testBit(i) ) {
1046 QFont myFont = font(); 1083 QFont myFont = font();
1047 myFont.setBold(true); 1084 myFont.setBold(true);
1048 p.setFont(myFont); 1085 p.setFont(myFont);
1049 } 1086 }
1050 1087
1051 // if it is a holiday then use the default holiday color 1088 // if it is a holiday then use the default holiday color
1052 if ( pDays.testBit(i)) { 1089 if ( pDays.testBit(i)) {
1053 if ( bDays.testBit(i) ) { 1090 if ( bDays.testBit(i) ) {
1054 if ( hDays.testBit(i) ) 1091 if ( hDays.testBit(i) )
1055 p.setPen(QColor(Qt::green)); 1092 p.setPen(QColor(0,200,0));
1056 else 1093 else
1057 p.setPen(QColor(Qt::green).dark()); 1094 p.setPen(QColor(Qt::blue));
1058 } else { 1095 } else {
1059 if (actcol == mDefaultTextColor ) { 1096 if (actcol == mDefaultTextColor ) {
1060 p.setPen(KOPrefs::instance()->mHolidayColor); 1097 p.setPen(KOPrefs::instance()->mHolidayColor);
1061 } else { 1098 } else {
1062 p.setPen(mHolidayColorShaded); 1099 p.setPen(mHolidayColorShaded);
1063 } 1100 }
1064 } 1101 }
1065 } 1102 }
1066 1103
1067 // draw selected days with special color 1104 // draw selected days with special color
1068 // DO NOT specially highlight holidays in selection ! 1105 // DO NOT specially highlight holidays in selection !
1069 if (i >= mSelStartT && i <= mSelEndT) { 1106 if (i >= mSelStartT && i <= mSelEndT) {
1070 ;//p.setPen(mSelectedDaysColor); 1107 ;//p.setPen(mSelectedDaysColor);
1071 } 1108 }
1072 1109
1073 int addCol = 0; 1110 int addCol = 0;
1074 int addRow = 0; 1111 int addRow = 0;
1075 if ( colModulo ) { 1112 if ( colModulo ) {
1076 if ( col >= 7 - colModulo ) 1113 if ( col >= 7 - colModulo )
1077 addCol = col - 7 + colModulo; 1114 addCol = col - 7 + colModulo;
1078 } 1115 }
1079 if ( rowModulo ) { 1116 if ( rowModulo ) {
1080 if ( row >= 6 - rowModulo ) 1117 if ( row >= 6 - rowModulo )
1081 addRow = row - 5 + rowModulo; 1118 addRow = row - 5 + rowModulo;
1082 } 1119 }
1083 //qDebug("add %d %d -- %d %d ", col, addCol, row, addRow); 1120 //qDebug("add %d %d -- %d %d ", col, addCol, row, addRow);
1084 ++addCol;//++addCol; 1121 ++addCol;//++addCol;
1085 if ( row == 0) 1122 if ( row == 0)
1086 addRow = 1; 1123 addRow = 1;
1087 p.drawText(col*dwidth+addCol, row*dheight+addRow, dwidth, dheight, 1124 p.drawText(col*dwidth+addCol, row*dheight+addRow, dwidth, dheight,
1088 Qt::AlignHCenter | Qt::AlignVCenter, daylbls[i]); 1125 Qt::AlignHCenter | Qt::AlignVCenter, daylbls[i]);
1089 1126
1090 // reset color to actual color 1127 // reset color to actual color
1091 if (pDays.testBit(i)) { 1128 if (pDays.testBit(i)) {
1092 p.setPen(actcol); 1129 p.setPen(actcol);
1093 } 1130 }
1094 // reset bold font to plain font 1131 // reset bold font to plain font
1095 if ( eDays.testBit(i)) { 1132 if ( eDays.testBit(i)) {
1096 QFont myFont = font(); 1133 QFont myFont = font();
1097 myFont.setBold(false); 1134 myFont.setBold(false);
1098 p.setFont(myFont); 1135 p.setFont(myFont);
1099 } 1136 }
1100 } 1137 }
1101 } else { 1138 } else {
1102 //qDebug("NO redraw "); 1139 //qDebug("NO redraw ");
1103 } 1140 }
1104 1141
1105 bitBlt (this, pevent->rect().topLeft(), &myPix , pevent->rect() ,CopyROP); 1142 bitBlt (this, pevent->rect().topLeft(), &myPix , pevent->rect() ,CopyROP);
1106 mRedrawNeeded = false; 1143 mRedrawNeeded = false;
1107} 1144}
1108 1145
1109// ---------------------------------------------------------------------------- 1146// ----------------------------------------------------------------------------
1110// R E SI Z E E V E N T H A N D L I N G 1147// R E SI Z E E V E N T H A N D L I N G
1111// ---------------------------------------------------------------------------- 1148// ----------------------------------------------------------------------------
1112 1149
1113void KODayMatrix::resizeEvent(QResizeEvent *) 1150void KODayMatrix::resizeEvent(QResizeEvent *)
1114{ 1151{
1115 QRect sz = frameRect(); 1152 QRect sz = frameRect();
1116 daysize.setHeight(sz.height()*7 / NUMDAYS); 1153 daysize.setHeight(sz.height()*7 / NUMDAYS);
1117 daysize.setWidth(sz.width() / 7); 1154 daysize.setWidth(sz.width() / 7);
1118} 1155}
1119 1156
1120QSize KODayMatrix::sizeHint() const 1157QSize KODayMatrix::sizeHint() const
1121{ 1158{
1122 1159
1123 QFontMetrics fm ( font() ); 1160 QFontMetrics fm ( font() );
1124 int wid = fm.width( "30") *7+3; 1161 int wid = fm.width( "30") *7+3;
1125 int hei = fm.height() * 6+3; 1162 int hei = fm.height() * 6+3;
1126 //qDebug("KODayMatrix::sizeHint()********************* %d %d", wid , hei); 1163 //qDebug("KODayMatrix::sizeHint()********************* %d %d", wid , hei);
1127 return QSize ( wid, hei ); 1164 return QSize ( wid, hei );
1128 1165
1129} 1166}
diff --git a/korganizer/kodaymatrix.h b/korganizer/kodaymatrix.h
index b686bd7..a3216d6 100644
--- a/korganizer/kodaymatrix.h
+++ b/korganizer/kodaymatrix.h
@@ -1,330 +1,331 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2001 Eitzenberger Thomas <thomas.eitzenberger@siemens.at> 3 Copyright (c) 2001 Eitzenberger Thomas <thomas.eitzenberger@siemens.at>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23#ifndef _KODAYMAT_H 23#ifndef _KODAYMAT_H
24#define _KODAYMAT_H 24#define _KODAYMAT_H
25 25
26#include <libkcal/calendar.h> 26#include <libkcal/calendar.h>
27 27
28#include <qstring.h> 28#include <qstring.h>
29#include <qframe.h> 29#include <qframe.h>
30#include <qcolor.h> 30#include <qcolor.h>
31#include <qpen.h> 31#include <qpen.h>
32#include <qdatetime.h> 32#include <qdatetime.h>
33#include <qtooltip.h> 33#include <qtooltip.h>
34#include <qpixmap.h> 34#include <qpixmap.h>
35#include <qbitarray.h> 35#include <qbitarray.h>
36#include <qmap.h> 36#include <qmap.h>
37 37
38class QDragEnterEvent; 38class QDragEnterEvent;
39class QDragMoveEvent; 39class QDragMoveEvent;
40class QDragLeaveEvent; 40class QDragLeaveEvent;
41class QDropEvent; 41class QDropEvent;
42 42
43class KODayMatrix; 43class KODayMatrix;
44class KODaymatrixWhatsThis; 44class KODaymatrixWhatsThis;
45 45
46using namespace KCal; 46using namespace KCal;
47 47
48 48
49/** 49/**
50 * small helper class to dynamically show tooltips inside the day matrix. 50 * small helper class to dynamically show tooltips inside the day matrix.
51 * This class asks the day matrix object for a appropriate label which 51 * This class asks the day matrix object for a appropriate label which
52 * is in our special case the name of the holiday or null if this day is no holiday. 52 * is in our special case the name of the holiday or null if this day is no holiday.
53 */ 53 */
54class DynamicTip : public QToolTip 54class DynamicTip : public QToolTip
55{ 55{
56public: 56public:
57 57
58 /** 58 /**
59 * Constructor that expects a KODayMatrix object as parent. 59 * Constructor that expects a KODayMatrix object as parent.
60 * 60 *
61 * @param parent the parent KODayMatrix control. 61 * @param parent the parent KODayMatrix control.
62 */ 62 */
63 DynamicTip(QWidget* parent ); 63 DynamicTip(QWidget* parent );
64 64
65protected: 65protected:
66 66
67 /** 67 /**
68 * Qt's callback to ask the object to provide an approrpiate text for the 68 * Qt's callback to ask the object to provide an approrpiate text for the
69 * tooltip to be shown. 69 * tooltip to be shown.
70 * 70 *
71 * @param pos coordinates of the mouse. 71 * @param pos coordinates of the mouse.
72 */ 72 */
73 void maybeTip( const QPoint & pos); 73 void maybeTip( const QPoint & pos);
74 74
75private: 75private:
76 76
77 /** the parent control this tooltip is designed for. */ 77 /** the parent control this tooltip is designed for. */
78 KODayMatrix* matrix; 78 KODayMatrix* matrix;
79}; 79};
80 80
81/** 81/**
82 * replacement for kdpdatebuton.cpp that used 42 widgets for the day matrix to be displayed. 82 * replacement for kdpdatebuton.cpp that used 42 widgets for the day matrix to be displayed.
83 * Cornelius thought this was a waste of memory and a lot of overhead. 83 * Cornelius thought this was a waste of memory and a lot of overhead.
84 * In addition the selection was not very intuitive so I decided to rewrite it using a QFrame 84 * In addition the selection was not very intuitive so I decided to rewrite it using a QFrame
85 * that draws the labels and allows for dragging selection while maintaining nearly full 85 * that draws the labels and allows for dragging selection while maintaining nearly full
86 * compatibility in behaviour with its predecessor. 86 * compatibility in behaviour with its predecessor.
87 * 87 *
88 * The following functionality has been changed: 88 * The following functionality has been changed:
89 * 89 *
90 * o when shifting events in the agenda view from one day to another the day matrix is updated now 90 * o when shifting events in the agenda view from one day to another the day matrix is updated now
91 * o TODO ET dragging an event to the matrix will MOVE not COPY the event to the new date. 91 * o TODO ET dragging an event to the matrix will MOVE not COPY the event to the new date.
92 * o no support for Ctrl+click to create groups of dates 92 * o no support for Ctrl+click to create groups of dates
93 * (This has not really been supported in the predecessor. It was not very intuitive nor was it 93 * (This has not really been supported in the predecessor. It was not very intuitive nor was it
94 * user friendly.) 94 * user friendly.)
95 * This feature has been replaced with dragging a selection on the matrix. The matrix will 95 * This feature has been replaced with dragging a selection on the matrix. The matrix will
96 * automatically choose the appropriate selection (e.g. you are not any longer able to select 96 * automatically choose the appropriate selection (e.g. you are not any longer able to select
97 * two distinct groups of date selections as in the old class) 97 * two distinct groups of date selections as in the old class)
98 * o now that you can select more then a week it can happen that not all selected days are 98 * o now that you can select more then a week it can happen that not all selected days are
99 * displayed in the matrix. However this is preferred to the alternative which would mean to 99 * displayed in the matrix. However this is preferred to the alternative which would mean to
100 * adjust the selection and leave some days undisplayed while scrolling through the months 100 * adjust the selection and leave some days undisplayed while scrolling through the months
101 * 101 *
102 * @short day matrix widget of the KDateNavigator 102 * @short day matrix widget of the KDateNavigator
103 * 103 *
104 * @author Eitzenberger Thomas 104 * @author Eitzenberger Thomas
105 */ 105 */
106class KODayMatrix: public QFrame { 106class KODayMatrix: public QFrame {
107 107
108 Q_OBJECT 108 Q_OBJECT
109 109
110public: 110public:
111 111
112 /** constructor to create a day matrix widget. 112 /** constructor to create a day matrix widget.
113 * 113 *
114 * @param parent widget that is the parent of the day matrix. Normally this should 114 * @param parent widget that is the parent of the day matrix. Normally this should
115 * be a KDateNavigator 115 * be a KDateNavigator
116 * @param calendar instance of a calendar on which all calculations are based 116 * @param calendar instance of a calendar on which all calculations are based
117 * @param date start date of the matrix (is expected to be already fixed). It is 117 * @param date start date of the matrix (is expected to be already fixed). It is
118 * assumed that this date is the first week day to be shown in the matrix. 118 * assumed that this date is the first week day to be shown in the matrix.
119 * @param name name of the widget 119 * @param name name of the widget
120 */ 120 */
121 KODayMatrix( QWidget *parent, const char *name ); 121 KODayMatrix( QWidget *parent, const char *name );
122 //KODayMatrix(QWidget *parent, Calendar* calendar, QDate date, const char *name ); 122 //KODayMatrix(QWidget *parent, Calendar* calendar, QDate date, const char *name );
123 123
124 /** destructor that deallocates all dynamically allocated private members. 124 /** destructor that deallocates all dynamically allocated private members.
125 */ 125 */
126 ~KODayMatrix(); 126 ~KODayMatrix();
127 127
128 /** updates the day matrix to start with the given date. Does all the necessary 128 /** updates the day matrix to start with the given date. Does all the necessary
129 * checks for holidays or events on a day and stores them for display later on. 129 * checks for holidays or events on a day and stores them for display later on.
130 * Does NOT update the view visually. Call repaint() for this. 130 * Does NOT update the view visually. Call repaint() for this.
131 * 131 *
132 * @param actdate recalculates the day matrix to show NUMDAYS starting from this 132 * @param actdate recalculates the day matrix to show NUMDAYS starting from this
133 * date. 133 * date.
134 */ 134 */
135 void updateView(QDate actdate); 135 void updateView(QDate actdate);
136 void updateEvents(); 136 void updateEvents();
137 137
138 /** returns the QDate object associated with day indexed by the 138 /** returns the QDate object associated with day indexed by the
139 * supplied offset. 139 * supplied offset.
140 */ 140 */
141 const QDate& getDate(int offset); 141 const QDate& getDate(int offset);
142 void setCalendar( Calendar * ); 142 void setCalendar( Calendar * );
143 /** returns the official name of this holy day or 0 if there is no label 143 /** returns the official name of this holy day or 0 if there is no label
144 * for this day. 144 * for this day.
145 */ 145 */
146 QString getHolidayLabel(int offset); 146 QString getHolidayLabel(int offset);
147 147
148 /** adds all actual selected days from mSelStart to mSelEnd to the supplied 148 /** adds all actual selected days from mSelStart to mSelEnd to the supplied
149 * DateList. 149 * DateList.
150 */ 150 */
151 void addSelectedDaysTo(DateList&); 151 void addSelectedDaysTo(DateList&);
152 152
153 /** sets the actual to be displayed selection in the day matrix starting from 153 /** sets the actual to be displayed selection in the day matrix starting from
154 * start and ending with end. Theview must be manually updated by calling 154 * start and ending with end. Theview must be manually updated by calling
155 * repaint. (?) 155 * repaint. (?)
156 */ 156 */
157 bool setSelectedDaysFrom(const QDate& start, const QDate& end); 157 bool setSelectedDaysFrom(const QDate& start, const QDate& end);
158 void clearSelection(); 158 void clearSelection();
159 159
160 /** Is today visible in the view? Keep this in sync with 160 /** Is today visible in the view? Keep this in sync with
161 * the values today (below) can take. 161 * the values today (below) can take.
162 */ 162 */
163 bool isTodayVisible() const { return today>=0; } ; 163 bool isTodayVisible() const { return today>=0; } ;
164 164
165 /** If today is visible, then we can find out if today is 165 /** If today is visible, then we can find out if today is
166 * near the beginning or the end of the month. 166 * near the beginning or the end of the month.
167 * This is dependent on today remaining the index 167 * This is dependent on today remaining the index
168 * in the array of visible dates and going from 168 * in the array of visible dates and going from
169 * top left (0) to bottom right (41). 169 * top left (0) to bottom right (41).
170 */ 170 */
171 bool isBeginningOfMonth() const { return today<=8; } ; 171 bool isBeginningOfMonth() const { return today<=8; } ;
172 bool isEndOfMonth() const { return today>=27; } ; 172 bool isEndOfMonth() const { return today>=27; } ;
173 QString getWhatsThisText( QPoint ) ; 173 QString getWhatsThisText( QPoint ) ;
174 QSize sizeHint() const; 174 QSize sizeHint() const;
175 QRect frameRect () const { int wid = frameWidth(); return QRect(0+wid,0+wid,width()-wid-wid,height()-wid-wid);} 175 QRect frameRect () const { int wid = frameWidth(); return QRect(0+wid,0+wid,width()-wid-wid,height()-wid-wid);}
176public slots: 176public slots:
177 /** Recalculates all the flags of the days in the matrix like holidays or events 177 /** Recalculates all the flags of the days in the matrix like holidays or events
178 * on a day (Actually calls above method with the actual startdate). 178 * on a day (Actually calls above method with the actual startdate).
179 */ 179 */
180 void updateView(); 180 void updateView();
181 void updateViewTimed(); 181 void updateViewTimed();
182 void repaintViewTimed(); 182 void repaintViewTimed();
183 183
184 /** 184 /**
185 * Calculate which square in the matrix should be 185 * Calculate which square in the matrix should be
186 * hilighted to indicate it's today. 186 * hilighted to indicate it's today.
187 */ 187 */
188 void recalculateToday(); 188 void recalculateToday();
189 189
190/* 190/*
191 void setStartDate(QDate); 191 void setStartDate(QDate);
192*/ 192*/
193 193
194signals: 194signals:
195 195
196 /** emitted if the user selects a block of days with the mouse by dragging a rectangle 196 /** emitted if the user selects a block of days with the mouse by dragging a rectangle
197 * inside the matrix 197 * inside the matrix
198 * 198 *
199 * @param daylist list of days that have been selected by the user 199 * @param daylist list of days that have been selected by the user
200 */ 200 */
201 void selected( const KCal::DateList &daylist ); 201 void selected( const KCal::DateList &daylist );
202 202
203 /** emitted if the user has dropped an event inside the matrix 203 /** emitted if the user has dropped an event inside the matrix
204 * 204 *
205 * @param event the dropped calendar event 205 * @param event the dropped calendar event
206 */ 206 */
207 void eventDropped(Event *event); 207 void eventDropped(Event *event);
208 208
209protected: 209protected:
210 210
211 void paintEvent(QPaintEvent *ev); 211 void paintEvent(QPaintEvent *ev);
212 212
213 void mousePressEvent (QMouseEvent* e); 213 void mousePressEvent (QMouseEvent* e);
214 214
215 void mouseReleaseEvent (QMouseEvent* e); 215 void mouseReleaseEvent (QMouseEvent* e);
216 216
217 void mouseMoveEvent (QMouseEvent* e); 217 void mouseMoveEvent (QMouseEvent* e);
218 218
219 void dragEnterEvent(QDragEnterEvent *); 219 void dragEnterEvent(QDragEnterEvent *);
220 220
221 void dragMoveEvent(QDragMoveEvent *); 221 void dragMoveEvent(QDragMoveEvent *);
222 222
223 void dragLeaveEvent(QDragLeaveEvent *); 223 void dragLeaveEvent(QDragLeaveEvent *);
224 224
225 void dropEvent(QDropEvent *); 225 void dropEvent(QDropEvent *);
226 226
227 void resizeEvent(QResizeEvent *); 227 void resizeEvent(QResizeEvent *);
228 228
229private: 229private:
230 int mLastView;
230 void computeEvent(Event *even, int dayindex ); 231 void computeEvent(Event *even, int dayindex );
231 int oldW, oldH; 232 int oldW, oldH;
232 bool mRedrawNeeded; 233 bool mRedrawNeeded;
233 KODaymatrixWhatsThis* mKODaymatrixWhatsThis; 234 KODaymatrixWhatsThis* mKODaymatrixWhatsThis;
234 bool mouseDown; 235 bool mouseDown;
235 QBitArray bDays; 236 QBitArray bDays;
236 QBitArray hDays; 237 QBitArray hDays;
237 QBitArray eDays; 238 QBitArray eDays;
238 QBitArray pDays; 239 QBitArray pDays;
239 QPixmap myPix; 240 QPixmap myPix;
240 QTimer* mUpdateTimer; 241 QTimer* mUpdateTimer;
241 QTimer* mRepaintTimer; 242 QTimer* mRepaintTimer;
242 bool mDayChanged; 243 bool mDayChanged;
243 bool mPendingUpdateBeforeRepaint; 244 bool mPendingUpdateBeforeRepaint;
244 245
245 /** returns the index of the day located at the matrix's widget (x,y) position. 246 /** returns the index of the day located at the matrix's widget (x,y) position.
246 * 247 *
247 * @param x horizontal coordinate 248 * @param x horizontal coordinate
248 * @param y vertical coordinate 249 * @param y vertical coordinate
249 */ 250 */
250 int getDayIndexFrom(int x, int y); 251 int getDayIndexFrom(int x, int y);
251 252
252 /** calculates a "shaded" color from the supplied color object. 253 /** calculates a "shaded" color from the supplied color object.
253 * (Copied from Cornelius's kdpdatebutton.cpp) 254 * (Copied from Cornelius's kdpdatebutton.cpp)
254 * 255 *
255 * @param color source based on which a shaded color should be calculated. 256 * @param color source based on which a shaded color should be calculated.
256 */ 257 */
257 QColor getShadedColor(QColor color); 258 QColor getShadedColor(QColor color);
258 259
259 /** number of days to be displayed. For now there is no support for any other number then 42. 260 /** number of days to be displayed. For now there is no support for any other number then 42.
260 so change it at your own risk :o) */ 261 so change it at your own risk :o) */
261 static const int NUMDAYS; 262 static const int NUMDAYS;
262 263
263 /** calendar instance to be queried for holidays, events, ... */ 264 /** calendar instance to be queried for holidays, events, ... */
264 Calendar *mCalendar; 265 Calendar *mCalendar;
265 266
266 /** starting date of the matrix */ 267 /** starting date of the matrix */
267 QDate startdate; 268 QDate startdate;
268 269
269 /** array of day labels to optimeize drawing performance. */ 270 /** array of day labels to optimeize drawing performance. */
270 QString *daylbls; 271 QString *daylbls;
271 272
272 /** array of days displayed to reduce memory consumption by 273 /** array of days displayed to reduce memory consumption by
273 subsequently calling QDate::addDays(). */ 274 subsequently calling QDate::addDays(). */
274 QDate *days; 275 QDate *days;
275 276
276 /** array of storing the number of events on a given day. 277 /** array of storing the number of events on a given day.
277 * used for drawing a bold font if there is at least one event on that day. 278 * used for drawing a bold font if there is at least one event on that day.
278 */ 279 */
279 //int *events; 280 //int *events;
280 281
281 /** stores holiday names of the days shown in the matrix. */ 282 /** stores holiday names of the days shown in the matrix. */
282 QMap<int,QString> mHolidays; 283 QMap<int,QString> mHolidays;
283 284
284 /** indey of today or -1 if today is not visible in the matrix. */ 285 /** indey of today or -1 if today is not visible in the matrix. */
285 int today; 286 int today;
286 287
287 /** index of day where dragged selection was initiated. 288 /** index of day where dragged selection was initiated.
288 used to detect "negative" timely selections */ 289 used to detect "negative" timely selections */
289 int mSelInit; 290 int mSelInit;
290 291
291 /** if mSelStart has this value it indicates that there is no 292 /** if mSelStart has this value it indicates that there is no
292 actual selection in the matrix. */ 293 actual selection in the matrix. */
293 static const int NOSELECTION; 294 static const int NOSELECTION;
294 295
295 /** index of first selected day. */ 296 /** index of first selected day. */
296 int mSelStart; 297 int mSelStart;
297 298
298 /** index of last selected day. */ 299 /** index of last selected day. */
299 int mSelEnd; 300 int mSelEnd;
300 301
301 /** dynamic tooltip to handle mouse dependent tips for each day in the matrix. */ 302 /** dynamic tooltip to handle mouse dependent tips for each day in the matrix. */
302 DynamicTip* mToolTip; 303 DynamicTip* mToolTip;
303 304
304 305
305 /** default background colour of the matrix. */ 306 /** default background colour of the matrix. */
306 QColor mDefaultBackColor; 307 QColor mDefaultBackColor;
307 308
308 /** default text color of the matrix. */ 309 /** default text color of the matrix. */
309 QColor mDefaultTextColor; 310 QColor mDefaultTextColor;
310 311
311 /** default text color for days not in the actual month. */ 312 /** default text color for days not in the actual month. */
312 QColor mDefaultTextColorShaded; 313 QColor mDefaultTextColorShaded;
313 314
314 /** default text color for holidays not in the actual month. */ 315 /** default text color for holidays not in the actual month. */
315 QColor mHolidayColorShaded; 316 QColor mHolidayColorShaded;
316 317
317 /** text color for selected days. */ 318 /** text color for selected days. */
318 QColor mSelectedDaysColor; 319 QColor mSelectedDaysColor;
319 320
320 /** default width of the frame drawn around today if it is visible in the matrix. */ 321 /** default width of the frame drawn around today if it is visible in the matrix. */
321 int mTodayMarginWidth; 322 int mTodayMarginWidth;
322 323
323 /** stores actual size of each day in the widget so that I dont need to ask this data 324 /** stores actual size of each day in the widget so that I dont need to ask this data
324 * on every repaint. 325 * on every repaint.
325 */ 326 */
326 QRect daysize; 327 QRect daysize;
327 328
328}; 329};
329 330
330#endif 331#endif
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp
index 843526d..ae61db6 100644
--- a/korganizer/komonthview.cpp
+++ b/korganizer/komonthview.cpp
@@ -1176,768 +1176,771 @@ KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name)
1176 connect( cell, SIGNAL( newEventSignal( QDateTime ) ), 1176 connect( cell, SIGNAL( newEventSignal( QDateTime ) ),
1177 SIGNAL( newEventSignal( QDateTime ) ) ); 1177 SIGNAL( newEventSignal( QDateTime ) ) );
1178 connect( cell, SIGNAL( showDaySignal( QDate ) ), 1178 connect( cell, SIGNAL( showDaySignal( QDate ) ),
1179 SIGNAL( showDaySignal( QDate ) ) ); 1179 SIGNAL( showDaySignal( QDate ) ) );
1180 connect( cell, SIGNAL( nextCell() ), 1180 connect( cell, SIGNAL( nextCell() ),
1181 SLOT( nextCell() ) ); 1181 SLOT( nextCell() ) );
1182 connect( cell, SIGNAL( prevCell() ), 1182 connect( cell, SIGNAL( prevCell() ),
1183 SLOT( prevCell() ) ); 1183 SLOT( prevCell() ) );
1184 } 1184 }
1185 } 1185 }
1186 mCellsW.resize( mDaysPerWeek ); 1186 mCellsW.resize( mDaysPerWeek );
1187 for( col = 0; col < mDaysPerWeek; ++col ) { 1187 for( col = 0; col < mDaysPerWeek; ++col ) {
1188 MonthViewCell *cell = new MonthViewCell( this, mWeekView ); 1188 MonthViewCell *cell = new MonthViewCell( this, mWeekView );
1189 mCellsW.insert( col, cell ); 1189 mCellsW.insert( col, cell );
1190 1190
1191 connect( cell, SIGNAL( defaultAction( Incidence * ) ), 1191 connect( cell, SIGNAL( defaultAction( Incidence * ) ),
1192 SLOT( defaultAction( Incidence * ) ) ); 1192 SLOT( defaultAction( Incidence * ) ) );
1193 connect( cell, SIGNAL( newEventSignal( QDateTime ) ), 1193 connect( cell, SIGNAL( newEventSignal( QDateTime ) ),
1194 SIGNAL( newEventSignal( QDateTime ) ) ); 1194 SIGNAL( newEventSignal( QDateTime ) ) );
1195 connect( cell, SIGNAL( showDaySignal( QDate ) ), 1195 connect( cell, SIGNAL( showDaySignal( QDate ) ),
1196 SIGNAL( showDaySignal( QDate ) ) ); 1196 SIGNAL( showDaySignal( QDate ) ) );
1197 connect( cell, SIGNAL( nextCell() ), 1197 connect( cell, SIGNAL( nextCell() ),
1198 SLOT( nextCell() ) ); 1198 SLOT( nextCell() ) );
1199 connect( cell, SIGNAL( prevCell() ), 1199 connect( cell, SIGNAL( prevCell() ),
1200 SLOT( prevCell() ) ); 1200 SLOT( prevCell() ) );
1201 cell->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont ); 1201 cell->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont );
1202 } 1202 }
1203 1203
1204 //connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), SLOT( switchView() ) ); 1204 //connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), SLOT( switchView() ) );
1205 mContextMenu = eventPopup(); 1205 mContextMenu = eventPopup();
1206 mContextMenu->addAdditionalItem(QIconSet(QPixmap()), 1206 mContextMenu->addAdditionalItem(QIconSet(QPixmap()),
1207 i18n("New Event..."),this, 1207 i18n("New Event..."),this,
1208 SLOT(slotNewEvent()),false); 1208 SLOT(slotNewEvent()),false);
1209 mContextMenu->addAdditionalItem(QIconSet(QPixmap()), 1209 mContextMenu->addAdditionalItem(QIconSet(QPixmap()),
1210 i18n("New Todo..."),this, 1210 i18n("New Todo..."),this,
1211 SLOT(slotNewTodo()),false); 1211 SLOT(slotNewTodo()),false);
1212 mContextMenu->addAdditionalItem(QIconSet(QPixmap()), 1212 mContextMenu->addAdditionalItem(QIconSet(QPixmap()),
1213 i18n("Journal"),this, 1213 i18n("Journal"),this,
1214 SLOT(slotEditJournal()),false); 1214 SLOT(slotEditJournal()),false);
1215 1215
1216 1216
1217 1217
1218 QString pathString = ""; 1218 QString pathString = "";
1219 if ( !KOPrefs::instance()->mToolBarMiniIcons ) { 1219 if ( !KOPrefs::instance()->mToolBarMiniIcons ) {
1220 if ( QApplication::desktop()->width() < 480 ) 1220 if ( QApplication::desktop()->width() < 480 )
1221 pathString += "icons16/"; 1221 pathString += "icons16/";
1222 } else 1222 } else
1223 pathString += "iconsmini/"; 1223 pathString += "iconsmini/";
1224 mNewItemMenu = new QPopupMenu( this ); 1224 mNewItemMenu = new QPopupMenu( this );
1225 mNewItemMenu->insertItem( SmallIcon( pathString +"newevent" ), i18n("New Event..."),this, SLOT(slotNewEvent())); 1225 mNewItemMenu->insertItem( SmallIcon( pathString +"newevent" ), i18n("New Event..."),this, SLOT(slotNewEvent()));
1226 mNewItemMenu->insertItem( SmallIcon( pathString +"newtodo" ),i18n("New Todo..."),this,SLOT(slotNewTodo()),false); 1226 mNewItemMenu->insertItem( SmallIcon( pathString +"newtodo" ),i18n("New Todo..."),this,SLOT(slotNewTodo()),false);
1227 mNewItemMenu->insertItem( SmallIcon( pathString +"journal" ),i18n("Journal"),this,SLOT(slotEditJournal()),false); 1227 mNewItemMenu->insertItem( SmallIcon( pathString +"journal" ),i18n("Journal"),this,SLOT(slotEditJournal()),false);
1228 1228
1229 // updateConfig(); //useless here... 1229 // updateConfig(); //useless here...
1230 // ... but we need mWidthLongDayLabel computed 1230 // ... but we need mWidthLongDayLabel computed
1231 QFontMetrics fontmetric(mDayLabels[0]->font()); 1231 QFontMetrics fontmetric(mDayLabels[0]->font());
1232 mWidthLongDayLabel = 0; 1232 mWidthLongDayLabel = 0;
1233 for (int i = 0; i < 7; i++) { 1233 for (int i = 0; i < 7; i++) {
1234 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1)); 1234 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1));
1235 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width; 1235 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width;
1236 } 1236 }
1237 1237
1238 //mWeekLabels[mNumWeeks]->setText( i18n("W")); 1238 //mWeekLabels[mNumWeeks]->setText( i18n("W"));
1239 1239
1240#if 0 1240#if 0
1241 if ( mShowWeekView ) 1241 if ( mShowWeekView )
1242 mWidStack->raiseWidget( mWeekView ); 1242 mWidStack->raiseWidget( mWeekView );
1243 else 1243 else
1244 mWidStack->raiseWidget( mMonthView ); 1244 mWidStack->raiseWidget( mMonthView );
1245#endif 1245#endif
1246 1246
1247 emit incidenceSelected( 0 ); 1247 emit incidenceSelected( 0 );
1248 1248
1249 mComputeLayoutTimer = new QTimer( this ); 1249 mComputeLayoutTimer = new QTimer( this );
1250 connect (mComputeLayoutTimer ,SIGNAL(timeout()), this, SLOT ( slotComputeLayout())); 1250 connect (mComputeLayoutTimer ,SIGNAL(timeout()), this, SLOT ( slotComputeLayout()));
1251 1251
1252 1252
1253#ifndef DESKTOP_VERSION 1253#ifndef DESKTOP_VERSION
1254 resize( QApplication::desktop()->size() ); 1254 resize( QApplication::desktop()->size() );
1255#else 1255#else
1256 resize(640, 480 ); 1256 resize(640, 480 );
1257 updatePossible = true; 1257 updatePossible = true;
1258#endif 1258#endif
1259 computeLayout(); 1259 computeLayout();
1260 1260
1261 if ( mShowWeekView ) 1261 if ( mShowWeekView )
1262 mWidStack->raiseWidget( mWeekView ); 1262 mWidStack->raiseWidget( mWeekView );
1263 else 1263 else
1264 mWidStack->raiseWidget( mMonthView ); 1264 mWidStack->raiseWidget( mMonthView );
1265} 1265}
1266 1266
1267KOMonthView::~KOMonthView() 1267KOMonthView::~KOMonthView()
1268{ 1268{
1269 delete mContextMenu; 1269 delete mContextMenu;
1270} 1270}
1271 1271
1272void KOMonthView::selectInternalWeekNum ( int n ) 1272void KOMonthView::selectInternalWeekNum ( int n )
1273{ 1273{
1274 switchView(); 1274 switchView();
1275 if ( !KOPrefs::instance()->mMonthViewWeek ) 1275 if ( !KOPrefs::instance()->mMonthViewWeek )
1276 emit selectMonth (); 1276 emit selectMonth ();
1277 else 1277 else
1278 emit selectWeekNum ( n ); 1278 emit selectWeekNum ( n );
1279} 1279}
1280 1280
1281int KOMonthView::currentWeek() 1281int KOMonthView::currentWeek()
1282{ 1282{
1283 if ( mShowWeekView ) 1283 if ( mShowWeekView )
1284 return mWeekLabelsW[0]->getWeekNum(); 1284 return mWeekLabelsW[0]->getWeekNum();
1285 return mWeekLabels[0]->getWeekNum(); 1285 return mWeekLabels[0]->getWeekNum();
1286} 1286}
1287void KOMonthView::switchView() 1287void KOMonthView::switchView()
1288{ 1288{
1289 if ( selectedCell( ) ) 1289 if ( selectedCell( ) )
1290 selectedCell()->deselect(); 1290 selectedCell()->deselect();
1291 mShowWeekView = !mShowWeekView; 1291 mShowWeekView = !mShowWeekView;
1292 KOPrefs::instance()->mMonthViewWeek = mShowWeekView; 1292 KOPrefs::instance()->mMonthViewWeek = mShowWeekView;
1293 if ( clPending ) { 1293 if ( clPending ) {
1294 computeLayout(); 1294 computeLayout();
1295 updateConfig(); 1295 updateConfig();
1296 } 1296 }
1297 if ( mShowWeekView ) 1297 if ( mShowWeekView )
1298 mWidStack->raiseWidget( mWeekView ); 1298 mWidStack->raiseWidget( mWeekView );
1299 else 1299 else
1300 mWidStack->raiseWidget( mMonthView ); 1300 mWidStack->raiseWidget( mMonthView );
1301 clPending = false; 1301 clPending = false;
1302} 1302}
1303 1303
1304int KOMonthView::maxDatesHint() 1304int KOMonthView::maxDatesHint()
1305{ 1305{
1306 return mNumCells; 1306 return mNumCells;
1307} 1307}
1308 1308
1309int KOMonthView::currentDateCount() 1309int KOMonthView::currentDateCount()
1310{ 1310{
1311 return mNumCells; 1311 return mNumCells;
1312} 1312}
1313 1313
1314QPtrList<Incidence> KOMonthView::selectedIncidences() 1314QPtrList<Incidence> KOMonthView::selectedIncidences()
1315{ 1315{
1316 QPtrList<Incidence> selected; 1316 QPtrList<Incidence> selected;
1317 1317
1318 if ( mSelectedCell ) { 1318 if ( mSelectedCell ) {
1319 Incidence *incidence = mSelectedCell->selectedIncidence(); 1319 Incidence *incidence = mSelectedCell->selectedIncidence();
1320 if ( incidence ) selected.append( incidence ); 1320 if ( incidence ) selected.append( incidence );
1321 } 1321 }
1322 1322
1323 return selected; 1323 return selected;
1324} 1324}
1325 1325
1326DateList KOMonthView::selectedDates() 1326DateList KOMonthView::selectedDates()
1327{ 1327{
1328 DateList selected; 1328 DateList selected;
1329 1329
1330 if ( mSelectedCell ) { 1330 if ( mSelectedCell ) {
1331 QDate qd = mSelectedCell->selectedIncidenceDate(); 1331 QDate qd = mSelectedCell->selectedIncidenceDate();
1332 if ( qd.isValid() ) selected.append( qd ); 1332 if ( qd.isValid() ) selected.append( qd );
1333 } 1333 }
1334 1334
1335 return selected; 1335 return selected;
1336} 1336}
1337 1337
1338void KOMonthView::printPreview(CalPrinter *calPrinter, const QDate &fd, 1338void KOMonthView::printPreview(CalPrinter *calPrinter, const QDate &fd,
1339 const QDate &td) 1339 const QDate &td)
1340{ 1340{
1341#ifndef KORG_NOPRINTER 1341#ifndef KORG_NOPRINTER
1342 calPrinter->preview(CalPrinter::Month, fd, td); 1342 calPrinter->preview(CalPrinter::Month, fd, td);
1343#endif 1343#endif
1344} 1344}
1345 1345
1346void KOMonthView::updateConfig() 1346void KOMonthView::updateConfig()
1347{ 1347{
1348 1348
1349 int mWeekStartsMonday = KGlobal::locale()->weekStartsMonday(); 1349 int mWeekStartsMonday = KGlobal::locale()->weekStartsMonday();
1350 1350
1351 if ( mShowWeekView || KOPrefs::instance()->mMonthViewSatSunTog ) { 1351 if ( mShowWeekView || KOPrefs::instance()->mMonthViewSatSunTog ) {
1352 mWeekStartsMonday = true; 1352 mWeekStartsMonday = true;
1353 } 1353 }
1354 QFontMetrics fontmetric(mDayLabels[0]->font()); 1354 QFontMetrics fontmetric(mDayLabels[0]->font());
1355 mWidthLongDayLabel = 0; 1355 mWidthLongDayLabel = 0;
1356 1356
1357 for (int i = 0; i < 7; i++) { 1357 for (int i = 0; i < 7; i++) {
1358 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1)); 1358 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1));
1359 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width; 1359 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width;
1360 } 1360 }
1361 bool temp = mShowSatSunComp ; 1361 bool temp = mShowSatSunComp ;
1362 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ; 1362 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ;
1363 if ( ! mShowWeekView ) { 1363 if ( ! mShowWeekView ) {
1364 if ( temp != KOPrefs::instance()->mMonthViewSatSunTog ) 1364 if ( temp != KOPrefs::instance()->mMonthViewSatSunTog )
1365 computeLayout(); 1365 computeLayout();
1366 } 1366 }
1367 updateDayLabels(); 1367 updateDayLabels();
1368 //qDebug("KOMonthView::updateConfig() %d %d %d ",height(), mDayLabels[0]->sizeHint().height() ,mNumWeeks); 1368 //qDebug("KOMonthView::updateConfig() %d %d %d ",height(), mDayLabels[0]->sizeHint().height() ,mNumWeeks);
1369 //int cellHeight = (height() - mDayLabels[0]->sizeHint().height()) /mNumWeeks; 1369 //int cellHeight = (height() - mDayLabels[0]->sizeHint().height()) /mNumWeeks;
1370 //resizeEvent( 0 ); 1370 //resizeEvent( 0 );
1371 for (uint i = 0; i < mCells.count(); ++i) { 1371 for (uint i = 0; i < mCells.count(); ++i) {
1372 mCells[i]->updateConfig(); 1372 mCells[i]->updateConfig();
1373 } 1373 }
1374 1374
1375 for (uint i = 0; i < mCellsW.count(); ++i) { 1375 for (uint i = 0; i < mCellsW.count(); ++i) {
1376 mCellsW[i]->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont); 1376 mCellsW[i]->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont);
1377 } 1377 }
1378#ifdef DESKTOP_VERSION 1378#ifdef DESKTOP_VERSION
1379 MonthViewCell::toolTipGroup()->setEnabled(KOPrefs::instance()->mEnableToolTips); 1379 MonthViewCell::toolTipGroup()->setEnabled(KOPrefs::instance()->mEnableToolTips);
1380#endif 1380#endif
1381 updateView(); 1381 updateView();
1382} 1382}
1383 1383
1384void KOMonthView::updateDayLabels() 1384void KOMonthView::updateDayLabels()
1385{ 1385{
1386 1386
1387 QPtrVector<QLabel> *mDayLabelsT; 1387 QPtrVector<QLabel> *mDayLabelsT;
1388 1388
1389 mDayLabelsT = &mDayLabelsW; 1389 mDayLabelsT = &mDayLabelsW;
1390 for (int i = 0; i < 7; i++) { 1390 for (int i = 0; i < 7; i++) {
1391 { 1391 {
1392 bool show = mShortDayLabelsW; 1392 bool show = mShortDayLabelsW;
1393 if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() ) 1393 if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() )
1394 show = true; 1394 show = true;
1395 (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show)); 1395 (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show));
1396 } 1396 }
1397 } 1397 }
1398 mDayLabelsT = &mDayLabels; 1398 mDayLabelsT = &mDayLabels;
1399 for (int i = 0; i < 7; i++) { 1399 for (int i = 0; i < 7; i++) {
1400 if (KGlobal::locale()->weekStartsMonday() || KOPrefs::instance()->mMonthViewSatSunTog ) { 1400 if (KGlobal::locale()->weekStartsMonday() || KOPrefs::instance()->mMonthViewSatSunTog ) {
1401 bool show = mShortDayLabelsM; 1401 bool show = mShortDayLabelsM;
1402 if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() ) 1402 if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() )
1403 show = true; 1403 show = true;
1404 (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show)); 1404 (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show));
1405 } else { 1405 } else {
1406 if (i==0) (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(7,mShortDayLabelsM)); 1406 if (i==0) (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(7,mShortDayLabelsM));
1407 else (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i,mShortDayLabelsM)); 1407 else (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i,mShortDayLabelsM));
1408 1408
1409 } 1409 }
1410 } 1410 }
1411 1411
1412} 1412}
1413 1413
1414void KOMonthView::showDates(const QDate &start, const QDate &) 1414void KOMonthView::showDates(const QDate &start, const QDate &)
1415{ 1415{
1416 // kdDebug() << "KOMonthView::showDates(): " << start.toString() << endl; 1416 // kdDebug() << "KOMonthView::showDates(): " << start.toString() << endl;
1417 1417
1418 QPtrVector<MonthViewCell> *cells; 1418 QPtrVector<MonthViewCell> *cells;
1419 QPtrVector<QLabel> *dayLabels; 1419 QPtrVector<QLabel> *dayLabels;
1420 QPtrVector<KOWeekButton> *weekLabels; 1420 QPtrVector<KOWeekButton> *weekLabels;
1421 int weekNum = 6; 1421 int weekNum = 6;
1422 mStartDate = start; 1422 mStartDate = start;
1423 if ( mShowWeekView ) { 1423 if ( mShowWeekView ) {
1424 weekNum = 1; 1424 weekNum = 1;
1425 cells = &mCellsW; 1425 cells = &mCellsW;
1426 dayLabels = &mDayLabelsW; 1426 dayLabels = &mDayLabelsW;
1427 weekLabels = &mWeekLabelsW; 1427 weekLabels = &mWeekLabelsW;
1428 if ( !KGlobal::locale()->weekStartsMonday() ) { 1428 if ( !KGlobal::locale()->weekStartsMonday() ) {
1429 mStartDate = mStartDate.addDays( 1 ); 1429 mStartDate = mStartDate.addDays( 1 );
1430 } 1430 }
1431 } else { 1431 } else {
1432 cells = &mCells; 1432 cells = &mCells;
1433 dayLabels = &mDayLabels; 1433 dayLabels = &mDayLabels;
1434 weekLabels = &mWeekLabels; 1434 weekLabels = &mWeekLabels;
1435 } 1435 }
1436 1436
1437 int mWeekStartsMonday = KGlobal::locale()->weekStartsMonday(); 1437 int mWeekStartsMonday = KGlobal::locale()->weekStartsMonday();
1438 1438
1439 if ( mShowWeekView || KOPrefs::instance()->mMonthViewSatSunTog ) { 1439 if ( mShowWeekView || KOPrefs::instance()->mMonthViewSatSunTog ) {
1440 mWeekStartsMonday = true; 1440 mWeekStartsMonday = true;
1441 } 1441 }
1442 int startWeekDay = mWeekStartsMonday ? 1 : 7; 1442 int startWeekDay = mWeekStartsMonday ? 1 : 7;
1443 1443
1444 while( KOGlobals::self()->calendarSystem()->dayOfWeek(mStartDate) != startWeekDay ) { 1444 while( KOGlobals::self()->calendarSystem()->dayOfWeek(mStartDate) != startWeekDay ) {
1445 mStartDate = mStartDate.addDays( -1 ); 1445 mStartDate = mStartDate.addDays( -1 );
1446 } 1446 }
1447 bool primary = false; 1447 bool primary = false;
1448 uint i; 1448 uint i;
1449 for( i = 0; i < (*cells).size(); ++i ) { 1449 for( i = 0; i < (*cells).size(); ++i ) {
1450 QDate date = mStartDate.addDays( i ); 1450 QDate date = mStartDate.addDays( i );
1451 (*cells)[i]->setDate( date ); 1451 (*cells)[i]->setDate( date );
1452 1452
1453#ifndef KORG_NOPLUGINS 1453#ifndef KORG_NOPLUGINS
1454 // add holiday, if present 1454 // add holiday, if present
1455 QString hstring(KOCore::self()->holiday(date)); 1455 QString hstring(KOCore::self()->holiday(date));
1456 (*cells)[i]->setHoliday( hstring ); 1456 (*cells)[i]->setHoliday( hstring );
1457#endif 1457#endif
1458 1458
1459 } 1459 }
1460 QDate date = mStartDate.addDays( mWeekStartsMonday ? 3 : 4 ); 1460 QDate date = mStartDate.addDays( mWeekStartsMonday ? 3 : 4 );
1461 for( i = 0; i < weekNum; ++i ) { 1461 for( i = 0; i < weekNum; ++i ) {
1462 int wno; 1462 int wno;
1463 // remember, according to ISO 8601, the first week of the year is the 1463 // remember, according to ISO 8601, the first week of the year is the
1464 // first week that contains a thursday. Thus we must subtract off 4, 1464 // first week that contains a thursday. Thus we must subtract off 4,
1465 // not just 1. 1465 // not just 1.
1466 int dayOfYear = date.dayOfYear(); 1466 int dayOfYear = date.dayOfYear();
1467 if (dayOfYear % 7 != 0) 1467 if (dayOfYear % 7 != 0)
1468 wno = dayOfYear / 7 + 1; 1468 wno = dayOfYear / 7 + 1;
1469 else 1469 else
1470 wno =dayOfYear / 7; 1470 wno =dayOfYear / 7;
1471 (*weekLabels)[i]->setWeekNum( wno ); 1471 (*weekLabels)[i]->setWeekNum( wno );
1472 date = date.addDays( 7 ); 1472 date = date.addDays( 7 );
1473 } 1473 }
1474 updateView(); 1474 updateView();
1475} 1475}
1476 1476
1477void KOMonthView::showEvents(QPtrList<Event>) 1477void KOMonthView::showEvents(QPtrList<Event>)
1478{ 1478{
1479 qDebug("KOMonthView::selectEvents is not implemented yet. "); 1479 qDebug("KOMonthView::selectEvents is not implemented yet. ");
1480} 1480}
1481 1481
1482void KOMonthView::changeEventDisplay(Event *, int) 1482void KOMonthView::changeEventDisplay(Event *, int)
1483{ 1483{
1484 // this should be re-written to be much more efficient, but this 1484 // this should be re-written to be much more efficient, but this
1485 // quick-and-dirty-hack gets the job done for right now. 1485 // quick-and-dirty-hack gets the job done for right now.
1486 //qDebug("KOMonthView::changeEventDisplay "); 1486 //qDebug("KOMonthView::changeEventDisplay ");
1487 updateView(); 1487 updateView();
1488} 1488}
1489 1489
1490void KOMonthView::updateView() 1490void KOMonthView::updateView()
1491{ 1491{
1492 1492
1493 if ( !updatePossible ) 1493 if ( !updatePossible )
1494 return; 1494 return;
1495 //qDebug("UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU "); 1495 //qDebug("UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU ");
1496 //QTime ti; 1496 //QTime ti;
1497 //ti.start(); 1497 //ti.start();
1498 clearSelection(); 1498 clearSelection();
1499 QPtrVector<MonthViewCell> *cells; 1499 QPtrVector<MonthViewCell> *cells;
1500 if ( mShowWeekView ) { 1500 if ( mShowWeekView ) {
1501 cells = &mCellsW; 1501 cells = &mCellsW;
1502 } else { 1502 } else {
1503 cells = &mCells; 1503 cells = &mCells;
1504 } 1504 }
1505#if 1 1505#if 1
1506 int i; 1506 int i;
1507 int timeSpan = (*cells).size()-1; 1507 int timeSpan = (*cells).size()-1;
1508 if ( KOPrefs::instance()->mMonthViewWeek ) 1508 if ( KOPrefs::instance()->mMonthViewWeek )
1509 timeSpan = 6; 1509 timeSpan = 6;
1510 for( i = 0; i < timeSpan + 1; ++i ) { 1510 for( i = 0; i < timeSpan + 1; ++i ) {
1511 (*cells)[i]->startUpdateCell(); 1511 (*cells)[i]->startUpdateCell();
1512 } 1512 }
1513 1513
1514 QPtrList<Event> events = calendar()->events(); 1514 QPtrList<Event> events = calendar()->events();
1515 Event *event; 1515 Event *event;
1516 QDateTime dt; 1516 QDateTime dt;
1517 bool ok; 1517 bool ok;
1518 QDate endDate = mStartDate.addDays( timeSpan ); 1518 QDate endDate = mStartDate.addDays( timeSpan );
1519 for( event = events.first(); event; event = events.next() ) { // for event 1519 for( event = events.first(); event; event = events.next() ) { // for event
1520 if ( event->doesRecur() ) { 1520 if ( event->doesRecur() ) {
1521 bool last; 1521 bool last;
1522 QDateTime incidenceStart = event->recurrence()->getPreviousDateTime( QDateTime( mStartDate ) , &last ); 1522 QDateTime incidenceStart = event->recurrence()->getPreviousDateTime( QDateTime( mStartDate ) , &last );
1523 QDateTime incidenceEnd; 1523 QDateTime incidenceEnd;
1524 int eventlen = event->dtStart().date().daysTo ( event->dtEnd().date() ); 1524 int eventlen = event->dtStart().date().daysTo ( event->dtEnd().date() );
1525 bool invalid = false; 1525 bool invalid = false;
1526 while( true ) { 1526 while( true ) {
1527 if ( incidenceStart.isValid() ) { 1527 if ( incidenceStart.isValid() ) {
1528 incidenceEnd = incidenceStart.addDays( eventlen ); 1528 incidenceEnd = incidenceStart.addDays( eventlen );
1529 int st = incidenceStart.date().daysTo( endDate ); 1529 int st = incidenceStart.date().daysTo( endDate );
1530 if ( st >= 0 ) { // start before timeend 1530 if ( st >= 0 ) { // start before timeend
1531 int end = mStartDate.daysTo( incidenceEnd.date() ); 1531 int end = mStartDate.daysTo( incidenceEnd.date() );
1532 if ( end >= 0 ) { // end after timestart --- got one! 1532 if ( end >= 0 ) { // end after timestart --- got one!
1533 //normalize 1533 //normalize
1534 st = timeSpan - st; 1534 st = timeSpan - st;
1535 if ( st < 0 ) st = 0; 1535 if ( st < 0 ) st = 0;
1536 if ( end > timeSpan ) end = timeSpan; 1536 if ( end > timeSpan ) end = timeSpan;
1537 int iii; 1537 int iii;
1538 //qDebug("found %s %d %d ",event->summary().latin1(), st, end ); 1538 //qDebug("found %s %d %d ",event->summary().latin1(), st, end );
1539 for ( iii = st;iii<= end;++iii) 1539 for ( iii = st;iii<= end;++iii)
1540 (*cells)[iii]->insertEvent( event ); 1540 (*cells)[iii]->insertEvent( event );
1541 } 1541 }
1542 } 1542 }
1543 } else { 1543 } else {
1544 if ( invalid ) 1544 if ( invalid )
1545 break; 1545 break;
1546 invalid = true; 1546 invalid = true;
1547 //qDebug("invalid %s", event->summary().latin1()); 1547 //qDebug("invalid %s", event->summary().latin1());
1548 incidenceStart = QDateTime( mStartDate ).addSecs( -2 );; 1548 incidenceStart = QDateTime( mStartDate ).addSecs( -2 );;
1549 } 1549 }
1550 if ( last ) 1550 if ( last )
1551 break; 1551 break;
1552 bool ok; 1552 bool ok;
1553 incidenceStart = event->getNextOccurence( incidenceStart.addSecs( 1 ) ,&ok ); 1553 incidenceStart = event->getNextOccurence( incidenceStart.addSecs( 1 ) ,&ok );
1554 if ( ! ok ) 1554 if ( ! ok )
1555 break; 1555 break;
1556 if ( incidenceStart.date() > endDate ) 1556 if ( incidenceStart.date() > endDate )
1557 break; 1557 break;
1558 } 1558 }
1559 } else { // no recur 1559 } else { // no recur
1560 if ( !KOPrefs::instance()->mShowSyncEvents && event->uid().left(2) == QString("la") )
1561 if ( event->uid().left(15) == QString("last-syncEvent-") )
1562 continue;
1560 int st = event->dtStart().date().daysTo( endDate ); 1563 int st = event->dtStart().date().daysTo( endDate );
1561 if ( st >= 0 ) { // start before timeend 1564 if ( st >= 0 ) { // start before timeend
1562 int end = mStartDate.daysTo( event->dtEnd().date() ); 1565 int end = mStartDate.daysTo( event->dtEnd().date() );
1563 if ( end >= 0 ) { // end after timestart --- got one! 1566 if ( end >= 0 ) { // end after timestart --- got one!
1564 //normalize 1567 //normalize
1565 st = timeSpan - st; 1568 st = timeSpan - st;
1566 if ( st < 0 ) st = 0; 1569 if ( st < 0 ) st = 0;
1567 if ( end > timeSpan ) end = timeSpan; 1570 if ( end > timeSpan ) end = timeSpan;
1568 int iii; 1571 int iii;
1569 for ( iii = st;iii<= end;++iii) 1572 for ( iii = st;iii<= end;++iii)
1570 (*cells)[iii]->insertEvent( event ); 1573 (*cells)[iii]->insertEvent( event );
1571 } 1574 }
1572 } 1575 }
1573 } 1576 }
1574 } 1577 }
1575 // insert due todos 1578 // insert due todos
1576 QPtrList<Todo> todos = calendar()->todos( ); 1579 QPtrList<Todo> todos = calendar()->todos( );
1577 Todo *todo; 1580 Todo *todo;
1578 for(todo = todos.first(); todo; todo = todos.next()) { 1581 for(todo = todos.first(); todo; todo = todos.next()) {
1579 //insertTodo( todo ); 1582 //insertTodo( todo );
1580 if ( todo->hasDueDate() ) { 1583 if ( todo->hasDueDate() ) {
1581 int day = mStartDate.daysTo( todo->dtDue().date() ); 1584 int day = mStartDate.daysTo( todo->dtDue().date() );
1582 if ( day >= 0 && day < timeSpan + 1) { 1585 if ( day >= 0 && day < timeSpan + 1) {
1583 (*cells)[day]->insertTodo( todo ); 1586 (*cells)[day]->insertTodo( todo );
1584 } 1587 }
1585 } 1588 }
1586 } 1589 }
1587 1590
1588 for( i = 0; i < timeSpan+1; ++i ) { 1591 for( i = 0; i < timeSpan+1; ++i ) {
1589 (*cells)[i]->finishUpdateCell(); 1592 (*cells)[i]->finishUpdateCell();
1590 } 1593 }
1591 processSelectionChange(); 1594 processSelectionChange();
1592 //qApp->processEvents(); 1595 //qApp->processEvents();
1593 for( i = 0; i < timeSpan+1; ++i ) { 1596 for( i = 0; i < timeSpan+1; ++i ) {
1594 (*cells)[i]->repaintfinishUpdateCell(); 1597 (*cells)[i]->repaintfinishUpdateCell();
1595 } 1598 }
1596 setKeyBFocus(); 1599 setKeyBFocus();
1597#else 1600#else
1598 // old code 1601 // old code
1599 //qDebug("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ "); 1602 //qDebug("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ");
1600 int i; 1603 int i;
1601 for( i = 0; i < (*cells).count(); ++i ) { 1604 for( i = 0; i < (*cells).count(); ++i ) {
1602 (*cells)[i]->updateCell(); 1605 (*cells)[i]->updateCell();
1603 } 1606 }
1604 1607
1605 //qDebug("KOMonthView::updateView() "); 1608 //qDebug("KOMonthView::updateView() ");
1606 processSelectionChange(); 1609 processSelectionChange();
1607 // qDebug("---------------------------------------------------------------------+ "); 1610 // qDebug("---------------------------------------------------------------------+ ");
1608 (*cells)[0]->setFocus(); 1611 (*cells)[0]->setFocus();
1609#endif 1612#endif
1610 1613
1611 //qDebug("update time %d ", ti.elapsed()); 1614 //qDebug("update time %d ", ti.elapsed());
1612} 1615}
1613 1616
1614void KOMonthView::setKeyBoardFocus() 1617void KOMonthView::setKeyBoardFocus()
1615{ 1618{
1616 //qDebug("KOMonthView::setKeyBoardFocus() "); 1619 //qDebug("KOMonthView::setKeyBoardFocus() ");
1617 bool shootAgain = false; 1620 bool shootAgain = false;
1618 if ( mShowWeekView ) { 1621 if ( mShowWeekView ) {
1619 shootAgain = !mWeekLabelsW[1]->hasFocus(); 1622 shootAgain = !mWeekLabelsW[1]->hasFocus();
1620 mWeekLabelsW[1]->setFocus(); 1623 mWeekLabelsW[1]->setFocus();
1621 } 1624 }
1622 else { 1625 else {
1623 shootAgain = !mWeekLabels[mNumWeeks]->hasFocus(); 1626 shootAgain = !mWeekLabels[mNumWeeks]->hasFocus();
1624 mWeekLabels[mNumWeeks]->setFocus(); 1627 mWeekLabels[mNumWeeks]->setFocus();
1625 } 1628 }
1626 if ( shootAgain ) { 1629 if ( shootAgain ) {
1627 QTimer::singleShot( 0, this, SLOT ( setKeyBFocus() ) ); 1630 QTimer::singleShot( 0, this, SLOT ( setKeyBFocus() ) );
1628 } 1631 }
1629} 1632}
1630void KOMonthView::setKeyBFocus() 1633void KOMonthView::setKeyBFocus()
1631{ 1634{
1632 //qDebug("KOMonthView::setKeyBFocus() "); 1635 //qDebug("KOMonthView::setKeyBFocus() ");
1633 QTimer::singleShot( 0, this, SLOT ( setKeyBoardFocus() ) ); 1636 QTimer::singleShot( 0, this, SLOT ( setKeyBoardFocus() ) );
1634} 1637}
1635void KOMonthView::resizeEvent(QResizeEvent * e) 1638void KOMonthView::resizeEvent(QResizeEvent * e)
1636{ 1639{
1637 //qDebug("KOMonthView::resizeEvent %d %d -- %d %d ", e->size().width(), e->size().height(), e->oldSize().width(), e->oldSize().height()); 1640 //qDebug("KOMonthView::resizeEvent %d %d -- %d %d ", e->size().width(), e->size().height(), e->oldSize().width(), e->oldSize().height());
1638 if ( isVisible() ) { 1641 if ( isVisible() ) {
1639 //qDebug("KOMonthView::isVisible "); 1642 //qDebug("KOMonthView::isVisible ");
1640 slotComputeLayout(); 1643 slotComputeLayout();
1641 } else 1644 } else
1642 mComputeLayoutTimer->start( 100 ); 1645 mComputeLayoutTimer->start( 100 );
1643} 1646}
1644 1647
1645void KOMonthView::slotComputeLayout() 1648void KOMonthView::slotComputeLayout()
1646{ 1649{
1647 mComputeLayoutTimer->stop(); 1650 mComputeLayoutTimer->stop();
1648 //qDebug("KOMonthView::Post - resizeEvent %d %d ", width(), height() ); 1651 //qDebug("KOMonthView::Post - resizeEvent %d %d ", width(), height() );
1649 computeLayout(); 1652 computeLayout();
1650 clPending = true; 1653 clPending = true;
1651 setKeyBFocus(); 1654 setKeyBFocus();
1652} 1655}
1653void KOMonthView::computeLayoutWeek() 1656void KOMonthView::computeLayoutWeek()
1654{ 1657{
1655 static int lastWid = 0; 1658 static int lastWid = 0;
1656 static int lastHei = 0; 1659 static int lastHei = 0;
1657 int daysToShow; 1660 int daysToShow;
1658 bool combinedSatSun = false; 1661 bool combinedSatSun = false;
1659 if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { 1662 if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) {
1660 daysToShow = 6; 1663 daysToShow = 6;
1661 combinedSatSun = true; 1664 combinedSatSun = true;
1662 } 1665 }
1663 int tWid = topLevelWidget()->size().width(); 1666 int tWid = topLevelWidget()->size().width();
1664 int tHei = topLevelWidget()->size().height(); 1667 int tHei = topLevelWidget()->size().height();
1665 1668
1666 int wid = width();//e 1669 int wid = width();//e
1667 int hei = height()-1-mNavigatorBar->height(); 1670 int hei = height()-1-mNavigatorBar->height();
1668 1671
1669 if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) 1672 if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei )
1670 return; 1673 return;
1671 1674
1672 if ( lastWid == width() && lastHei == height() ) { 1675 if ( lastWid == width() && lastHei == height() ) {
1673 //qDebug("KOListWeekView::No compute layout needed "); 1676 //qDebug("KOListWeekView::No compute layout needed ");
1674 return; 1677 return;
1675 } 1678 }
1676 lastWid = width(); 1679 lastWid = width();
1677 lastHei = height(); 1680 lastHei = height();
1678 1681
1679 1682
1680 if ( wid < hei ) 1683 if ( wid < hei )
1681 daysToShow = 2; 1684 daysToShow = 2;
1682 else 1685 else
1683 daysToShow = 3; 1686 daysToShow = 3;
1684 mShowSatSunComp = true; 1687 mShowSatSunComp = true;
1685 combinedSatSun = true; 1688 combinedSatSun = true;
1686 1689
1687 //qDebug("KOMonthView::computeLayout() WWW ------------------------------------ "); 1690 //qDebug("KOMonthView::computeLayout() WWW ------------------------------------ ");
1688 QFontMetrics fm ( mWeekLabels[0]->font() ); 1691 QFontMetrics fm ( mWeekLabels[0]->font() );
1689 int weeklabelwid = fm.width( "888" ); 1692 int weeklabelwid = fm.width( "888" );
1690 wid -= weeklabelwid; 1693 wid -= weeklabelwid;
1691 1694
1692 int colWid = wid / daysToShow; 1695 int colWid = wid / daysToShow;
1693 int lastCol = wid - ( colWid*6 ); 1696 int lastCol = wid - ( colWid*6 );
1694 int dayLabelHei = mDayLabelsW[0]->sizeHint().height(); 1697 int dayLabelHei = mDayLabelsW[0]->sizeHint().height();
1695 int cellHei = (hei - (5- daysToShow )*dayLabelHei) /(5- daysToShow ); 1698 int cellHei = (hei - (5- daysToShow )*dayLabelHei) /(5- daysToShow );
1696 int colModulo = wid % daysToShow; 1699 int colModulo = wid % daysToShow;
1697 int rowModulo = (hei- (5- daysToShow )*dayLabelHei) % daysToShow-1; 1700 int rowModulo = (hei- (5- daysToShow )*dayLabelHei) % daysToShow-1;
1698 //qDebug("rowmod %d ", rowModulo); 1701 //qDebug("rowmod %d ", rowModulo);
1699 int i; 1702 int i;
1700 int x,y,w,h; 1703 int x,y,w,h;
1701 x= 0; 1704 x= 0;
1702 y= 0; 1705 y= 0;
1703 w = colWid; 1706 w = colWid;
1704 h = dayLabelHei ; 1707 h = dayLabelHei ;
1705 for ( i = 0; i < 7; i++) { 1708 for ( i = 0; i < 7; i++) {
1706 if ( i && !( i % daysToShow) && i < 6) { 1709 if ( i && !( i % daysToShow) && i < 6) {
1707 y += hei/(5-daysToShow); 1710 y += hei/(5-daysToShow);
1708 x = 0; 1711 x = 0;
1709 w = colWid; 1712 w = colWid;
1710 } 1713 }
1711 if ( ((i) % daysToShow) >= daysToShow-colModulo ) { 1714 if ( ((i) % daysToShow) >= daysToShow-colModulo ) {
1712 ++w; 1715 ++w;
1713 } 1716 }
1714 if ( i >= 5 ) { 1717 if ( i >= 5 ) {
1715 int wi = width() - x - weeklabelwid; 1718 int wi = width() - x - weeklabelwid;
1716 if ( i == 5 ) { 1719 if ( i == 5 ) {
1717 mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,wi/2+wi%2,h); 1720 mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,wi/2+wi%2,h);
1718 } else { 1721 } else {
1719 mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,wi,h); 1722 mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,wi,h);
1720 } 1723 }
1721 x = x - w + wi - (wi/2 ); 1724 x = x - w + wi - (wi/2 );
1722 } 1725 }
1723 else { 1726 else {
1724 int wi = w; 1727 int wi = w;
1725 if ( !(( i+1) % daysToShow)) { 1728 if ( !(( i+1) % daysToShow)) {
1726 wi = width() - x - weeklabelwid; 1729 wi = width() - x - weeklabelwid;
1727 } 1730 }
1728 mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,wi,h); 1731 mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,wi,h);
1729 } 1732 }
1730 x += w; 1733 x += w;
1731 } 1734 }
1732 x= 0; 1735 x= 0;
1733 y= dayLabelHei; 1736 y= dayLabelHei;
1734 w = colWid; 1737 w = colWid;
1735 h = cellHei; 1738 h = cellHei;
1736 int max = 0; 1739 int max = 0;
1737 for ( i = 0; i < mCellsW.count(); ++i) { 1740 for ( i = 0; i < mCellsW.count(); ++i) {
1738 if ( i > 6 ) { 1741 if ( i > 6 ) {
1739 mCellsW[i]->hide(); 1742 mCellsW[i]->hide();
1740 continue; 1743 continue;
1741 } 1744 }
1742 1745
1743 w = colWid; 1746 w = colWid;
1744 if ( ((i) % daysToShow) >= daysToShow-colModulo ) { 1747 if ( ((i) % daysToShow) >= daysToShow-colModulo ) {
1745 ++w; 1748 ++w;
1746 } 1749 }
1747 if ( i == (daysToShow-1-rowModulo)*7) 1750 if ( i == (daysToShow-1-rowModulo)*7)
1748 ++h; 1751 ++h;
1749 1752
1750 if ( i >= 5 ) { 1753 if ( i >= 5 ) {
1751 if ( i ==5 ) { 1754 if ( i ==5 ) {
1752 max = h/2; 1755 max = h/2;
1753 mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,max ); 1756 mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,max );
1754 x -= w ;y += h/2; 1757 x -= w ;y += h/2;
1755 } else { 1758 } else {
1756 if ( ((i-1) % daysToShow) >= daysToShow-colModulo ) { 1759 if ( ((i-1) % daysToShow) >= daysToShow-colModulo ) {
1757 ++w; 1760 ++w;
1758 } 1761 }
1759 max = h-h/2; 1762 max = h-h/2;
1760 mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,max ); 1763 mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,max );
1761 y -= h/2; 1764 y -= h/2;
1762 } 1765 }
1763 } else { 1766 } else {
1764 max = h; 1767 max = h;
1765 mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h ); 1768 mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h );
1766 } 1769 }
1767 1770
1768 1771
1769 x += w; 1772 x += w;
1770 if ( x + w/2 > wid ) { 1773 if ( x + w/2 > wid ) {
1771 x = 0; 1774 x = 0;
1772 y += h+dayLabelHei ; 1775 y += h+dayLabelHei ;
1773 } 1776 }
1774 //mCellsW[i]->dateLabel()->setMaximumHeight( max - mCellsW[i]->lineWidth()*2 ); 1777 //mCellsW[i]->dateLabel()->setMaximumHeight( max - mCellsW[i]->lineWidth()*2 );
1775 } 1778 }
1776 y= dayLabelHei; 1779 y= dayLabelHei;
1777 h = cellHei ; 1780 h = cellHei ;
1778 mWeekLabelsW[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei); 1781 mWeekLabelsW[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei);
1779 mWeekLabelsW[1]->setGeometry( 0,0,weeklabelwid,dayLabelHei); 1782 mWeekLabelsW[1]->setGeometry( 0,0,weeklabelwid,dayLabelHei);
1780 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); 1783 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height());
1781 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); 1784 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height());
1782 mShortDayLabelsW = mDayLabelsW[0]->width()-2 < mWidthLongDayLabel ; 1785 mShortDayLabelsW = mDayLabelsW[0]->width()-2 < mWidthLongDayLabel ;
1783 updateDayLabels(); 1786 updateDayLabels();
1784 //bool forceUpdate = !updatePossible; 1787 //bool forceUpdate = !updatePossible;
1785 updatePossible = true; 1788 updatePossible = true;
1786 //mWeekLabels[mNumWeeks]->setText( i18n("M")); 1789 //mWeekLabels[mNumWeeks]->setText( i18n("M"));
1787 //if ( forceUpdate ) 1790 //if ( forceUpdate )
1788 // updateView(); 1791 // updateView();
1789} 1792}
1790void KOMonthView::computeLayout() 1793void KOMonthView::computeLayout()
1791{ 1794{
1792 1795
1793 1796
1794 static int lastWid = 0; 1797 static int lastWid = 0;
1795 static int lastHei = 0; 1798 static int lastHei = 0;
1796 1799
1797 if ( mShowWeekView ){ 1800 if ( mShowWeekView ){
1798 computeLayoutWeek(); 1801 computeLayoutWeek();
1799 return; 1802 return;
1800 } 1803 }
1801 int daysToShow = 7; 1804 int daysToShow = 7;
1802 bool combinedSatSun = false; 1805 bool combinedSatSun = false;
1803 if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { 1806 if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) {
1804 daysToShow = 6; 1807 daysToShow = 6;
1805 combinedSatSun = true; 1808 combinedSatSun = true;
1806 } 1809 }
1807 int tWid = topLevelWidget()->size().width(); 1810 int tWid = topLevelWidget()->size().width();
1808 int tHei = topLevelWidget()->size().height(); 1811 int tHei = topLevelWidget()->size().height();
1809 1812
1810 int wid = width();//e 1813 int wid = width();//e
1811 int hei = height()-1-mNavigatorBar->height(); 1814 int hei = height()-1-mNavigatorBar->height();
1812 1815
1813 if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) { 1816 if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) {
1814 return; 1817 return;
1815 } 1818 }
1816 if ( lastWid == width() && lastHei == height() ){ 1819 if ( lastWid == width() && lastHei == height() ){
1817 //qDebug("KOMonthview::No compute layout needed "); 1820 //qDebug("KOMonthview::No compute layout needed ");
1818 return; 1821 return;
1819 } 1822 }
1820 1823
1821 lastWid = width(); 1824 lastWid = width();
1822 lastHei = height(); 1825 lastHei = height();
1823 //qDebug("KOMonthView::computeLayout() MMM ------------------- "); 1826 //qDebug("KOMonthView::computeLayout() MMM ------------------- ");
1824 QFontMetrics fm ( mWeekLabels[0]->font() ); 1827 QFontMetrics fm ( mWeekLabels[0]->font() );
1825 int weeklabelwid = fm.width( "888" ); 1828 int weeklabelwid = fm.width( "888" );
1826 wid -= weeklabelwid; 1829 wid -= weeklabelwid;
1827 1830
1828 int colWid = wid / daysToShow; 1831 int colWid = wid / daysToShow;
1829 int lastCol = wid - ( colWid*6 ); 1832 int lastCol = wid - ( colWid*6 );
1830 int dayLabelHei = mDayLabels[0]->sizeHint().height(); 1833 int dayLabelHei = mDayLabels[0]->sizeHint().height();
1831 int cellHei = (hei - dayLabelHei) /6; 1834 int cellHei = (hei - dayLabelHei) /6;
1832 int colModulo = wid % daysToShow; 1835 int colModulo = wid % daysToShow;
1833 int rowModulo = (hei- dayLabelHei) % 6; 1836 int rowModulo = (hei- dayLabelHei) % 6;
1834 //qDebug("rowmod %d ", rowModulo); 1837 //qDebug("rowmod %d ", rowModulo);
1835 int i; 1838 int i;
1836 int x,y,w,h; 1839 int x,y,w,h;
1837 x= 0; 1840 x= 0;
1838 y= 0; 1841 y= 0;
1839 w = colWid; 1842 w = colWid;
1840 h = dayLabelHei ; 1843 h = dayLabelHei ;
1841 for ( i = 0; i < 7; i++) { 1844 for ( i = 0; i < 7; i++) {
1842 if ( i == daysToShow-colModulo ) 1845 if ( i == daysToShow-colModulo )
1843 ++w; 1846 ++w;
1844 if ( combinedSatSun ) { 1847 if ( combinedSatSun ) {
1845 if ( i >= daysToShow-1 ) { 1848 if ( i >= daysToShow-1 ) {
1846 1849
1847 if ( i == 6 ) 1850 if ( i == 6 )
1848 mDayLabels[i]->setGeometry( x+weeklabelwid,y,width()-x-weeklabelwid,h); 1851 mDayLabels[i]->setGeometry( x+weeklabelwid,y,width()-x-weeklabelwid,h);
1849 else 1852 else
1850 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w/2,h); 1853 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w/2,h);
1851 x -= w/2 ; 1854 x -= w/2 ;
1852 } 1855 }
1853 else 1856 else
1854 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h); 1857 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h);
1855 } else 1858 } else
1856 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h); 1859 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h);
1857 x += w; 1860 x += w;
1858 } 1861 }
1859 x= 0; 1862 x= 0;
1860 y= dayLabelHei; 1863 y= dayLabelHei;
1861 w = colWid; 1864 w = colWid;
1862 h = cellHei ; 1865 h = cellHei ;
1863 int max = 0; 1866 int max = 0;
1864 for ( i = 0; i < mCells.count(); ++i) { 1867 for ( i = 0; i < mCells.count(); ++i) {
1865 //qDebug("iii %d ", i); 1868 //qDebug("iii %d ", i);
1866 w = colWid; 1869 w = colWid;
1867 if ( ((i) % 7) >= 7-colModulo ) { 1870 if ( ((i) % 7) >= 7-colModulo ) {
1868 ++w; 1871 ++w;
1869 } 1872 }
1870 if ( i == (6-rowModulo)*7) 1873 if ( i == (6-rowModulo)*7)
1871 ++h; 1874 ++h;
1872 if ( combinedSatSun ) { 1875 if ( combinedSatSun ) {
1873 if ( (i)%7 >= daysToShow-1 ) { 1876 if ( (i)%7 >= daysToShow-1 ) {
1874 if ( (i)%7 == daysToShow-1 ) { 1877 if ( (i)%7 == daysToShow-1 ) {
1875 w = width()-x-weeklabelwid; 1878 w = width()-x-weeklabelwid;
1876 max = h/2; 1879 max = h/2;
1877 mCells[i]->setGeometry ( x+weeklabelwid,y,w,max ); 1880 mCells[i]->setGeometry ( x+weeklabelwid,y,w,max );
1878 x -= w ;y += h/2; 1881 x -= w ;y += h/2;
1879 } else { 1882 } else {
1880 w = width()-x-weeklabelwid; 1883 w = width()-x-weeklabelwid;
1881 max = h-h/2; 1884 max = h-h/2;
1882 mCells[i]->setGeometry ( x+weeklabelwid,y,w,max ); 1885 mCells[i]->setGeometry ( x+weeklabelwid,y,w,max );
1883 y -= h/2; 1886 y -= h/2;
1884 } 1887 }
1885 } else { 1888 } else {
1886 max = h; 1889 max = h;
1887 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); 1890 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h );
1888 } 1891 }
1889 1892
1890 } 1893 }
1891 else { 1894 else {
1892 max = h; 1895 max = h;
1893 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); 1896 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h );
1894 } 1897 }
1895 x += w; 1898 x += w;
1896 if ( x + w/2 > wid ) { 1899 if ( x + w/2 > wid ) {
1897 x = 0; 1900 x = 0;
1898 y += h; 1901 y += h;
1899 } 1902 }
1900 //mCells[i]->dateLabel()->setMaximumHeight( max- mCells[i]->lineWidth()*2 ); 1903 //mCells[i]->dateLabel()->setMaximumHeight( max- mCells[i]->lineWidth()*2 );
1901 } 1904 }
1902 y= dayLabelHei; 1905 y= dayLabelHei;
1903 h = cellHei ; 1906 h = cellHei ;
1904 for ( i = 0; i < 6; i++) { 1907 for ( i = 0; i < 6; i++) {
1905 if ( i == (6-rowModulo)) 1908 if ( i == (6-rowModulo))
1906 ++h; 1909 ++h;
1907 mWeekLabels[i]->setGeometry( 0,y,weeklabelwid,h); 1910 mWeekLabels[i]->setGeometry( 0,y,weeklabelwid,h);
1908 y += h; 1911 y += h;
1909 } 1912 }
1910 mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei); 1913 mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei);
1911 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); 1914 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height());
1912 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); 1915 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height());
1913 mShortDayLabelsM = mDayLabels[0]->width()-2 < mWidthLongDayLabel ; 1916 mShortDayLabelsM = mDayLabels[0]->width()-2 < mWidthLongDayLabel ;
1914 updateDayLabels(); 1917 updateDayLabels();
1915 //bool forceUpdate = !updatePossible; 1918 //bool forceUpdate = !updatePossible;
1916 updatePossible = true; 1919 updatePossible = true;
1917 //mWeekLabels[mNumWeeks]->setText( i18n("W")); 1920 //mWeekLabels[mNumWeeks]->setText( i18n("W"));
1918} 1921}
1919 1922
1920void KOMonthView::showContextMenu( Incidence *incidence ) 1923void KOMonthView::showContextMenu( Incidence *incidence )
1921{ 1924{
1922 if( incidence ) 1925 if( incidence )
1923 mContextMenu->showIncidencePopup(incidence); 1926 mContextMenu->showIncidencePopup(incidence);
1924 else { 1927 else {
1925 //qDebug("KOMonthView::showContextMenu "); 1928 //qDebug("KOMonthView::showContextMenu ");
1926 mNewItemMenu->popup(QCursor::pos()); 1929 mNewItemMenu->popup(QCursor::pos());
1927 } 1930 }
1928 /* 1931 /*
1929 if( incidence && incidence->type() == "Event" ) { 1932 if( incidence && incidence->type() == "Event" ) {
1930 Event *event = static_cast<Event *>(incidence); 1933 Event *event = static_cast<Event *>(incidence);
1931 mContextMenu->showEventPopup(event); 1934 mContextMenu->showEventPopup(event);
1932 } else { 1935 } else {
1933 kdDebug() << "MonthView::showContextMenu(): cast failed." << endl; 1936 kdDebug() << "MonthView::showContextMenu(): cast failed." << endl;
1934 } 1937 }
1935 */ 1938 */
1936} 1939}
1937MonthViewCell * KOMonthView::selectedCell( ) 1940MonthViewCell * KOMonthView::selectedCell( )
1938{ 1941{
1939 return mSelectedCell; 1942 return mSelectedCell;
1940} 1943}
1941void KOMonthView::setSelectedCell( MonthViewCell *cell ) 1944void KOMonthView::setSelectedCell( MonthViewCell *cell )
1942{ 1945{
1943 //qDebug("KOMonthView::setSelectedCell %d", cell); 1946 //qDebug("KOMonthView::setSelectedCell %d", cell);
diff --git a/korganizer/koprefsdialog.cpp b/korganizer/koprefsdialog.cpp
index cb9c272..d9d7924 100644
--- a/korganizer/koprefsdialog.cpp
+++ b/korganizer/koprefsdialog.cpp
@@ -475,865 +475,868 @@ void KOPrefsDialog::setupMainTab()
475 addWidRadios(i18n("Mail Client"),&(KOPrefs::instance()->mMailClient), 475 addWidRadios(i18n("Mail Client"),&(KOPrefs::instance()->mMailClient),
476 topFrame); 476 topFrame);
477 mailClientGroup->addRadio(i18n("KMail")); 477 mailClientGroup->addRadio(i18n("KMail"));
478 mailClientGroup->addRadio(i18n("Sendmail")); 478 mailClientGroup->addRadio(i18n("Sendmail"));
479 topLayout->addMultiCellWidget(mailClientGroup->groupBox(),11,11,0,1); 479 topLayout->addMultiCellWidget(mailClientGroup->groupBox(),11,11,0,1);
480 480
481 KPrefsDialogWidBool *htmlsave = 481 KPrefsDialogWidBool *htmlsave =
482 addWidBool(i18n("Export to HTML with every save"),&(KOPrefs::instance()->mHtmlWithSave), 482 addWidBool(i18n("Export to HTML with every save"),&(KOPrefs::instance()->mHtmlWithSave),
483 topFrame); 483 topFrame);
484 topLayout->addMultiCellWidget(htmlsave->checkBox(),12,12,0,1); 484 topLayout->addMultiCellWidget(htmlsave->checkBox(),12,12,0,1);
485 485
486 KPrefsDialogWidRadios *destinationGroup = 486 KPrefsDialogWidRadios *destinationGroup =
487 addWidRadios(i18n("New Events/Todos should"),&(KOPrefs::instance()->mDestination), 487 addWidRadios(i18n("New Events/Todos should"),&(KOPrefs::instance()->mDestination),
488 topFrame); 488 topFrame);
489 destinationGroup->addRadio(i18n("be added to the standard resource")); 489 destinationGroup->addRadio(i18n("be added to the standard resource"));
490 destinationGroup->addRadio(i18n("be asked which resource to use")); 490 destinationGroup->addRadio(i18n("be asked which resource to use"));
491 topLayout->addMultiCellWidget(destinationGroup->groupBox(),13,13,0,1); 491 topLayout->addMultiCellWidget(destinationGroup->groupBox(),13,13,0,1);
492 492
493 topLayout->setRowStretch(14,1); 493 topLayout->setRowStretch(14,1);
494 */ 494 */
495} 495}
496 496
497 497
498void KOPrefsDialog::setupTimeTab() 498void KOPrefsDialog::setupTimeTab()
499{ 499{
500 QFrame *topFrame = addPage(i18n("Time"),0,0); 500 QFrame *topFrame = addPage(i18n("Time"),0,0);
501 // DesktopIcon("clock",KIcon::SizeMedium)); 501 // DesktopIcon("clock",KIcon::SizeMedium));
502 502
503 QGridLayout *topLayout = new QGridLayout(topFrame,4,2); 503 QGridLayout *topLayout = new QGridLayout(topFrame,4,2);
504 topLayout->setSpacing(mSpacingHint); 504 topLayout->setSpacing(mSpacingHint);
505 topLayout->setMargin(mMarginHint); 505 topLayout->setMargin(mMarginHint);
506 506
507 QHBox *dummy = new QHBox(topFrame); 507 QHBox *dummy = new QHBox(topFrame);
508 KPrefsDialogWidTime *dayBegins = 508 KPrefsDialogWidTime *dayBegins =
509 addWidTime(i18n("Day begins at:"),&(KOPrefs::instance()->mDayBegins), 509 addWidTime(i18n("Day begins at:"),&(KOPrefs::instance()->mDayBegins),
510 dummy); 510 dummy);
511 //topLayout->addWidget(dayBegins->label(),2,0); 511 //topLayout->addWidget(dayBegins->label(),2,0);
512 512
513 //topLayout->addWidget(dayBegins->spinBox(),2,1); 513 //topLayout->addWidget(dayBegins->spinBox(),2,1);
514 topLayout->addMultiCellWidget(dummy,0,0,0,1); 514 topLayout->addMultiCellWidget(dummy,0,0,0,1);
515 515
516 topLayout->addWidget(new QLabel(i18n("Default appointment time:"), 516 topLayout->addWidget(new QLabel(i18n("Default appointment time:"),
517 topFrame),1,0); 517 topFrame),1,0);
518 mStartTimeSpin = new QSpinBox(0,23,1,topFrame); 518 mStartTimeSpin = new QSpinBox(0,23,1,topFrame);
519 mStartTimeSpin->setSuffix(":00"); 519 mStartTimeSpin->setSuffix(":00");
520 topLayout->addWidget(mStartTimeSpin,1,1); 520 topLayout->addWidget(mStartTimeSpin,1,1);
521 521
522 topLayout->addWidget(new QLabel(i18n("Def. duration of new app.:"), 522 topLayout->addWidget(new QLabel(i18n("Def. duration of new app.:"),
523 topFrame),2,0); 523 topFrame),2,0);
524 mDefaultDurationSpin = new QSpinBox(0,23,1,topFrame); 524 mDefaultDurationSpin = new QSpinBox(0,23,1,topFrame);
525 mDefaultDurationSpin->setSuffix(":00"); 525 mDefaultDurationSpin->setSuffix(":00");
526 topLayout->addWidget(mDefaultDurationSpin,2,1); 526 topLayout->addWidget(mDefaultDurationSpin,2,1);
527 527
528 QStringList alarmList; 528 QStringList alarmList;
529 alarmList << i18n("1 minute") << i18n("5 minutes") << i18n("10 minutes") 529 alarmList << i18n("1 minute") << i18n("5 minutes") << i18n("10 minutes")
530 << i18n("15 minutes") << i18n("30 minutes")<< i18n("1 hour")<< i18n("3 hours") << i18n("24 hours") ; 530 << i18n("15 minutes") << i18n("30 minutes")<< i18n("1 hour")<< i18n("3 hours") << i18n("24 hours") ;
531 topLayout->addWidget(new QLabel(i18n("Default alarm time:"),topFrame), 531 topLayout->addWidget(new QLabel(i18n("Default alarm time:"),topFrame),
532 3,0); 532 3,0);
533 mAlarmTimeCombo = new QComboBox(topFrame); 533 mAlarmTimeCombo = new QComboBox(topFrame);
534 mAlarmTimeCombo->insertStringList(alarmList); 534 mAlarmTimeCombo->insertStringList(alarmList);
535 topLayout->addWidget(mAlarmTimeCombo,3,1); 535 topLayout->addWidget(mAlarmTimeCombo,3,1);
536 536
537 537
538 QGroupBox *workingHoursGroup = new QGroupBox(1,Horizontal, 538 QGroupBox *workingHoursGroup = new QGroupBox(1,Horizontal,
539 i18n("Working Hours"), 539 i18n("Working Hours"),
540 topFrame); 540 topFrame);
541 topLayout->addMultiCellWidget(workingHoursGroup,4,4,0,1); 541 topLayout->addMultiCellWidget(workingHoursGroup,4,4,0,1);
542 workingHoursGroup->layout()->setSpacing( 0 ); 542 workingHoursGroup->layout()->setSpacing( 0 );
543 workingHoursGroup->layout()->setMargin( 4 ); 543 workingHoursGroup->layout()->setMargin( 4 );
544 QHBox *workStartBox = new QHBox(workingHoursGroup); 544 QHBox *workStartBox = new QHBox(workingHoursGroup);
545 // workStartBox->setMargin( 0 ); 545 // workStartBox->setMargin( 0 );
546 addWidTime(i18n("Daily starting hour:"), 546 addWidTime(i18n("Daily starting hour:"),
547 &(KOPrefs::instance()->mWorkingHoursStart),workStartBox); 547 &(KOPrefs::instance()->mWorkingHoursStart),workStartBox);
548 548
549 QHBox *workEndBox = new QHBox(workingHoursGroup); 549 QHBox *workEndBox = new QHBox(workingHoursGroup);
550 //workEndBox->setMargin( 0 ); 550 //workEndBox->setMargin( 0 );
551 addWidTime(i18n("Daily ending hour:"), 551 addWidTime(i18n("Daily ending hour:"),
552 &(KOPrefs::instance()->mWorkingHoursEnd),workEndBox); 552 &(KOPrefs::instance()->mWorkingHoursEnd),workEndBox);
553 QVBox *excludeBox = new QVBox(workingHoursGroup); 553 QVBox *excludeBox = new QVBox(workingHoursGroup);
554 //excludeBox->setMargin( 0 ); 554 //excludeBox->setMargin( 0 );
555 addWidBool(i18n("Exclude holidays"), 555 addWidBool(i18n("Exclude holidays"),
556 &(KOPrefs::instance()->mExcludeHolidays),excludeBox); 556 &(KOPrefs::instance()->mExcludeHolidays),excludeBox);
557 557
558 addWidBool(i18n("Exclude Saturdays"), 558 addWidBool(i18n("Exclude Saturdays"),
559 &(KOPrefs::instance()->mExcludeSaturdays),excludeBox); 559 &(KOPrefs::instance()->mExcludeSaturdays),excludeBox);
560 560
561// KPrefsDialogWidBool *marcusBainsShowSeconds = addWidBool(i18n("Show seconds on Marcus Bains line"), 561// KPrefsDialogWidBool *marcusBainsShowSeconds = addWidBool(i18n("Show seconds on Marcus Bains line"),
562 // &(KOPrefs::instance()->mMarcusBainsShowSeconds), 562 // &(KOPrefs::instance()->mMarcusBainsShowSeconds),
563 // topFrame); 563 // topFrame);
564// topLayout->addWidget(marcusBainsShowSeconds->checkBox(),5,0); 564// topLayout->addWidget(marcusBainsShowSeconds->checkBox(),5,0);
565 565
566 // topLayout->setRowStretch(6,1); 566 // topLayout->setRowStretch(6,1);
567} 567}
568 568
569 569
570void KOPrefsDialog::setupViewsTab() 570void KOPrefsDialog::setupViewsTab()
571{ 571{
572 572
573 QFrame *topFrame = addPage(i18n("Views"),0,0); 573 QFrame *topFrame = addPage(i18n("Views"),0,0);
574 // DesktopIcon("viewmag",KIcon::SizeMedium)); 574 // DesktopIcon("viewmag",KIcon::SizeMedium));
575 575
576 QGridLayout *topLayout = new QGridLayout(topFrame,6,1); 576 QGridLayout *topLayout = new QGridLayout(topFrame,6,1);
577 topLayout->setSpacing(mSpacingHint); 577 topLayout->setSpacing(mSpacingHint);
578 topLayout->setMargin(mMarginHint); 578 topLayout->setMargin(mMarginHint);
579 579
580// QBoxLayout *dayBeginsLayout = new QHBoxLayout; 580// QBoxLayout *dayBeginsLayout = new QHBoxLayout;
581// topLayout->addLayout(dayBeginsLayout,0,0); 581// topLayout->addLayout(dayBeginsLayout,0,0);
582 582
583// KPrefsDialogWidTime *dayBegins = 583// KPrefsDialogWidTime *dayBegins =
584// addWidTime(i18n("Day begins at:"),&(KOPrefs::instance()->mDayBegins), 584// addWidTime(i18n("Day begins at:"),&(KOPrefs::instance()->mDayBegins),
585// topFrame); 585// topFrame);
586// dayBeginsLayout->addWidget(dayBegins->label()); 586// dayBeginsLayout->addWidget(dayBegins->label());
587// dayBeginsLayout->addStretch(1); 587// dayBeginsLayout->addStretch(1);
588// dayBeginsLayout->addWidget(dayBegins->spinBox()); 588// dayBeginsLayout->addWidget(dayBegins->spinBox());
589 589
590// QBoxLayout *nextDaysLayout = new QHBoxLayout; 590// QBoxLayout *nextDaysLayout = new QHBoxLayout;
591// topLayout->addLayout(nextDaysLayout,1,0); 591// topLayout->addLayout(nextDaysLayout,1,0);
592// nextDaysLayout->addWidget(new QLabel(i18n("Days to show in Next-X-Days view:"),topFrame)); 592// nextDaysLayout->addWidget(new QLabel(i18n("Days to show in Next-X-Days view:"),topFrame));
593// mNextXDaysSpin = new QSpinBox(2,14,1,topFrame); 593// mNextXDaysSpin = new QSpinBox(2,14,1,topFrame);
594// nextDaysLayout->addStretch(1); 594// nextDaysLayout->addStretch(1);
595// nextDaysLayout->addWidget(mNextXDaysSpin); 595// nextDaysLayout->addWidget(mNextXDaysSpin);
596 596
597 597
598 int ii = 0; 598 int ii = 0;
599 KPrefsDialogWidBool *dummy = 599 KPrefsDialogWidBool *dummy =
600 addWidBool(i18n("Edit item on doubleclick (if not, show)"), 600 addWidBool(i18n("Edit item on doubleclick (if not, show)"),
601 &(KOPrefs::instance()->mEditOnDoubleClick),topFrame); 601 &(KOPrefs::instance()->mEditOnDoubleClick),topFrame);
602 topLayout->addWidget(dummy->checkBox(),ii++,0); 602 topLayout->addWidget(dummy->checkBox(),ii++,0);
603 603
604 604
605 605
606 606
607 607
608 608
609 // topLayout->addWidget(hourSizeGroup,ii++,0); 609 // topLayout->addWidget(hourSizeGroup,ii++,0);
610 // topLayout->addMultiCellWidget(hourSizeGroup,ii,ii,0,0); 610 // topLayout->addMultiCellWidget(hourSizeGroup,ii,ii,0,0);
611 //topLayout->setRowStretch(11,1); 611 //topLayout->setRowStretch(11,1);
612 612
613 613
614 614
615 615
616#if 0 616#if 0
617 617
618 topFrame = addPage(i18n("ViewChange"),0,0); 618 topFrame = addPage(i18n("ViewChange"),0,0);
619 // DesktopIcon("viewmag",KIcon::SizeMedium)); 619 // DesktopIcon("viewmag",KIcon::SizeMedium));
620 620
621 topLayout = new QGridLayout(topFrame,6,1); 621 topLayout = new QGridLayout(topFrame,6,1);
622 topLayout->setSpacing(mSpacingHint); 622 topLayout->setSpacing(mSpacingHint);
623 topLayout->setMargin(mMarginHint); 623 topLayout->setMargin(mMarginHint);
624 ii = 0; 624 ii = 0;
625 625
626#endif 626#endif
627 627
628 dummy = 628 dummy =
629 addWidBool(i18n("Hold fullscreen on view change"), 629 addWidBool(i18n("Hold fullscreen on view change"),
630 &(KOPrefs::instance()->mViewChangeHoldFullscreen),topFrame); 630 &(KOPrefs::instance()->mViewChangeHoldFullscreen),topFrame);
631 topLayout->addWidget(dummy->checkBox(),ii++,0); 631 topLayout->addWidget(dummy->checkBox(),ii++,0);
632 632
633 dummy = 633 dummy =
634 addWidBool(i18n("Hold non-fullscreen on view change"), 634 addWidBool(i18n("Hold non-fullscreen on view change"),
635 &(KOPrefs::instance()->mViewChangeHoldNonFullscreen),topFrame); 635 &(KOPrefs::instance()->mViewChangeHoldNonFullscreen),topFrame);
636 topLayout->addWidget(dummy->checkBox(),ii++,0); 636 topLayout->addWidget(dummy->checkBox(),ii++,0);
637 637
638 638
639 639
640 KPrefsDialogWidBool *fullViewMonth = 640 KPrefsDialogWidBool *fullViewMonth =
641 addWidBool(i18n("Next days view uses full window"), 641 addWidBool(i18n("Next days view uses full window"),
642 &(KOPrefs::instance()->mFullViewMonth),topFrame); 642 &(KOPrefs::instance()->mFullViewMonth),topFrame);
643 topLayout->addWidget(fullViewMonth->checkBox(),ii++,0); 643 topLayout->addWidget(fullViewMonth->checkBox(),ii++,0);
644 644
645 645
646 KPrefsDialogWidBool *fullViewTodo = 646 KPrefsDialogWidBool *fullViewTodo =
647 addWidBool(i18n("Event list view uses full window"), 647 addWidBool(i18n("Event list view uses full window"),
648 &(KOPrefs::instance()->mFullViewTodo),topFrame); 648 &(KOPrefs::instance()->mFullViewTodo),topFrame);
649 topLayout->addWidget(fullViewTodo->checkBox(),ii++,0); 649 topLayout->addWidget(fullViewTodo->checkBox(),ii++,0);
650 dummy = 650 dummy =
651 addWidBool(i18n("Listview uses monthly timespan"), 651 addWidBool(i18n("Listview uses monthly timespan"),
652 &(KOPrefs::instance()->mListViewMonthTimespan),topFrame); 652 &(KOPrefs::instance()->mListViewMonthTimespan),topFrame);
653 topLayout->addWidget(dummy->checkBox(),ii++,0); 653 topLayout->addWidget(dummy->checkBox(),ii++,0);
654 dummy = 654 dummy =
655 addWidBool(i18n("Highlight selection in Time Edit"), 655 addWidBool(i18n("Highlight selection in Time Edit"),
656 &(KOPrefs::instance()->mHightlightDateTimeEdit),topFrame); 656 &(KOPrefs::instance()->mHightlightDateTimeEdit),topFrame);
657 topLayout->addWidget( dummy->checkBox(), ii++,0); 657 topLayout->addWidget( dummy->checkBox(), ii++,0);
658 658
659 KPrefsDialogWidBool *dailyRecur = 659 KPrefsDialogWidBool *dailyRecur =
660 addWidBool(i18n("Show events that recur daily in date nav."), 660 addWidBool(i18n("Show events that recur daily in date nav."),
661 &(KOPrefs::instance()->mDailyRecur),topFrame); 661 &(KOPrefs::instance()->mDailyRecur),topFrame);
662 topLayout->addWidget(dailyRecur->checkBox(),ii++,0); 662 topLayout->addWidget(dailyRecur->checkBox(),ii++,0);
663 663
664 KPrefsDialogWidBool *weeklyRecur = 664 KPrefsDialogWidBool *weeklyRecur =
665 addWidBool(i18n("Show ev. that recur weekly in date nav."), 665 addWidBool(i18n("Show ev. that recur weekly in date nav."),
666 &(KOPrefs::instance()->mWeeklyRecur),topFrame); 666 &(KOPrefs::instance()->mWeeklyRecur),topFrame);
667 topLayout->addWidget(weeklyRecur->checkBox(),ii++,0); 667 topLayout->addWidget(weeklyRecur->checkBox(),ii++,0);
668 668
669#ifdef DESKTOP_VERSION 669#ifdef DESKTOP_VERSION
670 KPrefsDialogWidBool *enableToolTips = 670 KPrefsDialogWidBool *enableToolTips =
671 addWidBool(i18n("Enable tooltips displaying summary of ev."), 671 addWidBool(i18n("Enable tooltips displaying summary of ev."),
672 &(KOPrefs::instance()->mEnableToolTips),topFrame); 672 &(KOPrefs::instance()->mEnableToolTips),topFrame);
673 topLayout->addWidget(enableToolTips->checkBox(),ii++,0); 673 topLayout->addWidget(enableToolTips->checkBox(),ii++,0);
674#endif 674#endif
675 // ********************************************************* 675 // *********************************************************
676 676
677 topFrame = addPage(i18n("Agenda View"),0,0); 677 topFrame = addPage(i18n("Agenda View"),0,0);
678 // DesktopIcon("viewmag",KIcon::SizeMedium)); 678 // DesktopIcon("viewmag",KIcon::SizeMedium));
679 679
680 topLayout = new QGridLayout(topFrame,5,1); 680 topLayout = new QGridLayout(topFrame,5,1);
681 topLayout->setSpacing(mSpacingHint); 681 topLayout->setSpacing(mSpacingHint);
682 topLayout->setMargin(mMarginHint); 682 topLayout->setMargin(mMarginHint);
683 ii = 0; 683 ii = 0;
684 684
685 685
686 dummy = 686 dummy =
687 addWidBool(i18n("Show time in agenda items"), 687 addWidBool(i18n("Show time in agenda items"),
688 &(KOPrefs::instance()->mShowTimeInAgenda),topFrame); 688 &(KOPrefs::instance()->mShowTimeInAgenda),topFrame);
689 topLayout->addWidget(dummy->checkBox(),ii++,0); 689 topLayout->addWidget(dummy->checkBox(),ii++,0);
690 690
691 dummy = 691 dummy =
692 addWidBool(i18n("Highlight current day in agenda"), 692 addWidBool(i18n("Highlight current day in agenda"),
693 &(KOPrefs::instance()->mHighlightCurrentDay),topFrame); 693 &(KOPrefs::instance()->mHighlightCurrentDay),topFrame);
694 topLayout->addWidget(dummy->checkBox(),ii++,0); 694 topLayout->addWidget(dummy->checkBox(),ii++,0);
695 695
696 dummy = 696 dummy =
697 addWidBool(i18n("Use light color for highlight current day"), 697 addWidBool(i18n("Use light color for highlight current day"),
698 &(KOPrefs::instance()->mUseHighlightLightColor),topFrame); 698 &(KOPrefs::instance()->mUseHighlightLightColor),topFrame);
699 topLayout->addWidget(dummy->checkBox(),ii++,0); 699 topLayout->addWidget(dummy->checkBox(),ii++,0);
700 700
701 701
702 KPrefsDialogWidBool *marcusBainsEnabled = 702 KPrefsDialogWidBool *marcusBainsEnabled =
703 addWidBool(i18n("Show current time"), 703 addWidBool(i18n("Show current time"),
704 &(KOPrefs::instance()->mMarcusBainsEnabled),topFrame); 704 &(KOPrefs::instance()->mMarcusBainsEnabled),topFrame);
705 topLayout->addWidget(marcusBainsEnabled->checkBox(),ii++,0); 705 topLayout->addWidget(marcusBainsEnabled->checkBox(),ii++,0);
706 706
707 707
708 dummy = 708 dummy =
709 addWidBool(i18n("Set agenda to DayBeginsAt on change"), 709 addWidBool(i18n("Set agenda to DayBeginsAt on change"),
710 &(KOPrefs::instance()->mSetTimeToDayStartAt),topFrame); 710 &(KOPrefs::instance()->mSetTimeToDayStartAt),topFrame);
711 topLayout->addWidget(dummy->checkBox(),ii++,0); 711 topLayout->addWidget(dummy->checkBox(),ii++,0);
712 712
713 dummy = 713 dummy =
714 addWidBool(i18n("Set agenda to current time on change"), 714 addWidBool(i18n("Set agenda to current time on change"),
715 &(KOPrefs::instance()->mCenterOnCurrentTime),topFrame); 715 &(KOPrefs::instance()->mCenterOnCurrentTime),topFrame);
716 topLayout->addWidget(dummy->checkBox(),ii++,0); 716 topLayout->addWidget(dummy->checkBox(),ii++,0);
717 717
718 718
719 719
720 720
721 721
722 722
723 723
724 topFrame = addPage(i18n("Month View"),0,0); 724 topFrame = addPage(i18n("Month View"),0,0);
725 // DesktopIcon("viewmag",KIcon::SizeMedium)); 725 // DesktopIcon("viewmag",KIcon::SizeMedium));
726 726
727 topLayout = new QGridLayout(topFrame,5,1); 727 topLayout = new QGridLayout(topFrame,5,1);
728 topLayout->setSpacing(mSpacingHint); 728 topLayout->setSpacing(mSpacingHint);
729 topLayout->setMargin(mMarginHint); 729 topLayout->setMargin(mMarginHint);
730 ii = 0; 730 ii = 0;
731 QLabel *lab; 731 QLabel *lab;
732 QHBox *habo = new QHBox( topFrame ); 732 QHBox *habo = new QHBox( topFrame );
733 if ( QApplication::desktop()->width() <= 480 ) { 733 if ( QApplication::desktop()->width() <= 480 ) {
734 lab = new QLabel ( i18n("Show events that recur "), topFrame ); 734 lab = new QLabel ( i18n("Show events that recur "), topFrame );
735 topLayout->addMultiCellWidget(lab,ii, ii,0,1); 735 topLayout->addMultiCellWidget(lab,ii, ii,0,1);
736 ii++; 736 ii++;
737 } else { 737 } else {
738 new QLabel ( i18n("Show events that recur "), habo ); 738 new QLabel ( i18n("Show events that recur "), habo );
739 } 739 }
740 dailyRecur = 740 dailyRecur =
741 addWidBool(i18n("daily"), 741 addWidBool(i18n("daily"),
742 &(KOPrefs::instance()->mMonthDailyRecur),habo); 742 &(KOPrefs::instance()->mMonthDailyRecur),habo);
743 // topLayout->addWidget(dailyRecur->checkBox(),ii++,0); 743 // topLayout->addWidget(dailyRecur->checkBox(),ii++,0);
744 744
745 weeklyRecur = 745 weeklyRecur =
746 addWidBool(i18n("weekly"), 746 addWidBool(i18n("weekly"),
747 &(KOPrefs::instance()->mMonthWeeklyRecur),habo); 747 &(KOPrefs::instance()->mMonthWeeklyRecur),habo);
748 topLayout->addMultiCellWidget(habo,ii, ii,0,1); 748 topLayout->addMultiCellWidget(habo,ii, ii,0,1);
749 ii++; 749 ii++;
750 750
751 751
752 habo = new QHBox( topFrame ); 752 habo = new QHBox( topFrame );
753 if ( QApplication::desktop()->width() <= 480 ) { 753 if ( QApplication::desktop()->width() <= 480 ) {
754 lab = new QLabel (i18n("Show in every cell ") , topFrame ); 754 lab = new QLabel (i18n("Show in every cell ") , topFrame );
755 topLayout->addMultiCellWidget(lab,ii, ii,0,1); 755 topLayout->addMultiCellWidget(lab,ii, ii,0,1);
756 ii++; 756 ii++;
757 757
758 } else { 758 } else {
759 new QLabel ( i18n("Show in every cell "), habo ); 759 new QLabel ( i18n("Show in every cell "), habo );
760 } 760 }
761 weeklyRecur = 761 weeklyRecur =
762 addWidBool(i18n("short month"), 762 addWidBool(i18n("short month"),
763 &(KOPrefs::instance()->mMonthShowShort),habo); 763 &(KOPrefs::instance()->mMonthShowShort),habo);
764 weeklyRecur = 764 weeklyRecur =
765 addWidBool(i18n("icons"), 765 addWidBool(i18n("icons"),
766 &(KOPrefs::instance()->mMonthShowIcons),habo); 766 &(KOPrefs::instance()->mMonthShowIcons),habo);
767 weeklyRecur = 767 weeklyRecur =
768 addWidBool(i18n("times"), 768 addWidBool(i18n("times"),
769 &(KOPrefs::instance()->mMonthShowTimes),habo); 769 &(KOPrefs::instance()->mMonthShowTimes),habo);
770 topLayout->addMultiCellWidget(habo,ii, ii,0,1); 770 topLayout->addMultiCellWidget(habo,ii, ii,0,1);
771 ii++; 771 ii++;
772#ifdef DESKTOP_VERSION 772#ifdef DESKTOP_VERSION
773 KPrefsDialogWidBool *enableMonthScroll = 773 KPrefsDialogWidBool *enableMonthScroll =
774 addWidBool(i18n("Enable scrollbars in month view cells"), 774 addWidBool(i18n("Enable scrollbars in month view cells"),
775 &(KOPrefs::instance()->mEnableMonthScroll),topFrame); 775 &(KOPrefs::instance()->mEnableMonthScroll),topFrame);
776 topLayout->addWidget(enableMonthScroll->checkBox(),ii++,0); 776 topLayout->addWidget(enableMonthScroll->checkBox(),ii++,0);
777#endif 777#endif
778 dummy = 778 dummy =
779 addWidBool(i18n("Week view mode uses bigger font"), 779 addWidBool(i18n("Week view mode uses bigger font"),
780 &(KOPrefs::instance()->mMonthViewUsesBigFont),topFrame); 780 &(KOPrefs::instance()->mMonthViewUsesBigFont),topFrame);
781 topLayout->addWidget(dummy->checkBox(),ii++,0); 781 topLayout->addWidget(dummy->checkBox(),ii++,0);
782 dummy = 782 dummy =
783 addWidBool(i18n("Show Sat/Sun together"), 783 addWidBool(i18n("Show Sat/Sun together"),
784 &(KOPrefs::instance()->mMonthViewSatSunTog),topFrame); 784 &(KOPrefs::instance()->mMonthViewSatSunTog),topFrame);
785 topLayout->addWidget(dummy->checkBox(),ii++,0); 785 topLayout->addWidget(dummy->checkBox(),ii++,0);
786 786
787 KPrefsDialogWidBool *coloredCategoriesInMonthView = 787 KPrefsDialogWidBool *coloredCategoriesInMonthView =
788 addWidBool(i18n("Month view uses category colors"), 788 addWidBool(i18n("Month view uses category colors"),
789 &(KOPrefs::instance()->mMonthViewUsesCategoryColor),topFrame); 789 &(KOPrefs::instance()->mMonthViewUsesCategoryColor),topFrame);
790 topLayout->addWidget(coloredCategoriesInMonthView->checkBox(),ii++,0); 790 topLayout->addWidget(coloredCategoriesInMonthView->checkBox(),ii++,0);
791 791
792 dummy = 792 dummy =
793 addWidBool(i18n("Categorie colors are applied to text"), 793 addWidBool(i18n("Categorie colors are applied to text"),
794 &(KOPrefs::instance()->mMonthViewUsesForegroundColor),topFrame); 794 &(KOPrefs::instance()->mMonthViewUsesForegroundColor),topFrame);
795 topLayout->addWidget(dummy->checkBox(),ii++,0); 795 topLayout->addWidget(dummy->checkBox(),ii++,0);
796 coloredCategoriesInMonthView = 796 coloredCategoriesInMonthView =
797 addWidBool(i18n("Month view uses day colors"), 797 addWidBool(i18n("Month view uses day colors"),
798 &(KOPrefs::instance()->mMonthViewUsesDayColors),topFrame); 798 &(KOPrefs::instance()->mMonthViewUsesDayColors),topFrame);
799 topLayout->addWidget(coloredCategoriesInMonthView->checkBox(),ii++,0); 799 topLayout->addWidget(coloredCategoriesInMonthView->checkBox(),ii++,0);
800 800
801 KPrefsDialogWidColor *holidayColor = 801 KPrefsDialogWidColor *holidayColor =
802 addWidColor(i18n("Day color odd months"), 802 addWidColor(i18n("Day color odd months"),
803 &(KOPrefs::instance()->mMonthViewOddColor),topFrame); 803 &(KOPrefs::instance()->mMonthViewOddColor),topFrame);
804 topLayout->addWidget(holidayColor->label(),ii,0); 804 topLayout->addWidget(holidayColor->label(),ii,0);
805 topLayout->addWidget(holidayColor->button(),ii++,1); 805 topLayout->addWidget(holidayColor->button(),ii++,1);
806 806
807 holidayColor = 807 holidayColor =
808 addWidColor(i18n("Day color even months"), 808 addWidColor(i18n("Day color even months"),
809 &(KOPrefs::instance()->mMonthViewEvenColor),topFrame); 809 &(KOPrefs::instance()->mMonthViewEvenColor),topFrame);
810 topLayout->addWidget(holidayColor->label(),ii,0); 810 topLayout->addWidget(holidayColor->label(),ii,0);
811 topLayout->addWidget(holidayColor->button(),ii++,1); 811 topLayout->addWidget(holidayColor->button(),ii++,1);
812 812
813 813
814 holidayColor = 814 holidayColor =
815 addWidColor(i18n("Color for Sundays + category \"Holiday\""), 815 addWidColor(i18n("Color for Sundays + category \"Holiday\""),
816 &(KOPrefs::instance()->mMonthViewHolidayColor),topFrame); 816 &(KOPrefs::instance()->mMonthViewHolidayColor),topFrame);
817 topLayout->addWidget(holidayColor->label(),ii,0); 817 topLayout->addWidget(holidayColor->label(),ii,0);
818 topLayout->addWidget(holidayColor->button(),ii++,1); 818 topLayout->addWidget(holidayColor->button(),ii++,1);
819 // *********************** What'sNext View 819 // *********************** What'sNext View
820 topFrame = addPage(i18n("What's Next View"),0,0); 820 topFrame = addPage(i18n("What's Next View"),0,0);
821 // DesktopIcon("viewmag",KIcon::SizeMedium)); 821 // DesktopIcon("viewmag",KIcon::SizeMedium));
822 822
823 topLayout = new QGridLayout(topFrame,4,1); 823 topLayout = new QGridLayout(topFrame,4,1);
824 topLayout->setSpacing(mSpacingHint); 824 topLayout->setSpacing(mSpacingHint);
825 topLayout->setMargin(mMarginHint); 825 topLayout->setMargin(mMarginHint);
826 ii = 0; 826 ii = 0;
827 827
828 828
829 QHBox* hdummy = new QHBox(topFrame); 829 QHBox* hdummy = new QHBox(topFrame);
830 new QLabel(i18n("Days in What's Next:"),hdummy); 830 new QLabel(i18n("Days in What's Next:"),hdummy);
831 mWhatsNextSpin = new QSpinBox(1,14,1,hdummy); 831 mWhatsNextSpin = new QSpinBox(1,14,1,hdummy);
832 832
833 topLayout->addWidget(hdummy,ii++,0); 833 topLayout->addWidget(hdummy,ii++,0);
834 834
835 QHBox *prioBox = new QHBox(topFrame); 835 QHBox *prioBox = new QHBox(topFrame);
836 // intervalBox->setSpacing(mSpacingHint); 836 // intervalBox->setSpacing(mSpacingHint);
837 topLayout->addWidget(prioBox,ii++,0); 837 topLayout->addWidget(prioBox,ii++,0);
838 838
839 QLabel *prioLabel = new QLabel(i18n("Number of max.displayed todo prios:"), prioBox); 839 QLabel *prioLabel = new QLabel(i18n("Number of max.displayed todo prios:"), prioBox);
840 mPrioSpin = new QSpinBox(0,5,1,prioBox); 840 mPrioSpin = new QSpinBox(0,5,1,prioBox);
841 if ( QApplication::desktop()->width() < 300 ) 841 if ( QApplication::desktop()->width() < 300 )
842 mPrioSpin->setFixedWidth( 40 ); 842 mPrioSpin->setFixedWidth( 40 );
843 843
844 KPrefsDialogWidBool *passwdk = 844 KPrefsDialogWidBool *passwdk =
845 845
846 addWidBool(i18n("Show events, that are done"), 846 addWidBool(i18n("Show events, that are done"),
847 &(KOPrefs::instance()->mWNViewShowsPast),topFrame); 847 &(KOPrefs::instance()->mWNViewShowsPast),topFrame);
848 topLayout->addWidget(passwdk->checkBox(), ii++,0); 848 topLayout->addWidget(passwdk->checkBox(), ii++,0);
849 passwdk = 849 passwdk =
850 addWidBool(i18n("Show parent To-Do's"), 850 addWidBool(i18n("Show parent To-Do's"),
851 &(KOPrefs::instance()->mWNViewShowsParents),topFrame); 851 &(KOPrefs::instance()->mWNViewShowsParents),topFrame);
852 topLayout->addWidget(passwdk->checkBox(), ii++,0); 852 topLayout->addWidget(passwdk->checkBox(), ii++,0);
853 853
854 passwdk = 854 passwdk =
855 addWidBool(i18n("Show location"), 855 addWidBool(i18n("Show location"),
856 &(KOPrefs::instance()->mWNViewShowLocation),topFrame); 856 &(KOPrefs::instance()->mWNViewShowLocation),topFrame);
857 topLayout->addWidget(passwdk->checkBox(), ii++,0); 857 topLayout->addWidget(passwdk->checkBox(), ii++,0);
858 858
859 passwdk = 859
860 addWidBool(i18n("Show Sync Events in WN+Agenda"),
861 &(KOPrefs::instance()->mShowSyncEvents),topFrame);
862 topLayout->addWidget(passwdk->checkBox(), ii++,0);
863 passwdk = 860 passwdk =
864 addWidBool(i18n("Use short date in WN+Event view"), 861 addWidBool(i18n("Use short date in WN+Event view"),
865 &(KOPrefs::instance()->mShortDateInViewer),topFrame); 862 &(KOPrefs::instance()->mShortDateInViewer),topFrame);
866 topLayout->addWidget(passwdk->checkBox(), ii++,0); 863 topLayout->addWidget(passwdk->checkBox(), ii++,0);
867 864
868 865
869 866
870 867
871 // *********************** Todo View 868 // *********************** Todo View
872 869
873 topFrame = addPage(i18n("Todo View"),0,0); 870 topFrame = addPage(i18n("Todo View"),0,0);
874 // DesktopIcon("viewmag",KIcon::SizeMedium)); 871 // DesktopIcon("viewmag",KIcon::SizeMedium));
875 872
876 topLayout = new QGridLayout(topFrame,4,1); 873 topLayout = new QGridLayout(topFrame,4,1);
877 topLayout->setSpacing(mSpacingHint); 874 topLayout->setSpacing(mSpacingHint);
878 topLayout->setMargin(mMarginHint); 875 topLayout->setMargin(mMarginHint);
879 ii = 0; 876 ii = 0;
880dummy = 877dummy =
881 addWidBool(i18n("Hide not running Todos in To-do view"), 878 addWidBool(i18n("Hide not running Todos in To-do view"),
882 &(KOPrefs::instance()->mHideNonStartedTodos),topFrame); 879 &(KOPrefs::instance()->mHideNonStartedTodos),topFrame);
883 topLayout->addWidget(dummy->checkBox(),ii++,0); 880 topLayout->addWidget(dummy->checkBox(),ii++,0);
884 881
885 882
886 KPrefsDialogWidBool *showCompletedTodo = 883 KPrefsDialogWidBool *showCompletedTodo =
887 addWidBool(i18n("To-do view shows completed Todos"), 884 addWidBool(i18n("To-do view shows completed Todos"),
888 &(KOPrefs::instance()->mShowCompletedTodo),topFrame); 885 &(KOPrefs::instance()->mShowCompletedTodo),topFrame);
889 topLayout->addWidget(showCompletedTodo->checkBox(),ii++,0); 886 topLayout->addWidget(showCompletedTodo->checkBox(),ii++,0);
890 dummy = 887 dummy =
891 addWidBool(i18n("To-do view shows complete as 'xx %'"), 888 addWidBool(i18n("To-do view shows complete as 'xx %'"),
892 &(KOPrefs::instance()->mTodoViewShowsPercentage),topFrame); 889 &(KOPrefs::instance()->mTodoViewShowsPercentage),topFrame);
893 topLayout->addWidget(dummy->checkBox(),ii++,0); 890 topLayout->addWidget(dummy->checkBox(),ii++,0);
894 891
895 dummy = 892 dummy =
896 addWidBool(i18n("Small To-do view uses smaller font"), 893 addWidBool(i18n("Small To-do view uses smaller font"),
897 &(KOPrefs::instance()->mTodoViewUsesSmallFont),topFrame); 894 &(KOPrefs::instance()->mTodoViewUsesSmallFont),topFrame);
898 topLayout->addWidget(dummy->checkBox(),ii++,0); 895 topLayout->addWidget(dummy->checkBox(),ii++,0);
899 896
900 897
901 898
902 dummy = 899 dummy =
903 addWidBool(i18n("Todo view uses category colors"), 900 addWidBool(i18n("Todo view uses category colors"),
904 &(KOPrefs::instance()->mTodoViewUsesCatColors),topFrame); 901 &(KOPrefs::instance()->mTodoViewUsesCatColors),topFrame);
905 topLayout->addWidget(dummy->checkBox(),ii++,0); 902 topLayout->addWidget(dummy->checkBox(),ii++,0);
906 903
907 904
908 QWidget* wid = new QWidget( topFrame ); 905 QWidget* wid = new QWidget( topFrame );
909 // Todo run today color 906 // Todo run today color
910 KPrefsDialogWidColor *todoRunColor = 907 KPrefsDialogWidColor *todoRunColor =
911 addWidColor(i18n("Color for running todos:"), 908 addWidColor(i18n("Color for running todos:"),
912 &(KOPrefs::instance()->mTodoRunColor),wid); 909 &(KOPrefs::instance()->mTodoRunColor),wid);
913 QHBoxLayout *widLayout = new QHBoxLayout(wid); 910 QHBoxLayout *widLayout = new QHBoxLayout(wid);
914 widLayout->addWidget( todoRunColor->label() ); 911 widLayout->addWidget( todoRunColor->label() );
915 widLayout->addWidget( todoRunColor->button() ); 912 widLayout->addWidget( todoRunColor->button() );
916 topLayout->addWidget(wid,ii++,0); 913 topLayout->addWidget(wid,ii++,0);
917 914
918 wid = new QWidget( topFrame ); 915 wid = new QWidget( topFrame );
919 // Todo due today color 916 // Todo due today color
920 KPrefsDialogWidColor *todoDueTodayColor = 917 KPrefsDialogWidColor *todoDueTodayColor =
921 addWidColor(i18n("Todo due today color:"), 918 addWidColor(i18n("Todo due today color:"),
922 &(KOPrefs::instance()->mTodoDueTodayColor),wid); 919 &(KOPrefs::instance()->mTodoDueTodayColor),wid);
923 widLayout = new QHBoxLayout(wid); 920 widLayout = new QHBoxLayout(wid);
924 widLayout->addWidget( todoDueTodayColor->label() ); 921 widLayout->addWidget( todoDueTodayColor->label() );
925 widLayout->addWidget( todoDueTodayColor->button() ); 922 widLayout->addWidget( todoDueTodayColor->button() );
926 topLayout->addWidget(wid,ii++,0); 923 topLayout->addWidget(wid,ii++,0);
927 //topLayout->addWidget(todoDueTodayColor->button(),ii++,1); 924 //topLayout->addWidget(todoDueTodayColor->button(),ii++,1);
928 925
929 // Todo overdue color 926 // Todo overdue color
930 wid = new QWidget( topFrame ); 927 wid = new QWidget( topFrame );
931 widLayout = new QHBoxLayout(wid); 928 widLayout = new QHBoxLayout(wid);
932 KPrefsDialogWidColor *todoOverdueColor = 929 KPrefsDialogWidColor *todoOverdueColor =
933 addWidColor(i18n("Todo overdue color:"), 930 addWidColor(i18n("Todo overdue color:"),
934 &(KOPrefs::instance()->mTodoOverdueColor),wid); 931 &(KOPrefs::instance()->mTodoOverdueColor),wid);
935 widLayout->addWidget(todoOverdueColor->label()); 932 widLayout->addWidget(todoOverdueColor->label());
936 widLayout->addWidget(todoOverdueColor->button()); 933 widLayout->addWidget(todoOverdueColor->button());
937 topLayout->addWidget(wid,ii++,0); 934 topLayout->addWidget(wid,ii++,0);
938 935
939 dummy = 936 dummy =
940 addWidBool(i18n("Colors are applied to text"), 937 addWidBool(i18n("Colors are applied to text"),
941 &(KOPrefs::instance()->mTodoViewUsesForegroundColor),topFrame); 938 &(KOPrefs::instance()->mTodoViewUsesForegroundColor),topFrame);
942 topLayout->addWidget(dummy->checkBox(),ii++,0); 939 topLayout->addWidget(dummy->checkBox(),ii++,0);
943 940
944 dummy = 941 dummy =
945 addWidBool(i18n("Allday Agenda view shows todos"), 942 addWidBool(i18n("Allday Agenda view shows todos"),
946 &(KOPrefs::instance()->mShowTodoInAgenda),topFrame); 943 &(KOPrefs::instance()->mShowTodoInAgenda),topFrame);
947 topLayout->addWidget(dummy->checkBox(),ii++,0); 944 topLayout->addWidget(dummy->checkBox(),ii++,0);
948 945
949 946
950 topFrame = addPage(i18n("View Options"),0,0); 947 topFrame = addPage(i18n("View Options"),0,0);
951 948
952 topLayout = new QGridLayout(topFrame,4,1); 949 topLayout = new QGridLayout(topFrame,4,1);
953 topLayout->setSpacing(mSpacingHint); 950 topLayout->setSpacing(mSpacingHint);
954 topLayout->setMargin(mMarginHint); 951 topLayout->setMargin(mMarginHint);
955 ii = 0; 952 ii = 0;
953
954 dummy =
955 addWidBool(i18n("Show Sync Events"),
956 &(KOPrefs::instance()->mShowSyncEvents),topFrame);
957 topLayout->addWidget(dummy->checkBox(), ii++,0);
958
956 lab = new QLabel( i18n("Show in todo/event viewer:"), topFrame); 959 lab = new QLabel( i18n("Show in todo/event viewer:"), topFrame);
957 topLayout->addWidget(lab ,ii++,0); 960 topLayout->addWidget(lab ,ii++,0);
958 961
959 dummy = addWidBool(i18n("Details"), 962 dummy = addWidBool(i18n("Details"),
960 &(KOPrefs::instance()->mEVshowDetails),topFrame); 963 &(KOPrefs::instance()->mEVshowDetails),topFrame);
961 topLayout->addWidget(dummy->checkBox(),ii++,0); 964 topLayout->addWidget(dummy->checkBox(),ii++,0);
962 dummy = addWidBool(i18n("Created time"), 965 dummy = addWidBool(i18n("Created time"),
963 &(KOPrefs::instance()->mEVshowCreated),topFrame); 966 &(KOPrefs::instance()->mEVshowCreated),topFrame);
964 topLayout->addWidget(dummy->checkBox(),ii++,0); 967 topLayout->addWidget(dummy->checkBox(),ii++,0);
965 dummy = addWidBool(i18n("Last modified time"), 968 dummy = addWidBool(i18n("Last modified time"),
966 &(KOPrefs::instance()->mEVshowChanged),topFrame); 969 &(KOPrefs::instance()->mEVshowChanged),topFrame);
967 topLayout->addWidget(dummy->checkBox(),ii++,0); 970 topLayout->addWidget(dummy->checkBox(),ii++,0);
968 971
969 972
970 lab = new QLabel( i18n("Show in What'sThis quick overview:"), topFrame); 973 lab = new QLabel( i18n("Show in What'sThis quick overview:"), topFrame);
971 topLayout->addWidget(lab ,ii++,0); 974 topLayout->addWidget(lab ,ii++,0);
972 975
973 dummy = addWidBool(i18n("Details"), 976 dummy = addWidBool(i18n("Details"),
974 &(KOPrefs::instance()->mWTshowDetails),topFrame); 977 &(KOPrefs::instance()->mWTshowDetails),topFrame);
975 topLayout->addWidget(dummy->checkBox(),ii++,0); 978 topLayout->addWidget(dummy->checkBox(),ii++,0);
976 dummy = addWidBool(i18n("Created time"), 979 dummy = addWidBool(i18n("Created time"),
977 &(KOPrefs::instance()->mWTshowCreated),topFrame); 980 &(KOPrefs::instance()->mWTshowCreated),topFrame);
978 topLayout->addWidget(dummy->checkBox(),ii++,0); 981 topLayout->addWidget(dummy->checkBox(),ii++,0);
979 dummy = addWidBool(i18n("Last modified time"), 982 dummy = addWidBool(i18n("Last modified time"),
980 &(KOPrefs::instance()->mWTshowChanged),topFrame); 983 &(KOPrefs::instance()->mWTshowChanged),topFrame);
981 topLayout->addWidget(dummy->checkBox(),ii++,0); 984 topLayout->addWidget(dummy->checkBox(),ii++,0);
982 985
983 986
984 topFrame = addPage(i18n("Alarm"),0,0); 987 topFrame = addPage(i18n("Alarm"),0,0);
985 // DesktopIcon("viewmag",KIcon::SizeMedium)); 988 // DesktopIcon("viewmag",KIcon::SizeMedium));
986 989
987 topLayout = new QGridLayout(topFrame,2,1); 990 topLayout = new QGridLayout(topFrame,2,1);
988 topLayout->setSpacing(mSpacingHint); 991 topLayout->setSpacing(mSpacingHint);
989 topLayout->setMargin(mMarginHint); 992 topLayout->setMargin(mMarginHint);
990 int iii = 0; 993 int iii = 0;
991 994
992 dummy = 995 dummy =
993 addWidBool(i18n("Use internal alarm notification"), 996 addWidBool(i18n("Use internal alarm notification"),
994 &(KOPrefs::instance()->mUseInternalAlarmNotification),topFrame); 997 &(KOPrefs::instance()->mUseInternalAlarmNotification),topFrame);
995 topLayout->addWidget(dummy->checkBox(),iii++,0); 998 topLayout->addWidget(dummy->checkBox(),iii++,0);
996 lab = new QLabel( i18n("Note: KO/Pi must be running to notify you about an alarm. Recommended for use on Zaurus: Disable this option and install KO/Pi alarm applet.\n"), topFrame); 999 lab = new QLabel( i18n("Note: KO/Pi must be running to notify you about an alarm. Recommended for use on Zaurus: Disable this option and install KO/Pi alarm applet.\n"), topFrame);
997 1000
998 topLayout->addWidget(lab ,iii++,0); 1001 topLayout->addWidget(lab ,iii++,0);
999#ifndef DESKTOP_VERSION 1002#ifndef DESKTOP_VERSION
1000 lab->setAlignment( AlignLeft|WordBreak|AlignTop); 1003 lab->setAlignment( AlignLeft|WordBreak|AlignTop);
1001#else 1004#else
1002 lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop); 1005 lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop);
1003 lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) ); 1006 lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) );
1004#endif 1007#endif
1005 1008
1006 QHBox* dummyBox = new QHBox(topFrame); 1009 QHBox* dummyBox = new QHBox(topFrame);
1007 new QLabel(i18n("Play beeps count:"),dummyBox); 1010 new QLabel(i18n("Play beeps count:"),dummyBox);
1008 mAlarmPlayBeeps = new QSpinBox(0,500,1,dummyBox); 1011 mAlarmPlayBeeps = new QSpinBox(0,500,1,dummyBox);
1009 topLayout->addWidget(dummyBox,iii++,0); 1012 topLayout->addWidget(dummyBox,iii++,0);
1010 1013
1011 dummyBox = new QHBox(topFrame); 1014 dummyBox = new QHBox(topFrame);
1012 new QLabel(i18n("Beeps interval in sec:"),dummyBox); 1015 new QLabel(i18n("Beeps interval in sec:"),dummyBox);
1013 mAlarmBeepInterval = new QSpinBox(1,600,1,dummyBox); 1016 mAlarmBeepInterval = new QSpinBox(1,600,1,dummyBox);
1014 topLayout->addWidget(dummyBox,iii++,0); 1017 topLayout->addWidget(dummyBox,iii++,0);
1015 1018
1016 dummyBox = new QHBox(topFrame); 1019 dummyBox = new QHBox(topFrame);
1017 new QLabel(i18n("Default suspend time in min:"),dummyBox); 1020 new QLabel(i18n("Default suspend time in min:"),dummyBox);
1018 mAlarmSuspendTime = new QSpinBox(1,600,1,dummyBox); 1021 mAlarmSuspendTime = new QSpinBox(1,600,1,dummyBox);
1019 topLayout->addWidget(dummyBox,iii++,0); 1022 topLayout->addWidget(dummyBox,iii++,0);
1020 1023
1021 dummyBox = new QHBox(topFrame); 1024 dummyBox = new QHBox(topFrame);
1022 new QLabel(i18n("Auto suspend count:"),dummyBox); 1025 new QLabel(i18n("Auto suspend count:"),dummyBox);
1023 mAlarmSuspendCount = new QSpinBox(0,60,1,dummyBox); 1026 mAlarmSuspendCount = new QSpinBox(0,60,1,dummyBox);
1024 topLayout->addWidget(dummyBox,iii++,0); 1027 topLayout->addWidget(dummyBox,iii++,0);
1025 1028
1026 1029
1027 1030
1028 1031
1029 1032
1030 1033
1031 1034
1032 QHBox* hbo = new QHBox ( topFrame ); 1035 QHBox* hbo = new QHBox ( topFrame );
1033 mDefaultAlarmFile = new QLineEdit(hbo); 1036 mDefaultAlarmFile = new QLineEdit(hbo);
1034 QPushButton * loadTemplate = new QPushButton(hbo); 1037 QPushButton * loadTemplate = new QPushButton(hbo);
1035 QPixmap icon; 1038 QPixmap icon;
1036 if ( QApplication::desktop()->width() < 321 ) 1039 if ( QApplication::desktop()->width() < 321 )
1037 icon = SmallIcon("fileimport16"); 1040 icon = SmallIcon("fileimport16");
1038 else 1041 else
1039 icon = SmallIcon("fileimport"); 1042 icon = SmallIcon("fileimport");
1040 loadTemplate->setIconSet (icon ) ; 1043 loadTemplate->setIconSet (icon ) ;
1041 connect( loadTemplate, SIGNAL( clicked() ), this , SLOT( selectSoundFile() ) ); 1044 connect( loadTemplate, SIGNAL( clicked() ), this , SLOT( selectSoundFile() ) );
1042 int size = loadTemplate->sizeHint().height(); 1045 int size = loadTemplate->sizeHint().height();
1043 loadTemplate->setFixedSize( size, size ); 1046 loadTemplate->setFixedSize( size, size );
1044 //lab = new QLabel( i18n("This setting is useless for 5500 user!"), topFrame); 1047 //lab = new QLabel( i18n("This setting is useless for 5500 user!"), topFrame);
1045 // topLayout->addWidget(lab ,iii++,0); 1048 // topLayout->addWidget(lab ,iii++,0);
1046 lab = new QLabel( i18n("Alarm *.wav file for newly created alarm:"), topFrame); 1049 lab = new QLabel( i18n("Alarm *.wav file for newly created alarm:"), topFrame);
1047 topLayout->addWidget(lab ,iii++,0); 1050 topLayout->addWidget(lab ,iii++,0);
1048 topLayout->addWidget(hbo,iii++,0); 1051 topLayout->addWidget(hbo,iii++,0);
1049 // lab = new QLabel( i18n("Note: This does not mean, that for every alarm this file is replayed. This file here is associated with a newly created alarm."), topFrame); 1052 // lab = new QLabel( i18n("Note: This does not mean, that for every alarm this file is replayed. This file here is associated with a newly created alarm."), topFrame);
1050 1053
1051// topLayout->addWidget(lab ,iii++,0); 1054// topLayout->addWidget(lab ,iii++,0);
1052// #ifndef DESKTOP_VERSION 1055// #ifndef DESKTOP_VERSION
1053// lab->setAlignment( AlignLeft|WordBreak|AlignTop); 1056// lab->setAlignment( AlignLeft|WordBreak|AlignTop);
1054// #else 1057// #else
1055// lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop); 1058// lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop);
1056// lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) ); 1059// lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) );
1057// #endif 1060// #endif
1058 1061
1059 1062
1060} 1063}
1061 1064
1062void KOPrefsDialog::selectSoundFile() 1065void KOPrefsDialog::selectSoundFile()
1063{ 1066{
1064 QString fileName = mDefaultAlarmFile->text(); 1067 QString fileName = mDefaultAlarmFile->text();
1065 fileName = KFileDialog::getSaveFileName( mDefaultAlarmFile->text() , "Choose default alarm file", this ); 1068 fileName = KFileDialog::getSaveFileName( mDefaultAlarmFile->text() , "Choose default alarm file", this );
1066 if ( fileName.length() > 0 ) 1069 if ( fileName.length() > 0 )
1067 mDefaultAlarmFile->setText( fileName ); 1070 mDefaultAlarmFile->setText( fileName );
1068} 1071}
1069void KOPrefsDialog::setupFontsTab() 1072void KOPrefsDialog::setupFontsTab()
1070{ 1073{
1071 1074
1072 QFrame *topFrame = addPage(i18n("Fonts"),0,0); 1075 QFrame *topFrame = addPage(i18n("Fonts"),0,0);
1073 // DesktopIcon("fonts",KIcon::SizeMedium)); 1076 // DesktopIcon("fonts",KIcon::SizeMedium));
1074 1077
1075 QGridLayout *topLayout = new QGridLayout(topFrame,7,3); 1078 QGridLayout *topLayout = new QGridLayout(topFrame,7,3);
1076 topLayout->setSpacing(1); 1079 topLayout->setSpacing(1);
1077 topLayout->setMargin(3); 1080 topLayout->setMargin(3);
1078 KPrefsDialogWidFont * tVFont; 1081 KPrefsDialogWidFont * tVFont;
1079 int i = 0; 1082 int i = 0;
1080 KPrefsDialogWidFont *timeLabelsFont = 1083 KPrefsDialogWidFont *timeLabelsFont =
1081 addWidFont(i18n("23"),i18n("DateNavigator:(nr)"), 1084 addWidFont(i18n("23"),i18n("DateNavigator:(nr)"),
1082 &(KOPrefs::instance()->mDateNavigatorFont),topFrame); 1085 &(KOPrefs::instance()->mDateNavigatorFont),topFrame);
1083 topLayout->addWidget(timeLabelsFont->label(),i,0); 1086 topLayout->addWidget(timeLabelsFont->label(),i,0);
1084 topLayout->addWidget(timeLabelsFont->preview(),i,1); 1087 topLayout->addWidget(timeLabelsFont->preview(),i,1);
1085 topLayout->addWidget(timeLabelsFont->button(),i,2); 1088 topLayout->addWidget(timeLabelsFont->button(),i,2);
1086 ++i; 1089 ++i;
1087 1090
1088 1091
1089 timeLabelsFont = 1092 timeLabelsFont =
1090 addWidFont(i18n("Mon 15"),i18n("Date Labels:"), 1093 addWidFont(i18n("Mon 15"),i18n("Date Labels:"),
1091 &(KOPrefs::instance()->mTimeLabelsFont),topFrame); 1094 &(KOPrefs::instance()->mTimeLabelsFont),topFrame);
1092 topLayout->addWidget(timeLabelsFont->label(),i,0); 1095 topLayout->addWidget(timeLabelsFont->label(),i,0);
1093 topLayout->addWidget(timeLabelsFont->preview(),i,1); 1096 topLayout->addWidget(timeLabelsFont->preview(),i,1);
1094 topLayout->addWidget(timeLabelsFont->button(),i,2); 1097 topLayout->addWidget(timeLabelsFont->button(),i,2);
1095 ++i; 1098 ++i;
1096 1099
1097 KPrefsDialogWidFont *timeBarFont = 1100 KPrefsDialogWidFont *timeBarFont =
1098 addWidFont(KGlobal::locale()->formatTime(QTime(12,34)),i18n("Time bar:"), 1101 addWidFont(KGlobal::locale()->formatTime(QTime(12,34)),i18n("Time bar:"),
1099 &(KOPrefs::instance()->mTimeBarFont),topFrame); 1102 &(KOPrefs::instance()->mTimeBarFont),topFrame);
1100 topLayout->addWidget(timeBarFont->label(),i,0); 1103 topLayout->addWidget(timeBarFont->label(),i,0);
1101 topLayout->addWidget(timeBarFont->preview(),i,1); 1104 topLayout->addWidget(timeBarFont->preview(),i,1);
1102 topLayout->addWidget(timeBarFont->button(),i,2); 1105 topLayout->addWidget(timeBarFont->button(),i,2);
1103 ++i; 1106 ++i;
1104 1107
1105 1108
1106 KPrefsDialogWidFont *marcusBainsFont = 1109 KPrefsDialogWidFont *marcusBainsFont =
1107 addWidFont(KGlobal::locale()->formatTime(QTime(12,34,23)),i18n("M. Bains line:"), 1110 addWidFont(KGlobal::locale()->formatTime(QTime(12,34,23)),i18n("M. Bains line:"),
1108 &(KOPrefs::instance()->mMarcusBainsFont),topFrame); 1111 &(KOPrefs::instance()->mMarcusBainsFont),topFrame);
1109 topLayout->addWidget(marcusBainsFont->label(),i,0); 1112 topLayout->addWidget(marcusBainsFont->label(),i,0);
1110 topLayout->addWidget(marcusBainsFont->preview(),i,1); 1113 topLayout->addWidget(marcusBainsFont->preview(),i,1);
1111 topLayout->addWidget(marcusBainsFont->button(),i,2); 1114 topLayout->addWidget(marcusBainsFont->button(),i,2);
1112 ++i; 1115 ++i;
1113 1116
1114 tVFont = 1117 tVFont =
1115 addWidFont(i18n("Summary"),i18n("Event Viewer:"), 1118 addWidFont(i18n("Summary"),i18n("Event Viewer:"),
1116 &(KOPrefs::instance()->mEventViewFont),topFrame); 1119 &(KOPrefs::instance()->mEventViewFont),topFrame);
1117 topLayout->addWidget(tVFont->label(),i,0); 1120 topLayout->addWidget(tVFont->label(),i,0);
1118 topLayout->addWidget(tVFont->preview(),i,1); 1121 topLayout->addWidget(tVFont->preview(),i,1);
1119 topLayout->addWidget(tVFont->button(),i,2); 1122 topLayout->addWidget(tVFont->button(),i,2);
1120 ++i; 1123 ++i;
1121 1124
1122 1125
1123 1126
1124 tVFont = 1127 tVFont =
1125 addWidFont(i18n("Details"),i18n("EditorBox:"), 1128 addWidFont(i18n("Details"),i18n("EditorBox:"),
1126 &(KOPrefs::instance()->mEditBoxFont),topFrame); 1129 &(KOPrefs::instance()->mEditBoxFont),topFrame);
1127 topLayout->addWidget(tVFont->label(),i,0); 1130 topLayout->addWidget(tVFont->label(),i,0);
1128 topLayout->addWidget(tVFont->preview(),i,1); 1131 topLayout->addWidget(tVFont->preview(),i,1);
1129 topLayout->addWidget(tVFont->button(),i,2); 1132 topLayout->addWidget(tVFont->button(),i,2);
1130 ++i; 1133 ++i;
1131 1134
1132 1135
1133 1136
1134 topLayout->setColStretch(1,1); 1137 topLayout->setColStretch(1,1);
1135 topLayout->setRowStretch(4,1); 1138 topLayout->setRowStretch(4,1);
1136 1139
1137 1140
1138 i = 0; 1141 i = 0;
1139 topFrame = addPage(i18n("View Fonts"),0, 1142 topFrame = addPage(i18n("View Fonts"),0,
1140 DesktopIcon("fonts",KIcon::SizeMedium)); 1143 DesktopIcon("fonts",KIcon::SizeMedium));
1141 1144
1142 topLayout = new QGridLayout(topFrame,7,3); 1145 topLayout = new QGridLayout(topFrame,7,3);
1143 topLayout->setSpacing(1); 1146 topLayout->setSpacing(1);
1144 topLayout->setMargin(3); 1147 topLayout->setMargin(3);
1145 1148
1146 tVFont = 1149 tVFont =
1147 addWidFont(i18n("Configure KO"),i18n("What's Next View:"), 1150 addWidFont(i18n("Configure KO"),i18n("What's Next View:"),
1148 &(KOPrefs::instance()->mWhatsNextFont),topFrame); 1151 &(KOPrefs::instance()->mWhatsNextFont),topFrame);
1149 topLayout->addWidget(tVFont->label(),i,0); 1152 topLayout->addWidget(tVFont->label(),i,0);
1150 topLayout->addWidget(tVFont->preview(),i,1); 1153 topLayout->addWidget(tVFont->preview(),i,1);
1151 topLayout->addWidget(tVFont->button(),i,2); 1154 topLayout->addWidget(tVFont->button(),i,2);
1152 ++i; 1155 ++i;
1153 KPrefsDialogWidFont *agendaViewFont = 1156 KPrefsDialogWidFont *agendaViewFont =
1154 addWidFont(i18n("Event text"),i18n("Agenda view:"), 1157 addWidFont(i18n("Event text"),i18n("Agenda view:"),
1155 &(KOPrefs::instance()->mAgendaViewFont),topFrame); 1158 &(KOPrefs::instance()->mAgendaViewFont),topFrame);
1156 topLayout->addWidget(agendaViewFont->label(),i,0); 1159 topLayout->addWidget(agendaViewFont->label(),i,0);
1157 topLayout->addWidget(agendaViewFont->preview(),i,1); 1160 topLayout->addWidget(agendaViewFont->preview(),i,1);
1158 topLayout->addWidget(agendaViewFont->button(),i,2); 1161 topLayout->addWidget(agendaViewFont->button(),i,2);
1159 ++i; 1162 ++i;
1160 1163
1161 1164
1162 KPrefsDialogWidFont *monthViewFont = 1165 KPrefsDialogWidFont *monthViewFont =
1163 addWidFont(KGlobal::locale()->formatTime(QTime(12,34)) + " " + i18n("Event"), 1166 addWidFont(KGlobal::locale()->formatTime(QTime(12,34)) + " " + i18n("Event"),
1164 i18n("Month view:"),&(KOPrefs::instance()->mMonthViewFont),topFrame); 1167 i18n("Month view:"),&(KOPrefs::instance()->mMonthViewFont),topFrame);
1165 topLayout->addWidget(monthViewFont->label(),i,0); 1168 topLayout->addWidget(monthViewFont->label(),i,0);
1166 topLayout->addWidget(monthViewFont->preview(),i,1); 1169 topLayout->addWidget(monthViewFont->preview(),i,1);
1167 topLayout->addWidget(monthViewFont->button(),i,2); 1170 topLayout->addWidget(monthViewFont->button(),i,2);
1168 ++i; 1171 ++i;
1169 1172
1170 1173
1171 KPrefsDialogWidFont *lVFont = 1174 KPrefsDialogWidFont *lVFont =
1172 addWidFont(i18n("Event"),i18n("List View:"), 1175 addWidFont(i18n("Event"),i18n("List View:"),
1173 &(KOPrefs::instance()->mListViewFont),topFrame); 1176 &(KOPrefs::instance()->mListViewFont),topFrame);
1174 topLayout->addWidget(lVFont->label(),i,0); 1177 topLayout->addWidget(lVFont->label(),i,0);
1175 topLayout->addWidget(lVFont->preview(),i,1); 1178 topLayout->addWidget(lVFont->preview(),i,1);
1176 topLayout->addWidget(lVFont->button(),i,2); 1179 topLayout->addWidget(lVFont->button(),i,2);
1177 ++i; 1180 ++i;
1178 1181
1179 1182
1180 tVFont = 1183 tVFont =
1181 addWidFont(i18n("ToDo"),i18n("ToDoView:"), 1184 addWidFont(i18n("ToDo"),i18n("ToDoView:"),
1182 &(KOPrefs::instance()->mTodoViewFont),topFrame); 1185 &(KOPrefs::instance()->mTodoViewFont),topFrame);
1183 topLayout->addWidget(tVFont->label(),i,0); 1186 topLayout->addWidget(tVFont->label(),i,0);
1184 topLayout->addWidget(tVFont->preview(),i,1); 1187 topLayout->addWidget(tVFont->preview(),i,1);
1185 topLayout->addWidget(tVFont->button(),i,2); 1188 topLayout->addWidget(tVFont->button(),i,2);
1186 ++i; 1189 ++i;
1187 1190
1188 1191
1189 tVFont = 1192 tVFont =
1190 addWidFont(i18n("Today"),i18n("JournalView:"), 1193 addWidFont(i18n("Today"),i18n("JournalView:"),
1191 &(KOPrefs::instance()->mJornalViewFont),topFrame); 1194 &(KOPrefs::instance()->mJornalViewFont),topFrame);
1192 topLayout->addWidget(tVFont->label(),i,0); 1195 topLayout->addWidget(tVFont->label(),i,0);
1193 topLayout->addWidget(tVFont->preview(),i,1); 1196 topLayout->addWidget(tVFont->preview(),i,1);
1194 topLayout->addWidget(tVFont->button(),i,2); 1197 topLayout->addWidget(tVFont->button(),i,2);
1195 ++i; 1198 ++i;
1196 1199
1197 1200
1198 1201
1199 1202
1200 topLayout->setColStretch(1,1); 1203 topLayout->setColStretch(1,1);
1201 topLayout->setRowStretch(4,1); 1204 topLayout->setRowStretch(4,1);
1202 1205
1203 1206
1204 1207
1205 1208
1206} 1209}
1207 1210
1208void KOPrefsDialog::setupColorsTab() 1211void KOPrefsDialog::setupColorsTab()
1209{ 1212{
1210 QFrame *topFrame = addPage(i18n("Colors"),0,0); 1213 QFrame *topFrame = addPage(i18n("Colors"),0,0);
1211 // DesktopIcon("colorize",KIcon::SizeMedium)); 1214 // DesktopIcon("colorize",KIcon::SizeMedium));
1212 1215
1213 QGridLayout *topLayout = new QGridLayout(topFrame,5,2); 1216 QGridLayout *topLayout = new QGridLayout(topFrame,5,2);
1214 // topLayout->setSpacing(mSpacingHint); 1217 // topLayout->setSpacing(mSpacingHint);
1215 // topLayout->setMargin(mMarginHint); 1218 // topLayout->setMargin(mMarginHint);
1216 1219
1217 topLayout->setSpacing(2); 1220 topLayout->setSpacing(2);
1218 topLayout->setMargin(3); 1221 topLayout->setMargin(3);
1219 1222
1220 int ii = 1; 1223 int ii = 1;
1221 QGroupBox *categoryGroup ; 1224 QGroupBox *categoryGroup ;
1222 1225
1223 categoryGroup = new QGroupBox(1,Vertical,i18n("Categories"), 1226 categoryGroup = new QGroupBox(1,Vertical,i18n("Categories"),
1224 topFrame); 1227 topFrame);
1225 topLayout->addMultiCellWidget(categoryGroup,0,0,0,1); 1228 topLayout->addMultiCellWidget(categoryGroup,0,0,0,1);
1226 1229
1227 mCategoryCombo = new QComboBox(categoryGroup); 1230 mCategoryCombo = new QComboBox(categoryGroup);
1228 mCategoryCombo->insertStringList(KOPrefs::instance()->mCustomCategories); 1231 mCategoryCombo->insertStringList(KOPrefs::instance()->mCustomCategories);
1229 connect(mCategoryCombo,SIGNAL(activated(int)),SLOT(updateCategoryColor())); 1232 connect(mCategoryCombo,SIGNAL(activated(int)),SLOT(updateCategoryColor()));
1230 1233
1231 mCategoryButton = new KColorButton(categoryGroup); 1234 mCategoryButton = new KColorButton(categoryGroup);
1232 connect(mCategoryButton,SIGNAL(changed(const QColor &)),SLOT(setCategoryColor())); 1235 connect(mCategoryButton,SIGNAL(changed(const QColor &)),SLOT(setCategoryColor()));
1233 updateCategoryColor(); 1236 updateCategoryColor();
1234 1237
1235 1238
1236 // Holiday Color 1239 // Holiday Color
1237 1240
1238 KPrefsDialogWidColor *holidayColor = 1241 KPrefsDialogWidColor *holidayColor =
1239 addWidColor(i18n("Holiday color:"), 1242 addWidColor(i18n("Holiday color:"),
1240 &(KOPrefs::instance()->mHolidayColor),topFrame); 1243 &(KOPrefs::instance()->mHolidayColor),topFrame);
1241 topLayout->addWidget(holidayColor->label(),ii,0); 1244 topLayout->addWidget(holidayColor->label(),ii,0);
1242 topLayout->addWidget(holidayColor->button(),ii++,1); 1245 topLayout->addWidget(holidayColor->button(),ii++,1);
1243 1246
1244 // Highlight Color 1247 // Highlight Color
1245 KPrefsDialogWidColor *highlightColor = 1248 KPrefsDialogWidColor *highlightColor =
1246 addWidColor(i18n("Highlight color:"), 1249 addWidColor(i18n("Highlight color:"),
1247 &(KOPrefs::instance()->mHighlightColor),topFrame); 1250 &(KOPrefs::instance()->mHighlightColor),topFrame);
1248 topLayout->addWidget(highlightColor->label(),ii,0); 1251 topLayout->addWidget(highlightColor->label(),ii,0);
1249 topLayout->addWidget(highlightColor->button(),ii++,1); 1252 topLayout->addWidget(highlightColor->button(),ii++,1);
1250 1253
1251 // Event color 1254 // Event color
1252 KPrefsDialogWidColor *eventColor = 1255 KPrefsDialogWidColor *eventColor =
1253 addWidColor(i18n("Default event color:"), 1256 addWidColor(i18n("Default event color:"),
1254 &(KOPrefs::instance()->mEventColor),topFrame); 1257 &(KOPrefs::instance()->mEventColor),topFrame);
1255 topLayout->addWidget(eventColor->label(),ii,0); 1258 topLayout->addWidget(eventColor->label(),ii,0);
1256 topLayout->addWidget(eventColor->button(),ii++,1); 1259 topLayout->addWidget(eventColor->button(),ii++,1);
1257 eventColor = 1260 eventColor =
1258 addWidColor(i18n("Default todo done color:"), 1261 addWidColor(i18n("Default todo done color:"),
1259 &(KOPrefs::instance()->mTodoDoneColor),topFrame); 1262 &(KOPrefs::instance()->mTodoDoneColor),topFrame);
1260 topLayout->addWidget(eventColor->label(),ii,0); 1263 topLayout->addWidget(eventColor->label(),ii,0);
1261 topLayout->addWidget(eventColor->button(),ii++,1); 1264 topLayout->addWidget(eventColor->button(),ii++,1);
1262 1265
1263 1266
1264 // agenda view background color 1267 // agenda view background color
1265 KPrefsDialogWidColor *agendaBgColor = 1268 KPrefsDialogWidColor *agendaBgColor =
1266 addWidColor(i18n("Agenda view background color:"), 1269 addWidColor(i18n("Agenda view background color:"),
1267 &(KOPrefs::instance()->mAgendaBgColor),topFrame); 1270 &(KOPrefs::instance()->mAgendaBgColor),topFrame);
1268 topLayout->addWidget(agendaBgColor->label(),ii,0); 1271 topLayout->addWidget(agendaBgColor->label(),ii,0);
1269 topLayout->addWidget(agendaBgColor->button(),ii++,1); 1272 topLayout->addWidget(agendaBgColor->button(),ii++,1);
1270 1273
1271 // working hours color 1274 // working hours color
1272 KPrefsDialogWidColor *workingHoursColor = 1275 KPrefsDialogWidColor *workingHoursColor =
1273 addWidColor(i18n("Working hours color:"), 1276 addWidColor(i18n("Working hours color:"),
1274 &(KOPrefs::instance()->mWorkingHoursColor),topFrame); 1277 &(KOPrefs::instance()->mWorkingHoursColor),topFrame);
1275 topLayout->addWidget(workingHoursColor->label(),ii,0); 1278 topLayout->addWidget(workingHoursColor->label(),ii,0);
1276 topLayout->addWidget(workingHoursColor->button(),ii++,1); 1279 topLayout->addWidget(workingHoursColor->button(),ii++,1);
1277 1280
1278 KPrefsDialogWidBool *sb = 1281 KPrefsDialogWidBool *sb =
1279 addWidBool(i18n("Use colors for application:"), 1282 addWidBool(i18n("Use colors for application:"),
1280 &(KOPrefs::instance()->mUseAppColors),topFrame); 1283 &(KOPrefs::instance()->mUseAppColors),topFrame);
1281 topLayout->addMultiCellWidget(sb->checkBox(), ii, ii, 0,1 ); 1284 topLayout->addMultiCellWidget(sb->checkBox(), ii, ii, 0,1 );
1282 1285
1283 ii++; 1286 ii++;
1284 KPrefsDialogWidColor * workingHoursColor1 = 1287 KPrefsDialogWidColor * workingHoursColor1 =
1285 addWidColor(i18n("Buttons, menus, etc.:"), 1288 addWidColor(i18n("Buttons, menus, etc.:"),
1286 &(KOPrefs::instance()->mAppColor1),topFrame); 1289 &(KOPrefs::instance()->mAppColor1),topFrame);
1287 topLayout->addWidget(workingHoursColor1->label(),ii,0); 1290 topLayout->addWidget(workingHoursColor1->label(),ii,0);
1288 topLayout->addWidget(workingHoursColor1->button(),ii++,1); 1291 topLayout->addWidget(workingHoursColor1->button(),ii++,1);
1289 1292
1290 KPrefsDialogWidColor * workingHoursColor2 = 1293 KPrefsDialogWidColor * workingHoursColor2 =
1291 addWidColor(i18n("Frames, labels, etc.:"), 1294 addWidColor(i18n("Frames, labels, etc.:"),
1292 &(KOPrefs::instance()->mAppColor2),topFrame); 1295 &(KOPrefs::instance()->mAppColor2),topFrame);
1293 topLayout->addWidget(workingHoursColor2->label(),ii,0); 1296 topLayout->addWidget(workingHoursColor2->label(),ii,0);
1294 topLayout->addWidget(workingHoursColor2->button(),ii++,1); 1297 topLayout->addWidget(workingHoursColor2->button(),ii++,1);
1295 1298
1296 1299
1297 1300
1298} 1301}
1299 1302
1300void KOPrefsDialog::setCategoryColor() 1303void KOPrefsDialog::setCategoryColor()
1301{ 1304{
1302 mCategoryDict.replace(mCategoryCombo->currentText(), new QColor(mCategoryButton->color())); 1305 mCategoryDict.replace(mCategoryCombo->currentText(), new QColor(mCategoryButton->color()));
1303} 1306}
1304 1307
1305void KOPrefsDialog::updateCategoryColor() 1308void KOPrefsDialog::updateCategoryColor()
1306{ 1309{
1307 QString cat = mCategoryCombo->currentText(); 1310 QString cat = mCategoryCombo->currentText();
1308 QColor *color = mCategoryDict.find(cat); 1311 QColor *color = mCategoryDict.find(cat);
1309 if (!color) { 1312 if (!color) {
1310 color = KOPrefs::instance()->categoryColor(cat); 1313 color = KOPrefs::instance()->categoryColor(cat);
1311 } 1314 }
1312 if (color) { 1315 if (color) {
1313 mCategoryButton->setColor(*color); 1316 mCategoryButton->setColor(*color);
1314 } 1317 }
1315} 1318}
1316 1319
1317void KOPrefsDialog::setupPrinterTab() 1320void KOPrefsDialog::setupPrinterTab()
1318{ 1321{
1319 mPrinterTab = addPage(i18n("Printing"),0, 1322 mPrinterTab = addPage(i18n("Printing"),0,
1320 DesktopIcon("fileprint",KIcon::SizeMedium)); 1323 DesktopIcon("fileprint",KIcon::SizeMedium));
1321 1324
1322 QGridLayout *topLayout = new QGridLayout(mPrinterTab,5,2); 1325 QGridLayout *topLayout = new QGridLayout(mPrinterTab,5,2);
1323 topLayout->setSpacing(mSpacingHint); 1326 topLayout->setSpacing(mSpacingHint);
1324 topLayout->setMargin(mMarginHint); 1327 topLayout->setMargin(mMarginHint);
1325 1328
1326 topLayout->setRowStretch(4,1); 1329 topLayout->setRowStretch(4,1);
1327} 1330}
1328 1331
1329void KOPrefsDialog::setupGroupSchedulingTab() 1332void KOPrefsDialog::setupGroupSchedulingTab()
1330{ 1333{
1331#if 0 1334#if 0
1332 QFrame *topFrame = addPage(i18n("Group Scheduling"),0, 1335 QFrame *topFrame = addPage(i18n("Group Scheduling"),0,
1333 DesktopIcon("personal",KIcon::SizeMedium)); 1336 DesktopIcon("personal",KIcon::SizeMedium));
1334 1337
1335 QGridLayout *topLayout = new QGridLayout(topFrame,6,2); 1338 QGridLayout *topLayout = new QGridLayout(topFrame,6,2);
1336 topLayout->setSpacing(mSpacingHint); 1339 topLayout->setSpacing(mSpacingHint);
1337 topLayout->setMargin(mMarginHint); 1340 topLayout->setMargin(mMarginHint);
1338 1341
1339#if 0 1342#if 0
diff --git a/korganizer/koviewmanager.cpp b/korganizer/koviewmanager.cpp
index 3aa9b6c..2e5a943 100644
--- a/korganizer/koviewmanager.cpp
+++ b/korganizer/koviewmanager.cpp
@@ -1,826 +1,835 @@
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 flagResetViewChangeDate = 0; 64 flagResetViewChangeDate = 0;
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") { 91 else if (view == "Month") {
92 if ( !KOPrefs::instance()->mMonthViewWeek ) 92 if ( !KOPrefs::instance()->mMonthViewWeek )
93 showMonthView(); 93 showMonthView();
94 else 94 else
95 showMonthViewWeek(); 95 showMonthViewWeek();
96 } 96 }
97 else if (view == "List") showListView(); 97 else if (view == "List") showListView();
98 else if (view == "Journal") showJournalView(); 98 else if (view == "Journal") showJournalView();
99 else if (view == "TimeSpan") showTimeSpanView(); 99 else if (view == "TimeSpan") showTimeSpanView();
100 else if (view == "Todo") showTodoView(); 100 else if (view == "Todo") showTodoView();
101 else { 101 else {
102 config->setGroup( "Views" ); 102 config->setGroup( "Views" );
103 int dateCount = config->readNumEntry( "ShownDatesCount", 7 ); 103 int dateCount = config->readNumEntry( "ShownDatesCount", 7 );
104 mCurrentAgendaView = dateCount; 104 mCurrentAgendaView = dateCount;
105 showAgendaView(); 105 showAgendaView();
106 mCurrentAgendaView = dateCount; 106 mCurrentAgendaView = dateCount;
107#ifdef DESKTOP_VERSION 107#ifdef DESKTOP_VERSION
108 QTimer::singleShot( 1000, mAgendaView, SLOT ( setInitStartHour() ) ); 108 QTimer::singleShot( 1000, mAgendaView, SLOT ( setInitStartHour() ) );
109#endif 109#endif
110 } 110 }
111} 111}
112 112
113void KOViewManager::showDateView( int view, QDate date) 113void KOViewManager::showDateView( int view, QDate date)
114{ 114{
115 static int lastMode = 0; 115 static int lastMode = 0;
116 static int lastCount = 0; 116 static int lastCount = 0;
117 static bool lastNDMode = false; 117 static bool lastNDMode = false;
118 static QDate lastDate; 118 static QDate lastDate;
119 //qDebug("date %d %s", view, date.toString().latin1()); 119 //qDebug("date %d %s", view, date.toString().latin1());
120 120
121 if (view != 9) 121 if (view != 9)
122 lastMode = 0; 122 lastMode = 0;
123 //qDebug("%d %d ", lastNDMode, mFlagShowNextxDays ); 123 //qDebug("%d %d ", lastNDMode, mFlagShowNextxDays );
124 bool savemFlagShowNextxDays = mFlagShowNextxDays; 124 bool savemFlagShowNextxDays = mFlagShowNextxDays;
125 mFlagShowNextxDays = false; 125 mFlagShowNextxDays = false;
126 if ( view == 3 ) { 126 if ( view == 3 ) {
127 //mCurrentAgendaView = 1 ; 127 //mCurrentAgendaView = 1 ;
128 lastDate = mMainView->dateNavigator()->selectedDates().first(); 128 lastDate = mMainView->dateNavigator()->selectedDates().first();
129 lastCount = mMainView->dateNavigator()->selectedDates().count(); 129 lastCount = mMainView->dateNavigator()->selectedDates().count();
130 lastNDMode = savemFlagShowNextxDays; 130 lastNDMode = savemFlagShowNextxDays;
131 mMainView->dateNavigator()->selectDate( date ); 131 mMainView->dateNavigator()->selectDate( date );
132 lastMode = 1; 132 lastMode = 1;
133 mCurrentAgendaView = 1 ; 133 mCurrentAgendaView = 1 ;
134 } else if (view == 4 ) { 134 } else if (view == 4 ) {
135 mCurrentAgendaView = 7 ; 135 mCurrentAgendaView = 7 ;
136 mMainView->dateNavigator()->selectDates( date, 7 ); 136 mMainView->dateNavigator()->selectDates( date, 7 );
137 } else if (view == 5 ) { 137 } else if (view == 5 ) {
138 mCurrentAgendaView = 14 ; 138 mCurrentAgendaView = 14 ;
139 mMainView->dateNavigator()->selectDates( date, 14); 139 mMainView->dateNavigator()->selectDates( date, 14);
140 } else if (view == 6 ) { 140 } else if (view == 6 ) {
141 resetDateSilent( date,1); 141 resetDateSilent( date,1);
142 showMonthView(); 142 showMonthView();
143 } else if (view == 7 ) { 143 } else if (view == 7 ) {
144 mMainView->dateNavigator()->selectDate( date ); 144 mMainView->dateNavigator()->selectDate( date );
145 showJournalView(); 145 showJournalView();
146 } else if (view == 8 ) { 146 } else if (view == 8 ) {
147 globalFlagBlockAgenda = 1; 147 globalFlagBlockAgenda = 1;
148 if ( mCurrentAgendaView != 3 ) 148 if ( mCurrentAgendaView != 3 )
149 mCurrentAgendaView = -1; 149 mCurrentAgendaView = -1;
150 showAgendaView(KOPrefs::instance()->mFullViewMonth); 150 showAgendaView(KOPrefs::instance()->mFullViewMonth);
151 globalFlagBlockAgenda = 2; 151 globalFlagBlockAgenda = 2;
152 mMainView->dateNavigator()->selectDates( date , 152 mMainView->dateNavigator()->selectDates( date ,
153 KOPrefs::instance()->mNextXDays ); 153 KOPrefs::instance()->mNextXDays );
154 mFlagShowNextxDays = true; 154 mFlagShowNextxDays = true;
155 mCurrentAgendaView = 3 ; 155 mCurrentAgendaView = 3 ;
156 } if (view == 9) { // return behaviour, for getting back from mode == 3 (single day mode ) 156 } if (view == 9) { // return behaviour, for getting back from mode == 3 (single day mode )
157 if ( lastMode ) { 157 if ( lastMode ) {
158 mCurrentAgendaView = lastCount ; 158 mCurrentAgendaView = lastCount ;
159 mMainView->dateNavigator()->selectDates( lastDate, lastCount); 159 mMainView->dateNavigator()->selectDates( lastDate, lastCount);
160 mFlagShowNextxDays = lastNDMode; 160 mFlagShowNextxDays = lastNDMode;
161 if ( mFlagShowNextxDays ) { 161 if ( mFlagShowNextxDays ) {
162 mCurrentAgendaView = 3 ; 162 mCurrentAgendaView = 3 ;
163 } 163 }
164 } else 164 } else
165 showWeekView(); 165 showWeekView();
166 } else if (view == 10) { 166 } else if (view == 10) {
167 mMainView->dateNavigator()->selectDates( date,mMainView->dateNavigator()->selectedDates().count() ); 167 mMainView->dateNavigator()->selectDates( date,mMainView->dateNavigator()->selectedDates().count() );
168 } 168 }
169} 169}
170 170
171 171
172 172
173void KOViewManager::writeSettings(KConfig *config) 173void KOViewManager::writeSettings(KConfig *config)
174{ 174{
175 config->setGroup("General"); 175 config->setGroup("General");
176 176
177 QString view; 177 QString view;
178 if (mCurrentView == mWhatsNextView) view = "WhatsNext"; 178 if (mCurrentView == mWhatsNextView) view = "WhatsNext";
179 else if (mCurrentView == mMonthView) view = "Month"; 179 else if (mCurrentView == mMonthView) view = "Month";
180 else if (mCurrentView == mListView) view = "List"; 180 else if (mCurrentView == mListView) view = "List";
181 else if (mCurrentView == mJournalView) view = "Journal"; 181 else if (mCurrentView == mJournalView) view = "Journal";
182 else if (mCurrentView == mTimeSpanView) view = "TimeSpan"; 182 else if (mCurrentView == mTimeSpanView) view = "TimeSpan";
183 else if (mCurrentView == mTodoView) view = "Todo"; 183 else if (mCurrentView == mTodoView) view = "Todo";
184 else view = "Agenda"; 184 else view = "Agenda";
185 185
186 config->writeEntry("Current View",view); 186 config->writeEntry("Current View",view);
187 187
188 if (mAgendaView) { 188 if (mAgendaView) {
189 mAgendaView->writeSettings(config); 189 mAgendaView->writeSettings(config);
190 } 190 }
191 if (mTimeSpanView) { 191 if (mTimeSpanView) {
192 mTimeSpanView->writeSettings(config); 192 mTimeSpanView->writeSettings(config);
193 } 193 }
194 if (mListView) { 194 if (mListView) {
195 mListView->writeSettings(config); 195 mListView->writeSettings(config);
196 } 196 }
197 if (mTodoView) { 197 if (mTodoView) {
198 mTodoView->saveLayout(config,"Todo View"); 198 mTodoView->saveLayout(config,"Todo View");
199 } 199 }
200} 200}
201void KOViewManager::showNextView() 201void KOViewManager::showNextView()
202{ 202{
203 static int selecteddatescount = 0; 203 static int selecteddatescount = 0;
204 static QDate selecteddate = QDate ( 2000, 1, 1 ); 204 static QDate selecteddate = QDate ( 2000, 1, 1 );
205 static QDate baseCycleDate = QDate ( 2000, 1, 1 ); 205 static QDate baseCycleDate = QDate ( 2000, 1, 1 );
206 int newCount = mMainView->dateNavigator()->selectedDates().count(); 206 int newCount = mMainView->dateNavigator()->selectedDates().count();
207 if ( selecteddatescount != newCount && flagResetViewChangeDate == 0 ) { 207 if ( selecteddatescount != newCount && flagResetViewChangeDate == 0 ) {
208 flagResetViewChangeDate = 1; 208 flagResetViewChangeDate = 1;
209 } 209 }
210 if ( selecteddate != mMainView->dateNavigator()->selectedDates().first() ) 210 if ( selecteddate != mMainView->dateNavigator()->selectedDates().first() )
211 flagResetViewChangeDate = 1; 211 flagResetViewChangeDate = 1;
212 if ( flagResetViewChangeDate > 0 ) { 212 if ( flagResetViewChangeDate > 0 ) {
213 baseCycleDate = mMainView->dateNavigator()->selectedDates().first(); 213 baseCycleDate = mMainView->dateNavigator()->selectedDates().first();
214 //qDebug("newCycle "); 214 //qDebug("newCycle ");
215 } 215 }
216 if (mCurrentView == mWhatsNextView) goto NEXT_X; 216 if (mCurrentView == mWhatsNextView) goto NEXT_X;
217 if (mCurrentView == mAgendaView && mFlagShowNextxDays) goto JOURNAL; 217 if (mCurrentView == mAgendaView && mFlagShowNextxDays) goto JOURNAL;
218 if (mCurrentView == mJournalView ) goto DAY_1; 218 if (mCurrentView == mJournalView ) goto DAY_1;
219 if (mCurrentView == mAgendaView && mCurrentAgendaView == 1 ) goto DAY_5; 219 if (mCurrentView == mAgendaView && mCurrentAgendaView == 1 ) goto DAY_5;
220 if (mCurrentView == mAgendaView && mCurrentAgendaView == 5 ) goto DAY_7; 220 if (mCurrentView == mAgendaView && mCurrentAgendaView == 5 ) goto DAY_7;
221 if (mCurrentView == mAgendaView ) goto DAY_6; 221 if (mCurrentView == mAgendaView ) goto DAY_6;
222 if (mCurrentView == mMonthView && KOPrefs::instance()->mMonthViewWeek) goto MONTH; 222 if (mCurrentView == mMonthView && KOPrefs::instance()->mMonthViewWeek) goto MONTH;
223 if (mCurrentView == mMonthView ) goto LIST; 223 if (mCurrentView == mMonthView ) goto LIST;
224 if (mCurrentView == mListView ) goto TODO; 224 if (mCurrentView == mListView ) goto TODO;
225 // if (mCurrentView == mTodoView ) goto NEXT; 225 // if (mCurrentView == mTodoView ) goto NEXT;
226 NEXT: 226 NEXT:
227 if ( KOPrefs::instance()->mShowIconNext ) { showWhatsNextView();goto ENTE ;} 227 if ( KOPrefs::instance()->mShowIconNext ) { showWhatsNextView();goto ENTE ;}
228 NEXT_X: 228 NEXT_X:
229 if ( KOPrefs::instance()->mShowIconNextDays ) { 229 if ( KOPrefs::instance()->mShowIconNextDays ) {
230 showNextXView(); 230 showNextXView();
231 goto ENTE ; 231 goto ENTE ;
232 } 232 }
233 JOURNAL: 233 JOURNAL:
234 if ( KOPrefs::instance()->mShowIconJournal ) { 234 if ( KOPrefs::instance()->mShowIconJournal ) {
235 resetDateSilent( baseCycleDate , 1 ); 235 resetDateSilent( baseCycleDate , 1 );
236 showJournalView() ;goto ENTE ;} 236 showJournalView() ;goto ENTE ;}
237 DAY_1: 237 DAY_1:
238 if ( KOPrefs::instance()->mShowIconDay1 ) { 238 if ( KOPrefs::instance()->mShowIconDay1 ) {
239 resetDateSilent( baseCycleDate , 2 ); 239 resetDateSilent( baseCycleDate , 2 );
240 showDayView() ;goto ENTE ;} 240 showDayView() ;goto ENTE ;}
241 DAY_5: 241 DAY_5:
242 if ( KOPrefs::instance()->mShowIconDay5 ) { 242 if ( KOPrefs::instance()->mShowIconDay5 ) {
243 resetDateSilent( baseCycleDate , 2 ); 243 resetDateSilent( baseCycleDate , 2 );
244 showWorkWeekView() ;goto ENTE ;} 244 showWorkWeekView() ;goto ENTE ;}
245 DAY_7: 245 DAY_7:
246 if ( KOPrefs::instance()->mShowIconDay7 ) { 246 if ( KOPrefs::instance()->mShowIconDay7 ) {
247 resetDateSilent( baseCycleDate , 2 ); 247 resetDateSilent( baseCycleDate , 2 );
248 showWeekView();goto ENTE ;} 248 showWeekView();goto ENTE ;}
249 DAY_6: 249 DAY_6:
250 if ( KOPrefs::instance()->mShowIconDay6 ) { 250 if ( KOPrefs::instance()->mShowIconDay6 ) {
251 resetDateSilent( baseCycleDate , 2 ); 251 resetDateSilent( baseCycleDate , 2 );
252 showMonthViewWeek();goto ENTE ;} 252 showMonthViewWeek();goto ENTE ;}
253 MONTH: 253 MONTH:
254 if ( KOPrefs::instance()->mShowIconMonth ) { 254 if ( KOPrefs::instance()->mShowIconMonth ) {
255 resetDateSilent( baseCycleDate , 2 ); 255 resetDateSilent( baseCycleDate , 2 );
256 showMonthView();goto ENTE ;} 256 showMonthView();goto ENTE ;}
257 LIST: 257 LIST:
258 if ( KOPrefs::instance()->mShowIconList ) { 258 if ( KOPrefs::instance()->mShowIconList ) {
259 resetDateSilent( baseCycleDate , 2 ); 259 resetDateSilent( baseCycleDate , 2 );
260 showListView() ;goto ENTE ;} 260 showListView() ;goto ENTE ;}
261 TODO: 261 TODO:
262 if ( KOPrefs::instance()->mShowIconTodoview ) { showTodoView() ;goto ENTE ;} 262 if ( KOPrefs::instance()->mShowIconTodoview ) { showTodoView() ;goto ENTE ;}
263 if ( KOPrefs::instance()->mShowIconNext ) { goto NEXT ;} 263 if ( KOPrefs::instance()->mShowIconNext ) { goto NEXT ;}
264 if ( KOPrefs::instance()->mShowIconNextDays ) { goto NEXT_X ;} 264 if ( KOPrefs::instance()->mShowIconNextDays ) { goto NEXT_X ;}
265 if ( KOPrefs::instance()->mShowIconJournal ) { goto JOURNAL;} 265 if ( KOPrefs::instance()->mShowIconJournal ) { goto JOURNAL;}
266 if ( KOPrefs::instance()->mShowIconDay1 ) { goto DAY_1 ;} 266 if ( KOPrefs::instance()->mShowIconDay1 ) { goto DAY_1 ;}
267 if ( KOPrefs::instance()->mShowIconDay5 ) { goto DAY_5 ;} 267 if ( KOPrefs::instance()->mShowIconDay5 ) { goto DAY_5 ;}
268 if ( KOPrefs::instance()->mShowIconDay7 ) { goto DAY_7 ;} 268 if ( KOPrefs::instance()->mShowIconDay7 ) { goto DAY_7 ;}
269 if ( KOPrefs::instance()->mShowIconDay6 ) { goto DAY_6 ;} 269 if ( KOPrefs::instance()->mShowIconDay6 ) { goto DAY_6 ;}
270 if ( KOPrefs::instance()->mShowIconMonth ) {goto MONTH ;} 270 if ( KOPrefs::instance()->mShowIconMonth ) {goto MONTH ;}
271 if ( KOPrefs::instance()->mShowIconList ) { goto LIST ;} 271 if ( KOPrefs::instance()->mShowIconList ) { goto LIST ;}
272 //if ( KOPrefs::instance()->mShowIconTodoview ) { showTodoView() ;goto ENTE ;} 272 //if ( KOPrefs::instance()->mShowIconTodoview ) { showTodoView() ;goto ENTE ;}
273 ENTE: 273 ENTE:
274 flagResetViewChangeDate = 0; 274 flagResetViewChangeDate = 0;
275 selecteddatescount = mMainView->dateNavigator()->selectedDates().count(); 275 selecteddatescount = mMainView->dateNavigator()->selectedDates().count();
276 selecteddate = mMainView->dateNavigator()->selectedDates().first(); 276 selecteddate = mMainView->dateNavigator()->selectedDates().first();
277 277
278} 278}
279void KOViewManager::resetDateSilent( QDate date , int days ) 279void KOViewManager::resetDateSilent( QDate date , int days )
280{ 280{
281 mMainView->dateNavigator()->blockSignals( true ); 281 mMainView->dateNavigator()->blockSignals( true );
282 mMainView->dateNavigator()->selectDates( date , days ); 282 mMainView->dateNavigator()->selectDates( date , days );
283 mMainView->dateNavigator()->blockSignals( false ); 283 mMainView->dateNavigator()->blockSignals( false );
284} 284}
285void KOViewManager::showView(KOrg::BaseView *view, bool fullScreen ) 285void KOViewManager::showView(KOrg::BaseView *view, bool fullScreen )
286{ 286{
287 if ( flagResetViewChangeDate < 10 ) 287 if ( flagResetViewChangeDate < 10 )
288 ++flagResetViewChangeDate; 288 ++flagResetViewChangeDate;
289 //mFlagShowNextxDays = false; 289 //mFlagShowNextxDays = false;
290 //if(view == mCurrentView) return; 290 //if(view == mCurrentView) return;
291 if ( view == 0 ) { 291 if ( view == 0 ) {
292 view = mCurrentView; 292 view = mCurrentView;
293 if ( view == 0 ) 293 if ( view == 0 )
294 return; 294 return;
295 } 295 }
296 bool callupdate = !(view == mCurrentView); 296 bool callupdate = !(view == mCurrentView);
297 bool full = fullScreen; 297 bool full = fullScreen;
298 if(view == mCurrentView && view != mWhatsNextView ) { 298 if(view == mCurrentView && view != mWhatsNextView ) {
299 if ( mCurrentAgendaView < 0 ) 299 if ( mCurrentAgendaView < 0 )
300 return; 300 return;
301 if ( view != mMonthView ) 301 if ( view != mMonthView )
302 full = mMainView->leftFrame()->isVisible(); 302 full = mMainView->leftFrame()->isVisible();
303 } else { 303 } else {
304 if ( view == mMonthView && mMonthView) 304 if ( view == mMonthView && mMonthView)
305 ;//mMonthView->skipResize = true ; 305 ;//mMonthView->skipResize = true ;
306 mCurrentView = view; 306 mCurrentView = view;
307 // bool full = fullScreen; 307 // bool full = fullScreen;
308 bool isFull = !mMainView->leftFrame()->isVisible(); 308 bool isFull = !mMainView->leftFrame()->isVisible();
309 if ( isFull && KOPrefs::instance()->mViewChangeHoldFullscreen ) 309 if ( isFull && KOPrefs::instance()->mViewChangeHoldFullscreen )
310 full = true; 310 full = true;
311 if ( !isFull && KOPrefs::instance()->mViewChangeHoldNonFullscreen ) 311 if ( !isFull && KOPrefs::instance()->mViewChangeHoldNonFullscreen )
312 full = false; 312 full = false;
313 } 313 }
314 if ( mAgendaView ) mAgendaView->deleteSelectedDateTime(); 314 if ( mAgendaView ) mAgendaView->deleteSelectedDateTime();
315 //raiseCurrentView( full ); 315 //raiseCurrentView( full );
316 mMainView->processIncidenceSelection( 0 ); 316 mMainView->processIncidenceSelection( 0 );
317 //mMainView->updateView(); 317 //mMainView->updateView();
318 raiseCurrentView( full, callupdate ); 318 raiseCurrentView( full, callupdate );
319 mMainView->adaptNavigationUnits(); 319 mMainView->adaptNavigationUnits();
320 mMainView->updateUnmanagedViews();
320} 321}
321 322
322void KOViewManager::raiseCurrentView( bool fullScreen, bool callUpdateView ) 323void KOViewManager::raiseCurrentView( bool fullScreen, bool callUpdateView )
323{ 324{
324 mCurrentAgendaView = 0; 325 mCurrentAgendaView = 0;
325 if ( fullScreen ) { 326 if ( fullScreen ) {
326 mMainView->leftFrame()->hide(); 327 mMainView->leftFrame()->hide();
327 } else { 328 } else {
328 mMainView->leftFrame()->show(); 329 mMainView->leftFrame()->show();
329 } 330 }
330 //if ( mCurrentView == mMonthView ) qApp->processEvents(); 331 //if ( mCurrentView == mMonthView ) qApp->processEvents();
331 emit signalFullScreen( !fullScreen ); 332 emit signalFullScreen( !fullScreen );
332 if ( callUpdateView ) 333 if ( callUpdateView )
333 mMainView->updateView(); 334 mMainView->updateView();
334 335
335 if ( globalFlagBlockAgenda == 5 ) { 336 if ( globalFlagBlockAgenda == 5 ) {
336 globalFlagBlockAgenda = 4; 337 globalFlagBlockAgenda = 4;
337 globalFlagBlockAgendaItemPaint = 1; 338 globalFlagBlockAgendaItemPaint = 1;
338 } 339 }
339 mMainView->viewStack()->raiseWidget(mCurrentView); 340 mMainView->viewStack()->raiseWidget(mCurrentView);
340 if ( globalFlagBlockAgenda == 4 ) { 341 if ( globalFlagBlockAgenda == 4 ) {
341 if ( mCurrentView == mAgendaView ) { 342 if ( mCurrentView == mAgendaView ) {
342 //globalFlagBlockAgenda =1 ; 343 //globalFlagBlockAgenda =1 ;
343 if ( KOPrefs::instance()->mSetTimeToDayStartAt ) 344 if ( KOPrefs::instance()->mSetTimeToDayStartAt )
344 mAgendaView->setStartHour( KOPrefs::instance()->mDayBegins ); 345 mAgendaView->setStartHour( KOPrefs::instance()->mDayBegins );
345 else if ( KOPrefs::instance()->mCenterOnCurrentTime ) 346 else if ( KOPrefs::instance()->mCenterOnCurrentTime )
346 mAgendaView->setStartHour( QTime::currentTime ().hour() ); 347 mAgendaView->setStartHour( QTime::currentTime ().hour() );
347 qApp->processEvents(); 348 qApp->processEvents();
348 //qDebug("qApp->processEvents() "); 349 //qDebug("qApp->processEvents() ");
349 globalFlagBlockAgenda = 0; 350 globalFlagBlockAgenda = 0;
350 mAgendaView->repaintAgenda(); 351 mAgendaView->repaintAgenda();
351 352
352 } 353 }
353 globalFlagBlockAgenda = 0; 354 globalFlagBlockAgenda = 0;
354 } 355 }
355 emit signalAgendaView( mCurrentView == mAgendaView ); 356 emit signalAgendaView( mCurrentView == mAgendaView );
356 //qDebug("raiseCurrentView ende "); 357 //qDebug("raiseCurrentView ende ");
357 358
358} 359}
359 360
360void KOViewManager::updateView() 361void KOViewManager::updateView()
361{ 362{
362 // qDebug("KOViewManager::updateView() "); 363 // qDebug("KOViewManager::updateView() ");
363 // if we are updating mTodoView, we get endless recursion 364 // if we are updating mTodoView, we get endless recursion
364 if ( mTodoView == mCurrentView ) 365 if ( mTodoView == mCurrentView )
365 return; 366 return;
366 if ( mCurrentView ) mCurrentView->updateView(); 367 if ( mCurrentView ) mCurrentView->updateView();
367 368
368} 369}
369 370
370void KOViewManager::updateView(const QDate &start, const QDate &end) 371void KOViewManager::updateView(const QDate &start, const QDate &end)
371{ 372{
372 // kdDebug() << "KOViewManager::updateView()" << endl; 373 // kdDebug() << "KOViewManager::updateView()" << endl;
373 374
374 if (mCurrentView) mCurrentView->showDates(start, end); 375 if (mCurrentView) mCurrentView->showDates(start, end);
375 376
376 if (mTodoView && mTodoView == mCurrentView ) mTodoView->updateView(); 377 if (mTodoView && mTodoView == mCurrentView ) mTodoView->updateView();
377} 378}
378 379
379 380
380void KOViewManager::updateWNview() 381void KOViewManager::updateWNview()
381{ 382{
382 if ( mCurrentView == mWhatsNextView && mWhatsNextView ) 383 if ( mCurrentView == mWhatsNextView && mWhatsNextView )
383 mWhatsNextView->updateView(); 384 mWhatsNextView->updateView();
384 if ( mCurrentView == mMonthView && mMonthView ) 385 if ( mCurrentView == mMonthView && mMonthView )
385 mMonthView->updateView(); 386 mMonthView->updateView();
386 387
387} 388}
388void KOViewManager::showWhatsNextView() 389void KOViewManager::showWhatsNextView()
389{ 390{
390 if (!mWhatsNextView) { 391 if (!mWhatsNextView) {
391 mWhatsNextView = new KOWhatsNextView(mMainView->calendar(),mMainView->viewStack(), 392 mWhatsNextView = new KOWhatsNextView(mMainView->calendar(),mMainView->viewStack(),
392 "KOViewManager::WhatsNextView"); 393 "KOViewManager::WhatsNextView");
393 mWhatsNextView->setEventViewer( mMainView->getEventViewerDialog()); 394 mWhatsNextView->setEventViewer( mMainView->getEventViewerDialog());
394 connect(mMainView, SIGNAL(configChanged()), mWhatsNextView, SLOT(updateConfig())); 395 connect(mMainView, SIGNAL(configChanged()), mWhatsNextView, SLOT(updateConfig()));
395 addView(mWhatsNextView); 396 addView(mWhatsNextView);
396 connect(this, SIGNAL( printWNV() ), 397 connect(this, SIGNAL( printWNV() ),
397 mWhatsNextView, SLOT( printMe() ) ); 398 mWhatsNextView, SLOT( printMe() ) );
398 } 399 }
399 globalFlagBlockAgenda = 1; 400 globalFlagBlockAgenda = 1;
401 KOPrefs::instance()->mCurrentDisplayedView = VIEW_WN_VIEW;
400 showView(mWhatsNextView, true ); 402 showView(mWhatsNextView, true );
401 //mWhatsNextView->updateView(); 403 //mWhatsNextView->updateView();
402 KOPrefs::instance()->mCurrentDisplayedView = VIEW_WN_VIEW; 404 KOPrefs::instance()->mCurrentDisplayedView = VIEW_WN_VIEW;
403} 405}
404 406
405void KOViewManager::slotprintWNV() 407void KOViewManager::slotprintWNV()
406{ 408{
407 if (!mWhatsNextView) 409 if (!mWhatsNextView)
408 showWhatsNextView(); 410 showWhatsNextView();
409 emit printWNV(); 411 emit printWNV();
410 412
411} 413}
412void KOViewManager::showListView() 414void KOViewManager::showListView()
413{ 415{
414 if (!mListView) { 416 if (!mListView) {
415 mListView = new KOListView(mMainView->calendar(), mMainView->viewStack(), "KOViewManager::ListView"); 417 mListView = new KOListView(mMainView->calendar(), mMainView->viewStack(), "KOViewManager::ListView");
416 addView(mListView); 418 addView(mListView);
417 419
418 connect(mListView, SIGNAL(showIncidenceSignal(Incidence *)), 420 connect(mListView, SIGNAL(showIncidenceSignal(Incidence *)),
419 mMainView, SLOT(showIncidence(Incidence *))); 421 mMainView, SLOT(showIncidence(Incidence *)));
420 connect(mListView, SIGNAL(editIncidenceSignal(Incidence *)), 422 connect(mListView, SIGNAL(editIncidenceSignal(Incidence *)),
421 mMainView, SLOT(editIncidence(Incidence *))); 423 mMainView, SLOT(editIncidence(Incidence *)));
422 connect(mListView, SIGNAL(deleteIncidenceSignal(Incidence *)), 424 connect(mListView, SIGNAL(deleteIncidenceSignal(Incidence *)),
423 mMainView, SLOT(deleteIncidence(Incidence *))); 425 mMainView, SLOT(deleteIncidence(Incidence *)));
424 connect( mListView, SIGNAL( incidenceSelected( Incidence * ) ), 426 connect( mListView, SIGNAL( incidenceSelected( Incidence * ) ),
425 mMainView, SLOT( processMainViewSelection( Incidence * ) ) ); 427 mMainView, SLOT( processMainViewSelection( Incidence * ) ) );
426 connect( mListView, SIGNAL( signalNewEvent() ), 428 connect( mListView, SIGNAL( signalNewEvent() ),
427 mMainView, SLOT( newEvent() ) ); 429 mMainView, SLOT( newEvent() ) );
428 connect(mMainView, SIGNAL(configChanged()), mListView, SLOT(updateConfig())); 430 connect(mMainView, SIGNAL(configChanged()), mListView, SLOT(updateConfig()));
429 connect( mListView, SIGNAL( cloneIncidenceSignal( Incidence * ) ), 431 connect( mListView, SIGNAL( cloneIncidenceSignal( Incidence * ) ),
430 mMainView, SLOT ( cloneIncidence( Incidence * ) ) ); 432 mMainView, SLOT ( cloneIncidence( Incidence * ) ) );
431 connect( mListView, SIGNAL( cancelIncidenceSignal( Incidence * ) ), 433 connect( mListView, SIGNAL( cancelIncidenceSignal( Incidence * ) ),
432 mMainView, SLOT ( cancelIncidence( Incidence * ) ) ); 434 mMainView, SLOT ( cancelIncidence( Incidence * ) ) );
433 connect( mListView, SIGNAL( moveIncidenceSignal( Incidence * ) ), 435 connect( mListView, SIGNAL( moveIncidenceSignal( Incidence * ) ),
434 mMainView, SLOT ( moveIncidence( Incidence * ) ) ); 436 mMainView, SLOT ( moveIncidence( Incidence * ) ) );
435 connect( mListView, SIGNAL( beamIncidenceSignal( Incidence * ) ), 437 connect( mListView, SIGNAL( beamIncidenceSignal( Incidence * ) ),
436 mMainView, SLOT ( beamIncidence( Incidence * ) ) ); 438 mMainView, SLOT ( beamIncidence( Incidence * ) ) );
437 } 439 }
438 // bool temp = mFlagShowNextxDays; 440 // bool temp = mFlagShowNextxDays;
439 //globalFlagBlockPainting = true; 441 //globalFlagBlockPainting = true;
440 globalFlagBlockAgenda = 1; 442 globalFlagBlockAgenda = 1;
441 if ( KOPrefs::instance()->mListViewMonthTimespan ) { 443 if ( KOPrefs::instance()->mListViewMonthTimespan ) {
442 mMainView->setBlockShowDates( true ); 444 mMainView->setBlockShowDates( true );
443 mMainView->dateNavigator()->selectMonth(); 445 mMainView->dateNavigator()->selectMonth();
444 mMainView->setBlockShowDates( false ); 446 mMainView->setBlockShowDates( false );
445 } 447 }
448 KOPrefs::instance()->mCurrentDisplayedView = VIEW_L_VIEW;
446 showView(mListView, KOPrefs::instance()->mFullViewTodo); 449 showView(mListView, KOPrefs::instance()->mFullViewTodo);
447 //mFlagShowNextxDays = temp; 450 //mFlagShowNextxDays = temp;
448 KOPrefs::instance()->mCurrentDisplayedView = VIEW_L_VIEW; 451 KOPrefs::instance()->mCurrentDisplayedView = VIEW_L_VIEW;
449} 452}
450 453
451void KOViewManager::showAgendaView( bool fullScreen ) 454void KOViewManager::showAgendaView( bool fullScreen )
452{ 455{
453 456
454 mMainView->dialogManager()->hideSearchDialog(); 457 mMainView->dialogManager()->hideSearchDialog();
455 // qDebug("KOViewManager::showAgendaView "); 458 // qDebug("KOViewManager::showAgendaView ");
456 bool full; 459 bool full;
457 full = fullScreen; 460 full = fullScreen;
458 if (!mAgendaView) { 461 if (!mAgendaView) {
459 full = false; 462 full = false;
460 mAgendaView = new KOAgendaView(mMainView->calendar(), mMainView->viewStack(), "KOViewManager::AgendaView"); 463 mAgendaView = new KOAgendaView(mMainView->calendar(), mMainView->viewStack(), "KOViewManager::AgendaView");
461 addView(mAgendaView); 464 addView(mAgendaView);
462#ifndef DESKTOP_VERSION 465#ifndef DESKTOP_VERSION
463 QPEApplication::setStylusOperation( mAgendaView, QPEApplication::RightOnHold ); 466 QPEApplication::setStylusOperation( mAgendaView, QPEApplication::RightOnHold );
464#endif 467#endif
465 connect( mAgendaView, SIGNAL( incidenceChanged(Incidence *, int )), 468 connect( mAgendaView, SIGNAL( incidenceChanged(Incidence *, int )),
466 mMainView, SLOT( changeIncidenceDisplay( Incidence *, int ) )); 469 mMainView, SLOT( changeIncidenceDisplay( Incidence *, int ) ));
467 470
468 // SIGNALS/SLOTS FOR DAY/WEEK VIEW 471 // SIGNALS/SLOTS FOR DAY/WEEK VIEW
469 472
470 connect(mAgendaView,SIGNAL(showDateView( int, QDate )),SLOT(showDateView( int, QDate ))); 473 connect(mAgendaView,SIGNAL(showDateView( int, QDate )),SLOT(showDateView( int, QDate )));
471 474
472 connect(mAgendaView,SIGNAL(newTodoSignal(QDateTime,bool)), 475 connect(mAgendaView,SIGNAL(newTodoSignal(QDateTime,bool)),
473 mMainView, SLOT(newTodoDateTime(QDateTime,bool))); 476 mMainView, SLOT(newTodoDateTime(QDateTime,bool)));
474 connect(mAgendaView,SIGNAL(newEventSignal(QDateTime)), 477 connect(mAgendaView,SIGNAL(newEventSignal(QDateTime)),
475 mMainView, SLOT(newEvent(QDateTime))); 478 mMainView, SLOT(newEvent(QDateTime)));
476 connect(mAgendaView,SIGNAL(newEventSignal(QDateTime,QDateTime)), 479 connect(mAgendaView,SIGNAL(newEventSignal(QDateTime,QDateTime)),
477 mMainView, SLOT(newEvent(QDateTime,QDateTime))); 480 mMainView, SLOT(newEvent(QDateTime,QDateTime)));
478 connect(mAgendaView,SIGNAL(newEventSignal(QDate)), 481 connect(mAgendaView,SIGNAL(newEventSignal(QDate)),
479 mMainView, SLOT(newEvent(QDate))); 482 mMainView, SLOT(newEvent(QDate)));
480 483
481 connect(mAgendaView, SIGNAL(editIncidenceSignal(Incidence *)), 484 connect(mAgendaView, SIGNAL(editIncidenceSignal(Incidence *)),
482 mMainView, SLOT(editIncidence(Incidence *))); 485 mMainView, SLOT(editIncidence(Incidence *)));
483 connect(mAgendaView, SIGNAL(showIncidenceSignal(Incidence *)), 486 connect(mAgendaView, SIGNAL(showIncidenceSignal(Incidence *)),
484 mMainView, SLOT(showIncidence(Incidence *))); 487 mMainView, SLOT(showIncidence(Incidence *)));
485 connect(mAgendaView, SIGNAL(deleteIncidenceSignal(Incidence *)), 488 connect(mAgendaView, SIGNAL(deleteIncidenceSignal(Incidence *)),
486 mMainView, SLOT(deleteIncidence(Incidence *))); 489 mMainView, SLOT(deleteIncidence(Incidence *)));
487 490
488 connect( mAgendaView, SIGNAL( incidenceSelected( Incidence * ) ), 491 connect( mAgendaView, SIGNAL( incidenceSelected( Incidence * ) ),
489 mMainView, SLOT( processMainViewSelection( Incidence * ) ) ); 492 mMainView, SLOT( processMainViewSelection( Incidence * ) ) );
490 493
491 connect(mAgendaView, SIGNAL( toggleExpand() ), 494 connect(mAgendaView, SIGNAL( toggleExpand() ),
492 mMainView, SLOT( toggleExpand() ) ); 495 mMainView, SLOT( toggleExpand() ) );
493 496
494 connect( mAgendaView, SIGNAL( cloneIncidenceSignal(Incidence *) ), 497 connect( mAgendaView, SIGNAL( cloneIncidenceSignal(Incidence *) ),
495 mMainView, SLOT(cloneIncidence(Incidence *) ) ) ; 498 mMainView, SLOT(cloneIncidence(Incidence *) ) ) ;
496 connect( mAgendaView, SIGNAL( cancelIncidenceSignal(Incidence *) ), 499 connect( mAgendaView, SIGNAL( cancelIncidenceSignal(Incidence *) ),
497 mMainView, SLOT(cancelIncidence(Incidence *) ) ) ; 500 mMainView, SLOT(cancelIncidence(Incidence *) ) ) ;
498 connect(mMainView, SIGNAL(configChanged()), mAgendaView, SLOT(updateConfig())); 501 connect(mMainView, SIGNAL(configChanged()), mAgendaView, SLOT(updateConfig()));
499 connect( mMainView, SIGNAL( todoModified( Todo *, int )), mAgendaView, 502 connect( mMainView, SIGNAL( todoModified( Todo *, int )), mAgendaView,
500 SLOT( updateTodo( Todo *, int ) ) ); 503 SLOT( updateTodo( Todo *, int ) ) );
501 connect( mAgendaView,SIGNAL( todoMoved( Todo *, int )), 504 connect( mAgendaView,SIGNAL( todoMoved( Todo *, int )),
502 mMainView, SIGNAL( todoModified( Todo *, int ))); 505 mMainView, SIGNAL( todoModified( Todo *, int )));
503 connect( mAgendaView, SIGNAL( moveIncidenceSignal( Incidence * ) ), 506 connect( mAgendaView, SIGNAL( moveIncidenceSignal( Incidence * ) ),
504 mMainView, SLOT ( moveIncidence( Incidence * ) ) ); 507 mMainView, SLOT ( moveIncidence( Incidence * ) ) );
505 connect( mAgendaView, SIGNAL( beamIncidenceSignal( Incidence * ) ), 508 connect( mAgendaView, SIGNAL( beamIncidenceSignal( Incidence * ) ),
506 mMainView, SLOT ( beamIncidence( Incidence * ) ) ); 509 mMainView, SLOT ( beamIncidence( Incidence * ) ) );
507 connect( mAgendaView, SIGNAL( selectWeekNum( int ) ), 510 connect( mAgendaView, SIGNAL( selectWeekNum( int ) ),
508 mMainView->dateNavigator(), SLOT ( selectWeek( int ) ) ); 511 mMainView->dateNavigator(), SLOT ( selectWeek( int ) ) );
509 mAgendaView->readSettings(); 512 mAgendaView->readSettings();
510 mAgendaView->updateConfig(); 513 mAgendaView->updateConfig();
511 } 514 }
512 515
516 KOPrefs::instance()->mCurrentDisplayedView = VIEW_A_VIEW;
513 showView( mAgendaView, full); 517 showView( mAgendaView, full);
514 KOPrefs::instance()->mCurrentDisplayedView = VIEW_A_VIEW; 518 KOPrefs::instance()->mCurrentDisplayedView = VIEW_A_VIEW;
515} 519}
516 520
517void KOViewManager::showDayView() 521void KOViewManager::showDayView()
518{ 522{
519 mCurrentAgendaView = mMainView->dateNavigator()->selectedDates().count(); 523 mCurrentAgendaView = mMainView->dateNavigator()->selectedDates().count();
520 mFlagShowNextxDays = false; 524 mFlagShowNextxDays = false;
521 globalFlagBlockLabel = 1; 525 globalFlagBlockLabel = 1;
522 globalFlagBlockAgenda = 1; 526 globalFlagBlockAgenda = 1;
523 if ( mCurrentAgendaView != 1 ) 527 if ( mCurrentAgendaView != 1 )
524 mCurrentAgendaView = -1; 528 mCurrentAgendaView = -1;
525 showAgendaView(); 529 showAgendaView();
526 qApp->processEvents(); 530 qApp->processEvents();
527 globalFlagBlockAgenda = 2; 531 globalFlagBlockAgenda = 2;
528 globalFlagBlockLabel = 0; 532 globalFlagBlockLabel = 0;
529 mMainView->dateNavigator()->selectDates( 1 ); 533 mMainView->dateNavigator()->selectDates( 1 );
530 mCurrentAgendaView = 1 ; 534 mCurrentAgendaView = 1 ;
531 535
532} 536}
533 537
534void KOViewManager::showWorkWeekView() 538void KOViewManager::showWorkWeekView()
535{ 539{
536 mCurrentAgendaView = mMainView->dateNavigator()->selectedDates().count(); 540 mCurrentAgendaView = mMainView->dateNavigator()->selectedDates().count();
537 mFlagShowNextxDays = false; 541 mFlagShowNextxDays = false;
538 globalFlagBlockAgenda = 1; 542 globalFlagBlockAgenda = 1;
539 globalFlagBlockLabel = 1; 543 globalFlagBlockLabel = 1;
540 if ( mCurrentAgendaView != 5 ) 544 if ( mCurrentAgendaView != 5 )
541 mCurrentAgendaView = -1; 545 mCurrentAgendaView = -1;
542 showAgendaView(); 546 showAgendaView();
543 qApp->processEvents(); 547 qApp->processEvents();
544 globalFlagBlockAgenda = 2; 548 globalFlagBlockAgenda = 2;
545 globalFlagBlockLabel = 0; 549 globalFlagBlockLabel = 0;
546 mMainView->dateNavigator()->selectWorkWeek(); 550 mMainView->dateNavigator()->selectWorkWeek();
547 mCurrentAgendaView = 5 ; 551 mCurrentAgendaView = 5 ;
548 552
549} 553}
550 554
551void KOViewManager::showWeekView() 555void KOViewManager::showWeekView()
552{ 556{
553 557
554 mCurrentAgendaView = mMainView->dateNavigator()->selectedDates().count(); 558 mCurrentAgendaView = mMainView->dateNavigator()->selectedDates().count();
555 mFlagShowNextxDays = false; 559 mFlagShowNextxDays = false;
556 globalFlagBlockAgenda = 1; 560 globalFlagBlockAgenda = 1;
557 globalFlagBlockLabel = 1; 561 globalFlagBlockLabel = 1;
558 if ( mCurrentAgendaView != 7 ) 562 if ( mCurrentAgendaView != 7 )
559 mCurrentAgendaView = -1; 563 mCurrentAgendaView = -1;
560 showAgendaView(); 564 showAgendaView();
561 qApp->processEvents(); 565 qApp->processEvents();
562 globalFlagBlockAgenda = 2; 566 globalFlagBlockAgenda = 2;
563 globalFlagBlockLabel = 0; 567 globalFlagBlockLabel = 0;
564 mMainView->dateNavigator()->selectWeek(); 568 mMainView->dateNavigator()->selectWeek();
565 mCurrentAgendaView = 7 ; 569 mCurrentAgendaView = 7 ;
566} 570}
567 571
568void KOViewManager::showNextXView() 572void KOViewManager::showNextXView()
569{ 573{
570 574
575 KOPrefs::instance()->mCurrentDisplayedView = VIEW_NX_VIEW;
571 globalFlagBlockAgenda = 1; 576 globalFlagBlockAgenda = 1;
572 if ( mCurrentAgendaView != 3 ) 577 if ( mCurrentAgendaView != 3 )
573 mCurrentAgendaView = -1; 578 mCurrentAgendaView = -1;
574 showAgendaView(KOPrefs::instance()->mFullViewMonth); 579 showAgendaView(KOPrefs::instance()->mFullViewMonth);
575 globalFlagBlockAgenda = 2; 580 globalFlagBlockAgenda = 2;
576 mMainView->dateNavigator()->selectDates( QDate::currentDate(), 581 mMainView->dateNavigator()->selectDates( QDate::currentDate(),
577 KOPrefs::instance()->mNextXDays ); 582 KOPrefs::instance()->mNextXDays );
578 mFlagShowNextxDays = true; 583 mFlagShowNextxDays = true;
579 mCurrentAgendaView = 3 ; 584 mCurrentAgendaView = 3 ;
580 KOPrefs::instance()->mCurrentDisplayedView = VIEW_NX_VIEW; 585 KOPrefs::instance()->mCurrentDisplayedView = VIEW_NX_VIEW;
581} 586}
582bool KOViewManager::showsNextDays() 587bool KOViewManager::showsNextDays()
583{ 588{
584 return mFlagShowNextxDays; 589 return mFlagShowNextxDays;
585} 590}
586void KOViewManager::createMonthView() 591void KOViewManager::createMonthView()
587{ 592{
588if (!mMonthView) { 593if (!mMonthView) {
589 mMonthView = new KOMonthView(mMainView->calendar(), mMainView->viewStack(), "KOViewManager::MonthView"); 594 mMonthView = new KOMonthView(mMainView->calendar(), mMainView->viewStack(), "KOViewManager::MonthView");
590 595
591 addView(mMonthView); 596 addView(mMonthView);
592 // mMonthView->show(); 597 // mMonthView->show();
593 // SIGNALS/SLOTS FOR MONTH VIEW 598 // SIGNALS/SLOTS FOR MONTH VIEW
594 599
595 connect(mMonthView,SIGNAL(showJournalSignal( int, QDate )),SLOT(showDateView( int, QDate ))); 600 connect(mMonthView,SIGNAL(showJournalSignal( int, QDate )),SLOT(showDateView( int, QDate )));
596 601
597 connect(mMonthView, SIGNAL(newTodoSignal(QDateTime,bool)), 602 connect(mMonthView, SIGNAL(newTodoSignal(QDateTime,bool)),
598 mMainView, SLOT(newTodoDateTime(QDateTime, bool))); 603 mMainView, SLOT(newTodoDateTime(QDateTime, bool)));
599 604
600 605
601 connect(mMonthView, SIGNAL(newEventSignal(QDateTime)), 606 connect(mMonthView, SIGNAL(newEventSignal(QDateTime)),
602 mMainView, SLOT(newEvent(QDateTime))); 607 mMainView, SLOT(newEvent(QDateTime)));
603 608
604 connect(mMonthView, SIGNAL(showIncidenceSignal(Incidence *)), 609 connect(mMonthView, SIGNAL(showIncidenceSignal(Incidence *)),
605 mMainView, SLOT(showIncidence(Incidence *))); 610 mMainView, SLOT(showIncidence(Incidence *)));
606 connect(mMonthView, SIGNAL(editIncidenceSignal(Incidence *)), 611 connect(mMonthView, SIGNAL(editIncidenceSignal(Incidence *)),
607 mMainView, SLOT(editIncidence(Incidence *))); 612 mMainView, SLOT(editIncidence(Incidence *)));
608 connect(mMonthView, SIGNAL(deleteIncidenceSignal(Incidence *)), 613 connect(mMonthView, SIGNAL(deleteIncidenceSignal(Incidence *)),
609 mMainView, SLOT(deleteIncidence(Incidence *))); 614 mMainView, SLOT(deleteIncidence(Incidence *)));
610 615
611 connect( mMonthView, SIGNAL( incidenceSelected( Incidence * ) ), 616 connect( mMonthView, SIGNAL( incidenceSelected( Incidence * ) ),
612 mMainView, SLOT( processMainViewSelection( Incidence * ) ) ); 617 mMainView, SLOT( processMainViewSelection( Incidence * ) ) );
613 connect( mMonthView, SIGNAL( cloneIncidenceSignal( Incidence * ) ), 618 connect( mMonthView, SIGNAL( cloneIncidenceSignal( Incidence * ) ),
614 mMainView, SLOT ( cloneIncidence( Incidence * ) ) ); 619 mMainView, SLOT ( cloneIncidence( Incidence * ) ) );
615 connect( mMonthView, SIGNAL( cancelIncidenceSignal( Incidence * ) ), 620 connect( mMonthView, SIGNAL( cancelIncidenceSignal( Incidence * ) ),
616 mMainView, SLOT ( cancelIncidence( Incidence * ) ) ); 621 mMainView, SLOT ( cancelIncidence( Incidence * ) ) );
617 622
618 connect( mMonthView, SIGNAL( moveIncidenceSignal( Incidence * ) ), 623 connect( mMonthView, SIGNAL( moveIncidenceSignal( Incidence * ) ),
619 mMainView, SLOT ( moveIncidence( Incidence * ) ) ); 624 mMainView, SLOT ( moveIncidence( Incidence * ) ) );
620 connect( mMonthView, SIGNAL( beamIncidenceSignal( Incidence * ) ), 625 connect( mMonthView, SIGNAL( beamIncidenceSignal( Incidence * ) ),
621 mMainView, SLOT ( beamIncidence( Incidence * ) ) ); 626 mMainView, SLOT ( beamIncidence( Incidence * ) ) );
622 connect( mMonthView, SIGNAL( selectWeekNum( int ) ), 627 connect( mMonthView, SIGNAL( selectWeekNum( int ) ),
623 mMainView->dateNavigator(), SLOT ( selectWeekFromMonthView( int ) ) ); 628 mMainView->dateNavigator(), SLOT ( selectWeekFromMonthView( int ) ) );
624 connect( mMonthView, SIGNAL( selectMonth() ), 629 connect( mMonthView, SIGNAL( selectMonth() ),
625 mMainView->dateNavigator(), SLOT ( selectMonthFromMonthview() ) ); 630 mMainView->dateNavigator(), SLOT ( selectMonthFromMonthview() ) );
626 connect( mMonthView, SIGNAL( showDaySignal( QDate ) ), 631 connect( mMonthView, SIGNAL( showDaySignal( QDate ) ),
627 mMainView, SLOT ( showDay( QDate ) ) ); 632 mMainView, SLOT ( showDay( QDate ) ) );
628 connect(mMainView, SIGNAL(configChanged()), mMonthView, SLOT(updateConfig())); 633 connect(mMainView, SIGNAL(configChanged()), mMonthView, SLOT(updateConfig()));
629 connect( mMonthView, SIGNAL(nextMonth() ), 634 connect( mMonthView, SIGNAL(nextMonth() ),
630 mMonthView->navigatorBar(), SIGNAL(goNextMonth() ) ); 635 mMonthView->navigatorBar(), SIGNAL(goNextMonth() ) );
631 connect( mMonthView, SIGNAL(prevMonth() ), 636 connect( mMonthView, SIGNAL(prevMonth() ),
632 mMonthView->navigatorBar(), SIGNAL(goPrevMonth() ) ); 637 mMonthView->navigatorBar(), SIGNAL(goPrevMonth() ) );
633 connect( mMonthView->navigatorBar(), SIGNAL( goPrevYear() ), 638 connect( mMonthView->navigatorBar(), SIGNAL( goPrevYear() ),
634 mMainView->dateNavigator(), SLOT( selectPreviousYear() ) ); 639 mMainView->dateNavigator(), SLOT( selectPreviousYear() ) );
635 connect( mMonthView->navigatorBar(), SIGNAL( goNextYear() ), 640 connect( mMonthView->navigatorBar(), SIGNAL( goNextYear() ),
636 mMainView->dateNavigator(), SLOT( selectNextYear() ) ); 641 mMainView->dateNavigator(), SLOT( selectNextYear() ) );
637 connect( mMonthView->navigatorBar(), SIGNAL( goPrevMonth() ), 642 connect( mMonthView->navigatorBar(), SIGNAL( goPrevMonth() ),
638 mMainView->dateNavigator(), SLOT( selectPreviousMonth() ) ); 643 mMainView->dateNavigator(), SLOT( selectPreviousMonth() ) );
639 connect( mMonthView->navigatorBar(), SIGNAL( goNextMonth() ), 644 connect( mMonthView->navigatorBar(), SIGNAL( goNextMonth() ),
640 mMainView->dateNavigator(), SLOT( selectNextMonth() ) ); 645 mMainView->dateNavigator(), SLOT( selectNextMonth() ) );
641 connect( mMonthView->navigatorBar(), SIGNAL( goPrevWeek() ), 646 connect( mMonthView->navigatorBar(), SIGNAL( goPrevWeek() ),
642 mMainView->dateNavigator(), SLOT( selectPreviousWeek() ) ); 647 mMainView->dateNavigator(), SLOT( selectPreviousWeek() ) );
643 connect( mMonthView->navigatorBar(), SIGNAL( goNextWeek() ), 648 connect( mMonthView->navigatorBar(), SIGNAL( goNextWeek() ),
644 mMainView->dateNavigator(), SLOT( selectNextWeek() ) ); 649 mMainView->dateNavigator(), SLOT( selectNextWeek() ) );
645 650
646 connect( mMainView->dateNavigator(), SIGNAL( datesSelected( const KCal::DateList & ) ), 651 connect( mMainView->dateNavigator(), SIGNAL( datesSelected( const KCal::DateList & ) ),
647 mMonthView->navigatorBar(), SLOT( selectDates( const KCal::DateList & ) ) ); 652 mMonthView->navigatorBar(), SLOT( selectDates( const KCal::DateList & ) ) );
648 653
649 654
650 connect( mMonthView->navigatorBar(), SIGNAL( monthSelected ( int ) ), 655 connect( mMonthView->navigatorBar(), SIGNAL( monthSelected ( int ) ),
651 mMainView->dateNavigator(), SLOT( slotMonthSelect( int ) ) ); 656 mMainView->dateNavigator(), SLOT( slotMonthSelect( int ) ) );
652 657
653 } 658 }
654} 659}
655void KOViewManager::showMonthViewWeek() 660void KOViewManager::showMonthViewWeek()
656{ 661{
657 createMonthView(); 662 createMonthView();
663 KOPrefs::instance()->mCurrentDisplayedView = VIEW_ML_VIEW ;
658 globalFlagBlockAgenda = 1; 664 globalFlagBlockAgenda = 1;
659 bool full = true; 665 bool full = true;
660 if ( mCurrentView == mMonthView) 666 if ( mCurrentView == mMonthView)
661 full = mMainView->leftFrame()->isVisible(); 667 full = mMainView->leftFrame()->isVisible();
662 if ( !KOPrefs::instance()->mMonthViewWeek ) { 668 if ( !KOPrefs::instance()->mMonthViewWeek ) {
663 mMonthView->switchView(); 669 mMonthView->switchView();
664 if ( KOPrefs::instance()->mViewChangeHoldNonFullscreen && mMainView->leftFrame()->isVisible() ) 670 if ( KOPrefs::instance()->mViewChangeHoldNonFullscreen && mMainView->leftFrame()->isVisible() )
665 full = false; 671 full = false;
666 else 672 else
667 full = true; 673 full = true;
668 } 674 }
669 mMainView->dateNavigator()->selectWeek(); 675 mMainView->dateNavigator()->selectWeek();
670 showView(mMonthView, full ); 676 showView(mMonthView, full );
671 mMonthView->setKeyBFocus(); 677 mMonthView->setKeyBFocus();
672 KOPrefs::instance()->mCurrentDisplayedView = VIEW_ML_VIEW ; 678 KOPrefs::instance()->mCurrentDisplayedView = VIEW_ML_VIEW ;
673} 679}
674 680
675void KOViewManager::showMonth( const QDate & date ) 681void KOViewManager::showMonth( const QDate & date )
676{ 682{
677 mMainView->dateNavigator()->blockSignals( true ); 683 mMainView->dateNavigator()->blockSignals( true );
678 mMainView->dateNavigator()->selectDate( date ); 684 mMainView->dateNavigator()->selectDate( date );
679 mMainView->dateNavigator()->blockSignals( false ); 685 mMainView->dateNavigator()->blockSignals( false );
680 showMonthView(); 686 showMonthView();
681} 687}
682void KOViewManager::showMonthView() 688void KOViewManager::showMonthView()
683 { 689 {
684 690
685 createMonthView(); 691 createMonthView();
692 KOPrefs::instance()->mCurrentDisplayedView = VIEW_M_VIEW ;
686 globalFlagBlockAgenda = 1; 693 globalFlagBlockAgenda = 1;
687 //mFlagShowNextxDays = false; 694 //mFlagShowNextxDays = false;
688 bool full = true; 695 bool full = true;
689 if ( mCurrentView == mMonthView) 696 if ( mCurrentView == mMonthView)
690 full = mMainView->leftFrame()->isVisible(); 697 full = mMainView->leftFrame()->isVisible();
691 // if(mMonthView == mCurrentView) return; 698 // if(mMonthView == mCurrentView) return;
692 if ( KOPrefs::instance()->mMonthViewWeek ) { 699 if ( KOPrefs::instance()->mMonthViewWeek ) {
693 mMonthView->switchView(); 700 mMonthView->switchView();
694 if ( KOPrefs::instance()->mViewChangeHoldNonFullscreen && mMainView->leftFrame()->isVisible() ) 701 if ( KOPrefs::instance()->mViewChangeHoldNonFullscreen && mMainView->leftFrame()->isVisible() )
695 full = false; 702 full = false;
696 else 703 else
697 full = true; 704 full = true;
698 } 705 }
699 mMainView->dateNavigator()->selectMonth(); 706 mMainView->dateNavigator()->selectMonth();
700 707
701 showView(mMonthView, full ); 708 showView(mMonthView, full );
702 mMonthView->setKeyBFocus(); 709 mMonthView->setKeyBFocus();
703 KOPrefs::instance()->mCurrentDisplayedView = VIEW_M_VIEW ; 710 KOPrefs::instance()->mCurrentDisplayedView = VIEW_M_VIEW ;
704 711
705} 712}
706 713
707void KOViewManager::showTodoView() 714void KOViewManager::showTodoView()
708{ 715{
709 //mFlagShowNextxDays = false; 716 //mFlagShowNextxDays = false;
710 if ( !mTodoView ) { 717 if ( !mTodoView ) {
711 mTodoView = new KOTodoView( mMainView->calendar(), mMainView->viewStack(), 718 mTodoView = new KOTodoView( mMainView->calendar(), mMainView->viewStack(),
712 "KOViewManager::TodoView" ); 719 "KOViewManager::TodoView" );
713 720
714 addView( mTodoView ); 721 addView( mTodoView );
715 // QPEApplication::setStylusOperation( mTodoView, QPEApplication::RightOnHold ); 722 // QPEApplication::setStylusOperation( mTodoView, QPEApplication::RightOnHold );
716 723
717 // SIGNALS/SLOTS FOR TODO VIEW 724 // SIGNALS/SLOTS FOR TODO VIEW
718 connect( mTodoView, SIGNAL( newTodoSignal() ), 725 connect( mTodoView, SIGNAL( newTodoSignal() ),
719 mMainView, SLOT( newTodo() ) ); 726 mMainView, SLOT( newTodo() ) );
720 connect( mTodoView, SIGNAL( newSubTodoSignal( Todo * ) ), 727 connect( mTodoView, SIGNAL( newSubTodoSignal( Todo * ) ),
721 mMainView, SLOT( newSubTodo( Todo *) ) ); 728 mMainView, SLOT( newSubTodo( Todo *) ) );
722 connect( mTodoView, SIGNAL( showTodoSignal( Todo *) ), 729 connect( mTodoView, SIGNAL( showTodoSignal( Todo *) ),
723 mMainView, SLOT( showTodo( Todo * ) ) ); 730 mMainView, SLOT( showTodo( Todo * ) ) );
724 connect( mTodoView, SIGNAL( editTodoSignal( Todo * ) ), 731 connect( mTodoView, SIGNAL( editTodoSignal( Todo * ) ),
725 mMainView, SLOT( editTodo( Todo * ) ) ); 732 mMainView, SLOT( editTodo( Todo * ) ) );
726 connect( mTodoView, SIGNAL( deleteTodoSignal( Todo * ) ), 733 connect( mTodoView, SIGNAL( deleteTodoSignal( Todo * ) ),
727 mMainView, SLOT( deleteTodo( Todo * ) ) ); 734 mMainView, SLOT( deleteTodo( Todo * ) ) );
728 connect( mTodoView, SIGNAL( purgeCompletedSignal() ), 735 connect( mTodoView, SIGNAL( purgeCompletedSignal() ),
729 mMainView, SLOT( purgeCompleted() ) ); 736 mMainView, SLOT( purgeCompleted() ) );
730 737
731 connect( mTodoView, SIGNAL( incidenceSelected( Incidence * ) ), 738 connect( mTodoView, SIGNAL( incidenceSelected( Incidence * ) ),
732 mMainView, SLOT( processMainViewSelection( Incidence * ) ) ); 739 mMainView, SLOT( processMainViewSelection( Incidence * ) ) );
733 740
734 connect( mMainView, SIGNAL( configChanged() ), mTodoView, 741 connect( mMainView, SIGNAL( configChanged() ), mTodoView,
735 SLOT( updateConfig() ) ); 742 SLOT( updateConfig() ) );
736 connect( mMainView, SIGNAL( todoModified( Todo *, int )), mTodoView, 743 connect( mMainView, SIGNAL( todoModified( Todo *, int )), mTodoView,
737 SLOT( updateTodo( Todo *, int ) ) ); 744 SLOT( updateTodo( Todo *, int ) ) );
738 connect( mTodoView, SIGNAL( todoModifiedSignal( Todo *, int ) ), 745 connect( mTodoView, SIGNAL( todoModifiedSignal( Todo *, int ) ),
739 mMainView, SIGNAL ( todoModified( Todo *, int ) ) ); 746 mMainView, SIGNAL ( todoModified( Todo *, int ) ) );
740 connect( mTodoView, SIGNAL( cloneTodoSignal( Incidence * ) ), 747 connect( mTodoView, SIGNAL( cloneTodoSignal( Incidence * ) ),
741 mMainView, SLOT ( cloneIncidence( Incidence * ) ) ); 748 mMainView, SLOT ( cloneIncidence( Incidence * ) ) );
742 connect( mTodoView, SIGNAL( cancelTodoSignal( Incidence * ) ), 749 connect( mTodoView, SIGNAL( cancelTodoSignal( Incidence * ) ),
743 mMainView, SLOT ( cancelIncidence( Incidence * ) ) ); 750 mMainView, SLOT ( cancelIncidence( Incidence * ) ) );
744 connect( mTodoView, SIGNAL( unparentTodoSignal( Todo * ) ), 751 connect( mTodoView, SIGNAL( unparentTodoSignal( Todo * ) ),
745 mMainView, SLOT ( todo_unsub( Todo * ) ) ); 752 mMainView, SLOT ( todo_unsub( Todo * ) ) );
746 connect( mTodoView, SIGNAL( reparentTodoSignal( Todo *,Todo * ) ), 753 connect( mTodoView, SIGNAL( reparentTodoSignal( Todo *,Todo * ) ),
747 mMainView, SLOT ( todo_resub( Todo *, Todo *) ) ); 754 mMainView, SLOT ( todo_resub( Todo *, Todo *) ) );
748 connect( mTodoView, SIGNAL( moveTodoSignal( Incidence * ) ), 755 connect( mTodoView, SIGNAL( moveTodoSignal( Incidence * ) ),
749 mMainView, SLOT ( moveIncidence( Incidence * ) ) ); 756 mMainView, SLOT ( moveIncidence( Incidence * ) ) );
750 connect( mTodoView, SIGNAL( beamTodoSignal( Incidence * ) ), 757 connect( mTodoView, SIGNAL( beamTodoSignal( Incidence * ) ),
751 mMainView, SLOT ( beamIncidence( Incidence * ) ) ); 758 mMainView, SLOT ( beamIncidence( Incidence * ) ) );
752 KConfig *config = KOGlobals::config(); 759 KConfig *config = KOGlobals::config();
753 mTodoView->restoreLayout(config,"Todo View"); 760 mTodoView->restoreLayout(config,"Todo View");
754 mTodoView->setNavigator( mMainView->dateNavigator() ); 761 mTodoView->setNavigator( mMainView->dateNavigator() );
755 } 762 }
756 763
764 KOPrefs::instance()->mCurrentDisplayedView = VIEW_T_VIEW ;
757 globalFlagBlockAgenda = 1; 765 globalFlagBlockAgenda = 1;
758 showView( mTodoView, true ); 766 showView( mTodoView, true );
759 KOPrefs::instance()->mCurrentDisplayedView = VIEW_T_VIEW ; 767 KOPrefs::instance()->mCurrentDisplayedView = VIEW_T_VIEW ;
760 768
761} 769}
762 770
763void KOViewManager::showJournalView() 771void KOViewManager::showJournalView()
764{ 772{
765 //mFlagShowNextxDays = false; 773 //mFlagShowNextxDays = false;
766 if (!mJournalView) { 774 if (!mJournalView) {
767 mJournalView = new KOJournalView(mMainView->calendar(),mMainView->viewStack(), 775 mJournalView = new KOJournalView(mMainView->calendar(),mMainView->viewStack(),
768 "KOViewManager::JournalView"); 776 "KOViewManager::JournalView");
769 connect( mMainView, SIGNAL( configChanged() ), mJournalView, 777 connect( mMainView, SIGNAL( configChanged() ), mJournalView,
770 SLOT( updateConfig() ) ); 778 SLOT( updateConfig() ) );
771 connect(mJournalView, SIGNAL(deleteJournal(Journal *) ), mMainView,SLOT(deleteJournal(Journal *)) ); 779 connect(mJournalView, SIGNAL(deleteJournal(Journal *) ), mMainView,SLOT(deleteJournal(Journal *)) );
772 addView(mJournalView); 780 addView(mJournalView);
773 } 781 }
774 782
783 KOPrefs::instance()->mCurrentDisplayedView = VIEW_J_VIEW ;
775 showView(mJournalView); 784 showView(mJournalView);
776 mMainView->dateNavigator()->selectDates( 1 ); 785 mMainView->dateNavigator()->selectDates( 1 );
777 KOPrefs::instance()->mCurrentDisplayedView = VIEW_J_VIEW ; 786 KOPrefs::instance()->mCurrentDisplayedView = VIEW_J_VIEW ;
778} 787}
779 788
780void KOViewManager::showTimeSpanView() 789void KOViewManager::showTimeSpanView()
781{ 790{
782 //mFlagShowNextxDays = false; 791 //mFlagShowNextxDays = false;
783 if (!mTimeSpanView) { 792 if (!mTimeSpanView) {
784 mTimeSpanView = new KOTimeSpanView(mMainView->calendar(),mMainView->viewStack(), 793 mTimeSpanView = new KOTimeSpanView(mMainView->calendar(),mMainView->viewStack(),
785 "KOViewManager::TimeSpanView"); 794 "KOViewManager::TimeSpanView");
786 addView(mTimeSpanView); 795 addView(mTimeSpanView);
787 796
788 mTimeSpanView->readSettings(); 797 mTimeSpanView->readSettings();
789 } 798 }
790 799
791 showView(mTimeSpanView); 800 showView(mTimeSpanView);
792} 801}
793 802
794Incidence *KOViewManager::currentSelection() 803Incidence *KOViewManager::currentSelection()
795{ 804{
796 if (!mCurrentView) return 0; 805 if (!mCurrentView) return 0;
797 if ( mCurrentView == mListView ) { 806 if ( mCurrentView == mListView ) {
798 if ( mListView->currentItem() ) 807 if ( mListView->currentItem() )
799 return mListView->currentItem(); 808 return mListView->currentItem();
800 } 809 }
801 return mCurrentView->selectedIncidences().first(); 810 return mCurrentView->selectedIncidences().first();
802} 811}
803 812
804QDate KOViewManager::currentSelectionDate() 813QDate KOViewManager::currentSelectionDate()
805{ 814{
806 QDate qd; 815 QDate qd;
807 if (mCurrentView) { 816 if (mCurrentView) {
808 DateList qvl = mCurrentView->selectedDates(); 817 DateList qvl = mCurrentView->selectedDates();
809 if (!qvl.isEmpty()) qd = qvl.first(); 818 if (!qvl.isEmpty()) qd = qvl.first();
810 } 819 }
811 return qd; 820 return qd;
812} 821}
813 822
814void KOViewManager::addView(KOrg::BaseView *view) 823void KOViewManager::addView(KOrg::BaseView *view)
815{ 824{
816#if QT_VERSION >= 0x030000 825#if QT_VERSION >= 0x030000
817 mMainView->viewStack()->addWidget( view ); 826 mMainView->viewStack()->addWidget( view );
818#else 827#else
819 mMainView->viewStack()->addWidget( view, 1 ); 828 mMainView->viewStack()->addWidget( view, 1 );
820#endif 829#endif
821} 830}
822 831
823void KOViewManager::setDocumentId( const QString &id ) 832void KOViewManager::setDocumentId( const QString &id )
824{ 833{
825 if (mTodoView) mTodoView->setDocumentId( id ); 834 if (mTodoView) mTodoView->setDocumentId( id );
826} 835}
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index 95bef66..87cef20 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -1,582 +1,585 @@
1#include <stdlib.h> 1#include <stdlib.h>
2 2
3#include <qaction.h> 3#include <qaction.h>
4#include <qpopupmenu.h> 4#include <qpopupmenu.h>
5#include <qpainter.h> 5#include <qpainter.h>
6#include <qwhatsthis.h> 6#include <qwhatsthis.h>
7#include <qpushbutton.h> 7#include <qpushbutton.h>
8#include <qmessagebox.h> 8#include <qmessagebox.h>
9#include <qlineedit.h> 9#include <qlineedit.h>
10#include <qtextcodec.h> 10#include <qtextcodec.h>
11#include <qfile.h> 11#include <qfile.h>
12#include <qdir.h> 12#include <qdir.h>
13#include <qapp.h> 13#include <qapp.h>
14#include <qfileinfo.h> 14#include <qfileinfo.h>
15#include <qlabel.h> 15#include <qlabel.h>
16#include <qspinbox.h> 16#include <qspinbox.h>
17#include <qcheckbox.h> 17#include <qcheckbox.h>
18#include <qmap.h> 18#include <qmap.h>
19#include <qwmatrix.h> 19#include <qwmatrix.h>
20#include <qtextbrowser.h> 20#include <qtextbrowser.h>
21#include <qtextstream.h> 21#include <qtextstream.h>
22#ifndef DESKTOP_VERSION 22#ifndef DESKTOP_VERSION
23#include <qpe/global.h> 23#include <qpe/global.h>
24#include <qpe/qpemenubar.h> 24#include <qpe/qpemenubar.h>
25#include <qpe/qpetoolbar.h> 25#include <qpe/qpetoolbar.h>
26#include <qpe/resource.h> 26#include <qpe/resource.h>
27#include <qpe/qpeapplication.h> 27#include <qpe/qpeapplication.h>
28#include <qtopia/alarmserver.h> 28#include <qtopia/alarmserver.h>
29#include <qtopia/qcopenvelope_qws.h> 29#include <qtopia/qcopenvelope_qws.h>
30#include <unistd.h> // for sleep 30#include <unistd.h> // for sleep
31#else 31#else
32#include <qmenubar.h> 32#include <qmenubar.h>
33#include <qtoolbar.h> 33#include <qtoolbar.h>
34#include <qapplication.h> 34#include <qapplication.h>
35//#include <resource.h> 35//#include <resource.h>
36 36
37#endif 37#endif
38#include <libkcal/calendarlocal.h> 38#include <libkcal/calendarlocal.h>
39#include <libkcal/todo.h> 39#include <libkcal/todo.h>
40#include <libkcal/phoneformat.h> 40#include <libkcal/phoneformat.h>
41#include <libkdepim/ksyncprofile.h> 41#include <libkdepim/ksyncprofile.h>
42#include <libkdepim/phoneaccess.h> 42#include <libkdepim/phoneaccess.h>
43#include <libkcal/kincidenceformatter.h> 43#include <libkcal/kincidenceformatter.h>
44#include <libkdepim/kpimglobalprefs.h> 44#include <libkdepim/kpimglobalprefs.h>
45 45
46#include "calendarview.h" 46#include "calendarview.h"
47#include "koviewmanager.h" 47#include "koviewmanager.h"
48#include "datenavigator.h" 48#include "datenavigator.h"
49#include "koagendaview.h" 49#include "koagendaview.h"
50#include "koagenda.h" 50#include "koagenda.h"
51#include "kodialogmanager.h" 51#include "kodialogmanager.h"
52#include "kdialogbase.h" 52#include "kdialogbase.h"
53#include "kapplication.h" 53#include "kapplication.h"
54#include "kofilterview.h" 54#include "kofilterview.h"
55#include "kstandarddirs.h" 55#include "kstandarddirs.h"
56#include "koprefs.h" 56#include "koprefs.h"
57#include "kfiledialog.h" 57#include "kfiledialog.h"
58#include "koglobals.h" 58#include "koglobals.h"
59#include "kglobal.h" 59#include "kglobal.h"
60#include "ktoolbar.h" 60#include "ktoolbar.h"
61#include "klocale.h" 61#include "klocale.h"
62#include "kconfig.h" 62#include "kconfig.h"
63#include "externalapphandler.h" 63#include "externalapphandler.h"
64 64
65using namespace KCal; 65using namespace KCal;
66#ifndef _WIN32_ 66#ifndef _WIN32_
67#include <unistd.h> 67#include <unistd.h>
68#else 68#else
69#ifdef _OL_IMPORT_ 69#ifdef _OL_IMPORT_
70#include "koimportoldialog.h" 70#include "koimportoldialog.h"
71#endif 71#endif
72#endif 72#endif
73#include "mainwindow.h" 73#include "mainwindow.h"
74 74
75 75
76class KOex2phonePrefs : public QDialog 76class KOex2phonePrefs : public QDialog
77{ 77{
78 public: 78 public:
79 KOex2phonePrefs( QWidget *parent=0, const char *name=0 ) : 79 KOex2phonePrefs( QWidget *parent=0, const char *name=0 ) :
80 QDialog( parent, name, true ) 80 QDialog( parent, name, true )
81 { 81 {
82 setCaption( i18n("Export to phone options") ); 82 setCaption( i18n("Export to phone options") );
83 QVBoxLayout* lay = new QVBoxLayout( this ); 83 QVBoxLayout* lay = new QVBoxLayout( this );
84 lay->setSpacing( 3 ); 84 lay->setSpacing( 3 );
85 lay->setMargin( 3 ); 85 lay->setMargin( 3 );
86 QLabel *lab; 86 QLabel *lab;
87 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) ); 87 lay->addWidget(lab = new QLabel( i18n("Please read Help-Sync Howto\nto know what settings to use."), this ) );
88 lab->setAlignment (AlignHCenter ); 88 lab->setAlignment (AlignHCenter );
89 QHBox* temphb; 89 QHBox* temphb;
90 temphb = new QHBox( this ); 90 temphb = new QHBox( this );
91 new QLabel( i18n("I/O device: "), temphb ); 91 new QLabel( i18n("I/O device: "), temphb );
92 mPhoneDevice = new QLineEdit( temphb); 92 mPhoneDevice = new QLineEdit( temphb);
93 lay->addWidget( temphb ); 93 lay->addWidget( temphb );
94 temphb = new QHBox( this ); 94 temphb = new QHBox( this );
95 new QLabel( i18n("Connection: "), temphb ); 95 new QLabel( i18n("Connection: "), temphb );
96 mPhoneConnection = new QLineEdit( temphb); 96 mPhoneConnection = new QLineEdit( temphb);
97 lay->addWidget( temphb ); 97 lay->addWidget( temphb );
98 temphb = new QHBox( this ); 98 temphb = new QHBox( this );
99 new QLabel( i18n("Model(opt.): "), temphb ); 99 new QLabel( i18n("Model(opt.): "), temphb );
100 mPhoneModel = new QLineEdit( temphb); 100 mPhoneModel = new QLineEdit( temphb);
101 lay->addWidget( temphb ); 101 lay->addWidget( temphb );
102 mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this ); 102 mWriteBackFuture= new QCheckBox( i18n("Write back events in future only"), this );
103 mWriteBackFuture->setChecked( true ); 103 mWriteBackFuture->setChecked( true );
104 lay->addWidget( mWriteBackFuture ); 104 lay->addWidget( mWriteBackFuture );
105 temphb = new QHBox( this ); 105 temphb = new QHBox( this );
106 new QLabel( i18n("Max. weeks in future: ") , temphb ); 106 new QLabel( i18n("Max. weeks in future: ") , temphb );
107 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb); 107 mWriteBackFutureWeeks= new QSpinBox(1,104, 1, temphb);
108 mWriteBackFutureWeeks->setValue( 8 ); 108 mWriteBackFutureWeeks->setValue( 8 );
109 lay->addWidget( temphb ); 109 lay->addWidget( temphb );
110 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ntodo/calendar data on phone!"), this ) ); 110 lay->addWidget(lab = new QLabel( i18n("NOTE: This will remove all old\ntodo/calendar data on phone!"), this ) );
111 lab->setAlignment (AlignHCenter ); 111 lab->setAlignment (AlignHCenter );
112 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this ); 112 QPushButton * ok = new QPushButton( i18n("Export to mobile phone!"), this );
113 lay->addWidget( ok ); 113 lay->addWidget( ok );
114 QPushButton * cancel = new QPushButton( i18n("Cancel"), this ); 114 QPushButton * cancel = new QPushButton( i18n("Cancel"), this );
115 lay->addWidget( cancel ); 115 lay->addWidget( cancel );
116 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); 116 connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) );
117 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) ); 117 connect (cancel, SIGNAL(clicked() ), this, SLOT ( reject()) );
118 resize( 220, 240 ); 118 resize( 220, 240 );
119 qApp->processEvents(); 119 qApp->processEvents();
120 int dw = QApplication::desktop()->width(); 120 int dw = QApplication::desktop()->width();
121 int dh = QApplication::desktop()->height(); 121 int dh = QApplication::desktop()->height();
122 move( (dw-width())/2, (dh - height() )/2 ); 122 move( (dw-width())/2, (dh - height() )/2 );
123 } 123 }
124 124
125public: 125public:
126 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel; 126 QLineEdit* mPhoneConnection, *mPhoneDevice, *mPhoneModel;
127 QCheckBox* mWriteBackFuture; 127 QCheckBox* mWriteBackFuture;
128 QSpinBox* mWriteBackFutureWeeks; 128 QSpinBox* mWriteBackFutureWeeks;
129}; 129};
130 130
131int globalFlagBlockStartup; 131int globalFlagBlockStartup;
132MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) : 132MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) :
133 QMainWindow( parent, name ) 133 QMainWindow( parent, name )
134{ 134{
135 135
136 mClosed = false; 136 mClosed = false;
137 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc"; 137 //QString confFile = KStandardDirs::appDir() + "config/korganizerrc";
138 QString confFile = locateLocal("config","korganizerrc"); 138 QString confFile = locateLocal("config","korganizerrc");
139 QFileInfo finf ( confFile ); 139 QFileInfo finf ( confFile );
140 bool showWarning = !finf.exists(); 140 bool showWarning = !finf.exists();
141 setIcon(SmallIcon( "ko24" ) ); 141 setIcon(SmallIcon( "ko24" ) );
142 mBlockAtStartup = true; 142 mBlockAtStartup = true;
143 mFlagKeyPressed = false; 143 mFlagKeyPressed = false;
144 setCaption("KO/Pi"); 144 setCaption("KO/Pi");
145 KOPrefs *p = KOPrefs::instance(); 145 KOPrefs *p = KOPrefs::instance();
146 KPimGlobalPrefs::instance()->setGlobalConfig(); 146 KPimGlobalPrefs::instance()->setGlobalConfig();
147 p->mCurrentDisplayedView = 0; 147 p->mCurrentDisplayedView = 0;
148 if ( p->mHourSize > 22 ) 148 if ( p->mHourSize > 22 )
149 p->mHourSize = 22; 149 p->mHourSize = 22;
150 QMainWindow::ToolBarDock tbd; 150 QMainWindow::ToolBarDock tbd;
151 if ( p->mToolBarHor ) { 151 if ( p->mToolBarHor ) {
152 if ( p->mToolBarUp ) 152 if ( p->mToolBarUp )
153 tbd = Bottom; 153 tbd = Bottom;
154 else 154 else
155 tbd = Top; 155 tbd = Top;
156 } 156 }
157 else { 157 else {
158 if ( p->mToolBarUp ) 158 if ( p->mToolBarUp )
159 tbd = Right; 159 tbd = Right;
160 else 160 else
161 tbd = Left; 161 tbd = Left;
162 } 162 }
163 if ( KOPrefs::instance()->mUseAppColors ) 163 if ( KOPrefs::instance()->mUseAppColors )
164 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); 164 QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true );
165 globalFlagBlockStartup = 1; 165 globalFlagBlockStartup = 1;
166 iconToolBar = new QPEToolBar( this ); 166 iconToolBar = new QPEToolBar( this );
167 addToolBar (iconToolBar , tbd ); 167 addToolBar (iconToolBar , tbd );
168 168
169#ifdef DESKTOP_VERSION 169#ifdef DESKTOP_VERSION
170 if ( KOPrefs::instance()->mShowIconFilter ) 170 if ( KOPrefs::instance()->mShowIconFilter )
171#else 171#else
172 if ( KOPrefs::instance()->mShowIconFilter || !p->mShowIconOnetoolbar ) 172 if ( KOPrefs::instance()->mShowIconFilter || !p->mShowIconOnetoolbar )
173#endif 173#endif
174 174
175{ 175{
176 if ( p->mToolBarHorF ) { 176 if ( p->mToolBarHorF ) {
177 if ( p->mToolBarUpF ) 177 if ( p->mToolBarUpF )
178 tbd = Bottom; 178 tbd = Bottom;
179 else 179 else
180 tbd = Top; 180 tbd = Top;
181 } 181 }
182 else { 182 else {
183 if ( p->mToolBarUpF ) 183 if ( p->mToolBarUpF )
184 tbd = Right; 184 tbd = Right;
185 else 185 else
186 tbd = Left; 186 tbd = Left;
187 } 187 }
188 filterToolBar = new QPEToolBar ( this ); 188 filterToolBar = new QPEToolBar ( this );
189 filterMenubar = new QPEMenuBar( filterToolBar ); 189 filterMenubar = new QMenuBar( filterToolBar );
190 QFontMetrics fm ( filterMenubar->font() ); 190 QFontMetrics fm ( filterMenubar->font() );
191 191
192 filterPopupMenu = new QPopupMenu( this ); 192 filterPopupMenu = new QPopupMenu( this );
193 filterMenubar->insertItem( i18n("No Filter"), filterPopupMenu,0 ); 193 filterMenubar->insertItem( i18n("No Filter"), filterPopupMenu,0 );
194 QString addTest = "Ax"; 194 QString addTest = "A";
195 filterMenubar->setMinimumWidth( fm.width( i18n("No Filter")+addTest ) );
195#ifdef DESKTOP_VERSION 196#ifdef DESKTOP_VERSION
196 addTest = "AAAx"; 197 addTest = "AAABBBCCCx";
197#endif 198#else
198 filterMenubar->setFixedWidth( fm.width( i18n("No Filter")+addTest ) ); 199 addTest = "AAx";
200#endif
201 filterMenubar->setMaximumWidth( fm.width( i18n("No Filter")+addTest ) );
199 addToolBar (filterToolBar , tbd ); 202 addToolBar (filterToolBar , tbd );
200 connect ( filterPopupMenu , SIGNAL( activated ( int ) ), this, SLOT (selectFilterPopup( int ) ) ); 203 connect ( filterPopupMenu , SIGNAL( activated ( int ) ), this, SLOT (selectFilterPopup( int ) ) );
201 connect ( filterPopupMenu , SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenuPopup() ) ); 204 connect ( filterPopupMenu , SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenuPopup() ) );
202 if ( !KOPrefs::instance()->mShowIconFilter && !p->mShowIconOnetoolbar ) 205 if ( !KOPrefs::instance()->mShowIconFilter && !p->mShowIconOnetoolbar )
203 filterToolBar->hide(); 206 filterToolBar->hide();
204 } else { 207 } else {
205 filterToolBar = 0; 208 filterToolBar = 0;
206 filterMenubar = 0; 209 filterMenubar = 0;
207 filterPopupMenu = 0; 210 filterPopupMenu = 0;
208 } 211 }
209 if ( p->mShowIconOnetoolbar ) { 212 if ( p->mShowIconOnetoolbar ) {
210 viewToolBar = iconToolBar ; 213 viewToolBar = iconToolBar ;
211 navigatorToolBar = iconToolBar ; 214 navigatorToolBar = iconToolBar ;
212 } else { 215 } else {
213#ifndef DESKTOP_VERSION 216#ifndef DESKTOP_VERSION
214 setToolBarsMovable( false ); 217 setToolBarsMovable( false );
215#endif 218#endif
216 if ( p->mToolBarHorV ) { 219 if ( p->mToolBarHorV ) {
217 if ( p->mToolBarUpV ) 220 if ( p->mToolBarUpV )
218 tbd = Bottom; 221 tbd = Bottom;
219 else 222 else
220 tbd = Top; 223 tbd = Top;
221 } 224 }
222 else { 225 else {
223 if ( p->mToolBarUpV ) 226 if ( p->mToolBarUpV )
224 tbd = Right; 227 tbd = Right;
225 else 228 else
226 tbd = Left; 229 tbd = Left;
227 } 230 }
228 viewToolBar = new QPEToolBar( this ); 231 viewToolBar = new QPEToolBar( this );
229 addToolBar (viewToolBar , tbd ); 232 addToolBar (viewToolBar , tbd );
230 if ( p->mToolBarHorN ) { 233 if ( p->mToolBarHorN ) {
231 if ( p->mToolBarUpN ) 234 if ( p->mToolBarUpN )
232 tbd = Bottom; 235 tbd = Bottom;
233 else 236 else
234 tbd = Top; 237 tbd = Top;
235 } 238 }
236 else { 239 else {
237 if ( p->mToolBarUpN ) 240 if ( p->mToolBarUpN )
238 tbd = Right; 241 tbd = Right;
239 else 242 else
240 tbd = Left; 243 tbd = Left;
241 } 244 }
242 navigatorToolBar = new QPEToolBar( this ); 245 navigatorToolBar = new QPEToolBar( this );
243 addToolBar (navigatorToolBar , tbd ); 246 addToolBar (navigatorToolBar , tbd );
244 } 247 }
245 248
246 249
247 250
248 mCalendarModifiedFlag = false; 251 mCalendarModifiedFlag = false;
249 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this ); 252 QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this );
250 splash->setAlignment ( AlignCenter ); 253 splash->setAlignment ( AlignCenter );
251 setCentralWidget( splash ); 254 setCentralWidget( splash );
252#ifndef DESKTOP_VERSION 255#ifndef DESKTOP_VERSION
253 showMaximized(); 256 showMaximized();
254#endif 257#endif
255 258
256 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ()); 259 //qDebug("Mainwidget x %d y %d w %d h %d", x(), y(), width(), height ());
257 setDefaultPreferences(); 260 setDefaultPreferences();
258 mCalendar = new CalendarLocal(); 261 mCalendar = new CalendarLocal();
259 mView = new CalendarView( mCalendar, this,"mCalendar " ); 262 mView = new CalendarView( mCalendar, this,"mCalendar " );
260 mView->hide(); 263 mView->hide();
261 //mView->resize(splash->size() ); 264 //mView->resize(splash->size() );
262 initActions(); 265 initActions();
263 mSyncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)mView, KSyncManager::KOPI, KOPrefs::instance(), syncMenu); 266 mSyncManager = new KSyncManager((QWidget*)this, (KSyncInterface*)mView, KSyncManager::KOPI, KOPrefs::instance(), syncMenu);
264 mSyncManager->setBlockSave(false); 267 mSyncManager->setBlockSave(false);
265 mView->setSyncManager(mSyncManager); 268 mView->setSyncManager(mSyncManager);
266#ifndef DESKTOP_VERSION 269#ifndef DESKTOP_VERSION
267 iconToolBar->show(); 270 iconToolBar->show();
268 qApp->processEvents(); 271 qApp->processEvents();
269#endif 272#endif
270 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ()); 273 //qDebug("Splashwidget x %d y %d w %d h %d", splash-> x(), splash->y(), splash->width(),splash-> height ());
271 int vh = height() ; 274 int vh = height() ;
272 int vw = width(); 275 int vw = width();
273 //qDebug("Toolbar hei %d ",iconToolBar->height() ); 276 //qDebug("Toolbar hei %d ",iconToolBar->height() );
274 if ( iconToolBar->orientation () == Qt:: Horizontal ) { 277 if ( iconToolBar->orientation () == Qt:: Horizontal ) {
275 vh -= iconToolBar->height(); 278 vh -= iconToolBar->height();
276 } else { 279 } else {
277 vw -= iconToolBar->height(); 280 vw -= iconToolBar->height();
278 } 281 }
279 //mView->setMaximumSize( splash->size() ); 282 //mView->setMaximumSize( splash->size() );
280 //mView->resize( splash->size() ); 283 //mView->resize( splash->size() );
281 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); 284 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ());
282 mView->readSettings(); 285 mView->readSettings();
283 bool newFile = false; 286 bool newFile = false;
284 if( !QFile::exists( defaultFileName() ) ) { 287 if( !QFile::exists( defaultFileName() ) ) {
285 QFileInfo finfo ( defaultFileName() ); 288 QFileInfo finfo ( defaultFileName() );
286 QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics"); 289 QString oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/Applications/korganizer/mycalendar.ics");
287 QString message = "You are starting KO/Pi for the\nfirst time after updating to a\nversion >= 1.9.1. The location of the\ndefault calendar file has changed.\nA mycalendar.ics file was detected\nat the old location.\nThis file will be loaded now\nand stored at the new location!\n(Config file location has changed, too!)\nPlease read menu Help-What's New!\n"; 290 QString message = "You are starting KO/Pi for the\nfirst time after updating to a\nversion >= 1.9.1. The location of the\ndefault calendar file has changed.\nA mycalendar.ics file was detected\nat the old location.\nThis file will be loaded now\nand stored at the new location!\n(Config file location has changed, too!)\nPlease read menu Help-What's New!\n";
288 finfo.setFile( oldFile ); 291 finfo.setFile( oldFile );
289 if (finfo.exists() ) { 292 if (finfo.exists() ) {
290 KMessageBox::information( this, message); 293 KMessageBox::information( this, message);
291 mView->openCalendar( oldFile ); 294 mView->openCalendar( oldFile );
292 qApp->processEvents(); 295 qApp->processEvents();
293 } else { 296 } else {
294 oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics"); 297 oldFile = QDir::convertSeparators( QDir::homeDirPath()+"/korganizer/mycalendar.ics");
295 finfo.setFile( oldFile ); 298 finfo.setFile( oldFile );
296 if (finfo.exists() ) { 299 if (finfo.exists() ) {
297 KMessageBox::information( this, message); 300 KMessageBox::information( this, message);
298 mView->openCalendar( oldFile ); 301 mView->openCalendar( oldFile );
299 qApp->processEvents(); 302 qApp->processEvents();
300 } 303 }
301 } 304 }
302 mView->saveCalendar( defaultFileName() ); 305 mView->saveCalendar( defaultFileName() );
303 newFile = true; 306 newFile = true;
304 } 307 }
305 308
306 QTime neededSaveTime = QDateTime::currentDateTime().time(); 309 QTime neededSaveTime = QDateTime::currentDateTime().time();
307 mView->openCalendar( defaultFileName() ); 310 mView->openCalendar( defaultFileName() );
308 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() ); 311 int msNeeded = neededSaveTime.msecsTo( QDateTime::currentDateTime().time() );
309 qDebug("KO: Calendar loading time: %d ms",msNeeded ); 312 qDebug("KO: Calendar loading time: %d ms",msNeeded );
310 313
311 if ( KPimGlobalPrefs::instance()->mPreferredLanguage != KOPrefs::instance()->mOldLoadedLanguage ) { 314 if ( KPimGlobalPrefs::instance()->mPreferredLanguage != KOPrefs::instance()->mOldLoadedLanguage ) {
312 KOPrefs::instance()->setAllDefaults(); 315 KOPrefs::instance()->setAllDefaults();
313 int count = mView->addCategories(); 316 int count = mView->addCategories();
314 } 317 }
315 processIncidenceSelection( 0 ); 318 processIncidenceSelection( 0 );
316 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ), 319 connect( mView, SIGNAL( incidenceSelected( Incidence * ) ),
317 SLOT( processIncidenceSelection( Incidence * ) ) ); 320 SLOT( processIncidenceSelection( Incidence * ) ) );
318 connect( mView, SIGNAL( modifiedChanged( bool ) ), 321 connect( mView, SIGNAL( modifiedChanged( bool ) ),
319 SLOT( slotModifiedChanged( bool ) ) ); 322 SLOT( slotModifiedChanged( bool ) ) );
320 323
321 324
322 connect( mView, SIGNAL( tempDisableBR(bool) ), 325 connect( mView, SIGNAL( tempDisableBR(bool) ),
323 SLOT( disableBR(bool) ) ); 326 SLOT( disableBR(bool) ) );
324 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) ); 327 connect( &mSaveTimer, SIGNAL( timeout() ), SLOT( save() ) );
325 mView->setModified( false ); 328 mView->setModified( false );
326 mBlockAtStartup = false; 329 mBlockAtStartup = false;
327 mView->setModified( false ); 330 mView->setModified( false );
328 setCentralWidget( mView ); 331 setCentralWidget( mView );
329 globalFlagBlockStartup = 0; 332 globalFlagBlockStartup = 0;
330 mView->show(); 333 mView->show();
331 delete splash; 334 delete splash;
332 if ( newFile ) 335 if ( newFile )
333 mView->updateConfig(); 336 mView->updateConfig();
334 // qApp->processEvents(); 337 // qApp->processEvents();
335 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ()); 338 //qDebug("MainView x %d y %d w %d h %d", mView->x(),mView-> y(), mView->width(), mView->height ());
336 //fillSyncMenu(); 339 //fillSyncMenu();
337 340
338 341
339 connect(mSyncManager , SIGNAL( save() ), this, SLOT( save() ) ); 342 connect(mSyncManager , SIGNAL( save() ), this, SLOT( save() ) );
340 connect(mView , SIGNAL( save() ), this, SLOT( save() ) ); 343 connect(mView , SIGNAL( save() ), this, SLOT( save() ) );
341 connect(mView , SIGNAL( saveStopTimer() ), this, SLOT( saveStopTimer() ) ); 344 connect(mView , SIGNAL( saveStopTimer() ), this, SLOT( saveStopTimer() ) );
342 connect(mSyncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) ); 345 connect(mSyncManager , SIGNAL( request_file() ), this, SLOT( syncFileRequest() ) );
343 connect(mSyncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) ); 346 connect(mSyncManager , SIGNAL( getFile( bool )), this, SLOT(getFile( bool ) ) );
344 mSyncManager->setDefaultFileName( sentSyncFile()); 347 mSyncManager->setDefaultFileName( sentSyncFile());
345 connect ( syncMenu, SIGNAL( activated ( int ) ), mSyncManager, SLOT (slotSyncMenu( int ) ) ); 348 connect ( syncMenu, SIGNAL( activated ( int ) ), mSyncManager, SLOT (slotSyncMenu( int ) ) );
346 mSyncManager->fillSyncMenu(); 349 mSyncManager->fillSyncMenu();
347 350
348 351
349 352
350 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins ); 353 mView->viewManager()->agendaView()->setStartHour( KOPrefs::instance()->mDayBegins );
351 if ( showWarning ) { 354 if ( showWarning ) {
352 KMessageBox::information( this, 355 KMessageBox::information( this,
353 "You are starting KO/Pi for the first time.\nPlease read menu: Help-What's New,\nif you did an update!\nPlease choose your timezone in the \nConfigure Dialog TAB Time Zone!\nPlease choose your language\nin the TAB Locale!\nYou get the Configure Dialog\nvia Menu: Actions - Configure....\nClick OK to show the Configure Dialog!\n", "KO/Pi information"); 356 "You are starting KO/Pi for the first time.\nPlease read menu: Help-What's New,\nif you did an update!\nPlease choose your timezone in the \nConfigure Dialog TAB Time Zone!\nPlease choose your language\nin the TAB Locale!\nYou get the Configure Dialog\nvia Menu: Actions - Configure....\nClick OK to show the Configure Dialog!\n", "KO/Pi information");
354 qApp->processEvents(); 357 qApp->processEvents();
355 mView->dialogManager()->showSyncOptions(); 358 mView->dialogManager()->showSyncOptions();
356 } 359 }
357 360
358 //US listen for result adressed from Ka/Pi 361 //US listen for result adressed from Ka/Pi
359#ifndef DESKTOP_VERSION 362#ifndef DESKTOP_VERSION
360 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & ))); 363 connect(qApp, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & )));
361#endif 364#endif
362#ifndef DESKTOP_VERSION 365#ifndef DESKTOP_VERSION
363 infrared = 0; 366 infrared = 0;
364#endif 367#endif
365 updateFilterToolbar(); 368 updateFilterToolbar();
366 updateWeek( mView->startDate() ); 369 updateWeek( mView->startDate() );
367 connect( mView->dateNavigator(), SIGNAL( datesSelected( const KCal::DateList & ) ), 370 connect( mView->dateNavigator(), SIGNAL( datesSelected( const KCal::DateList & ) ),
368 SLOT( updateWeekNum( const KCal::DateList & ) ) ); 371 SLOT( updateWeekNum( const KCal::DateList & ) ) );
369 mBRdisabled = false; 372 mBRdisabled = false;
370 //toggleBeamReceive(); 373 //toggleBeamReceive();
371} 374}
372MainWindow::~MainWindow() 375MainWindow::~MainWindow()
373{ 376{
374 //qDebug("MainWindow::~MainWindow() "); 377 //qDebug("MainWindow::~MainWindow() ");
375 //save toolbar location 378 //save toolbar location
376 delete mCalendar; 379 delete mCalendar;
377 delete mSyncManager; 380 delete mSyncManager;
378#ifndef DESKTOP_VERSION 381#ifndef DESKTOP_VERSION
379 if ( infrared ) 382 if ( infrared )
380 delete infrared; 383 delete infrared;
381#endif 384#endif
382 385
383 386
384} 387}
385 388
386void MainWindow::disableBR(bool b) 389void MainWindow::disableBR(bool b)
387{ 390{
388#ifndef DESKTOP_VERSION 391#ifndef DESKTOP_VERSION
389 if ( b ) { 392 if ( b ) {
390 if ( infrared ) { 393 if ( infrared ) {
391 toggleBeamReceive(); 394 toggleBeamReceive();
392 mBRdisabled = true; 395 mBRdisabled = true;
393 } 396 }
394 mBRdisabled = true; 397 mBRdisabled = true;
395 } else { 398 } else {
396 if ( mBRdisabled ) { 399 if ( mBRdisabled ) {
397 mBRdisabled = false; 400 mBRdisabled = false;
398 //makes no sense,because other cal ap is probably running 401 //makes no sense,because other cal ap is probably running
399 // toggleBeamReceive(); 402 // toggleBeamReceive();
400 } 403 }
401 } 404 }
402#endif 405#endif
403 406
404} 407}
405bool MainWindow::beamReceiveEnabled() 408bool MainWindow::beamReceiveEnabled()
406{ 409{
407#ifndef DESKTOP_VERSION 410#ifndef DESKTOP_VERSION
408 return ( infrared != 0 ); 411 return ( infrared != 0 );
409#endif 412#endif
410 return false; 413 return false;
411} 414}
412 415
413void MainWindow::toggleBeamReceive() 416void MainWindow::toggleBeamReceive()
414{ 417{
415 if ( mBRdisabled ) 418 if ( mBRdisabled )
416 return; 419 return;
417#ifndef DESKTOP_VERSION 420#ifndef DESKTOP_VERSION
418 if ( infrared ) { 421 if ( infrared ) {
419 qDebug("KO: Disable BeamReceive "); 422 qDebug("KO: Disable BeamReceive ");
420 delete infrared; 423 delete infrared;
421 infrared = 0; 424 infrared = 0;
422 brAction->setOn(false); 425 brAction->setOn(false);
423 return; 426 return;
424 } 427 }
425 qDebug("KO: Enable BeamReceive "); 428 qDebug("KO: Enable BeamReceive ");
426 brAction->setOn(true); 429 brAction->setOn(true);
427 infrared = new QCopChannel("QPE/Application/datebook",this, "channel" ) ; 430 infrared = new QCopChannel("QPE/Application/datebook",this, "channel" ) ;
428 QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(recieve( const QCString&, const QByteArray& ))); 431 QObject::connect( infrared, SIGNAL (received ( const QCString &, const QByteArray & )),this, SLOT(recieve( const QCString&, const QByteArray& )));
429#endif 432#endif
430} 433}
431void MainWindow::showMaximized () 434void MainWindow::showMaximized ()
432{ 435{
433#ifndef DESKTOP_VERSION 436#ifndef DESKTOP_VERSION
434 if ( ! globalFlagBlockStartup ) 437 if ( ! globalFlagBlockStartup )
435 if ( mClosed ) 438 if ( mClosed )
436 mView->goToday(); 439 mView->goToday();
437#endif 440#endif
438 QWidget::showMaximized () ; 441 QWidget::showMaximized () ;
439 mClosed = false; 442 mClosed = false;
440} 443}
441void MainWindow::closeEvent( QCloseEvent* ce ) 444void MainWindow::closeEvent( QCloseEvent* ce )
442{ 445{
443 446
444 447
445 448
446 if ( ! KOPrefs::instance()->mAskForQuit ) { 449 if ( ! KOPrefs::instance()->mAskForQuit ) {
447 saveOnClose(); 450 saveOnClose();
448 mClosed = true; 451 mClosed = true;
449 ce->accept(); 452 ce->accept();
450 return; 453 return;
451 454
452 } 455 }
453 456
454 switch( QMessageBox::information( this, "KO/Pi", 457 switch( QMessageBox::information( this, "KO/Pi",
455 i18n("Do you really want\nto close KO/Pi?"), 458 i18n("Do you really want\nto close KO/Pi?"),
456 i18n("Close"), i18n("No"), 459 i18n("Close"), i18n("No"),
457 0, 0 ) ) { 460 0, 0 ) ) {
458 case 0: 461 case 0:
459 saveOnClose(); 462 saveOnClose();
460 mClosed = true; 463 mClosed = true;
461 ce->accept(); 464 ce->accept();
462 break; 465 break;
463 case 1: 466 case 1:
464 ce->ignore(); 467 ce->ignore();
465 break; 468 break;
466 case 2: 469 case 2:
467 470
468 default: 471 default:
469 break; 472 break;
470 } 473 }
471 474
472 475
473} 476}
474 477
475void MainWindow::recieve( const QCString& cmsg, const QByteArray& data ) 478void MainWindow::recieve( const QCString& cmsg, const QByteArray& data )
476{ 479{
477 QDataStream stream( data, IO_ReadOnly ); 480 QDataStream stream( data, IO_ReadOnly );
478 // QMessageBox::about( this, "About KOrganizer/Pi", "*" +msg +"*" ); 481 // QMessageBox::about( this, "About KOrganizer/Pi", "*" +msg +"*" );
479 //QString datamess; 482 //QString datamess;
480 //qDebug("message "); 483 //qDebug("message ");
481 qDebug("KO: QCOP message received: %s ", cmsg.data() ); 484 qDebug("KO: QCOP message received: %s ", cmsg.data() );
482 485
483 if ( cmsg == "setDocument(QString)" ) { 486 if ( cmsg == "setDocument(QString)" ) {
484 QDataStream stream( data, IO_ReadOnly ); 487 QDataStream stream( data, IO_ReadOnly );
485 QString fileName; 488 QString fileName;
486 stream >> fileName; 489 stream >> fileName;
487 //qDebug("filename %s ", fileName.latin1()); 490 //qDebug("filename %s ", fileName.latin1());
488 showMaximized(); 491 showMaximized();
489 raise(); 492 raise();
490 KOPrefs::instance()->mLastSyncedLocalFile = fileName ; 493 KOPrefs::instance()->mLastSyncedLocalFile = fileName ;
491 mSyncManager->slotSyncMenu( 1002 ); 494 mSyncManager->slotSyncMenu( 1002 );
492 return; 495 return;
493 } 496 }
494 497
495 if ( cmsg == "-writeFile" ) { 498 if ( cmsg == "-writeFile" ) {
496 // I made from the "-writeFile" an "-writeAlarm" 499 // I made from the "-writeFile" an "-writeAlarm"
497 mView->viewManager()->showWhatsNextView(); 500 mView->viewManager()->showWhatsNextView();
498 mCalendar->checkAlarmForIncidence( 0, true); 501 mCalendar->checkAlarmForIncidence( 0, true);
499 showMaximized(); 502 showMaximized();
500 raise(); 503 raise();
501 return; 504 return;
502 505
503 } 506 }
504 if ( cmsg == "-writeFileSilent" ) { 507 if ( cmsg == "-writeFileSilent" ) {
505 // I made from the "-writeFile" an "-writeAlarm" 508 // I made from the "-writeFile" an "-writeAlarm"
506 // mView->viewManager()->showWhatsNextView(); 509 // mView->viewManager()->showWhatsNextView();
507 mCalendar->checkAlarmForIncidence( 0, true); 510 mCalendar->checkAlarmForIncidence( 0, true);
508 //showMaximized(); 511 //showMaximized();
509 //raise(); 512 //raise();
510 hide(); 513 hide();
511 return; 514 return;
512 } 515 }
513 if ( cmsg == "-newCountdown" ) { 516 if ( cmsg == "-newCountdown" ) {
514 qDebug("newCountdown "); 517 qDebug("newCountdown ");
515 518
516 } 519 }
517 QString msg ; 520 QString msg ;
518 QString allmsg = cmsg; 521 QString allmsg = cmsg;
519 while ( allmsg.length() > 0 ) { 522 while ( allmsg.length() > 0 ) {
520 int nextC = allmsg.find( "-", 1 ); 523 int nextC = allmsg.find( "-", 1 );
521 if ( nextC == -1 ) { 524 if ( nextC == -1 ) {
522 msg = allmsg; 525 msg = allmsg;
523 allmsg = ""; 526 allmsg = "";
524 } else{ 527 } else{
525 msg = allmsg.left( nextC ); 528 msg = allmsg.left( nextC );
526 allmsg = allmsg.mid( nextC, allmsg.length()-nextC ); 529 allmsg = allmsg.mid( nextC, allmsg.length()-nextC );
527 } 530 }
528 //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() ); 531 //qDebug("msg: %s all: %s ", msg.latin1(), allmsg.latin1() );
529 if ( msg == "-newEvent" ) { 532 if ( msg == "-newEvent" ) {
530 mView->newEvent(); 533 mView->newEvent();
531 } 534 }
532 if ( msg == "-newTodo" ) { 535 if ( msg == "-newTodo" ) {
533 mView->newTodo(); 536 mView->newTodo();
534 537
535 } 538 }
536 if ( msg == "-showWN" ) { 539 if ( msg == "-showWN" ) {
537 mView->viewManager()->showWhatsNextView(); 540 mView->viewManager()->showWhatsNextView();
538 } 541 }
539 if ( msg == "-showTodo" ) { 542 if ( msg == "-showTodo" ) {
540 mView->viewManager()->showTodoView(); 543 mView->viewManager()->showTodoView();
541 } 544 }
542 if ( msg == "-showList" ) { 545 if ( msg == "-showList" ) {
543 mView->viewManager()->showListView(); 546 mView->viewManager()->showListView();
544 } 547 }
545 else if ( msg == "-showDay" ) { 548 else if ( msg == "-showDay" ) {
546 mView->viewManager()->showDayView(); 549 mView->viewManager()->showDayView();
547 } 550 }
548 else if ( msg == "-showWWeek" ) { 551 else if ( msg == "-showWWeek" ) {
549 mView->viewManager()->showWorkWeekView(); 552 mView->viewManager()->showWorkWeekView();
550 } 553 }
551 else if ( msg == "-ringSync" ) { 554 else if ( msg == "-ringSync" ) {
552 mSyncManager->multiSync( false ); 555 mSyncManager->multiSync( false );
553 } 556 }
554 else if ( msg == "-showWeek" ) { 557 else if ( msg == "-showWeek" ) {
555 mView->viewManager()->showWeekView(); 558 mView->viewManager()->showWeekView();
556 } 559 }
557 else if ( msg == "-showTodo" ) { 560 else if ( msg == "-showTodo" ) {
558 mView->viewManager()->showTodoView(); 561 mView->viewManager()->showTodoView();
559 } 562 }
560 else if ( msg == "-showJournal" ) { 563 else if ( msg == "-showJournal" ) {
561 mView->dateNavigator()->selectDates( 1 ); 564 mView->dateNavigator()->selectDates( 1 );
562 mView->dateNavigator()->selectToday(); 565 mView->dateNavigator()->selectToday();
563 mView->viewManager()->showJournalView(); 566 mView->viewManager()->showJournalView();
564 } 567 }
565 else if ( msg == "-showKO" ) { 568 else if ( msg == "-showKO" ) {
566 mView->viewManager()->showNextXView(); 569 mView->viewManager()->showNextXView();
567 } 570 }
568 else if ( msg == "-showWNext" ) { 571 else if ( msg == "-showWNext" ) {
569 mView->viewManager()->showWhatsNextView(); 572 mView->viewManager()->showWhatsNextView();
570 } 573 }
571 else if ( msg == "nextView()" ) { 574 else if ( msg == "nextView()" ) {
572 mView->viewManager()->showNextView(); 575 mView->viewManager()->showNextView();
573 } 576 }
574 else if ( msg == "-showNextXView" ) { 577 else if ( msg == "-showNextXView" ) {
575 mView->viewManager()->showNextXView(); 578 mView->viewManager()->showNextXView();
576 } 579 }
577 580
578 581
579 } 582 }
580 583
581 showMaximized(); 584 showMaximized();
582 raise(); 585 raise();
diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h
index 45ed04d..8fd3d24 100644
--- a/korganizer/mainwindow.h
+++ b/korganizer/mainwindow.h
@@ -1,166 +1,166 @@
1#ifndef KORGE_MAINWINDOW_H 1#ifndef KORGE_MAINWINDOW_H
2#define KORGE_MAINWINDOW_H 2#define KORGE_MAINWINDOW_H
3 3
4#include <qmainwindow.h> 4#include <qmainwindow.h>
5#include <qtimer.h> 5#include <qtimer.h>
6#include <qdict.h> 6#include <qdict.h>
7#include <qfile.h> 7#include <qfile.h>
8#include <qmenubar.h> 8#include <qmenubar.h>
9#include <qtextstream.h> 9#include <qtextstream.h>
10#include <qregexp.h> 10#include <qregexp.h>
11 11
12#include <libkcal/incidence.h> 12#include <libkcal/incidence.h>
13#include <ksyncmanager.h> 13#include <ksyncmanager.h>
14#ifndef DESKTOP_VERSION 14#ifndef DESKTOP_VERSION
15#include <qcopchannel_qws.h> 15#include <qcopchannel_qws.h>
16#endif 16#endif
17class QAction; 17class QAction;
18class CalendarView; 18class CalendarView;
19class KSyncProfile; 19class KSyncProfile;
20#ifdef DESKTOP_VERSION 20#ifdef DESKTOP_VERSION
21 21
22#define QPEToolBar QToolBar 22#define QPEToolBar QToolBar
23#define QPEMenuBar QMenuBar 23#define QPEMenuBar QMenuBar
24#endif 24#endif
25class QPEToolBar; 25class QPEToolBar;
26class QPEMenuBar; 26class QPEMenuBar;
27 27
28 28
29namespace KCal { 29namespace KCal {
30class CalendarLocal; 30class CalendarLocal;
31} 31}
32 32
33using namespace KCal; 33using namespace KCal;
34 34
35class MainWindow : public QMainWindow 35class MainWindow : public QMainWindow
36{ 36{
37 Q_OBJECT 37 Q_OBJECT
38 public: 38 public:
39 MainWindow( QWidget *parent = 0, const char *name = 0, QString command = ""); 39 MainWindow( QWidget *parent = 0, const char *name = 0, QString command = "");
40 ~MainWindow(); 40 ~MainWindow();
41 bool beamReceiveEnabled(); 41 bool beamReceiveEnabled();
42 static QString defaultFileName(); 42 static QString defaultFileName();
43 static QString syncFileName(); 43 static QString syncFileName();
44 static QString resourcePath(); 44 static QString resourcePath();
45 public slots: 45 public slots:
46 void setCaption ( const QString & ); 46 void setCaption ( const QString & );
47 void updateWeekNum(const KCal::DateList &); 47 void updateWeekNum(const KCal::DateList &);
48 void updateWeek(QDate); 48 void updateWeek(QDate);
49 void updateFilterToolbar(); 49 void updateFilterToolbar();
50 virtual void showMaximized (); 50 virtual void showMaximized ();
51 void configureAgenda( int ); 51 void configureAgenda( int );
52 void recieve( const QCString& msg, const QByteArray& data ); 52 void recieve( const QCString& msg, const QByteArray& data );
53 protected slots: 53 protected slots:
54 void setCaptionToDates(); 54 void setCaptionToDates();
55 void weekAction(); 55 void weekAction();
56 void about(); 56 void about();
57 void licence(); 57 void licence();
58 void faq(); 58 void faq();
59 void usertrans(); 59 void usertrans();
60 void features(); 60 void features();
61 void synchowto(); 61 void synchowto();
62 void storagehowto(); 62 void storagehowto();
63 void timetrackinghowto(); 63 void timetrackinghowto();
64 void kdesynchowto(); 64 void kdesynchowto();
65 void multisynchowto(); 65 void multisynchowto();
66 void whatsNew(); 66 void whatsNew();
67 void keyBindings(); 67 void keyBindings();
68 void aboutAutoSaving();; 68 void aboutAutoSaving();;
69 void aboutKnownBugs(); 69 void aboutKnownBugs();
70 70
71 void processIncidenceSelection( Incidence * ); 71 void processIncidenceSelection( Incidence * );
72 72
73 void importQtopia(); 73 void importQtopia();
74 void importBday(); 74 void importBday();
75 void importOL(); 75 void importOL();
76 void importIcal(); 76 void importIcal();
77 void importFile( QString, bool ); 77 void importFile( QString, bool );
78 void quickImportIcal(); 78 void quickImportIcal();
79 79
80 void slotModifiedChanged( bool ); 80 void slotModifiedChanged( bool );
81 81
82 void save(); 82 void save();
83 void saveStopTimer(); 83 void saveStopTimer();
84 void configureToolBar( int ); 84 void configureToolBar( int );
85 void printSel(); 85 void printSel();
86 void printCal(); 86 void printCal();
87 void saveCalendar(); 87 void saveCalendar();
88 void loadCalendar(); 88 void loadCalendar();
89 void exportVCalendar(); 89 void exportVCalendar();
90 void fillFilterMenu(); 90 void fillFilterMenu();
91 void fillFilterMenuTB(); 91 void fillFilterMenuTB();
92 void selectFilter( int ); 92 void selectFilter( int );
93 void fillFilterMenuPopup(); 93 void fillFilterMenuPopup();
94 void selectFilterPopup( int ); 94 void selectFilterPopup( int );
95 void exportToPhone( int ); 95 void exportToPhone( int );
96 void toggleBeamReceive(); 96 void toggleBeamReceive();
97 void disableBR(bool); 97 void disableBR(bool);
98 signals: 98 signals:
99 void selectWeek ( int ); 99 void selectWeek ( int );
100 private slots: 100 private slots:
101 void showConfigureAgenda(); 101 void showConfigureAgenda();
102 void getFile( bool ); 102 void getFile( bool );
103 void syncFileRequest(); 103 void syncFileRequest();
104 104
105 protected: 105 protected:
106 void hideEvent ( QHideEvent * ); 106 void hideEvent ( QHideEvent * );
107 QString sentSyncFile(); 107 QString sentSyncFile();
108 void displayText( QString, QString); 108 void displayText( QString, QString);
109 void enableIncidenceActions( bool ); 109 void enableIncidenceActions( bool );
110 110
111 private: 111 private:
112 bool mBRdisabled; 112 bool mBRdisabled;
113#ifndef DESKTOP_VERSION 113#ifndef DESKTOP_VERSION
114 QCopChannel* infrared; 114 QCopChannel* infrared;
115#endif 115#endif
116 QAction* brAction; 116 QAction* brAction;
117 KSyncManager* mSyncManager; 117 KSyncManager* mSyncManager;
118 bool mClosed; 118 bool mClosed;
119 void saveOnClose(); 119 void saveOnClose();
120 bool mFlagKeyPressed; 120 bool mFlagKeyPressed;
121 bool mBlockAtStartup; 121 bool mBlockAtStartup;
122 QPEToolBar *iconToolBar; 122 QPEToolBar *iconToolBar;
123 QPEToolBar *viewToolBar; 123 QPEToolBar *viewToolBar;
124 QPEToolBar *navigatorToolBar; 124 QPEToolBar *navigatorToolBar;
125 QPEToolBar *filterToolBar; 125 QPEToolBar *filterToolBar;
126 QPEMenuBar *filterMenubar; 126 QMenuBar *filterMenubar;
127 QPopupMenu * filterPopupMenu; 127 QPopupMenu * filterPopupMenu;
128 void initActions(); 128 void initActions();
129 void setDefaultPreferences(); 129 void setDefaultPreferences();
130 void resizeEvent( QResizeEvent* e); 130 void resizeEvent( QResizeEvent* e);
131 void keyPressEvent ( QKeyEvent * ) ; 131 void keyPressEvent ( QKeyEvent * ) ;
132 void keyReleaseEvent ( QKeyEvent * ) ; 132 void keyReleaseEvent ( QKeyEvent * ) ;
133 QPopupMenu *configureToolBarMenu; 133 QPopupMenu *configureToolBarMenu;
134 QPopupMenu *selectFilterMenu; 134 QPopupMenu *selectFilterMenu;
135 QPopupMenu *selectFilterMenuTB; 135 QPopupMenu *selectFilterMenuTB;
136 QPopupMenu *configureAgendaMenu, *syncMenu; 136 QPopupMenu *configureAgendaMenu, *syncMenu;
137 CalendarLocal *mCalendar; 137 CalendarLocal *mCalendar;
138 CalendarView *mView; 138 CalendarView *mView;
139 QAction *mNewSubTodoAction; 139 QAction *mNewSubTodoAction;
140 QAction *mWeekAction; 140 QAction *mWeekAction;
141 QFont mWeekFont; 141 QFont mWeekFont;
142 QPixmap mWeekPixmap; 142 QPixmap mWeekPixmap;
143 QColor mWeekBgColor; 143 QColor mWeekBgColor;
144 144
145 QAction *mShowAction; 145 QAction *mShowAction;
146 QAction *mEditAction; 146 QAction *mEditAction;
147 QAction *mDeleteAction; 147 QAction *mDeleteAction;
148 QAction *mCloneAction; 148 QAction *mCloneAction;
149 QAction *mMoveAction; 149 QAction *mMoveAction;
150 QAction *mBeamAction; 150 QAction *mBeamAction;
151 QAction *mCancelAction; 151 QAction *mCancelAction;
152 152
153 QAction *mToggleNav; 153 QAction *mToggleNav;
154 QAction *mToggleFilter; 154 QAction *mToggleFilter;
155 QAction *mToggleAllday; 155 QAction *mToggleAllday;
156 QAction *actionFilterMenuTB; 156 QAction *actionFilterMenuTB;
157 157
158 void closeEvent( QCloseEvent* ce ); 158 void closeEvent( QCloseEvent* ce );
159 QTimer mSaveTimer; 159 QTimer mSaveTimer;
160 //bool mBlockSaveFlag; 160 //bool mBlockSaveFlag;
161 bool mCalendarModifiedFlag; 161 bool mCalendarModifiedFlag;
162 QPixmap loadPixmap( QString ); 162 QPixmap loadPixmap( QString );
163}; 163};
164 164
165 165
166#endif 166#endif