summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-06-27 17:25:27 (UTC)
committer zautrix <zautrix>2005-06-27 17:25:27 (UTC)
commit2a6c47afc7688923f427f4a38e3353e3503ab09a (patch) (unidiff)
treef314e7062e60f8e0302714bcc6149f2e83c96e30
parent58ad1402f6415de889e7a0dc98be29e9ae56d86c (diff)
downloadkdepimpi-2a6c47afc7688923f427f4a38e3353e3503ab09a.zip
kdepimpi-2a6c47afc7688923f427f4a38e3353e3503ab09a.tar.gz
kdepimpi-2a6c47afc7688923f427f4a38e3353e3503ab09a.tar.bz2
monthview enh
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/komonthview.cpp120
-rw-r--r--korganizer/komonthview.h13
2 files changed, 124 insertions, 9 deletions
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp
index cba85fa..9b0389d 100644
--- a/korganizer/komonthview.cpp
+++ b/korganizer/komonthview.cpp
@@ -49,369 +49,396 @@
49#include "koprefs.h" 49#include "koprefs.h"
50#ifndef KORG_NOPLUGINS 50#ifndef KORG_NOPLUGINS
51#include "kocore.h" 51#include "kocore.h"
52#endif 52#endif
53#include "koglobals.h" 53#include "koglobals.h"
54#include <libkcal/kincidenceformatter.h> 54#include <libkcal/kincidenceformatter.h>
55 55
56#include "komonthview.h" 56#include "komonthview.h"
57 57
58#define PIXMAP_SIZE 5 58#define PIXMAP_SIZE 5
59#ifdef DESKTOP_VERSION 59#ifdef DESKTOP_VERSION
60QToolTipGroup *MonthViewCell::mToolTipGroup = 0; 60QToolTipGroup *MonthViewCell::mToolTipGroup = 0;
61#endif 61#endif
62class KNOWhatsThis :public QWhatsThis 62class KNOWhatsThis :public QWhatsThis
63{ 63{
64public: 64public:
65 KNOWhatsThis( KNoScrollListBox* sbox ) : QWhatsThis( sbox ), _wid( sbox) { }; 65 KNOWhatsThis( KNoScrollListBox* sbox ) : QWhatsThis( sbox ), _wid( sbox) { };
66 //~KNOWhatsThis( ) {qDebug("~KNOWhatsThis( ) "); }; 66 //~KNOWhatsThis( ) {qDebug("~KNOWhatsThis( ) "); };
67 67
68protected: 68protected:
69 virtual QString text( const QPoint& p) 69 virtual QString text( const QPoint& p)
70 { 70 {
71 return _wid->getWhatsThisText(p) ; 71 return _wid->getWhatsThisText(p) ;
72 }; 72 };
73private: 73private:
74 KNoScrollListBox* _wid; 74 KNoScrollListBox* _wid;
75 75
76}; 76};
77 77
78 78
79KNoScrollListBox::KNoScrollListBox(QWidget *parent,const char *name) 79KNoScrollListBox::KNoScrollListBox(QWidget *parent,const char *name)
80 : QListBox(parent, name, WRepaintNoErase) 80 : QListBox(parent, name, WRepaintNoErase)
81{ 81{
82#ifndef DESKTOP_VERSION 82#ifndef DESKTOP_VERSION
83 QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold ); 83 QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold );
84#endif 84#endif
85 mWT = new KNOWhatsThis(this); 85 mWT = new KNOWhatsThis(this);
86 resetOnFocusIn = true; 86 resetOnFocusIn = true;
87 setVScrollBarMode(QScrollView::AlwaysOff); 87 setVScrollBarMode(QScrollView::AlwaysOff);
88 setHScrollBarMode(QScrollView::AlwaysOff); 88 setHScrollBarMode(QScrollView::AlwaysOff);
89} 89}
90KNoScrollListBox::~KNoScrollListBox() 90KNoScrollListBox::~KNoScrollListBox()
91{ 91{
92#if QT_VERSION >= 0x030000 92#if QT_VERSION >= 0x030000
93 93
94#else 94#else
95 delete mWT; 95 delete mWT;
96#endif 96#endif
97} 97}
98 98
99 99
100void KNoScrollListBox::focusInEvent ( QFocusEvent * e ) 100void KNoScrollListBox::focusInEvent ( QFocusEvent * e )
101{ 101{
102 QListBox::focusInEvent ( e ); 102 QListBox::focusInEvent ( e );
103 if ( count() ){ 103 if ( count() ){
104 int ci = currentItem(); 104 int ci = currentItem();
105 if ( ci < 0 ) ci = 0; 105 if ( ci < 0 ) ci = 0;
106 106
107 setCurrentItem( ci ); 107 setCurrentItem( ci );
108 setSelected ( ci, true ); 108 setSelected ( ci, true );
109 emit highlighted( item ( ci ) ); 109 emit highlighted( item ( ci ) );
110 110
111 resetOnFocusIn = true; 111 resetOnFocusIn = true;
112 112
113 if ( KOPrefs::instance()->mEnableMonthScroll || KOPrefs::instance()->mMonthViewWeek ) { 113 if ( KOPrefs::instance()->mEnableMonthScroll || KOPrefs::instance()->mMonthViewWeek ) {
114 QListBoxItem *fi = firstItem (); 114 QListBoxItem *fi = firstItem ();
115 if (fi ) { 115 if (fi ) {
116 int ihei = fi->height( this ); 116 int ihei = fi->height( this );
117 int hei = numRows () * ihei; 117 int hei = numRows () * ihei;
118 if ( hei < height() - horizontalScrollBar()->height () ) { 118 if ( hei < height() - horizontalScrollBar()->height () ) {
119 setVScrollBarMode(QScrollView::AlwaysOff); 119 setVScrollBarMode(QScrollView::AlwaysOff);
120 } 120 }
121 else 121 else
122 setVScrollBarMode(QScrollView::Auto); 122 setVScrollBarMode(QScrollView::Auto);
123 if ( ihei *3 > height() ) { 123 if ( ihei *3 > height() ) {
124 setHScrollBarMode(QScrollView::AlwaysOff); 124 setHScrollBarMode(QScrollView::AlwaysOff);
125 } 125 }
126 else { 126 else {
127 setHScrollBarMode(QScrollView::Auto); 127 setHScrollBarMode(QScrollView::Auto);
128 } 128 }
129 } else { 129 } else {
130 setVScrollBarMode(QScrollView::Auto); 130 setVScrollBarMode(QScrollView::Auto);
131 setHScrollBarMode(QScrollView::Auto); 131 setHScrollBarMode(QScrollView::Auto);
132 } 132 }
133 } 133 }
134 } 134 }
135} 135}
136void KNoScrollListBox::focusOutEvent ( QFocusEvent * e ) 136void KNoScrollListBox::focusOutEvent ( QFocusEvent * e )
137{ 137{
138 int i = currentItem (); 138 int i = currentItem ();
139 if ( i >= 0 ) { 139 if ( i >= 0 ) {
140 setSelected ( i, false ); 140 setSelected ( i, false );
141 } 141 }
142 QListBox::focusOutEvent ( e ); 142 QListBox::focusOutEvent ( e );
143 setVScrollBarMode(QScrollView::AlwaysOff); 143 setVScrollBarMode(QScrollView::AlwaysOff);
144 setHScrollBarMode(QScrollView::AlwaysOff); 144 setHScrollBarMode(QScrollView::AlwaysOff);
145 emit highligtIncidence( 0, (MonthViewCell*)this, 0 );
145} 146}
146 147
147QString KNoScrollListBox::getWhatsThisText(QPoint p) 148QString KNoScrollListBox::getWhatsThisText(QPoint p)
148{ 149{
149 QListBoxItem* item = itemAt ( p ); 150 QListBoxItem* item = itemAt ( p );
150 if ( ! item ) { 151 if ( ! item ) {
151 return i18n("Click in the cell\nto add an event!"); 152 return i18n("Click in the cell\nto add an event!");
152 } 153 }
153 return KIncidenceFormatter::instance()->getFormattedText(((MonthViewItem*) item)->incidence(), 154 return KIncidenceFormatter::instance()->getFormattedText(((MonthViewItem*) item)->incidence(),
154 KOPrefs::instance()->mWTshowDetails, 155 KOPrefs::instance()->mWTshowDetails,
155 KOPrefs::instance()->mWTshowCreated, 156 KOPrefs::instance()->mWTshowCreated,
156 KOPrefs::instance()->mWTshowChanged); 157 KOPrefs::instance()->mWTshowChanged);
157} 158}
158void KNoScrollListBox::keyPressEvent(QKeyEvent *e) 159void KNoScrollListBox::keyPressEvent(QKeyEvent *e)
159{ 160{
160 //qDebug("KNoScrollListBox::keyPressEvent "); 161 //qDebug("KNoScrollListBox::keyPressEvent ");
161 switch(e->key()) { 162 switch(e->key()) {
162 case Key_Right: 163 case Key_Right:
163 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 164 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
164 { 165 {
165 e->ignore(); 166 e->ignore();
166 return; 167 return;
167 } 168 }
168 scrollBy(10,0); 169 scrollBy(10,0);
169 break; 170 break;
170 case Key_Left: 171 case Key_Left:
171 if (e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 172 if (e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
172 { 173 {
173 e->ignore(); 174 e->ignore();
174 return; 175 return;
175 } 176 }
176 scrollBy(-10,0); 177 scrollBy(-10,0);
177 break; 178 break;
178 case Key_Up: 179 case Key_Up:
179 if( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton) { 180 if( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton) {
180 e->ignore(); 181 e->ignore();
181 break; 182 break;
182 } 183 }
183 if ( count() ) { 184 if ( count() ) {
184 if ( currentItem() == 0 ) { 185 if ( currentItem() == 0 ) {
185 emit prevCell(); 186 emit prevCell();
186 } else { 187 } else {
187 setCurrentItem((currentItem()+count()-1)%count()); 188 setCurrentItem((currentItem()+count()-1)%count());
188 if(!itemVisible(currentItem())) { 189 if(!itemVisible(currentItem())) {
189 if((unsigned int) currentItem() == (count()-1)) { 190 if((unsigned int) currentItem() == (count()-1)) {
190 setTopItem(currentItem()-numItemsVisible()+1); 191 setTopItem(currentItem()-numItemsVisible()+1);
191 } else { 192 } else {
192 setTopItem(topItem()-1); 193 setTopItem(topItem()-1);
193 } 194 }
194 } 195 }
195 } 196 }
196 } 197 }
197 break; 198 break;
198 case Key_Down: 199 case Key_Down:
199 if(e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton) { 200 if(e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton) {
200 e->ignore(); 201 e->ignore();
201 break; 202 break;
202 } 203 }
203 if ( count () ) { 204 if ( count () ) {
204 if ( currentItem()+1 == count () ) { 205 if ( currentItem()+1 == count () ) {
205 emit nextCell(); 206 emit nextCell();
206 } else { 207 } else {
207 setCurrentItem((currentItem()+1)%count()); 208 setCurrentItem((currentItem()+1)%count());
208 if(!itemVisible(currentItem())) { 209 if(!itemVisible(currentItem())) {
209 if(currentItem() == 0) { 210 if(currentItem() == 0) {
210 setTopItem(0); 211 setTopItem(0);
211 } else { 212 } else {
212 setTopItem(topItem()+1); 213 setTopItem(topItem()+1);
213 } 214 }
214 } 215 }
215 } 216 }
216 } 217 }
217 break; 218 break;
218 case Key_I: 219 case Key_I:
219 QTimer::singleShot( 1, this, SLOT ( oneDown() ) ); 220 QTimer::singleShot( 1, this, SLOT ( oneDown() ) );
220 e->ignore(); 221 e->ignore();
221 break; 222 break;
222 case Key_Return: 223 case Key_Return:
223 case Key_Enter: 224 case Key_Enter:
224 { 225 {
225 if ( currentItem() >= 0 ) { 226 if ( currentItem() >= 0 ) {
226 emit doubleClicked( item( currentItem() ) ); 227 emit doubleClicked( item( currentItem() ) );
227 e->accept(); 228 e->accept();
228 } else { 229 } else {
229 e->ignore(); 230 e->ignore();
230 } 231 }
231 } 232 }
232 break; 233 break;
233 case Key_Shift: 234 case Key_Shift:
234 emit shiftDown(); 235 emit shiftDown();
235 break; 236 break;
236 default: 237 default:
237 e->ignore(); 238 e->ignore();
238 break; 239 break;
239 } 240 }
240} 241}
241 242
242void KNoScrollListBox::oneDown() 243void KNoScrollListBox::oneDown()
243{ 244{
244 if ( count () ) { 245 if ( count () ) {
245 if ( currentItem()+1 == count () ) { 246 if ( currentItem()+1 == count () ) {
246 emit nextCell(); 247 emit nextCell();
247 } else { 248 } else {
248 resetOnFocusIn = false; 249 resetOnFocusIn = false;
249 setCurrentItem((currentItem()+1)%count()); 250 setCurrentItem((currentItem()+1)%count());
250 if(!itemVisible(currentItem())) { 251 if(!itemVisible(currentItem())) {
251 if(currentItem() == 0) { 252 if(currentItem() == 0) {
252 setTopItem(0); 253 setTopItem(0);
253 } else { 254 } else {
254 setTopItem(topItem()+1); 255 setTopItem(topItem()+1);
255 } 256 }
256 } 257 }
257 } 258 }
258 } 259 }
259} 260}
260void KNoScrollListBox::keyReleaseEvent(QKeyEvent *e) 261void KNoScrollListBox::keyReleaseEvent(QKeyEvent *e)
261{ 262{
262 switch(e->key()) { 263 switch(e->key()) {
263 case Key_Shift: 264 case Key_Shift:
264 emit shiftUp(); 265 emit shiftUp();
265 break; 266 break;
266 default: 267 default:
267 break; 268 break;
268 } 269 }
269} 270}
270 271
271void KNoScrollListBox::mousePressEvent(QMouseEvent *e) 272void KNoScrollListBox::mousePressEvent(QMouseEvent *e)
272{ 273{
273 QListBox::mousePressEvent(e); 274 QListBox::mousePressEvent(e);
274 275
275 if(e->button() == RightButton) { 276 if(e->button() == RightButton) {
276 emit rightClick(); 277 emit rightClick();
277 } 278 }
278} 279}
279 280
280MonthViewItem::MonthViewItem( Incidence *incidence, QDate qd, const QString & s) 281MonthViewItem::MonthViewItem( Incidence *incidence, QDate qd, const QString & s)
281 : QListBoxItem() 282 : QListBoxItem()
282{ 283{
284 mDisplayHightlighted = false;
283 mblockRepaint = true; 285 mblockRepaint = true;
284 setText( s ); 286 setText( s );
285 mMultiday = 0; 287 mMultiday = 0;
286 mIncidence = incidence; 288 mIncidence = incidence;
287 mDate = qd; 289 mDate = qd;
288 mRecur = false; 290 mRecur = false;
289 mAlarm = false; 291 mAlarm = false;
290 mReply = false; 292 mReply = false;
291 mInfo = false; 293 mInfo = false;
292 mdayPos = 0; 294 mdayPos = 0;
293 isWeekItem = KOPrefs::instance()->mMonthViewWeek; 295 isWeekItem = KOPrefs::instance()->mMonthViewWeek;
294} 296}
295void MonthViewItem::recycle( Incidence *incidence, QDate qd, const QString & s) 297void MonthViewItem::recycle( Incidence *incidence, QDate qd, const QString & s)
296{ 298{
299 mDisplayHightlighted = false;
297 setText( s ); 300 setText( s );
298 mMultiday = 0; 301 mMultiday = 0;
299 mIncidence = incidence; 302 mIncidence = incidence;
300 mDate = qd; 303 mDate = qd;
301 mRecur = false; 304 mRecur = false;
302 mAlarm = false; 305 mAlarm = false;
303 mReply = false; 306 mReply = false;
304 mInfo = false; 307 mInfo = false;
305 mdayPos = 0; 308 mdayPos = 0;
306} 309}
310bool MonthViewItem::setHighlightedFalse()
311{
312 if ( !mDisplayHightlighted )
313 return false;
314 mDisplayHightlighted = false;
315 return true;
316}
307 317
318bool MonthViewItem::setHighlighted( Incidence * inc )
319{
320 if ( inc == mIncidence ) {
321 if ( mDisplayHightlighted )
322 return false;
323 mDisplayHightlighted = true;
324 return true;
325 } else {
326 if ( !mDisplayHightlighted )
327 return false;
328 mDisplayHightlighted = false;
329 return true;
330 }
331 return false;
332}
308void MonthViewItem::paint(QPainter *p) 333void MonthViewItem::paint(QPainter *p)
309{ 334{
310 if ( mblockRepaint ) { 335 if ( mblockRepaint ) {
311 return; 336 return;
312 } 337 }
313#if QT_VERSION >= 0x030000 338#if QT_VERSION >= 0x030000
314 bool sel = isSelected(); 339 bool sel = isSelected();
315#else 340#else
316 bool sel = selected(); 341 bool sel = selected();
317#endif 342#endif
318 int heihei = height( listBox () ); 343 int heihei = height( listBox () );
319 int x = 1; 344 int x = 1;
320 if (KOPrefs::instance()->mMonthViewUsesCategoryColor) 345 if (KOPrefs::instance()->mMonthViewUsesCategoryColor || mDisplayHightlighted )
321 { 346 {
347 if ( mDisplayHightlighted )
348 sel = true;
322 p->setBackgroundColor( palette().color( QPalette::Normal, \ 349 p->setBackgroundColor( palette().color( QPalette::Normal, \
323 sel ? QColorGroup::Highlight : QColorGroup::Background ) ); 350 sel ? QColorGroup::Highlight : QColorGroup::Background ) );
324 p->eraseRect( 0, 0, listBox()->maxItemWidth(), heihei ); 351 p->eraseRect( 0, 0, listBox()->maxItemWidth(), heihei );
325 } 352 }
326 353
327 //int y = 3;//(height() - mRecurPixmap.height()) /2; 354 //int y = 3;//(height() - mRecurPixmap.height()) /2;
328 int size = PIXMAP_SIZE; 355 int size = PIXMAP_SIZE;
329 if ( QApplication::desktop()->width() < 300 ) 356 if ( QApplication::desktop()->width() < 300 )
330 size = 3; 357 size = 3;
331 int y = (heihei - size -1 ) /2; 358 int y = (heihei - size -1 ) /2;
332 359
333 if ( mIncidence->calID() > 1 ) { 360 if ( mIncidence->calID() > 1 ) {
334 p->fillRect ( x, y-2,size,size+4, KOPrefs::instance()->defaultColor( mIncidence->calID() ) ); 361 p->fillRect ( x, y-2,size,size+4, KOPrefs::instance()->defaultColor( mIncidence->calID() ) );
335 p->drawRect ( x, y-2,size,size+4); 362 p->drawRect ( x, y-2,size,size+4);
336 x += size + 1; 363 x += size + 1;
337 } 364 }
338 if ( KOPrefs::instance()->mMonthShowIcons ) { 365 if ( KOPrefs::instance()->mMonthShowIcons ) {
339 if ( mInfo ) { 366 if ( mInfo ) {
340 p->fillRect ( x, y,size,size, Qt::darkGreen ); 367 p->fillRect ( x, y,size,size, Qt::darkGreen );
341 x += size + 1; 368 x += size + 1;
342 } 369 }
343 if ( mRecur ) { 370 if ( mRecur ) {
344 p->fillRect ( x, y,size,size, Qt::blue ); 371 p->fillRect ( x, y,size,size, Qt::blue );
345 x += size + 1; 372 x += size + 1;
346 } 373 }
347 if ( mAlarm ) { 374 if ( mAlarm ) {
348 p->fillRect ( x, y,size,size, Qt::red ); 375 p->fillRect ( x, y,size,size, Qt::red );
349 x += size + 1; 376 x += size + 1;
350 } 377 }
351 if ( mReply ) { 378 if ( mReply ) {
352 p->fillRect ( x, y,size,size, Qt::yellow ); 379 p->fillRect ( x, y,size,size, Qt::yellow );
353 x += size + 1; 380 x += size + 1;
354 } 381 }
355 } 382 }
356 if ( mMultiday ) { 383 if ( mMultiday ) {
357 int yyy = y+(size/2); 384 int yyy = y+(size/2);
358 int sizeM = size+2; 385 int sizeM = size+2;
359 p->setBrush( QBrush::SolidPattern ); 386 p->setBrush( QBrush::SolidPattern );
360 p->drawLine ( x+1, yyy, x +sizeM +sizeM/2-1, yyy ) ; 387 p->drawLine ( x+1, yyy, x +sizeM +sizeM/2-1, yyy ) ;
361 if ( mMultiday == 2 || mMultiday == 3 ) { 388 if ( mMultiday == 2 || mMultiday == 3 ) {
362 QPointArray pa ( 3 ); 389 QPointArray pa ( 3 );
363 pa.setPoint (0, x, yyy ); 390 pa.setPoint (0, x, yyy );
364 pa.setPoint (1, x+sizeM/2, yyy+sizeM/2 ); 391 pa.setPoint (1, x+sizeM/2, yyy+sizeM/2 );
365 pa.setPoint (2, x+sizeM/2, yyy-sizeM/2 ); 392 pa.setPoint (2, x+sizeM/2, yyy-sizeM/2 );
366 p->drawPolygon( pa ); 393 p->drawPolygon( pa );
367 } 394 }
368 if ( mMultiday == 2 || mMultiday == 1 ) { 395 if ( mMultiday == 2 || mMultiday == 1 ) {
369 QPointArray pa ( 3 ); 396 QPointArray pa ( 3 );
370 pa.setPoint (0, x+sizeM +sizeM/2, yyy ); 397 pa.setPoint (0, x+sizeM +sizeM/2, yyy );
371 pa.setPoint (1, x+sizeM, yyy+sizeM/2 ); 398 pa.setPoint (1, x+sizeM, yyy+sizeM/2 );
372 pa.setPoint (2, x+sizeM, yyy-sizeM/2 ); 399 pa.setPoint (2, x+sizeM, yyy-sizeM/2 );
373 p->drawPolygon( pa ); 400 p->drawPolygon( pa );
374 } 401 }
375 if ( mMultiday == 1 ) { 402 if ( mMultiday == 1 ) {
376 // p->fillRect ( x, yyy-sizeM/2+1, sizeM/2, size, QBrush ( QBrush::SolidPattern ) ); 403 // p->fillRect ( x, yyy-sizeM/2+1, sizeM/2, size, QBrush ( QBrush::SolidPattern ) );
377 p->drawLine ( x+1, yyy-sizeM/2, x+1, yyy+sizeM/2 ); 404 p->drawLine ( x+1, yyy-sizeM/2, x+1, yyy+sizeM/2 );
378 } 405 }
379 if ( mMultiday == 3 ) { 406 if ( mMultiday == 3 ) {
380 // p->fillRect ( x+sizeM, yyy-sizeM/2+1, sizeM/2, size, QBrush ( QBrush::SolidPattern ) ); 407 // p->fillRect ( x+sizeM, yyy-sizeM/2+1, sizeM/2, size, QBrush ( QBrush::SolidPattern ) );
381 p->drawLine ( x+sizeM +sizeM/2-1, yyy-sizeM/2, x+sizeM +sizeM/2-1, yyy+sizeM/2 ); 408 p->drawLine ( x+sizeM +sizeM/2-1, yyy-sizeM/2, x+sizeM +sizeM/2-1, yyy+sizeM/2 );
382 409
383 } 410 }
384 x += sizeM/2 + 1; 411 x += sizeM/2 + 1;
385 x += sizeM + 1; 412 x += sizeM + 1;
386 } 413 }
387 414
388 if ( mIncidence->typeID() == todoID ){ 415 if ( mIncidence->typeID() == todoID ){
389 Todo* td = ( Todo* ) mIncidence; 416 Todo* td = ( Todo* ) mIncidence;
390 if ( td->isCompleted() ) { 417 if ( td->isCompleted() ) {
391 int half = size/2; 418 int half = size/2;
392 p->drawLine ( x, heihei/2, x +half , heihei/2 +half ) ; 419 p->drawLine ( x, heihei/2, x +half , heihei/2 +half ) ;
393 p->drawLine ( x +half , heihei/2 +half , x +half+half +2 , heihei/2 -2 ) ; 420 p->drawLine ( x +half , heihei/2 +half , x +half+half +2 , heihei/2 -2 ) ;
394 x += half+half + 4; 421 x += half+half + 4;
395 422
396 } else { 423 } else {
397 int val = td->percentComplete()/20; 424 int val = td->percentComplete()/20;
398 p->fillRect ( x+1, y-2, val ,size+4,Qt::black ); 425 p->fillRect ( x+1, y-2, val ,size+4,Qt::black );
399 p->drawRect ( x, y-2,7,size+4); 426 p->drawRect ( x, y-2,7,size+4);
400 x += size + 3; 427 x += size + 3;
401 } 428 }
402 } 429 }
403 QFontMetrics fm = p->fontMetrics(); 430 QFontMetrics fm = p->fontMetrics();
404 int yPos; 431 int yPos;
405 int pmheight = size; 432 int pmheight = size;
406 if( pmheight < fm.height() ) 433 if( pmheight < fm.height() )
407 yPos = fm.ascent() + fm.leading()/2; 434 yPos = fm.ascent() + fm.leading()/2;
408 else 435 else
409 yPos = pmheight/2 - fm.height()/2 + fm.ascent(); 436 yPos = pmheight/2 - fm.height()/2 + fm.ascent();
410 p->setPen( palette().color( QPalette::Normal, sel ? \ 437 p->setPen( palette().color( QPalette::Normal, sel ? \
411 QColorGroup::HighlightedText : QColorGroup::Foreground ) ); 438 QColorGroup::HighlightedText : QColorGroup::Foreground ) );
412 if ( KOPrefs::instance()->mMonthShowTimes || isWeekItem) { 439 if ( KOPrefs::instance()->mMonthShowTimes || isWeekItem) {
413 p->drawText( x, yPos, text() ); 440 p->drawText( x, yPos, text() );
414 if ( mIncidence->cancelled() ) { 441 if ( mIncidence->cancelled() ) {
415 int wid = fm.width( text() ); 442 int wid = fm.width( text() );
416 p->drawLine( x, heihei/2 ,x+wid, heihei/2 ); 443 p->drawLine( x, heihei/2 ,x+wid, heihei/2 );
417 } 444 }
@@ -507,192 +534,193 @@ MonthViewCell::MonthViewCell( KOMonthView *parent,QWidget* par )
507 SLOT( selection( QListBoxItem * ) ) ); 534 SLOT( selection( QListBoxItem * ) ) );
508 */ 535 */
509} 536}
510#ifdef DESKTOP_VERSION 537#ifdef DESKTOP_VERSION
511QToolTipGroup *MonthViewCell::toolTipGroup() 538QToolTipGroup *MonthViewCell::toolTipGroup()
512{ 539{
513 if (!mToolTipGroup) mToolTipGroup = new QToolTipGroup(0); 540 if (!mToolTipGroup) mToolTipGroup = new QToolTipGroup(0);
514 return mToolTipGroup; 541 return mToolTipGroup;
515} 542}
516#endif 543#endif
517 544
518void MonthViewCell::setDate( const QDate &date ) 545void MonthViewCell::setDate( const QDate &date )
519{ 546{
520 // kdDebug() << "MonthViewCell::setDate(): " << date.toString() << endl; 547 // kdDebug() << "MonthViewCell::setDate(): " << date.toString() << endl;
521 mDate = date; 548 mDate = date;
522 549
523 550
524 551
525 //resizeEvent( 0 ); 552 //resizeEvent( 0 );
526} 553}
527 554
528QDate MonthViewCell::date() const 555QDate MonthViewCell::date() const
529{ 556{
530 return mDate; 557 return mDate;
531} 558}
532 559
533void MonthViewCell::setPrimary( bool primary ) 560void MonthViewCell::setPrimary( bool primary )
534{ 561{
535 mPrimary = primary; 562 mPrimary = primary;
536 //setMyPalette(); 563 //setMyPalette();
537} 564}
538void MonthViewCell::setMyPalette() 565void MonthViewCell::setMyPalette()
539{ 566{
540 567
541 if ( mHoliday) { 568 if ( mHoliday) {
542 if ( currentPalette == 1 ) return; 569 if ( currentPalette == 1 ) return;
543 mLabel->setPalette( QPalette ( mHolidayPalette.color( QPalette::Normal,QColorGroup::Base),mHolidayPalette.color(QPalette::Normal,QColorGroup::Base ) )); 570 mLabel->setPalette( QPalette ( mHolidayPalette.color( QPalette::Normal,QColorGroup::Base),mHolidayPalette.color(QPalette::Normal,QColorGroup::Base ) ));
544 setPalette( mHolidayPalette ); 571 setPalette( mHolidayPalette );
545 //mLabel->setPalette( mHolidayPalette ); 572 //mLabel->setPalette( mHolidayPalette );
546 currentPalette = 1; 573 currentPalette = 1;
547 574
548 } else { 575 } else {
549 if ( mPrimary ) { 576 if ( mPrimary ) {
550 if ( currentPalette == 2 ) return; 577 if ( currentPalette == 2 ) return;
551 mLabel->setPalette( QPalette ( mPrimaryPalette.color( QPalette::Normal,QColorGroup::Base),mPrimaryPalette.color(QPalette::Normal,QColorGroup::Base ) )); 578 mLabel->setPalette( QPalette ( mPrimaryPalette.color( QPalette::Normal,QColorGroup::Base),mPrimaryPalette.color(QPalette::Normal,QColorGroup::Base ) ));
552 //mLabel->setPalette( mPrimaryPalette ); 579 //mLabel->setPalette( mPrimaryPalette );
553 setPalette( mPrimaryPalette ); 580 setPalette( mPrimaryPalette );
554 currentPalette = 2; 581 currentPalette = 2;
555 582
556 } else { 583 } else {
557 if ( currentPalette == 3 ) return; 584 if ( currentPalette == 3 ) return;
558 setPalette( mNonPrimaryPalette ); 585 setPalette( mNonPrimaryPalette );
559 mLabel->setPalette( QPalette ( mNonPrimaryPalette.color( QPalette::Normal,QColorGroup::Base),mNonPrimaryPalette.color(QPalette::Normal,QColorGroup::Base ) )); 586 mLabel->setPalette( QPalette ( mNonPrimaryPalette.color( QPalette::Normal,QColorGroup::Base),mNonPrimaryPalette.color(QPalette::Normal,QColorGroup::Base ) ));
560 //mLabel->setPalette( mNonPrimaryPalette );; 587 //mLabel->setPalette( mNonPrimaryPalette );;
561 currentPalette = 3; 588 currentPalette = 3;
562 } 589 }
563 } 590 }
564 //QPalette pal = palette(); 591 //QPalette pal = palette();
565 592
566 //mLabel->setPalette( QPalette ( pal.color( QPalette::Normal,QColorGroup::Base),pal.color(QPalette::Normal,QColorGroup::Base ) )); 593 //mLabel->setPalette( QPalette ( pal.color( QPalette::Normal,QColorGroup::Base),pal.color(QPalette::Normal,QColorGroup::Base ) ));
567} 594}
568QPalette MonthViewCell::getPalette () 595QPalette MonthViewCell::getPalette ()
569{ 596{
570 if ( !KOPrefs::instance()->mMonthViewUsesDayColors ) 597 if ( !KOPrefs::instance()->mMonthViewUsesDayColors )
571 return mStandardPalette; 598 return mStandardPalette;
572 if ( mHoliday) { 599 if ( mHoliday) {
573 return mHolidayPalette ; 600 return mHolidayPalette ;
574 } else { 601 } else {
575 if ( mPrimary ) { 602 if ( mPrimary ) {
576 return mPrimaryPalette ; 603 return mPrimaryPalette ;
577 } 604 }
578 } 605 }
579 return mNonPrimaryPalette; 606 return mNonPrimaryPalette;
580} 607}
581bool MonthViewCell::isPrimary() const 608bool MonthViewCell::isPrimary() const
582{ 609{
583 return mPrimary; 610 return mPrimary;
584} 611}
585 612
586void MonthViewCell::setHoliday( bool holiday ) 613void MonthViewCell::setHoliday( bool holiday )
587{ 614{
588 mHoliday = holiday; 615 mHoliday = holiday;
589 //setMyPalette(); 616 //setMyPalette();
590} 617}
591 618
592void MonthViewCell::setHoliday( const QString &holiday ) 619void MonthViewCell::setHoliday( const QString &holiday )
593{ 620{
594 mHolidayString = holiday; 621 mHolidayString = holiday;
595 622
596 if ( !holiday.isEmpty() ) { 623 if ( !holiday.isEmpty() ) {
597 setHoliday( true ); 624 setHoliday( true );
598 } 625 }
599} 626}
600 627
601void MonthViewCell::startUpdateCell() 628void MonthViewCell::startUpdateCell()
602{ 629{
630
603 mdayCount = 0; 631 mdayCount = 0;
604 setFocusPolicy(NoFocus); 632 setFocusPolicy(NoFocus);
605 if ( !mMonthView->isUpdatePossible() ) 633 if ( !mMonthView->isUpdatePossible() )
606 return; 634 return;
607 MonthViewItem *mitem = (MonthViewItem*) firstItem (); 635 MonthViewItem *mitem = (MonthViewItem*) firstItem ();
608 while ( mitem ) { 636 while ( mitem ) {
609 mitem->setBlockRepaint( true ); 637 mitem->setBlockRepaint( true );
610 mitem = (MonthViewItem *)mitem->next(); 638 mitem = (MonthViewItem *)mitem->next();
611 } 639 }
612 if ( mAvailItemList.count() > 20 ) { 640 if ( mAvailItemList.count() > 20 ) {
613 mAvailItemList.setAutoDelete( true ); 641 mAvailItemList.setAutoDelete( true );
614 mAvailItemList.clear(); 642 mAvailItemList.clear();
615 mAvailItemList.setAutoDelete( false ); 643 mAvailItemList.setAutoDelete( false );
616 clear(); 644 clear();
617 } 645 }
618 646
619 setPrimary( mDate.month()%2 ); 647 setPrimary( mDate.month()%2 );
620 setHoliday( KOGlobals::self()->calendarSystem()->dayOfWeek(mDate) == KOGlobals::self()->calendarSystem()->weekDayOfPray() || ( mDate.dayOfWeek() == 6 ) && KOPrefs::instance()-> mExcludeSaturdays); 648 setHoliday( KOGlobals::self()->calendarSystem()->dayOfWeek(mDate) == KOGlobals::self()->calendarSystem()->weekDayOfPray() || ( mDate.dayOfWeek() == 6 ) && KOPrefs::instance()-> mExcludeSaturdays);
621 if ( mDate == QDate::currentDate() ) { 649 if ( mDate == QDate::currentDate() ) {
622 setLineWidth( 3 ); 650 setLineWidth( 3 );
623 } else { 651 } else {
624 setLineWidth( 1 ); 652 setLineWidth( 1 );
625 } 653 }
626 MonthViewItem* CurrentAvailItem = (MonthViewItem*) firstItem (); 654 MonthViewItem* CurrentAvailItem = (MonthViewItem*) firstItem ();
627 //clear(); 655 //clear();
628 while ( CurrentAvailItem ) { 656 while ( CurrentAvailItem ) {
629 MonthViewItem *item = CurrentAvailItem; 657 MonthViewItem *item = CurrentAvailItem;
630 CurrentAvailItem = (MonthViewItem *)item->next(); 658 CurrentAvailItem = (MonthViewItem *)item->next();
631 mAvailItemList.append( item ); 659 mAvailItemList.append( item );
632 takeItem ( item ); 660 takeItem ( item );
633 } 661 }
634 662
635#ifdef DESKTOP_VERSION 663#ifdef DESKTOP_VERSION
636 QToolTip::remove(this); 664 QToolTip::remove(this);
637#endif 665#endif
638 mToolTip.clear(); 666 mToolTip.clear();
639 //qApp->processEvents(); 667 //qApp->processEvents();
640#if 0 668#if 0
641 if ( !mHolidayString.isEmpty() ) { 669 if ( !mHolidayString.isEmpty() ) {
642 MonthViewItem *item = new MonthViewItem( 0, mDate, mHolidayString ); 670 MonthViewItem *item = new MonthViewItem( 0, mDate, mHolidayString );
643 item->setPalette( mHolidayPalette ); 671 item->setPalette( mHolidayPalette );
644 insertItem( item ); 672 insertItem( item );
645 mToolTip.append ( mHolidayString ); 673 mToolTip.append ( mHolidayString );
646 } 674 }
647#endif 675#endif
648} 676}
649 677
650int MonthViewCell::insertEvent(Event *event) 678int MonthViewCell::insertEvent(Event *event)
651{ 679{
652 bool useToolTips = true; 680 bool useToolTips = true;
653#ifndef DESKTOP_VERSION 681#ifndef DESKTOP_VERSION
654 useToolTips = false; 682 useToolTips = false;
655#endif 683#endif
656 QString mToolTipText; 684 QString mToolTipText;
657 setFocusPolicy(WheelFocus); 685 setFocusPolicy(WheelFocus);
658 if ( !(event->doesRecur() == Recurrence::rNone) ) { 686 if ( !(event->doesRecur() == Recurrence::rNone) ) {
659 if ( !KOPrefs::instance()->mMonthDailyRecur && event->doesRecur() == Recurrence::rDaily ) 687 if ( !KOPrefs::instance()->mMonthDailyRecur && event->doesRecur() == Recurrence::rDaily )
660 return mdayCount; 688 return mdayCount;
661 else 689 else
662 if ( !KOPrefs::instance()->mMonthWeeklyRecur && event->doesRecur() == Recurrence::rWeekly ) 690 if ( !KOPrefs::instance()->mMonthWeeklyRecur && event->doesRecur() == Recurrence::rWeekly )
663 return mdayCount; 691 return mdayCount;
664 } 692 }
665 693
666 if ( event->isHoliday()) { 694 if ( event->isHoliday()) {
667 setHoliday( true ); 695 setHoliday( true );
668 if ( mDate.dayOfWeek() == 7 ) 696 if ( mDate.dayOfWeek() == 7 )
669 setLineWidth( 3 ); 697 setLineWidth( 3 );
670 } 698 }
671 QString text; 699 QString text;
672 int multiday = 0;// 1 = start, 2 = midddle, 3 = end day 700 int multiday = 0;// 1 = start, 2 = midddle, 3 = end day
673 if (event->isMultiDay()) { 701 if (event->isMultiDay()) {
674 QString prefix = "<->";multiday = 2; 702 QString prefix = "<->";multiday = 2;
675 QString time; 703 QString time;
676 if ( event->doesRecur() ) { 704 if ( event->doesRecur() ) {
677 if ( event->recursOn( mDate) ) { 705 if ( event->recursOn( mDate) ) {
678 prefix ="->" ;multiday = 1; 706 prefix ="->" ;multiday = 1;
679 } 707 }
680 else { 708 else {
681 int days = event->dtStart().date().daysTo ( event->dtEnd().date() ); 709 int days = event->dtStart().date().daysTo ( event->dtEnd().date() );
682 if ( event->recursOn( mDate.addDays( -days)) ) { 710 if ( event->recursOn( mDate.addDays( -days)) ) {
683 prefix ="<-" ;multiday = 3; 711 prefix ="<-" ;multiday = 3;
684 } 712 }
685 } 713 }
686 714
687 } else { 715 } else {
688 if (mDate == event->dtStart().date()) { 716 if (mDate == event->dtStart().date()) {
689 prefix ="->" ;multiday = 1; 717 prefix ="->" ;multiday = 1;
690 } else if (mDate == event->dtEnd().date()) { 718 } else if (mDate == event->dtEnd().date()) {
691 prefix ="<-" ;multiday = 3; 719 prefix ="<-" ;multiday = 3;
692 } 720 }
693 } 721 }
694 if ( !event->doesFloat() ) { 722 if ( !event->doesFloat() ) {
695 if ( mDate == event->dtStart().date () ) 723 if ( mDate == event->dtStart().date () )
696 time = KGlobal::locale()->formatTime(event->dtStart().time())+" "; 724 time = KGlobal::locale()->formatTime(event->dtStart().time())+" ";
697 else if ( mDate == event->dtEnd().date () ) 725 else if ( mDate == event->dtEnd().date () )
698 time = KGlobal::locale()->formatTime(event->dtEnd().time())+" "; 726 time = KGlobal::locale()->formatTime(event->dtEnd().time())+" ";
@@ -990,397 +1018,479 @@ QDate MonthViewCell::selectedIncidenceDate()
990 return mitem->incidenceDate(); 1018 return mitem->incidenceDate();
991} 1019}
992 1020
993void MonthViewCell::deselect() 1021void MonthViewCell::deselect()
994{ 1022{
995 clearSelection(); 1023 clearSelection();
996 enableScrollBars( false ); 1024 enableScrollBars( false );
997 // updateCell(); 1025 // updateCell();
998} 1026}
999void MonthViewCell::select() 1027void MonthViewCell::select()
1000{ 1028{
1001 ;// updateCell(); 1029 ;// updateCell();
1002} 1030}
1003 1031
1004void MonthViewCell::resizeEvent ( QResizeEvent * e ) 1032void MonthViewCell::resizeEvent ( QResizeEvent * e )
1005{ 1033{
1006 if ( !mMonthView->isUpdatePossible() ) 1034 if ( !mMonthView->isUpdatePossible() )
1007 return; 1035 return;
1008 //qDebug("++++++++++++++MonthViewCell::resizeEvent %d %d ", width(), height()); 1036 //qDebug("++++++++++++++MonthViewCell::resizeEvent %d %d ", width(), height());
1009 deselect(); 1037 deselect();
1010 mLabel->setMaximumHeight( height() - lineWidth()*2 ); 1038 mLabel->setMaximumHeight( height() - lineWidth()*2 );
1011 1039
1012 QString text; 1040 QString text;
1013 mLabel->setText( text ); 1041 mLabel->setText( text );
1014 bool smallDisplay = QApplication::desktop()->width() < 320 && KOPrefs::instance()->mMonthViewSatSunTog; 1042 bool smallDisplay = QApplication::desktop()->width() < 320 && KOPrefs::instance()->mMonthViewSatSunTog;
1015 if ( KOPrefs::instance()->mMonthViewWeek || KOGlobals::self()->calendarSystem()->day( mDate ) == 1 || (mDate.dayOfWeek() == 7 && !smallDisplay ) || KOPrefs::instance()->mMonthShowShort) { 1043 if ( KOPrefs::instance()->mMonthViewWeek || KOGlobals::self()->calendarSystem()->day( mDate ) == 1 || (mDate.dayOfWeek() == 7 && !smallDisplay ) || KOPrefs::instance()->mMonthShowShort) {
1016 text = KOGlobals::self()->calendarSystem()->monthName( mDate, true ) + " "; 1044 text = KOGlobals::self()->calendarSystem()->monthName( mDate, true ) + " ";
1017 mLabel->resize( mLabelBigSize ); 1045 mLabel->resize( mLabelBigSize );
1018 text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) ); 1046 text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) );
1019 } else { 1047 } else {
1020 mLabel->resize( mLabelSize ); 1048 mLabel->resize( mLabelSize );
1021 text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) ); 1049 text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) );
1022 } 1050 }
1023 mLabel->setText( text ); 1051 mLabel->setText( text );
1024 1052
1025 int size = height() - mLabel->height() - lineWidth()-1; 1053 int size = height() - mLabel->height() - lineWidth()-1;
1026 //qDebug("LW %d ", lineWidth()); 1054 //qDebug("LW %d ", lineWidth());
1027 if ( size > 0 ) 1055 if ( size > 0 )
1028 verticalScrollBar()->setMaximumHeight( size ); 1056 verticalScrollBar()->setMaximumHeight( size );
1029 size = width() - mLabel->width() -lineWidth()-1; 1057 size = width() - mLabel->width() -lineWidth()-1;
1030 if ( size > 0 ) 1058 if ( size > 0 )
1031 horizontalScrollBar()->setMaximumWidth( size ); 1059 horizontalScrollBar()->setMaximumWidth( size );
1032 mLabel->move( width()-lineWidth() - mLabel->width(), height()-lineWidth() - mLabel->height() ); 1060 mLabel->move( width()-lineWidth() - mLabel->width(), height()-lineWidth() - mLabel->height() );
1033 //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2); 1061 //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2);
1034 // mItemList->resize ( width(), height () ); 1062 // mItemList->resize ( width(), height () );
1035 if ( e ) 1063 if ( e )
1036 KNoScrollListBox::resizeEvent ( e ); 1064 KNoScrollListBox::resizeEvent ( e );
1037} 1065}
1038 1066
1039void MonthViewCell::defaultAction( QListBoxItem *item ) 1067void MonthViewCell::defaultAction( QListBoxItem *item )
1040{ 1068{
1041 1069
1042 if ( !item ) { 1070 if ( !item ) {
1043 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) ); 1071 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) );
1044 emit newEventSignal( dt ); 1072 emit newEventSignal( dt );
1045 return; 1073 return;
1046 } 1074 }
1047 1075
1048 MonthViewItem *eventItem = static_cast<MonthViewItem *>( item ); 1076 MonthViewItem *eventItem = static_cast<MonthViewItem *>( item );
1049 Incidence *incidence = eventItem->incidence(); 1077 Incidence *incidence = eventItem->incidence();
1050 if ( incidence ) mMonthView->defaultAction( incidence ); 1078 if ( incidence ) mMonthView->defaultAction( incidence );
1051} 1079}
1052void MonthViewCell::showDay() 1080void MonthViewCell::showDay()
1053{ 1081{
1054 emit showDaySignal( date() ); 1082 emit showDaySignal( date() );
1055} 1083}
1056void MonthViewCell::newEvent() 1084void MonthViewCell::newEvent()
1057{ 1085{
1058 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) ); 1086 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) );
1059 emit newEventSignal( dt ); 1087 emit newEventSignal( dt );
1060} 1088}
1061void MonthViewCell::cellClicked( QListBoxItem *item ) 1089void MonthViewCell::cellClicked( QListBoxItem *item )
1062{ 1090{
1063 mMonthView->setSelectedCell( this ); 1091 mMonthView->setSelectedCell( this );
1064 if ( item == 0 ) { 1092 if ( item == 0 ) {
1065 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) ); 1093 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) );
1066 emit newEventSignal( dt ); 1094 emit newEventSignal( dt );
1067 return; 1095 return;
1068 } 1096 }
1069 1097
1070} 1098}
1071 1099
1072void MonthViewCell::contextMenu( QListBoxItem *item ) 1100void MonthViewCell::contextMenu( QListBoxItem *item )
1073{ 1101{
1074 mMonthView->setPopupCell( this ); 1102 mMonthView->setPopupCell( this );
1075 if ( !item ) { 1103 if ( !item ) {
1076 mMonthView->showContextMenu( 0 ); 1104 mMonthView->showContextMenu( 0 );
1077 return; 1105 return;
1078 } 1106 }
1079 MonthViewItem *eventItem = static_cast<MonthViewItem *>( item ); 1107 MonthViewItem *eventItem = static_cast<MonthViewItem *>( item );
1080 Incidence *incidence = eventItem->incidence(); 1108 Incidence *incidence = eventItem->incidence();
1081 if ( incidence ) mMonthView->showContextMenu( incidence ); 1109 if ( incidence ) mMonthView->showContextMenu( incidence );
1082} 1110}
1083 1111
1084void MonthViewCell::selection( QListBoxItem *item ) 1112void MonthViewCell::selection( QListBoxItem *item )
1085{ 1113{
1086 if ( !item ) return; 1114 if ( !item ) {
1087 1115 emit highligtIncidence( 0 , this, 0 );
1116 return;
1117 }
1118 MonthViewItem * it = (static_cast<MonthViewItem *>( item ));
1119 emit highligtIncidence( it->incidence(), this, it->multiDay() );
1088 mMonthView->setSelectedCell( this ); 1120 mMonthView->setSelectedCell( this );
1089} 1121}
1090 1122
1091 1123void MonthViewCell::deHightLight()
1124{
1125 MonthViewItem *mitem = (MonthViewItem*) firstItem ();
1126 while ( mitem ) {
1127 if ( mitem->setHighlightedFalse() )
1128 updateItem ( mitem );
1129 mitem = (MonthViewItem *)mitem->next();
1130 }
1131}
1132// returns true if no inc found
1133bool MonthViewCell::doHightLight( Incidence * inc )
1134{
1135
1136 MonthViewItem *mitem = (MonthViewItem*) firstItem ();
1137 while ( mitem ) {
1138 if ( mitem->incidence() == inc ) {
1139 if ( mitem->setHighlighted( inc ) )
1140 updateItem ( mitem );
1141 return false;
1142 }
1143 mitem = (MonthViewItem *)mitem->next();
1144 }
1145 return true;
1146}
1092// ******************************************************************************* 1147// *******************************************************************************
1093// ******************************************************************************* 1148// *******************************************************************************
1094// ******************************************************************************* 1149// *******************************************************************************
1095 1150
1096 1151
1097KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name) 1152KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name)
1098 : KOEventView( calendar, parent, name ), 1153 : KOEventView( calendar, parent, name ),
1099 mDaysPerWeek( 7 ), mNumWeeks( 6 ), mNumCells( mDaysPerWeek * mNumWeeks ), 1154 mDaysPerWeek( 7 ), mNumWeeks( 6 ), mNumCells( mDaysPerWeek * mNumWeeks ),
1100 mWidthLongDayLabel( 0 ), mSelectedCell( 0 ) 1155 mWidthLongDayLabel( 0 ), mSelectedCell( 0 )
1101{ 1156{
1102 mFlagKeyPressed = false; 1157 mFlagKeyPressed = false;
1103 mShortDayLabelsM = false; 1158 mShortDayLabelsM = false;
1104 mShortDayLabelsW = false; 1159 mShortDayLabelsW = false;
1105 skipResize = false; 1160 skipResize = false;
1106 clPending = true; 1161 clPending = true;
1107 mPopupCell = 0; 1162 mPopupCell = 0;
1108 mNavigatorBar = new NavigatorBar( QDate::currentDate(), this, "useBigPixmaps" ); 1163 mNavigatorBar = new NavigatorBar( QDate::currentDate(), this, "useBigPixmaps" );
1109 mWidStack = new QWidgetStack( this ); 1164 mWidStack = new QWidgetStack( this );
1110 QVBoxLayout* hb = new QVBoxLayout( this ); 1165 QVBoxLayout* hb = new QVBoxLayout( this );
1111 mMonthView = new QWidget( mWidStack ); 1166 mMonthView = new QWidget( mWidStack );
1112 mWeekView = new QWidget( mWidStack ); 1167 mWeekView = new QWidget( mWidStack );
1113#if QT_VERSION >= 0x030000 1168#if QT_VERSION >= 0x030000
1114 mWidStack->addWidget(mMonthView ); 1169 mWidStack->addWidget(mMonthView );
1115 mWidStack->addWidget(mWeekView ); 1170 mWidStack->addWidget(mWeekView );
1116#else 1171#else
1117 mWidStack->addWidget( mMonthView, 1 ); 1172 mWidStack->addWidget( mMonthView, 1 );
1118 mWidStack->addWidget( mWeekView , 1 ); 1173 mWidStack->addWidget( mWeekView , 1 );
1119#endif 1174#endif
1120 hb->addWidget( mNavigatorBar ); 1175 hb->addWidget( mNavigatorBar );
1121 hb->addWidget( mWidStack ); 1176 hb->addWidget( mWidStack );
1122 mShowWeekView = KOPrefs::instance()->mMonthViewWeek; 1177 mShowWeekView = KOPrefs::instance()->mMonthViewWeek;
1123 updatePossible = false; 1178 updatePossible = false;
1124 //updatePossible = true; 1179 //updatePossible = true;
1125 mCells.setAutoDelete( true ); 1180 mCells.setAutoDelete( true );
1126 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ; 1181 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ;
1127 mDayLabels.resize( mDaysPerWeek ); 1182 mDayLabels.resize( mDaysPerWeek );
1128 mDayLabelsW.resize( mDaysPerWeek ); 1183 mDayLabelsW.resize( mDaysPerWeek );
1129 QFont bfont = font(); 1184 QFont bfont = font();
1130 if ( QApplication::desktop()->width() < 650 ) { 1185 if ( QApplication::desktop()->width() < 650 ) {
1131 bfont.setPointSize( bfont.pointSize() - 2 ); 1186 bfont.setPointSize( bfont.pointSize() - 2 );
1132 } 1187 }
1133 bfont.setBold( true ); 1188 bfont.setBold( true );
1134 int i; 1189 int i;
1135 1190
1136 for( i = 0; i < mDaysPerWeek; i++ ) { 1191 for( i = 0; i < mDaysPerWeek; i++ ) {
1137 QLabel *label = new QLabel( mMonthView ); 1192 QLabel *label = new QLabel( mMonthView );
1138 label->setFont(bfont); 1193 label->setFont(bfont);
1139 label->setFrameStyle(QFrame::Panel|QFrame::Raised); 1194 label->setFrameStyle(QFrame::Panel|QFrame::Raised);
1140 label->setLineWidth(1); 1195 label->setLineWidth(1);
1141 label->setAlignment(AlignCenter); 1196 label->setAlignment(AlignCenter);
1142 mDayLabels.insert( i, label ); 1197 mDayLabels.insert( i, label );
1143 label = new QLabel( mWeekView ); 1198 label = new QLabel( mWeekView );
1144 label->setFont(bfont); 1199 label->setFont(bfont);
1145 label->setFrameStyle(QFrame::Panel|QFrame::Raised); 1200 label->setFrameStyle(QFrame::Panel|QFrame::Raised);
1146 label->setLineWidth(1); 1201 label->setLineWidth(1);
1147 label->setAlignment(AlignCenter); 1202 label->setAlignment(AlignCenter);
1148 mDayLabelsW.insert( i, label ); 1203 mDayLabelsW.insert( i, label );
1149 } 1204 }
1150 1205
1151 bfont.setBold( false ); 1206 bfont.setBold( false );
1152 mWeekLabels.resize( mNumWeeks+1 ); 1207 mWeekLabels.resize( mNumWeeks+1 );
1153 mWeekLabelsW.resize( 2 ); 1208 mWeekLabelsW.resize( 2 );
1154 for( i = 0; i < mNumWeeks+1; i++ ) { 1209 for( i = 0; i < mNumWeeks+1; i++ ) {
1155 KOWeekButton *label = new KOWeekButton( mMonthView ); 1210 KOWeekButton *label = new KOWeekButton( mMonthView );
1156 label->setFocusPolicy(NoFocus); 1211 label->setFocusPolicy(NoFocus);
1157 label->setFont(bfont); 1212 label->setFont(bfont);
1158 connect( label, SIGNAL( selectWeekNum ( int )),this, SLOT( selectInternalWeekNum ( int )) ); 1213 connect( label, SIGNAL( selectWeekNum ( int )),this, SLOT( selectInternalWeekNum ( int )) );
1159 label->setFlat(true); 1214 label->setFlat(true);
1160 QWhatsThis::add(label,i18n("Click on the week number to\nshow week zoomed")); 1215 QWhatsThis::add(label,i18n("Click on the week number to\nshow week zoomed"));
1161 //label->setFrameStyle(QFrame::Panel|QFrame::Raised); 1216 //label->setFrameStyle(QFrame::Panel|QFrame::Raised);
1162 //label->setLineWidth(1); 1217 //label->setLineWidth(1);
1163 //label->setAlignment(AlignCenter); 1218 //label->setAlignment(AlignCenter);
1164 mWeekLabels.insert( i, label ); 1219 mWeekLabels.insert( i, label );
1165 } 1220 }
1166 mWeekLabels[mNumWeeks]->setText( i18n("W")); 1221 mWeekLabels[mNumWeeks]->setText( i18n("W"));
1167 mWeekLabels[mNumWeeks]->setFocusPolicy(WheelFocus); 1222 mWeekLabels[mNumWeeks]->setFocusPolicy(WheelFocus);
1168 QWhatsThis::add(mWeekLabels[mNumWeeks],i18n("Click on this to\nselect week number")); 1223 QWhatsThis::add(mWeekLabels[mNumWeeks],i18n("Click on this to\nselect week number"));
1169 1224
1170 for( i = 0; i < 1+1; i++ ) { 1225 for( i = 0; i < 1+1; i++ ) {
1171 KOWeekButton *label = new KOWeekButton( mWeekView ); 1226 KOWeekButton *label = new KOWeekButton( mWeekView );
1172 label->setFocusPolicy(NoFocus); 1227 label->setFocusPolicy(NoFocus);
1173 label->setFont(bfont); 1228 label->setFont(bfont);
1174 connect( label, SIGNAL( selectWeekNum ( int )),this, SLOT( selectInternalWeekNum ( int )) ); 1229 connect( label, SIGNAL( selectWeekNum ( int )),this, SLOT( selectInternalWeekNum ( int )) );
1175 label->setFlat(true); 1230 label->setFlat(true);
1176 QWhatsThis::add(label,i18n("Click on the week number to\nshow week zoomed")); 1231 QWhatsThis::add(label,i18n("Click on the week number to\nshow week zoomed"));
1177 //label->setFrameStyle(QFrame::Panel|QFrame::Raised); 1232 //label->setFrameStyle(QFrame::Panel|QFrame::Raised);
1178 //label->setLineWidth(1); 1233 //label->setLineWidth(1);
1179 //label->setAlignment(AlignCenter); 1234 //label->setAlignment(AlignCenter);
1180 mWeekLabelsW.insert( i, label ); 1235 mWeekLabelsW.insert( i, label );
1181 } 1236 }
1182 mWeekLabelsW[1]->setText( i18n("W")); 1237 mWeekLabelsW[1]->setText( i18n("W"));
1183 mWeekLabelsW[1]->setFocusPolicy(WheelFocus); 1238 mWeekLabelsW[1]->setFocusPolicy(WheelFocus);
1184 1239
1185 1240
1186 int row, col; 1241 int row, col;
1187 mCells.resize( mNumCells ); 1242 mCells.resize( mNumCells );
1188 for( row = 0; row < mNumWeeks; ++row ) { 1243 for( row = 0; row < mNumWeeks; ++row ) {
1189 for( col = 0; col < mDaysPerWeek; ++col ) { 1244 for( col = 0; col < mDaysPerWeek; ++col ) {
1190 MonthViewCell *cell = new MonthViewCell( this, mMonthView ); 1245 MonthViewCell *cell = new MonthViewCell( this, mMonthView );
1191 mCells.insert( row * mDaysPerWeek + col, cell ); 1246 mCells.insert( row * mDaysPerWeek + col, cell );
1192 1247
1193 connect( cell, SIGNAL( defaultAction( Incidence * ) ), 1248 connect( cell, SIGNAL( defaultAction( Incidence * ) ),
1194 SLOT( defaultAction( Incidence * ) ) ); 1249 SLOT( defaultAction( Incidence * ) ) );
1195 connect( cell, SIGNAL( newEventSignal( QDateTime ) ), 1250 connect( cell, SIGNAL( newEventSignal( QDateTime ) ),
1196 SIGNAL( newEventSignal( QDateTime ) ) ); 1251 SIGNAL( newEventSignal( QDateTime ) ) );
1197 connect( cell, SIGNAL( showDaySignal( QDate ) ), 1252 connect( cell, SIGNAL( showDaySignal( QDate ) ),
1198 SIGNAL( showDaySignal( QDate ) ) ); 1253 SIGNAL( showDaySignal( QDate ) ) );
1199 connect( cell, SIGNAL( nextCell() ), 1254 connect( cell, SIGNAL( nextCell() ),
1200 SLOT( nextCell() ) ); 1255 SLOT( nextCell() ) );
1201 connect( cell, SIGNAL( prevCell() ), 1256 connect( cell, SIGNAL( prevCell() ),
1202 SLOT( prevCell() ) ); 1257 SLOT( prevCell() ) );
1258 connect( cell, SIGNAL( highligtIncidence( Incidence * , MonthViewCell *, int ) ),
1259 SLOT( incidenceHighlighted( Incidence *, MonthViewCell *, int ) ));
1203 } 1260 }
1204 } 1261 }
1205 mCellsW.resize( mDaysPerWeek ); 1262 mCellsW.resize( mDaysPerWeek );
1206 for( col = 0; col < mDaysPerWeek; ++col ) { 1263 for( col = 0; col < mDaysPerWeek; ++col ) {
1207 MonthViewCell *cell = new MonthViewCell( this, mWeekView ); 1264 MonthViewCell *cell = new MonthViewCell( this, mWeekView );
1208 mCellsW.insert( col, cell ); 1265 mCellsW.insert( col, cell );
1209 1266
1210 connect( cell, SIGNAL( defaultAction( Incidence * ) ), 1267 connect( cell, SIGNAL( defaultAction( Incidence * ) ),
1211 SLOT( defaultAction( Incidence * ) ) ); 1268 SLOT( defaultAction( Incidence * ) ) );
1212 connect( cell, SIGNAL( newEventSignal( QDateTime ) ), 1269 connect( cell, SIGNAL( newEventSignal( QDateTime ) ),
1213 SIGNAL( newEventSignal( QDateTime ) ) ); 1270 SIGNAL( newEventSignal( QDateTime ) ) );
1214 connect( cell, SIGNAL( showDaySignal( QDate ) ), 1271 connect( cell, SIGNAL( showDaySignal( QDate ) ),
1215 SIGNAL( showDaySignal( QDate ) ) ); 1272 SIGNAL( showDaySignal( QDate ) ) );
1216 connect( cell, SIGNAL( nextCell() ), 1273 connect( cell, SIGNAL( nextCell() ),
1217 SLOT( nextCell() ) ); 1274 SLOT( nextCell() ) );
1218 connect( cell, SIGNAL( prevCell() ), 1275 connect( cell, SIGNAL( prevCell() ),
1219 SLOT( prevCell() ) ); 1276 SLOT( prevCell() ) );
1277 connect( cell, SIGNAL( highligtIncidence( Incidence * , MonthViewCell *, int ) ),
1278 SLOT( incidenceHighlighted( Incidence *, MonthViewCell *, int ) ));
1220 cell->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont ); 1279 cell->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont );
1221 } 1280 }
1222 1281
1223 //connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), SLOT( switchView() ) ); 1282 //connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), SLOT( switchView() ) );
1224 mContextMenu = eventPopup(); 1283 mContextMenu = eventPopup();
1225 mContextMenu->addAdditionalItem(QIconSet(QPixmap()), 1284 mContextMenu->addAdditionalItem(QIconSet(QPixmap()),
1226 i18n("New Event..."),this, 1285 i18n("New Event..."),this,
1227 SLOT(slotNewEvent()),false); 1286 SLOT(slotNewEvent()),false);
1228 mContextMenu->addAdditionalItem(QIconSet(QPixmap()), 1287 mContextMenu->addAdditionalItem(QIconSet(QPixmap()),
1229 i18n("New Todo..."),this, 1288 i18n("New Todo..."),this,
1230 SLOT(slotNewTodo()),false); 1289 SLOT(slotNewTodo()),false);
1231 mContextMenu->addAdditionalItem(QIconSet(QPixmap()), 1290 mContextMenu->addAdditionalItem(QIconSet(QPixmap()),
1232 i18n("Journal"),this, 1291 i18n("Journal"),this,
1233 SLOT(slotEditJournal()),false); 1292 SLOT(slotEditJournal()),false);
1234 1293
1235 1294
1236 1295
1237 QString pathString = ""; 1296 QString pathString = "";
1238 if ( !KOPrefs::instance()->mToolBarMiniIcons ) { 1297 if ( !KOPrefs::instance()->mToolBarMiniIcons ) {
1239 if ( QApplication::desktop()->width() < 480 ) 1298 if ( QApplication::desktop()->width() < 480 )
1240 pathString += "icons16/"; 1299 pathString += "icons16/";
1241 } else 1300 } else
1242 pathString += "iconsmini/"; 1301 pathString += "iconsmini/";
1243 mNewItemMenu = new QPopupMenu( this ); 1302 mNewItemMenu = new QPopupMenu( this );
1244 mNewItemMenu->insertItem( SmallIcon( pathString +"newevent" ), i18n("New Event..."),this, SLOT(slotNewEvent())); 1303 mNewItemMenu->insertItem( SmallIcon( pathString +"newevent" ), i18n("New Event..."),this, SLOT(slotNewEvent()));
1245 mNewItemMenu->insertItem( SmallIcon( pathString +"newtodo" ),i18n("New Todo..."),this,SLOT(slotNewTodo()),false); 1304 mNewItemMenu->insertItem( SmallIcon( pathString +"newtodo" ),i18n("New Todo..."),this,SLOT(slotNewTodo()),false);
1246 mNewItemMenu->insertItem( SmallIcon( pathString +"journal" ),i18n("Journal"),this,SLOT(slotEditJournal()),false); 1305 mNewItemMenu->insertItem( SmallIcon( pathString +"journal" ),i18n("Journal"),this,SLOT(slotEditJournal()),false);
1247 1306
1248 // updateConfig(); //useless here... 1307 // updateConfig(); //useless here...
1249 // ... but we need mWidthLongDayLabel computed 1308 // ... but we need mWidthLongDayLabel computed
1250 QFontMetrics fontmetric(mDayLabels[0]->font()); 1309 QFontMetrics fontmetric(mDayLabels[0]->font());
1251 mWidthLongDayLabel = 0; 1310 mWidthLongDayLabel = 0;
1252 for (int i = 0; i < 7; i++) { 1311 for (int i = 0; i < 7; i++) {
1253 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1)); 1312 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1));
1254 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width; 1313 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width;
1255 } 1314 }
1256 1315
1257 //mWeekLabels[mNumWeeks]->setText( i18n("W")); 1316 //mWeekLabels[mNumWeeks]->setText( i18n("W"));
1258 1317
1259#if 0 1318#if 0
1260 if ( mShowWeekView ) 1319 if ( mShowWeekView )
1261 mWidStack->raiseWidget( mWeekView ); 1320 mWidStack->raiseWidget( mWeekView );
1262 else 1321 else
1263 mWidStack->raiseWidget( mMonthView ); 1322 mWidStack->raiseWidget( mMonthView );
1264#endif 1323#endif
1265 1324
1266 emit incidenceSelected( 0 ); 1325 emit incidenceSelected( 0 );
1267 1326
1268 mComputeLayoutTimer = new QTimer( this ); 1327 mComputeLayoutTimer = new QTimer( this );
1269 connect (mComputeLayoutTimer ,SIGNAL(timeout()), this, SLOT ( slotComputeLayout())); 1328 connect (mComputeLayoutTimer ,SIGNAL(timeout()), this, SLOT ( slotComputeLayout()));
1270 1329
1271 1330
1272#ifndef DESKTOP_VERSION 1331#ifndef DESKTOP_VERSION
1273 resize( QApplication::desktop()->size() ); 1332 resize( QApplication::desktop()->size() );
1274#else 1333#else
1275 resize(640, 480 ); 1334 resize(640, 480 );
1276 updatePossible = true; 1335 updatePossible = true;
1277#endif 1336#endif
1278 computeLayout(); 1337 computeLayout();
1279 1338
1280 if ( mShowWeekView ) 1339 if ( mShowWeekView )
1281 mWidStack->raiseWidget( mWeekView ); 1340 mWidStack->raiseWidget( mWeekView );
1282 else 1341 else
1283 mWidStack->raiseWidget( mMonthView ); 1342 mWidStack->raiseWidget( mMonthView );
1284} 1343}
1285 1344
1286KOMonthView::~KOMonthView() 1345KOMonthView::~KOMonthView()
1287{ 1346{
1288 delete mContextMenu; 1347 delete mContextMenu;
1289} 1348}
1290 1349
1350void KOMonthView::incidenceHighlighted( Incidence * inc , MonthViewCell* mc, int mday )
1351{
1352 //qDebug("KOMonthView::incidenceHighlighted %d %d %d", inc, mc, mday );
1353 static Incidence * lastInc = 0;
1354 static MonthViewCell * lastCell = 0;
1355
1356 if ( lastInc == inc && lastCell == mc )
1357 return;
1358 lastInc = inc;
1359 lastCell = mc;
1360 //qDebug("KOMonthView::incidenceHighlighted %d %d %d", inc, mc, mday );
1361
1362 bool weekview = false;
1363 int index = 0;
1364 for (uint i = 0; i < mCellsW.count(); ++i) {
1365 if ( mCellsW[i] == mc ) {
1366 weekview = true;
1367 index = i;
1368 break;
1369 }
1370 }
1371 QPtrVector<MonthViewCell> *cells;
1372 if ( weekview )
1373 cells = &mCellsW;
1374 else {
1375 for (uint i = 0; i < mCells.count(); ++i) {
1376 if ( mCells[i] == mc ) {
1377 index = i;
1378 break;
1379 }
1380 }
1381 cells = &mCells;
1382 }
1383 for (uint i = 0; i < (*cells).count(); ++i) {
1384 (*cells)[i]->deHightLight();
1385 }
1386 if ( ! inc )
1387 return;
1388 if ( mday > 1 && index > 0 )
1389 for (int i = index-1; i >= 0; --i) {
1390 //qDebug("index %d iii %d ", index, i);
1391 if ( (*cells)[(uint)i]->doHightLight(inc) )
1392 break;
1393 }
1394 if ( mday < 3 && mday > 0 && index < (*cells).count()-1)
1395 for (uint i = index+1; i < (*cells).count(); ++i) {
1396 if ( (*cells)[i]->doHightLight(inc) )
1397 break;
1398 }
1399
1400}
1291void KOMonthView::selectInternalWeekNum ( int n ) 1401void KOMonthView::selectInternalWeekNum ( int n )
1292{ 1402{
1293 switchView(); 1403 switchView();
1294 if ( !KOPrefs::instance()->mMonthViewWeek ) 1404 if ( !KOPrefs::instance()->mMonthViewWeek )
1295 emit selectMonth (); 1405 emit selectMonth ();
1296 else 1406 else
1297 emit selectWeekNum ( n ); 1407 emit selectWeekNum ( n );
1298} 1408}
1299 1409
1300int KOMonthView::currentWeek() 1410int KOMonthView::currentWeek()
1301{ 1411{
1302 if ( mShowWeekView ) 1412 if ( mShowWeekView )
1303 return mWeekLabelsW[0]->getWeekNum(); 1413 return mWeekLabelsW[0]->getWeekNum();
1304 return mWeekLabels[0]->getWeekNum(); 1414 return mWeekLabels[0]->getWeekNum();
1305} 1415}
1306void KOMonthView::switchView() 1416void KOMonthView::switchView()
1307{ 1417{
1308 if ( selectedCell( ) ) 1418 if ( selectedCell( ) )
1309 selectedCell()->deselect(); 1419 selectedCell()->deselect();
1310 mShowWeekView = !mShowWeekView; 1420 mShowWeekView = !mShowWeekView;
1311 KOPrefs::instance()->mMonthViewWeek = mShowWeekView; 1421 KOPrefs::instance()->mMonthViewWeek = mShowWeekView;
1312 if ( clPending ) { 1422 if ( clPending ) {
1313 computeLayout(); 1423 computeLayout();
1314 updateConfig(); 1424 updateConfig();
1315 } 1425 }
1316 if ( mShowWeekView ) 1426 if ( mShowWeekView )
1317 mWidStack->raiseWidget( mWeekView ); 1427 mWidStack->raiseWidget( mWeekView );
1318 else 1428 else
1319 mWidStack->raiseWidget( mMonthView ); 1429 mWidStack->raiseWidget( mMonthView );
1320 clPending = false; 1430 clPending = false;
1321} 1431}
1322 1432
1323int KOMonthView::maxDatesHint() 1433int KOMonthView::maxDatesHint()
1324{ 1434{
1325 return mNumCells; 1435 return mNumCells;
1326} 1436}
1327 1437
1328int KOMonthView::currentDateCount() 1438int KOMonthView::currentDateCount()
1329{ 1439{
1330 return mNumCells; 1440 return mNumCells;
1331} 1441}
1332 1442
1333QPtrList<Incidence> KOMonthView::selectedIncidences() 1443QPtrList<Incidence> KOMonthView::selectedIncidences()
1334{ 1444{
1335 QPtrList<Incidence> selected; 1445 QPtrList<Incidence> selected;
1336 1446
1337 if ( mSelectedCell ) { 1447 if ( mSelectedCell ) {
1338 Incidence *incidence = mSelectedCell->selectedIncidence(); 1448 Incidence *incidence = mSelectedCell->selectedIncidence();
1339 if ( incidence ) selected.append( incidence ); 1449 if ( incidence ) selected.append( incidence );
1340 } 1450 }
1341 1451
1342 return selected; 1452 return selected;
1343} 1453}
1344 1454
1345DateList KOMonthView::selectedDates() 1455DateList KOMonthView::selectedDates()
1346{ 1456{
1347 DateList selected; 1457 DateList selected;
1348 1458
1349 if ( mSelectedCell ) { 1459 if ( mSelectedCell ) {
1350 QDate qd = mSelectedCell->selectedIncidenceDate(); 1460 QDate qd = mSelectedCell->selectedIncidenceDate();
1351 if ( qd.isValid() ) selected.append( qd ); 1461 if ( qd.isValid() ) selected.append( qd );
1352 } 1462 }
1353 1463
1354 return selected; 1464 return selected;
1355} 1465}
1356 1466
1357void KOMonthView::printPreview(CalPrinter *calPrinter, const QDate &fd, 1467void KOMonthView::printPreview(CalPrinter *calPrinter, const QDate &fd,
1358 const QDate &td) 1468 const QDate &td)
1359{ 1469{
1360#ifndef KORG_NOPRINTER 1470#ifndef KORG_NOPRINTER
1361 calPrinter->preview(CalPrinter::Month, fd, td); 1471 calPrinter->preview(CalPrinter::Month, fd, td);
1362#endif 1472#endif
1363} 1473}
1364 1474
1365void KOMonthView::updateConfig() 1475void KOMonthView::updateConfig()
1366{ 1476{
1367 1477
1368 int mWeekStartsMonday = KGlobal::locale()->weekStartsMonday(); 1478 int mWeekStartsMonday = KGlobal::locale()->weekStartsMonday();
1369 1479
1370 if ( mShowWeekView || KOPrefs::instance()->mMonthViewSatSunTog ) { 1480 if ( mShowWeekView || KOPrefs::instance()->mMonthViewSatSunTog ) {
1371 mWeekStartsMonday = true; 1481 mWeekStartsMonday = true;
1372 } 1482 }
1373 QFontMetrics fontmetric(mDayLabels[0]->font()); 1483 QFontMetrics fontmetric(mDayLabels[0]->font());
1374 mWidthLongDayLabel = 0; 1484 mWidthLongDayLabel = 0;
1375 1485
1376 for (int i = 0; i < 7; i++) { 1486 for (int i = 0; i < 7; i++) {
1377 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1)); 1487 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1));
1378 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width; 1488 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width;
1379 } 1489 }
1380 bool temp = mShowSatSunComp ; 1490 bool temp = mShowSatSunComp ;
1381 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ; 1491 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ;
1382 if ( ! mShowWeekView ) { 1492 if ( ! mShowWeekView ) {
1383 if ( temp != KOPrefs::instance()->mMonthViewSatSunTog ) 1493 if ( temp != KOPrefs::instance()->mMonthViewSatSunTog )
1384 computeLayout(); 1494 computeLayout();
1385 } 1495 }
1386 updateDayLabels(); 1496 updateDayLabels();
diff --git a/korganizer/komonthview.h b/korganizer/komonthview.h
index 65b5e77..159af16 100644
--- a/korganizer/komonthview.h
+++ b/korganizer/komonthview.h
@@ -1,341 +1,346 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18*/ 18*/
19 19
20#ifndef _KOMONTHVIEW_H 20#ifndef _KOMONTHVIEW_H
21#define _KOMONTHVIEW_H 21#define _KOMONTHVIEW_H
22 22
23#include <qlabel.h> 23#include <qlabel.h>
24#include <qframe.h> 24#include <qframe.h>
25#include <qdatetime.h> 25#include <qdatetime.h>
26#include <qlistbox.h> 26#include <qlistbox.h>
27#include <qpoint.h> 27#include <qpoint.h>
28#include <qwidgetstack.h> 28#include <qwidgetstack.h>
29#include <qlayout.h> 29#include <qlayout.h>
30#include <qtimer.h> 30#include <qtimer.h>
31#include <qintdict.h> 31#include <qintdict.h>
32#include <qpushbutton.h> 32#include <qpushbutton.h>
33#include <qvaluelist.h> 33#include <qvaluelist.h>
34#include <qptrvector.h> 34#include <qptrvector.h>
35 35
36#include <libkcal/calendar.h> 36#include <libkcal/calendar.h>
37#include <libkcal/event.h> 37#include <libkcal/event.h>
38 38
39#include "koeventview.h" 39#include "koeventview.h"
40#include "navigatorbar.h" 40#include "navigatorbar.h"
41 41
42#ifdef DESKTOP_VERSION 42#ifdef DESKTOP_VERSION
43class QToolTipGroup; 43class QToolTipGroup;
44#endif 44#endif
45 45
46class KNOWhatsThis; 46class KNOWhatsThis;
47class MonthViewCell;
47class KOWeekButton : public QPushButton 48class KOWeekButton : public QPushButton
48{ 49{
49 Q_OBJECT 50 Q_OBJECT
50 public: 51 public:
51 KOWeekButton( QWidget *parent=0, const char *name=0 ) : 52 KOWeekButton( QWidget *parent=0, const char *name=0 ) :
52 QPushButton( parent, name) 53 QPushButton( parent, name)
53 { 54 {
54 connect( this, SIGNAL( clicked() ), 55 connect( this, SIGNAL( clicked() ),
55 SLOT( bottonClicked() )); 56 SLOT( bottonClicked() ));
56 mNumber = -1; 57 mNumber = -1;
57 } 58 }
58 void setWeekNum ( int num ) {mNumber = num; setText( QString::number ( num ));} 59 void setWeekNum ( int num ) {mNumber = num; setText( QString::number ( num ));}
59 int getWeekNum() { return mNumber;} 60 int getWeekNum() { return mNumber;}
60 signals: 61 signals:
61 void selectWeekNum ( int ); 62 void selectWeekNum ( int );
62private: 63private:
63 void focusInEvent ( QFocusEvent * ){;} 64 void focusInEvent ( QFocusEvent * ){;}
64 int mNumber; 65 int mNumber;
65 void keyPressEvent ( QKeyEvent * e ) 66 void keyPressEvent ( QKeyEvent * e )
66 { 67 {
67 e->ignore(); 68 e->ignore();
68 } 69 }
69 70
70private slots : 71private slots :
71 void bottonClicked() { if ( mNumber > 0 ) emit selectWeekNum ( mNumber ); } 72 void bottonClicked() { if ( mNumber > 0 ) emit selectWeekNum ( mNumber ); }
72}; 73};
73 74
74class KNoScrollListBox: public QListBox 75class KNoScrollListBox: public QListBox
75{ 76{
76 Q_OBJECT 77 Q_OBJECT
77 public: 78 public:
78 KNoScrollListBox(QWidget *parent=0, const char *name=0); 79 KNoScrollListBox(QWidget *parent=0, const char *name=0);
79 ~KNoScrollListBox(); 80 ~KNoScrollListBox();
80 QString getWhatsThisText(QPoint p) ; 81 QString getWhatsThisText(QPoint p) ;
81 82
82 signals: 83 signals:
83 void shiftDown(); 84 void shiftDown();
84 void shiftUp(); 85 void shiftUp();
85 void rightClick(); 86 void rightClick();
86 void nextCell(); 87 void nextCell();
87 void prevCell(); 88 void prevCell();
89 void highligtIncidence( Incidence * , MonthViewCell*, int );
88 90
89 protected slots: 91 protected slots:
90 void oneDown(); 92 void oneDown();
91 void keyPressEvent(QKeyEvent *); 93 void keyPressEvent(QKeyEvent *);
92 void keyReleaseEvent(QKeyEvent *); 94 void keyReleaseEvent(QKeyEvent *);
93 void mousePressEvent(QMouseEvent *); 95 void mousePressEvent(QMouseEvent *);
94 void focusInEvent ( QFocusEvent * ); 96 void focusInEvent ( QFocusEvent * );
95 void focusOutEvent ( QFocusEvent * ); 97 void focusOutEvent ( QFocusEvent * );
96 98
97 private: 99 private:
98 bool resetOnFocusIn; 100 bool resetOnFocusIn;
99 KNOWhatsThis * mWT; 101 KNOWhatsThis * mWT;
100}; 102};
101 103
102 104
103class MonthViewItem: public QListBoxItem 105class MonthViewItem: public QListBoxItem
104{ 106{
105 public: 107 public:
106 MonthViewItem( Incidence *, QDate qd, const QString & title ); 108 MonthViewItem( Incidence *, QDate qd, const QString & title );
107 void recycle( Incidence *incidence, QDate qd, const QString & s); 109 void recycle( Incidence *incidence, QDate qd, const QString & s);
108 void setRecur(bool on) { mRecur = on; } 110 void setRecur(bool on) { mRecur = on; }
109 void setAlarm(bool on) { mAlarm = on; } 111 void setAlarm(bool on) { mAlarm = on; }
110 void setReply(bool on) { mReply = on; } 112 void setReply(bool on) { mReply = on; }
111 void setMoreInfo(bool on) { mInfo = on; } 113 void setMoreInfo(bool on) { mInfo = on; }
112 void setMultiDay(int type) { mMultiday = type; } 114 void setMultiDay(int type) { mMultiday = type; }
115 int multiDay() { return mMultiday; }
113 void setMultiDayPos(int type) { mdayPos = type; } 116 void setMultiDayPos(int type) { mdayPos = type; }
114 int gettMultiDayPos() { return mdayPos; } 117 int gettMultiDayPos() { return mdayPos; }
115 void setBlockRepaint(bool on) { mblockRepaint = on; } 118 void setBlockRepaint(bool on) { mblockRepaint = on; }
116 119 bool setHighlighted( Incidence * );
117 120
118 void setPalette(const QPalette &p) { mPalette = p; } 121 void setPalette(const QPalette &p) { mPalette = p; }
119 QPalette palette() const { return mPalette; } 122 QPalette palette() const { return mPalette; }
120 123 bool setHighlightedFalse();
121 Incidence *incidence() const { return mIncidence; } 124 Incidence *incidence() const { return mIncidence; }
122 QDate incidenceDate() { return mDate; } 125 QDate incidenceDate() { return mDate; }
123 126
124 protected: 127 protected:
125 virtual void paint(QPainter *); 128 virtual void paint(QPainter *);
126 virtual int height(const QListBox *) const; 129 virtual int height(const QListBox *) const;
127 virtual int width(const QListBox *) const; 130 virtual int width(const QListBox *) const;
128 131
129 private: 132 private:
130 int mdayPos; 133 int mdayPos;
131 bool isWeekItem; 134 bool isWeekItem;
132 bool mblockRepaint; 135 bool mblockRepaint;
133 int mMultiday; 136 int mMultiday;
134 bool mRecur; 137 bool mRecur;
135 bool mAlarm; 138 bool mAlarm;
136 bool mReply; 139 bool mReply;
137 bool mInfo; 140 bool mInfo;
141 bool mDisplayHightlighted;
138 142
139 QPalette mPalette; 143 QPalette mPalette;
140 QDate mDate; 144 QDate mDate;
141 145
142 Incidence *mIncidence; 146 Incidence *mIncidence;
143}; 147};
144 148
145 149
146class KOMonthView; 150class KOMonthView;
147 151
148class MonthViewCell : public KNoScrollListBox 152class MonthViewCell : public KNoScrollListBox
149{ 153{
150 Q_OBJECT 154 Q_OBJECT
151 public: 155 public:
152 MonthViewCell(KOMonthView *,QWidget* ); 156 MonthViewCell(KOMonthView *,QWidget* );
153 ~MonthViewCell() {mAvailItemList.setAutoDelete( true );} 157 ~MonthViewCell() {mAvailItemList.setAutoDelete( true );}
154 158
155 void setDate( const QDate & ); 159 void setDate( const QDate & );
156 QDate date() const; 160 QDate date() const;
157 161
158 void setPrimary( bool ); 162 void setPrimary( bool );
159 bool isPrimary() const; 163 bool isPrimary() const;
160 164
161 void setHoliday( bool ); 165 void setHoliday( bool );
162 void setHoliday( const QString & ); 166 void setHoliday( const QString & );
163 167
164 void updateCell(); 168 void updateCell();
165 void startUpdateCell(); 169 void startUpdateCell();
166 void finishUpdateCell(); 170 void finishUpdateCell();
167 void repaintfinishUpdateCell(); 171 void repaintfinishUpdateCell();
168 int insertEvent(Event *); 172 int insertEvent(Event *);
169 void insertTodo(Todo *); 173 void insertTodo(Todo *);
170 174
171 void updateConfig( bool bigFont = false ); 175 void updateConfig( bool bigFont = false );
172 176
173 void enableScrollBars( bool ); 177 void enableScrollBars( bool );
174 178
175 Incidence *selectedIncidence(); 179 Incidence *selectedIncidence();
176 QDate selectedIncidenceDate(); 180 QDate selectedIncidenceDate();
177 QPushButton * dateLabel() { return mLabel; } 181 QPushButton * dateLabel() { return mLabel; }
178 182 void deHightLight();
183 bool doHightLight( Incidence *);
179 void deselect(); 184 void deselect();
180 void select(); 185 void select();
181#ifdef DESKTOP_VERSION 186#ifdef DESKTOP_VERSION
182 static QToolTipGroup *toolTipGroup(); 187 static QToolTipGroup *toolTipGroup();
183#endif 188#endif
184 signals: 189 signals:
185 void defaultAction( Incidence * ); 190 void defaultAction( Incidence * );
186 void newEventSignal( QDateTime ); 191 void newEventSignal( QDateTime );
187 void showDaySignal( QDate ); 192 void showDaySignal( QDate );
188 193
189 protected: 194 protected:
190 QStringList mToolTip; 195 QStringList mToolTip;
191 void resizeEvent( QResizeEvent * ); 196 void resizeEvent( QResizeEvent * );
192 197
193public slots: 198public slots:
194 void showDay(); 199 void showDay();
195
196 protected slots: 200 protected slots:
197 void defaultAction( QListBoxItem * ); 201 void defaultAction( QListBoxItem * );
198 void contextMenu( QListBoxItem * ); 202 void contextMenu( QListBoxItem * );
199 void selection( QListBoxItem * ); 203 void selection( QListBoxItem * );
200 void cellClicked( QListBoxItem * ); 204 void cellClicked( QListBoxItem * );
201 void newEvent(); 205 void newEvent();
202 206
203 private: 207 private:
204 int mdayCount; 208 int mdayCount;
205 QPtrList <MonthViewItem> mAvailItemList; 209 QPtrList <MonthViewItem> mAvailItemList;
206 KOMonthView *mMonthView; 210 KOMonthView *mMonthView;
207 int currentPalette; 211 int currentPalette;
208 212
209 QDate mDate; 213 QDate mDate;
210 bool mPrimary; 214 bool mPrimary;
211 bool mHoliday; 215 bool mHoliday;
212 QString mHolidayString; 216 QString mHolidayString;
213 217
214 //QLabel *mLabel; 218 //QLabel *mLabel;
215 QPushButton *mLabel; 219 QPushButton *mLabel;
216 //QListBox *mItemList; 220 //QListBox *mItemList;
217#ifdef DESKTOP_VERSION 221#ifdef DESKTOP_VERSION
218 static QToolTipGroup *mToolTipGroup; 222 static QToolTipGroup *mToolTipGroup;
219#endif 223#endif
220 QSize mLabelSize; 224 QSize mLabelSize;
221 QSize mLabelBigSize; 225 QSize mLabelBigSize;
222 QPalette mHolidayPalette; 226 QPalette mHolidayPalette;
223 QPalette mStandardPalette; 227 QPalette mStandardPalette;
224 QPalette mPrimaryPalette; 228 QPalette mPrimaryPalette;
225 QPalette mNonPrimaryPalette; 229 QPalette mNonPrimaryPalette;
226 void setMyPalette(); 230 void setMyPalette();
227 QPalette getPalette (); 231 QPalette getPalette ();
228 232
229}; 233};
230 234
231 235
232class KOMonthView: public KOEventView 236class KOMonthView: public KOEventView
233{ 237{
234 Q_OBJECT 238 Q_OBJECT
235 public: 239 public:
236 KOMonthView(Calendar *cal, QWidget *parent = 0, const char *name = 0 ); 240 KOMonthView(Calendar *cal, QWidget *parent = 0, const char *name = 0 );
237 ~KOMonthView(); 241 ~KOMonthView();
238 242
239 /** Returns maximum number of days supported by the komonthview */ 243 /** Returns maximum number of days supported by the komonthview */
240 virtual int maxDatesHint(); 244 virtual int maxDatesHint();
241 245
242 /** Returns number of currently shown dates. */ 246 /** Returns number of currently shown dates. */
243 virtual int currentDateCount(); 247 virtual int currentDateCount();
244 248
245 /** returns the currently selected events */ 249 /** returns the currently selected events */
246 virtual QPtrList<Incidence> selectedIncidences(); 250 virtual QPtrList<Incidence> selectedIncidences();
247 251
248 /** returns dates of the currently selected events */ 252 /** returns dates of the currently selected events */
249 virtual DateList selectedDates(); 253 virtual DateList selectedDates();
250 254
251 virtual void printPreview(CalPrinter *calPrinter, 255 virtual void printPreview(CalPrinter *calPrinter,
252 const QDate &, const QDate &); 256 const QDate &, const QDate &);
253 bool isMonthView() { return !mShowWeekView; } 257 bool isMonthView() { return !mShowWeekView; }
254 bool isUpdatePossible() { return updatePossible; } 258 bool isUpdatePossible() { return updatePossible; }
255 259
256 MonthViewCell * selectedCell(); 260 MonthViewCell * selectedCell();
257 bool skipResize; 261 bool skipResize;
258 NavigatorBar* navigatorBar() { return mNavigatorBar ;} 262 NavigatorBar* navigatorBar() { return mNavigatorBar ;}
259 void clearList(); 263 void clearList();
260 public slots: 264 public slots:
265 void incidenceHighlighted( Incidence *, MonthViewCell*, int );
261 void nextCell(); 266 void nextCell();
262 void prevCell(); 267 void prevCell();
263 virtual void updateView(); 268 virtual void updateView();
264 virtual void updateConfig(); 269 virtual void updateConfig();
265 virtual void showDates(const QDate &start, const QDate &end); 270 virtual void showDates(const QDate &start, const QDate &end);
266 virtual void showEvents(QPtrList<Event> eventList); 271 virtual void showEvents(QPtrList<Event> eventList);
267 272
268 void changeEventDisplay(Event *, int); 273 void changeEventDisplay(Event *, int);
269 274
270 void clearSelection(); 275 void clearSelection();
271 276
272 void showContextMenu( Incidence * ); 277 void showContextMenu( Incidence * );
273 278
274 void setSelectedCell( MonthViewCell * ); 279 void setSelectedCell( MonthViewCell * );
275 void setPopupCell( MonthViewCell * ); 280 void setPopupCell( MonthViewCell * );
276 void switchView(); 281 void switchView();
277 void setKeyBoardFocus(); 282 void setKeyBoardFocus();
278 void setKeyBFocus(); 283 void setKeyBFocus();
279 284
280 protected slots: 285 protected slots:
281 void slotNewTodo(); 286 void slotNewTodo();
282 void slotNewEvent(); 287 void slotNewEvent();
283 void slotEditJournal(); 288 void slotEditJournal();
284 void slotComputeLayout(); 289 void slotComputeLayout();
285 void selectInternalWeekNum ( int ); 290 void selectInternalWeekNum ( int );
286 void processSelectionChange(); 291 void processSelectionChange();
287 signals: 292 signals:
288 void nextMonth(); 293 void nextMonth();
289 void prevMonth(); 294 void prevMonth();
290 void selectWeekNum ( int ); 295 void selectWeekNum ( int );
291 void selectMonth (); 296 void selectMonth ();
292 void showDaySignal( QDate ); 297 void showDaySignal( QDate );
293 void newTodoSignal( QDateTime, bool ); 298 void newTodoSignal( QDateTime, bool );
294 void showJournalSignal( int,QDate ); 299 void showJournalSignal( int,QDate );
295 protected: 300 protected:
296 void resizeEvent(QResizeEvent *); 301 void resizeEvent(QResizeEvent *);
297 void viewChanged(); 302 void viewChanged();
298 void updateDayLabels(); 303 void updateDayLabels();
299 304
300 private: 305 private:
301 QTimer* mComputeLayoutTimer; 306 QTimer* mComputeLayoutTimer;
302 NavigatorBar* mNavigatorBar; 307 NavigatorBar* mNavigatorBar;
303 int currentWeek(); 308 int currentWeek();
304 bool clPending; 309 bool clPending;
305 QWidgetStack * mWidStack; 310 QWidgetStack * mWidStack;
306 QWidget* mMonthView; 311 QWidget* mMonthView;
307 QWidget* mWeekView; 312 QWidget* mWeekView;
308 bool mShowWeekView; 313 bool mShowWeekView;
309 bool updatePossible; 314 bool updatePossible;
310 int mDaysPerWeek; 315 int mDaysPerWeek;
311 int mNumWeeks; 316 int mNumWeeks;
312 int mNumCells; 317 int mNumCells;
313 //bool mWeekStartsMonday; 318 //bool mWeekStartsMonday;
314 bool mShowSatSunComp; 319 bool mShowSatSunComp;
315 void computeLayout(); 320 void computeLayout();
316 void computeLayoutWeek(); 321 void computeLayoutWeek();
317 322
318 QPtrVector<MonthViewCell> mCells; 323 QPtrVector<MonthViewCell> mCells;
319 QPtrVector<QLabel> mDayLabels; 324 QPtrVector<QLabel> mDayLabels;
320 QPtrVector<KOWeekButton> mWeekLabels; 325 QPtrVector<KOWeekButton> mWeekLabels;
321 QPtrVector<MonthViewCell> mCellsW; 326 QPtrVector<MonthViewCell> mCellsW;
322 QPtrVector<QLabel> mDayLabelsW; 327 QPtrVector<QLabel> mDayLabelsW;
323 QPtrVector<KOWeekButton> mWeekLabelsW; 328 QPtrVector<KOWeekButton> mWeekLabelsW;
324 329
325 bool mShortDayLabelsM; 330 bool mShortDayLabelsM;
326 bool mShortDayLabelsW; 331 bool mShortDayLabelsW;
327 int mWidthLongDayLabel; 332 int mWidthLongDayLabel;
328 333
329 QDate mStartDate; 334 QDate mStartDate;
330 335
331 MonthViewCell *mSelectedCell; 336 MonthViewCell *mSelectedCell;
332 MonthViewCell *mPopupCell; 337 MonthViewCell *mPopupCell;
333 bool mFlagKeyPressed; 338 bool mFlagKeyPressed;
334 KOEventPopupMenu *mContextMenu; 339 KOEventPopupMenu *mContextMenu;
335 QPopupMenu *mNewItemMenu; 340 QPopupMenu *mNewItemMenu;
336 void keyPressEvent ( QKeyEvent * ) ; 341 void keyPressEvent ( QKeyEvent * ) ;
337 void keyReleaseEvent ( QKeyEvent * ) ; 342 void keyReleaseEvent ( QKeyEvent * ) ;
338 343
339}; 344};
340 345
341#endif 346#endif