summaryrefslogtreecommitdiffabout
path: root/korganizer/kodaymatrix.cpp
Unidiff
Diffstat (limited to 'korganizer/kodaymatrix.cpp') (more/less context) (show whitespace changes)
-rw-r--r--korganizer/kodaymatrix.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/korganizer/kodaymatrix.cpp b/korganizer/kodaymatrix.cpp
index dfc6af7..c55f7d7 100644
--- a/korganizer/kodaymatrix.cpp
+++ b/korganizer/kodaymatrix.cpp
@@ -244,96 +244,97 @@ KODayMatrix::~KODayMatrix()
244 delete [] days; 244 delete [] days;
245 delete [] daylbls; 245 delete [] daylbls;
246 //delete [] events; 246 //delete [] events;
247 delete mToolTip; 247 delete mToolTip;
248} 248}
249 249
250/* 250/*
251void KODayMatrix::setStartDate(QDate start) 251void KODayMatrix::setStartDate(QDate start)
252{ 252{
253 updateView(start); 253 updateView(start);
254} 254}
255*/ 255*/
256 256
257void KODayMatrix::addSelectedDaysTo(DateList& selDays) 257void KODayMatrix::addSelectedDaysTo(DateList& selDays)
258{ 258{
259 259
260 if (mSelStart == NOSELECTION) { 260 if (mSelStart == NOSELECTION) {
261 return; 261 return;
262 } 262 }
263 263
264 //cope with selection being out of matrix limits at top (< 0) 264 //cope with selection being out of matrix limits at top (< 0)
265 int i0 = mSelStart; 265 int i0 = mSelStart;
266 if (i0 < 0) { 266 if (i0 < 0) {
267 for (int i = i0; i < 0; i++) { 267 for (int i = i0; i < 0; i++) {
268 selDays.append(days[0].addDays(i)); 268 selDays.append(days[0].addDays(i));
269 } 269 }
270 i0 = 0; 270 i0 = 0;
271 } 271 }
272 272
273 //cope with selection being out of matrix limits at bottom (> NUMDAYS-1) 273 //cope with selection being out of matrix limits at bottom (> NUMDAYS-1)
274 if (mSelEnd > NUMDAYS-1) { 274 if (mSelEnd > NUMDAYS-1) {
275 for (int i = i0; i <= NUMDAYS-1; i++) { 275 for (int i = i0; i <= NUMDAYS-1; i++) {
276 selDays.append(days[i]); 276 selDays.append(days[i]);
277 } 277 }
278 for (int i = NUMDAYS; i < mSelEnd; i++) { 278 for (int i = NUMDAYS; i < mSelEnd; i++) {
279 selDays.append(days[0].addDays(i)); 279 selDays.append(days[0].addDays(i));
280 } 280 }
281 281
282 // apply normal routine to selection being entirely within matrix limits 282 // apply normal routine to selection being entirely within matrix limits
283 } else { 283 } else {
284 for (int i = i0; i <= mSelEnd; i++) { 284 for (int i = i0; i <= mSelEnd; i++) {
285 selDays.append(days[i]); 285 selDays.append(days[i]);
286 } 286 }
287 } 287 }
288} 288}
289 289
290bool KODayMatrix::setSelectedDaysFrom(const QDate& start, const QDate& end) 290bool KODayMatrix::setSelectedDaysFrom(const QDate& start, const QDate& end)
291{ 291{
292 mRedrawNeeded = true;
292 bool noSel = (mSelEnd == NOSELECTION && mSelStart == NOSELECTION ); 293 bool noSel = (mSelEnd == NOSELECTION && mSelStart == NOSELECTION );
293 mSelStart = startdate.daysTo(start); 294 mSelStart = startdate.daysTo(start);
294 if ( mSelStart < 0 ) 295 if ( mSelStart < 0 )
295 mSelStart = 0; 296 mSelStart = 0;
296 mSelEnd = startdate.daysTo(end); 297 mSelEnd = startdate.daysTo(end);
297 if ( mSelEnd > NUMDAYS-1 ) 298 if ( mSelEnd > NUMDAYS-1 )
298 mSelEnd = NUMDAYS-1; 299 mSelEnd = NUMDAYS-1;
299 if ( mSelEnd < 0 || mSelStart > NUMDAYS-1 ) { 300 if ( mSelEnd < 0 || mSelStart > NUMDAYS-1 ) {
300 clearSelection(); 301 clearSelection();
301 if ( noSel ) 302 if ( noSel )
302 return false; 303 return false;
303 } 304 }
304 305
305 return true; 306 return true;
306} 307}
307void KODayMatrix::clearSelection() 308void KODayMatrix::clearSelection()
308{ 309{
309 mSelEnd = mSelStart = NOSELECTION; 310 mSelEnd = mSelStart = NOSELECTION;
310} 311}
311 312
312 313
313void KODayMatrix::recalculateToday() 314void KODayMatrix::recalculateToday()
314{ 315{
315 today = -1; 316 today = -1;
316 for (int i=0; i<NUMDAYS; i++) { 317 for (int i=0; i<NUMDAYS; i++) {
317 //events[i] = 0; 318 //events[i] = 0;
318 days[i] = startdate.addDays(i); 319 days[i] = startdate.addDays(i);
319 daylbls[i] = QString::number( KOGlobals::self()->calendarSystem()->day( days[i] )); 320 daylbls[i] = QString::number( KOGlobals::self()->calendarSystem()->day( days[i] ));
320 321
321 // if today is in the currently displayed month, hilight today 322 // if today is in the currently displayed month, hilight today
322 if (days[i].year() == QDate::currentDate().year() && 323 if (days[i].year() == QDate::currentDate().year() &&
323 days[i].month() == QDate::currentDate().month() && 324 days[i].month() == QDate::currentDate().month() &&
324 days[i].day() == QDate::currentDate().day()) { 325 days[i].day() == QDate::currentDate().day()) {
325 today = i; 326 today = i;
326 } 327 }
327 } 328 }
328 // qDebug(QString("Today is visible at %1.").arg(today)); 329 // qDebug(QString("Today is visible at %1.").arg(today));
329} 330}
330 331
331void KODayMatrix::updateView() 332void KODayMatrix::updateView()
332{ 333{
333 updateView(startdate); 334 updateView(startdate);
334} 335}
335void KODayMatrix::repaintViewTimed() 336void KODayMatrix::repaintViewTimed()
336{ 337{
337 mRepaintTimer->stop(); 338 mRepaintTimer->stop();
338 repaint(false); 339 repaint(false);
339} 340}
@@ -466,141 +467,144 @@ void KODayMatrix::updateEvents()
466 467
467const QDate& KODayMatrix::getDate(int offset) 468const QDate& KODayMatrix::getDate(int offset)
468{ 469{
469 if (offset < 0 || offset > NUMDAYS-1) { 470 if (offset < 0 || offset > NUMDAYS-1) {
470 qDebug("Wrong offset2 %d", offset); 471 qDebug("Wrong offset2 %d", offset);
471 return days[0]; 472 return days[0];
472 } 473 }
473 return days[offset]; 474 return days[offset];
474} 475}
475 476
476QString KODayMatrix::getHolidayLabel(int offset) 477QString KODayMatrix::getHolidayLabel(int offset)
477{ 478{
478 if (offset < 0 || offset > NUMDAYS-1) { 479 if (offset < 0 || offset > NUMDAYS-1) {
479 qDebug("Wrong offset1 %d", offset); 480 qDebug("Wrong offset1 %d", offset);
480 return QString(); 481 return QString();
481 } 482 }
482 return mHolidays[offset]; 483 return mHolidays[offset];
483} 484}
484 485
485int KODayMatrix::getDayIndexFrom(int x, int y) 486int KODayMatrix::getDayIndexFrom(int x, int y)
486{ 487{
487 int colModulo = (width()-2) % 7; 488 int colModulo = (width()-2) % 7;
488 int rowModulo = (height()-2) % 6; 489 int rowModulo = (height()-2) % 6;
489#if 0 490#if 0
490 return 7*(y/daysize.height()) + (KOGlobals::self()->reverseLayout() ? 491 return 7*(y/daysize.height()) + (KOGlobals::self()->reverseLayout() ?
491 6 - x/daysize.width() : x/daysize.width()); 492 6 - x/daysize.width() : x/daysize.width());
492#endif 493#endif
493 int xVal = (x-colModulo/2-2)/daysize.width(); 494 int xVal = (x-colModulo/2-2)/daysize.width();
494 int yVal = (y-rowModulo/2-2)/daysize.height(); 495 int yVal = (y-rowModulo/2-2)/daysize.height();
495 496
496 497
497 return 7*(yVal) + xVal; 498 return 7*(yVal) + xVal;
498 499
499} 500}
500 501
501// ---------------------------------------------------------------------------- 502// ----------------------------------------------------------------------------
502// M O U S E E V E N T H A N D L I N G 503// M O U S E E V E N T H A N D L I N G
503// ---------------------------------------------------------------------------- 504// ----------------------------------------------------------------------------
504 505
505void KODayMatrix::mousePressEvent (QMouseEvent* e) 506void KODayMatrix::mousePressEvent (QMouseEvent* e)
506{ 507{
507 508
508 if ( e->button() == LeftButton ) 509 if ( e->button() == LeftButton )
509 mouseDown = true; 510 mouseDown = true;
510 mSelStart = getDayIndexFrom(e->x(), e->y()); 511 mSelStart = getDayIndexFrom(e->x(), e->y());
511 if (mSelStart > NUMDAYS-1) mSelStart=NUMDAYS-1; 512 if (mSelStart > NUMDAYS-1) mSelStart=NUMDAYS-1;
512 mSelInit = mSelStart; 513 mSelInit = mSelStart;
513 mSelEnd = mSelStart; 514 mSelEnd = mSelStart;
515 mRedrawNeeded = true;
514 repaint(false); 516 repaint(false);
515} 517}
516 518
517void KODayMatrix::mouseReleaseEvent (QMouseEvent* e) 519void KODayMatrix::mouseReleaseEvent (QMouseEvent* e)
518{ 520{
521 mRedrawNeeded = true;
519 if ( e->button() == LeftButton ) 522 if ( e->button() == LeftButton )
520 if ( ! mouseDown ) { 523 if ( ! mouseDown ) {
521 return; 524 return;
522 } 525 }
523 else 526 else
524 mouseDown = false; 527 mouseDown = false;
525 int tmp = getDayIndexFrom(e->x(), e->y()); 528 int tmp = getDayIndexFrom(e->x(), e->y());
526 if (tmp > NUMDAYS-1) tmp=NUMDAYS-1; 529 if (tmp > NUMDAYS-1) tmp=NUMDAYS-1;
527 530
528 if (mSelInit > tmp) { 531 if (mSelInit > tmp) {
529 mSelEnd = mSelInit; 532 mSelEnd = mSelInit;
530 if (tmp != mSelStart) { 533 if (tmp != mSelStart) {
531 mSelStart = tmp; 534 mSelStart = tmp;
532 repaint(false); 535 repaint(false);
533 } 536 }
534 } else { 537 } else {
535 mSelStart = mSelInit; 538 mSelStart = mSelInit;
536 539
537 //repaint only if selection has changed 540 //repaint only if selection has changed
538 if (tmp != mSelEnd) { 541 if (tmp != mSelEnd) {
539 mSelEnd = tmp; 542 mSelEnd = tmp;
540 repaint(false); 543 repaint(false);
541 } 544 }
542 } 545 }
543 546
544 DateList daylist; 547 DateList daylist;
545 if ( mSelStart < 0 ) 548 if ( mSelStart < 0 )
546 mSelStart = 0; 549 mSelStart = 0;
547 for (int i = mSelStart; i <= mSelEnd; i++) { 550 for (int i = mSelStart; i <= mSelEnd; i++) {
548 daylist.append(days[i]); 551 daylist.append(days[i]);
549 } 552 }
550 emit selected((const DateList)daylist); 553 emit selected((const DateList)daylist);
551 554
552} 555}
553 556
554void KODayMatrix::mouseMoveEvent (QMouseEvent* e) 557void KODayMatrix::mouseMoveEvent (QMouseEvent* e)
555{ 558{
556 if ( ! mouseDown ) { 559 if ( ! mouseDown ) {
557 return; 560 return;
558 } 561 }
562 mRedrawNeeded = true;
559 int tmp = getDayIndexFrom(e->x(), e->y()); 563 int tmp = getDayIndexFrom(e->x(), e->y());
560 if (tmp > NUMDAYS-1) tmp=NUMDAYS-1; 564 if (tmp > NUMDAYS-1) tmp=NUMDAYS-1;
561 565
562 if (mSelInit > tmp) { 566 if (mSelInit > tmp) {
563 mSelEnd = mSelInit; 567 mSelEnd = mSelInit;
564 if (tmp != mSelStart) { 568 if (tmp != mSelStart) {
565 mSelStart = tmp; 569 mSelStart = tmp;
566 repaint(false); 570 repaint(false);
567 } 571 }
568 } else { 572 } else {
569 mSelStart = mSelInit; 573 mSelStart = mSelInit;
570 574
571 //repaint only if selection has changed 575 //repaint only if selection has changed
572 if (tmp != mSelEnd) { 576 if (tmp != mSelEnd) {
573 mSelEnd = tmp; 577 mSelEnd = tmp;
574 repaint(false); 578 repaint(false);
575 } 579 }
576 } 580 }
577} 581}
578 582
579// ---------------------------------------------------------------------------- 583// ----------------------------------------------------------------------------
580// D R A G ' N D R O P H A N D L I N G 584// D R A G ' N D R O P H A N D L I N G
581// ---------------------------------------------------------------------------- 585// ----------------------------------------------------------------------------
582 586
583void KODayMatrix::dragEnterEvent(QDragEnterEvent *e) 587void KODayMatrix::dragEnterEvent(QDragEnterEvent *e)
584{ 588{
585#ifndef KORG_NODND 589#ifndef KORG_NODND
586 if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) { 590 if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) {
587 e->ignore(); 591 e->ignore();
588 return; 592 return;
589 } 593 }
590 594
591 // some visual feedback 595 // some visual feedback
592// oldPalette = palette(); 596// oldPalette = palette();
593// setPalette(my_HilitePalette); 597// setPalette(my_HilitePalette);
594// update(); 598// update();
595#endif 599#endif
596} 600}
597 601
598void KODayMatrix::dragMoveEvent(QDragMoveEvent *e) 602void KODayMatrix::dragMoveEvent(QDragMoveEvent *e)
599{ 603{
600#ifndef KORG_NODND 604#ifndef KORG_NODND
601 if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) { 605 if ( !ICalDrag::canDecode( e ) && !VCalDrag::canDecode( e ) ) {
602 e->ignore(); 606 e->ignore();
603 return; 607 return;
604 } 608 }
605 609
606 e->accept(); 610 e->accept();