summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-04-01 20:32:33 (UTC)
committer zautrix <zautrix>2005-04-01 20:32:33 (UTC)
commit12fc62df25e15f6b20d8026ceb09118ca3ed7205 (patch) (unidiff)
tree8686600dc4ed5e5f6e9c79e007b818bfb4546750
parentb1e3bf53b1c4cc46ef0a2ded04338bc38a640161 (diff)
downloadkdepimpi-12fc62df25e15f6b20d8026ceb09118ca3ed7205.zip
kdepimpi-12fc62df25e15f6b20d8026ceb09118ca3ed7205.tar.gz
kdepimpi-12fc62df25e15f6b20d8026ceb09118ca3ed7205.tar.bz2
filterfix
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/korganizer/icons16/filter.pngbin0 -> 820 bytes
-rw-r--r--korganizer/koagendaview.cpp2
2 files changed, 1 insertions, 1 deletions
diff --git a/bin/kdepim/korganizer/icons16/filter.png b/bin/kdepim/korganizer/icons16/filter.png
new file mode 100644
index 0000000..83890a8
--- a/dev/null
+++ b/bin/kdepim/korganizer/icons16/filter.png
Binary files differ
diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp
index 667ff2a..1627dba 100644
--- a/korganizer/koagendaview.cpp
+++ b/korganizer/koagendaview.cpp
@@ -285,769 +285,769 @@ void TimeLabels::paintEvent(QPaintEvent*)
285 // kdDebug() << "paintevent..." << endl; 285 // kdDebug() << "paintevent..." << endl;
286 // this is another hack! 286 // this is another hack!
287 // QPainter painter(this); 287 // QPainter painter(this);
288 //QString c 288 //QString c
289 repaintContents(contentsX(), contentsY(), visibleWidth(), visibleHeight()); 289 repaintContents(contentsX(), contentsY(), visibleWidth(), visibleHeight());
290} 290}
291 291
292//////////////////////////////////////////////////////////////////////////// 292////////////////////////////////////////////////////////////////////////////
293 293
294EventIndicator::EventIndicator(Location loc,QWidget *parent,const char *name) 294EventIndicator::EventIndicator(Location loc,QWidget *parent,const char *name)
295 : QFrame(parent,name) 295 : QFrame(parent,name)
296{ 296{
297 mColumns = 1; 297 mColumns = 1;
298 mTopBox = 0; 298 mTopBox = 0;
299 mLocation = loc; 299 mLocation = loc;
300 mTopLayout = 0; 300 mTopLayout = 0;
301 mPaintWidget = 0; 301 mPaintWidget = 0;
302 mXOffset = 0; 302 mXOffset = 0;
303 if (mLocation == Top) mPixmap = SmallIcon("1uparrow"); 303 if (mLocation == Top) mPixmap = SmallIcon("1uparrow");
304 else mPixmap = SmallIcon("1downarrow"); 304 else mPixmap = SmallIcon("1downarrow");
305 mEnabled.resize(mColumns); 305 mEnabled.resize(mColumns);
306 mEnabled.fill( false ); 306 mEnabled.fill( false );
307 setMinimumHeight(mPixmap.height()); 307 setMinimumHeight(mPixmap.height());
308} 308}
309 309
310EventIndicator::~EventIndicator() 310EventIndicator::~EventIndicator()
311{ 311{
312} 312}
313 313
314void EventIndicator::drawContents(QPainter *p) 314void EventIndicator::drawContents(QPainter *p)
315{ 315{
316 316
317 // kdDebug() << "======== top: " << contentsRect().top() << " bottom " << // contentsRect().bottom() << " left " << contentsRect().left() << " right " << contentsRect().right() << endl; 317 // kdDebug() << "======== top: " << contentsRect().top() << " bottom " << // contentsRect().bottom() << " left " << contentsRect().left() << " right " << contentsRect().right() << endl;
318 KDGanttSplitterHandle* han = 0; 318 KDGanttSplitterHandle* han = 0;
319 if ( mPaintWidget ) 319 if ( mPaintWidget )
320 han = mPaintWidget->firstHandle(); 320 han = mPaintWidget->firstHandle();
321 if ( ! han ) { 321 if ( ! han ) {
322 int i; 322 int i;
323 for(i=0;i<mColumns;++i) { 323 for(i=0;i<mColumns;++i) {
324 if (mEnabled[i]) { 324 if (mEnabled[i]) {
325 int cellWidth = contentsRect().right()/mColumns; 325 int cellWidth = contentsRect().right()/mColumns;
326 int xOffset = KOGlobals::self()->reverseLayout() ? 326 int xOffset = KOGlobals::self()->reverseLayout() ?
327 (mColumns - 1 - i)*cellWidth + (cellWidth -mPixmap.width())/2 : 327 (mColumns - 1 - i)*cellWidth + (cellWidth -mPixmap.width())/2 :
328 i*cellWidth + (cellWidth -mPixmap.width()) /2; 328 i*cellWidth + (cellWidth -mPixmap.width()) /2;
329 p->drawPixmap(QPoint(1+xOffset,0),mPixmap); 329 p->drawPixmap(QPoint(1+xOffset,0),mPixmap);
330 } 330 }
331 } 331 }
332 } else { 332 } else {
333 han->repaint(); 333 han->repaint();
334 //mPaintWidget->setBackgroundColor( red ); 334 //mPaintWidget->setBackgroundColor( red );
335 335
336 QPainter pa( han ); 336 QPainter pa( han );
337 int i; 337 int i;
338 bool setColor = false; 338 bool setColor = false;
339 for(i=0;i<mColumns;++i) { 339 for(i=0;i<mColumns;++i) {
340 if (mEnabled[i]) { 340 if (mEnabled[i]) {
341 setColor = true; 341 setColor = true;
342 342
343 int cellWidth = contentsRect().right()/mColumns; 343 int cellWidth = contentsRect().right()/mColumns;
344 int xOffset = KOGlobals::self()->reverseLayout() ? 344 int xOffset = KOGlobals::self()->reverseLayout() ?
345 (mColumns - 1 - i)*cellWidth + cellWidth/2 -mPixmap.width()/2 : 345 (mColumns - 1 - i)*cellWidth + cellWidth/2 -mPixmap.width()/2 :
346 i*cellWidth + cellWidth/2 -mPixmap.width()/2; 346 i*cellWidth + cellWidth/2 -mPixmap.width()/2;
347 pa.drawPixmap(QPoint(mXOffset + xOffset,0),mPixmap); 347 pa.drawPixmap(QPoint(mXOffset + xOffset,0),mPixmap);
348 //qDebug("222draw pix %d ",xOffset ); 348 //qDebug("222draw pix %d ",xOffset );
349 349
350 } 350 }
351 351
352 } 352 }
353 pa.end(); 353 pa.end();
354 354
355 } 355 }
356} 356}
357 357
358void EventIndicator::setXOffset( int x ) 358void EventIndicator::setXOffset( int x )
359{ 359{
360 mXOffset = x; 360 mXOffset = x;
361} 361}
362void EventIndicator::setPaintWidget( KDGanttMinimizeSplitter * w ) 362void EventIndicator::setPaintWidget( KDGanttMinimizeSplitter * w )
363{ 363{
364 mPaintWidget = w; 364 mPaintWidget = w;
365 setMaximumHeight(0); 365 setMaximumHeight(0);
366 setMinimumHeight(0); 366 setMinimumHeight(0);
367} 367}
368void EventIndicator::changeColumns(int columns) 368void EventIndicator::changeColumns(int columns)
369{ 369{
370 mColumns = columns; 370 mColumns = columns;
371 mEnabled.resize(mColumns); 371 mEnabled.resize(mColumns);
372 372
373 update(); 373 update();
374} 374}
375 375
376void EventIndicator::enableColumn(int column, bool enable) 376void EventIndicator::enableColumn(int column, bool enable)
377{ 377{
378 mEnabled[column] = enable; 378 mEnabled[column] = enable;
379} 379}
380 380
381 381
382//////////////////////////////////////////////////////////////////////////// 382////////////////////////////////////////////////////////////////////////////
383//////////////////////////////////////////////////////////////////////////// 383////////////////////////////////////////////////////////////////////////////
384//////////////////////////////////////////////////////////////////////////// 384////////////////////////////////////////////////////////////////////////////
385 385
386KOAgendaView::KOAgendaView(Calendar *cal,QWidget *parent,const char *name) : 386KOAgendaView::KOAgendaView(Calendar *cal,QWidget *parent,const char *name) :
387 KOEventView (cal,parent,name) 387 KOEventView (cal,parent,name)
388{ 388{
389 mBlockUpdating = true; 389 mBlockUpdating = true;
390 mStartHour = 8; 390 mStartHour = 8;
391 mSelectedDates.append(QDate::currentDate()); 391 mSelectedDates.append(QDate::currentDate());
392 392
393 mLayoutDayLabels = 0; 393 mLayoutDayLabels = 0;
394 mDayLabelsFrame = 0; 394 mDayLabelsFrame = 0;
395 mDayLabels = 0; 395 mDayLabels = 0;
396 bool isRTL = KOGlobals::self()->reverseLayout(); 396 bool isRTL = KOGlobals::self()->reverseLayout();
397 QPixmap expandPix; 397 QPixmap expandPix;
398 if ( KOPrefs::instance()->mVerticalScreen ) { 398 if ( KOPrefs::instance()->mVerticalScreen ) {
399 expandPix = SmallIcon( "1updownarrow" ); 399 expandPix = SmallIcon( "1updownarrow" );
400 } else { 400 } else {
401 expandPix = SmallIcon("1leftrightarrow" ); 401 expandPix = SmallIcon("1leftrightarrow" );
402 } 402 }
403 403
404 QBoxLayout *topLayout = new QVBoxLayout(this); 404 QBoxLayout *topLayout = new QVBoxLayout(this);
405 405
406 // Create day name labels for agenda columns 406 // Create day name labels for agenda columns
407 // Create agenda splitter 407 // Create agenda splitter
408 408
409 mSplitterAgenda = new KDGanttMinimizeSplitter( Qt::Vertical, this); 409 mSplitterAgenda = new KDGanttMinimizeSplitter( Qt::Vertical, this);
410 mSplitterAgenda->setMinimizeDirection ( KDGanttMinimizeSplitter::Up ); 410 mSplitterAgenda->setMinimizeDirection ( KDGanttMinimizeSplitter::Up );
411 topLayout->addWidget( mSplitterAgenda ); 411 topLayout->addWidget( mSplitterAgenda );
412 mAllDayFrame = new QHBox(mSplitterAgenda); 412 mAllDayFrame = new QHBox(mSplitterAgenda);
413 mAllDayFrame->setFocusPolicy(NoFocus); 413 mAllDayFrame->setFocusPolicy(NoFocus);
414 QWidget *agendaFrame = new QWidget(mSplitterAgenda); 414 QWidget *agendaFrame = new QWidget(mSplitterAgenda);
415 agendaFrame->setFocusPolicy(NoFocus); 415 agendaFrame->setFocusPolicy(NoFocus);
416 416
417 // Create all-day agenda widget 417 // Create all-day agenda widget
418 mDummyAllDayLeft = new QVBox( mAllDayFrame ); 418 mDummyAllDayLeft = new QVBox( mAllDayFrame );
419 419
420 mExpandButton = new QPushButton(mDummyAllDayLeft); 420 mExpandButton = new QPushButton(mDummyAllDayLeft);
421 mExpandButton->setPixmap( expandPix ); 421 mExpandButton->setPixmap( expandPix );
422 int widebut = mExpandButton->sizeHint().width()+4; 422 int widebut = mExpandButton->sizeHint().width()+4;
423 int heibut = mExpandButton->sizeHint().height()+4; 423 int heibut = mExpandButton->sizeHint().height()+4;
424 if ( heibut > widebut ) 424 if ( heibut > widebut )
425 widebut = heibut ; 425 widebut = heibut ;
426 426
427 //mExpandButton->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, 427 //mExpandButton->setSizePolicy( QSizePolicy( QSizePolicy::Fixed,
428 // QSizePolicy::Fixed ) ); 428 // QSizePolicy::Fixed ) );
429 mExpandButton->setFixedSize( widebut, widebut); 429 mExpandButton->setFixedSize( widebut, widebut);
430 connect( mExpandButton, SIGNAL( clicked() ), SIGNAL( toggleExpand() ) ); 430 connect( mExpandButton, SIGNAL( clicked() ), SIGNAL( toggleExpand() ) );
431 mExpandButton->setFocusPolicy(NoFocus); 431 mExpandButton->setFocusPolicy(NoFocus);
432 mAllDayAgenda = new KOAgenda(1,mAllDayFrame); 432 mAllDayAgenda = new KOAgenda(1,mAllDayFrame);
433 mAllDayAgenda->setFocusPolicy(NoFocus); 433 mAllDayAgenda->setFocusPolicy(NoFocus);
434 QLabel *dummyAllDayRight = new QLabel (mAllDayFrame); 434 QLabel *dummyAllDayRight = new QLabel (mAllDayFrame);
435 435
436 // Create event context menu for all day agenda 436 // Create event context menu for all day agenda
437 mAllDayAgendaPopup = eventPopup(); 437 mAllDayAgendaPopup = eventPopup();
438 connect(mAllDayAgenda,SIGNAL(showIncidencePopupSignal(Incidence *)), 438 connect(mAllDayAgenda,SIGNAL(showIncidencePopupSignal(Incidence *)),
439 mAllDayAgendaPopup,SLOT(showIncidencePopup(Incidence *))); 439 mAllDayAgendaPopup,SLOT(showIncidencePopup(Incidence *)));
440 440
441 // Create agenda frame 441 // Create agenda frame
442 QGridLayout *agendaLayout = new QGridLayout(agendaFrame,4,3); 442 QGridLayout *agendaLayout = new QGridLayout(agendaFrame,4,3);
443 // QHBox *agendaFrame = new QHBox(splitterAgenda); 443 // QHBox *agendaFrame = new QHBox(splitterAgenda);
444 444
445 // create event indicator bars 445 // create event indicator bars
446 mEventIndicatorTop = new EventIndicator(EventIndicator::Top,agendaFrame); 446 mEventIndicatorTop = new EventIndicator(EventIndicator::Top,agendaFrame);
447#ifndef DESKTOP_VERSION 447#ifndef DESKTOP_VERSION
448 // FIX 448 // FIX
449 mEventIndicatorTop->setPaintWidget( mSplitterAgenda ); 449 mEventIndicatorTop->setPaintWidget( mSplitterAgenda );
450#endif 450#endif
451 mDayLabelsFrame = new QHBox(agendaFrame); 451 mDayLabelsFrame = new QHBox(agendaFrame);
452 //topLayout->addWidget(mDayLabelsFrame); 452 //topLayout->addWidget(mDayLabelsFrame);
453 mDayLabels = new QFrame (mDayLabelsFrame); 453 mDayLabels = new QFrame (mDayLabelsFrame);
454 mLayoutDayLabels = new QHBoxLayout(mDayLabels); 454 mLayoutDayLabels = new QHBoxLayout(mDayLabels);
455 agendaLayout->addMultiCellWidget(mDayLabelsFrame ,0,0,0,2); 455 agendaLayout->addMultiCellWidget(mDayLabelsFrame ,0,0,0,2);
456 agendaLayout->addWidget(mEventIndicatorTop,1,1); 456 agendaLayout->addWidget(mEventIndicatorTop,1,1);
457 457
458 mEventIndicatorBottom = new EventIndicator(EventIndicator::Bottom, 458 mEventIndicatorBottom = new EventIndicator(EventIndicator::Bottom,
459 agendaFrame); 459 agendaFrame);
460 agendaLayout->addWidget(mEventIndicatorBottom,3,1); 460 agendaLayout->addWidget(mEventIndicatorBottom,3,1);
461 QWidget *dummyAgendaRight = new QWidget(agendaFrame); 461 QWidget *dummyAgendaRight = new QWidget(agendaFrame);
462 agendaLayout->addWidget(dummyAgendaRight,1,2); 462 agendaLayout->addWidget(dummyAgendaRight,1,2);
463 463
464 // Create time labels 464 // Create time labels
465 mTimeLabels = new TimeLabels(24,agendaFrame); 465 mTimeLabels = new TimeLabels(24,agendaFrame);
466 agendaLayout->addWidget(mTimeLabels,2,0); 466 agendaLayout->addWidget(mTimeLabels,2,0);
467 connect(mTimeLabels,SIGNAL( scaleChanged()), 467 connect(mTimeLabels,SIGNAL( scaleChanged()),
468 this,SLOT(updateConfig())); 468 this,SLOT(updateConfig()));
469 469
470 // Create agenda 470 // Create agenda
471 mAgenda = new KOAgenda(1,96,KOPrefs::instance()->mHourSize,agendaFrame); 471 mAgenda = new KOAgenda(1,96,KOPrefs::instance()->mHourSize,agendaFrame);
472 agendaLayout->addMultiCellWidget(mAgenda,2,2,1,2); 472 agendaLayout->addMultiCellWidget(mAgenda,2,2,1,2);
473 agendaLayout->setColStretch(1,1); 473 agendaLayout->setColStretch(1,1);
474 mAgenda->setFocusPolicy(NoFocus); 474 mAgenda->setFocusPolicy(NoFocus);
475 // Create event context menu for agenda 475 // Create event context menu for agenda
476 mAgendaPopup = eventPopup(); 476 mAgendaPopup = eventPopup();
477 477
478 mAgendaPopup->addAdditionalItem(QIconSet(SmallIcon("bell")), 478 mAgendaPopup->addAdditionalItem(QIconSet(SmallIcon("bell")),
479 i18n("Toggle Alarm"),mAgenda, 479 i18n("Toggle Alarm"),mAgenda,
480 SLOT(popupAlarm()),true); 480 SLOT(popupAlarm()),true);
481 481
482 482
483 connect(mAgenda,SIGNAL(showIncidencePopupSignal(Incidence *)), 483 connect(mAgenda,SIGNAL(showIncidencePopupSignal(Incidence *)),
484 mAgendaPopup,SLOT(showIncidencePopup(Incidence *))); 484 mAgendaPopup,SLOT(showIncidencePopup(Incidence *)));
485 485
486 // make connections between dependent widgets 486 // make connections between dependent widgets
487 mTimeLabels->setAgenda(mAgenda); 487 mTimeLabels->setAgenda(mAgenda);
488 488
489 // Update widgets to reflect user preferences 489 // Update widgets to reflect user preferences
490 // updateConfig(); 490 // updateConfig();
491 491
492 // createDayLabels(); 492 // createDayLabels();
493 493
494 // these blank widgets make the All Day Event box line up with the agenda 494 // these blank widgets make the All Day Event box line up with the agenda
495 dummyAllDayRight->setFixedWidth(mAgenda->verticalScrollBar()->width()); 495 dummyAllDayRight->setFixedWidth(mAgenda->verticalScrollBar()->width());
496 dummyAgendaRight->setFixedWidth(mAgenda->verticalScrollBar()->width()); 496 dummyAgendaRight->setFixedWidth(mAgenda->verticalScrollBar()->width());
497 mDummyAllDayLeft->setFixedWidth(mTimeLabels->width()); 497 mDummyAllDayLeft->setFixedWidth(mTimeLabels->width());
498 498
499 // Scrolling 499 // Scrolling
500 connect(mAgenda->verticalScrollBar(),SIGNAL(valueChanged(int)), 500 connect(mAgenda->verticalScrollBar(),SIGNAL(valueChanged(int)),
501 mTimeLabels, SLOT(positionChanged())); 501 mTimeLabels, SLOT(positionChanged()));
502 connect(mTimeLabels->verticalScrollBar(),SIGNAL(valueChanged(int)), 502 connect(mTimeLabels->verticalScrollBar(),SIGNAL(valueChanged(int)),
503 SLOT(setContentsPos(int))); 503 SLOT(setContentsPos(int)));
504 504
505 connect(mAgenda,SIGNAL(showDateView( int, int)),SLOT(slotShowDateView( int, int ))); 505 connect(mAgenda,SIGNAL(showDateView( int, int)),SLOT(slotShowDateView( int, int )));
506 connect(mAllDayAgenda,SIGNAL(showDateView( int, int )), SLOT(slotShowDateView( int, int ) )); 506 connect(mAllDayAgenda,SIGNAL(showDateView( int, int )), SLOT(slotShowDateView( int, int ) ));
507 507
508 // Create/Show/Edit/Delete Event 508 // Create/Show/Edit/Delete Event
509 connect(mAgenda,SIGNAL(newEventSignal(int,int)), 509 connect(mAgenda,SIGNAL(newEventSignal(int,int)),
510 SLOT(newEvent(int,int))); 510 SLOT(newEvent(int,int)));
511 connect(mAgenda,SIGNAL(newTodoSignal(int,int)), 511 connect(mAgenda,SIGNAL(newTodoSignal(int,int)),
512 SLOT(newTodo(int,int))); 512 SLOT(newTodo(int,int)));
513 connect(mAgenda,SIGNAL(newEventSignal(int,int,int,int)), 513 connect(mAgenda,SIGNAL(newEventSignal(int,int,int,int)),
514 SLOT(newEvent(int,int,int,int))); 514 SLOT(newEvent(int,int,int,int)));
515 connect(mAllDayAgenda,SIGNAL(newEventSignal(int,int)), 515 connect(mAllDayAgenda,SIGNAL(newEventSignal(int,int)),
516 SLOT(newEventAllDay(int,int))); 516 SLOT(newEventAllDay(int,int)));
517 connect(mAllDayAgenda,SIGNAL(newTodoSignal(int,int)), 517 connect(mAllDayAgenda,SIGNAL(newTodoSignal(int,int)),
518 SLOT(newTodoAllDay(int,int))); 518 SLOT(newTodoAllDay(int,int)));
519 connect(mAllDayAgenda,SIGNAL(newEventSignal(int,int,int,int)), 519 connect(mAllDayAgenda,SIGNAL(newEventSignal(int,int,int,int)),
520 SLOT(newEventAllDay(int,int))); 520 SLOT(newEventAllDay(int,int)));
521 connect(mAgenda,SIGNAL(newTimeSpanSignal(int,int,int,int)), 521 connect(mAgenda,SIGNAL(newTimeSpanSignal(int,int,int,int)),
522 SLOT(newTimeSpanSelected(int,int,int,int))); 522 SLOT(newTimeSpanSelected(int,int,int,int)));
523 connect(mAllDayAgenda,SIGNAL(newTimeSpanSignal(int,int,int,int)), 523 connect(mAllDayAgenda,SIGNAL(newTimeSpanSignal(int,int,int,int)),
524 SLOT(newTimeSpanSelectedAllDay(int,int,int,int))); 524 SLOT(newTimeSpanSelectedAllDay(int,int,int,int)));
525 connect(mAgenda,SIGNAL(newStartSelectSignal()),SLOT(updateView())); 525 connect(mAgenda,SIGNAL(newStartSelectSignal()),SLOT(updateView()));
526 connect(mAllDayAgenda,SIGNAL(newStartSelectSignal()),SLOT(updateView())); 526 connect(mAllDayAgenda,SIGNAL(newStartSelectSignal()),SLOT(updateView()));
527 527
528 connect(mAgenda,SIGNAL(editIncidenceSignal(Incidence *)), 528 connect(mAgenda,SIGNAL(editIncidenceSignal(Incidence *)),
529 SIGNAL(editIncidenceSignal(Incidence *))); 529 SIGNAL(editIncidenceSignal(Incidence *)));
530 connect(mAllDayAgenda,SIGNAL(editIncidenceSignal(Incidence *)), 530 connect(mAllDayAgenda,SIGNAL(editIncidenceSignal(Incidence *)),
531 SIGNAL(editIncidenceSignal(Incidence *))); 531 SIGNAL(editIncidenceSignal(Incidence *)));
532 connect(mAgenda,SIGNAL(showIncidenceSignal(Incidence *)), 532 connect(mAgenda,SIGNAL(showIncidenceSignal(Incidence *)),
533 SIGNAL(showIncidenceSignal(Incidence *))); 533 SIGNAL(showIncidenceSignal(Incidence *)));
534 connect(mAllDayAgenda,SIGNAL(showIncidenceSignal(Incidence *)), 534 connect(mAllDayAgenda,SIGNAL(showIncidenceSignal(Incidence *)),
535 SIGNAL(showIncidenceSignal(Incidence *))); 535 SIGNAL(showIncidenceSignal(Incidence *)));
536 connect(mAgenda,SIGNAL(deleteIncidenceSignal(Incidence *)), 536 connect(mAgenda,SIGNAL(deleteIncidenceSignal(Incidence *)),
537 SIGNAL(deleteIncidenceSignal(Incidence *))); 537 SIGNAL(deleteIncidenceSignal(Incidence *)));
538 connect(mAllDayAgenda,SIGNAL(deleteIncidenceSignal(Incidence *)), 538 connect(mAllDayAgenda,SIGNAL(deleteIncidenceSignal(Incidence *)),
539 SIGNAL(deleteIncidenceSignal(Incidence *))); 539 SIGNAL(deleteIncidenceSignal(Incidence *)));
540 540
541 connect(mAgenda,SIGNAL(itemModified(KOAgendaItem *, int )), 541 connect(mAgenda,SIGNAL(itemModified(KOAgendaItem *, int )),
542 SLOT(updateEventDates(KOAgendaItem *, int ))); 542 SLOT(updateEventDates(KOAgendaItem *, int )));
543 connect(mAllDayAgenda,SIGNAL(itemModified(KOAgendaItem *, int )), 543 connect(mAllDayAgenda,SIGNAL(itemModified(KOAgendaItem *, int )),
544 SLOT(updateEventDates(KOAgendaItem *, int))); 544 SLOT(updateEventDates(KOAgendaItem *, int)));
545 545
546 // event indicator update 546 // event indicator update
547 connect(mAgenda,SIGNAL(lowerYChanged(int)), 547 connect(mAgenda,SIGNAL(lowerYChanged(int)),
548 SLOT(updateEventIndicatorTop(int))); 548 SLOT(updateEventIndicatorTop(int)));
549 connect(mAgenda,SIGNAL(upperYChanged(int)), 549 connect(mAgenda,SIGNAL(upperYChanged(int)),
550 SLOT(updateEventIndicatorBottom(int))); 550 SLOT(updateEventIndicatorBottom(int)));
551 // drag signals 551 // drag signals
552 /* 552 /*
553 connect(mAgenda,SIGNAL(startDragSignal(Event *)), 553 connect(mAgenda,SIGNAL(startDragSignal(Event *)),
554 SLOT(startDrag(Event *))); 554 SLOT(startDrag(Event *)));
555 connect(mAllDayAgenda,SIGNAL(startDragSignal(Event *)), 555 connect(mAllDayAgenda,SIGNAL(startDragSignal(Event *)),
556 SLOT(startDrag(Event *))); 556 SLOT(startDrag(Event *)));
557 */ 557 */
558 // synchronize selections 558 // synchronize selections
559 connect( mAgenda, SIGNAL( incidenceSelected( Incidence * ) ), 559 connect( mAgenda, SIGNAL( incidenceSelected( Incidence * ) ),
560 mAllDayAgenda, SLOT( deselectItem() ) ); 560 mAllDayAgenda, SLOT( deselectItem() ) );
561 connect( mAllDayAgenda, SIGNAL( incidenceSelected( Incidence * ) ), 561 connect( mAllDayAgenda, SIGNAL( incidenceSelected( Incidence * ) ),
562 mAgenda, SLOT( deselectItem() ) ); 562 mAgenda, SLOT( deselectItem() ) );
563 connect( mAgenda, SIGNAL( incidenceSelected( Incidence * ) ), 563 connect( mAgenda, SIGNAL( incidenceSelected( Incidence * ) ),
564 SIGNAL( incidenceSelected( Incidence * ) ) ); 564 SIGNAL( incidenceSelected( Incidence * ) ) );
565 connect( mAllDayAgenda, SIGNAL( incidenceSelected( Incidence * ) ), 565 connect( mAllDayAgenda, SIGNAL( incidenceSelected( Incidence * ) ),
566 SIGNAL( incidenceSelected( Incidence * ) ) ); 566 SIGNAL( incidenceSelected( Incidence * ) ) );
567 connect( mAgenda, SIGNAL( resizedSignal() ), 567 connect( mAgenda, SIGNAL( resizedSignal() ),
568 SLOT( updateConfig( ) ) ); 568 SLOT( updateConfig( ) ) );
569 connect( mAgenda, SIGNAL( addToCalSignal(Incidence *, Incidence *) ), 569 connect( mAgenda, SIGNAL( addToCalSignal(Incidence *, Incidence *) ),
570 SLOT( addToCalSlot(Incidence *, Incidence * ) ) ); 570 SLOT( addToCalSlot(Incidence *, Incidence * ) ) );
571 connect( mAllDayAgenda, SIGNAL( addToCalSignal(Incidence * ,Incidence *) ), 571 connect( mAllDayAgenda, SIGNAL( addToCalSignal(Incidence * ,Incidence *) ),
572 SLOT( addToCalSlot(Incidence * , Incidence *) ) ); 572 SLOT( addToCalSlot(Incidence * , Incidence *) ) );
573 // connect( mAgenda, SIGNAL( cloneIncidenceSignal(Incidence *) ), SIGNAL( cloneIncidenceSignal(Incidence *) ) ); 573 // connect( mAgenda, SIGNAL( cloneIncidenceSignal(Incidence *) ), SIGNAL( cloneIncidenceSignal(Incidence *) ) );
574 //connect( mAllDayAgenda, SIGNAL( cloneIncidenceSignal(Incidence *) ), SIGNAL( cloneIncidenceSignal(Incidence *) ) ); 574 //connect( mAllDayAgenda, SIGNAL( cloneIncidenceSignal(Incidence *) ), SIGNAL( cloneIncidenceSignal(Incidence *) ) );
575 575
576 576
577} 577}
578 578
579void KOAgendaView::toggleAllDay() 579void KOAgendaView::toggleAllDay()
580{ 580{
581 if ( mSplitterAgenda->firstHandle() ) 581 if ( mSplitterAgenda->firstHandle() )
582 mSplitterAgenda->firstHandle()->toggle(); 582 mSplitterAgenda->firstHandle()->toggle();
583} 583}
584void KOAgendaView::addToCalSlot(Incidence * inc, Incidence * incOld ) 584void KOAgendaView::addToCalSlot(Incidence * inc, Incidence * incOld )
585{ 585{
586 calendar()->addIncidence( inc ); 586 calendar()->addIncidence( inc );
587 587
588 if ( incOld ) { 588 if ( incOld ) {
589 if ( incOld->type() == "Todo" ) 589 if ( incOld->type() == "Todo" )
590 emit todoMoved((Todo*)incOld, KOGlobals::EVENTEDITED ); 590 emit todoMoved((Todo*)incOld, KOGlobals::EVENTEDITED );
591 else 591 else
592 emit incidenceChanged(incOld, KOGlobals::EVENTEDITED); 592 emit incidenceChanged(incOld, KOGlobals::EVENTEDITED);
593 } 593 }
594 594
595} 595}
596 596
597KOAgendaView::~KOAgendaView() 597KOAgendaView::~KOAgendaView()
598{ 598{
599 delete mAgendaPopup; 599 delete mAgendaPopup;
600 delete mAllDayAgendaPopup; 600 delete mAllDayAgendaPopup;
601 delete KOAgendaItem::paintPix(); 601 delete KOAgendaItem::paintPix();
602 delete KOAgendaItem::paintPixSel(); 602 delete KOAgendaItem::paintPixSel();
603} 603}
604void KOAgendaView::resizeEvent( QResizeEvent* e ) 604void KOAgendaView::resizeEvent( QResizeEvent* e )
605{ 605{
606 //qDebug("KOAgendaView::resizeEvent( QResizeEvent* e ) %d ", e->size().width()); 606 //qDebug("KOAgendaView::resizeEvent( QResizeEvent* e ) %d ", e->size().width());
607 bool uc = false; 607 bool uc = false;
608 int ow = e->oldSize().width(); 608 int ow = e->oldSize().width();
609 int oh = e->oldSize().height(); 609 int oh = e->oldSize().height();
610 int w = e->size().width(); 610 int w = e->size().width();
611 int h = e->size().height(); 611 int h = e->size().height();
612 if ( (ow > oh && w< h ) || (ow < oh && w > h ) ) { 612 if ( (ow > oh && w< h ) || (ow < oh && w > h ) ) {
613 if ( ! mBlockUpdating && !globalFlagBlockStartup && !globalFlagBlockAgenda ) 613 if ( ! mBlockUpdating && !globalFlagBlockStartup && !globalFlagBlockAgenda )
614 uc = true; 614 uc = true;
615 //qDebug("view changed %d %d %d %d ", ow, oh , w , h); 615 //qDebug("view changed %d %d %d %d ", ow, oh , w , h);
616 } 616 }
617 mUpcomingWidth = e->size().width() ; 617 mUpcomingWidth = e->size().width() ;
618 if ( mBlockUpdating || uc ) { 618 if ( mBlockUpdating || uc ) {
619 mBlockUpdating = false; 619 mBlockUpdating = false;
620 //mAgenda->setMinimumSize(800 , 600 ); 620 //mAgenda->setMinimumSize(800 , 600 );
621 //qDebug("mAgenda->resize+++++++++++++++ "); 621 //qDebug("mAgenda->resize+++++++++++++++ ");
622 updateConfig(); 622 updateConfig();
623 //qDebug("KOAgendaView::Updating now possible "); 623 //qDebug("KOAgendaView::Updating now possible ");
624 } else 624 } else
625 createDayLabels(); 625 createDayLabels();
626 //qDebug("resizeEvent end "); 626 //qDebug("resizeEvent end ");
627 627
628} 628}
629void KOAgendaView::slotDaylabelClicked( int num ) 629void KOAgendaView::slotDaylabelClicked( int num )
630{ 630{
631 631
632 QDate firstDate = mSelectedDates.first(); 632 QDate firstDate = mSelectedDates.first();
633 if ( num == -1 ) 633 if ( num == -1 )
634 emit showDateView( 6, firstDate ); 634 emit showDateView( 6, firstDate );
635 else if (num >= 0 ) { 635 else if (num >= 0 ) {
636 if ( mSelectedDates.count() == 1) 636 if ( mSelectedDates.count() == 1)
637 emit showDateView( 9, firstDate.addDays( num ) ); 637 emit showDateView( 9, firstDate.addDays( num ) );
638 else 638 else
639 emit showDateView( 3, firstDate.addDays( num ) ); 639 emit showDateView( 3, firstDate.addDays( num ) );
640 } 640 }
641 else 641 else
642 showDateView( 10, firstDate.addDays(1) ); 642 showDateView( 10, firstDate.addDays(1) );
643} 643}
644 644
645KOAgendaButton* KOAgendaView::getNewDaylabel() 645KOAgendaButton* KOAgendaView::getNewDaylabel()
646{ 646{
647 647
648 KOAgendaButton * dayLabel = new KOAgendaButton(mDayLabels); 648 KOAgendaButton * dayLabel = new KOAgendaButton(mDayLabels);
649 connect( dayLabel, SIGNAL( numClicked(int) ), this, SLOT ( slotDaylabelClicked(int) ) ); 649 connect( dayLabel, SIGNAL( numClicked(int) ), this, SLOT ( slotDaylabelClicked(int) ) );
650 mDayLabelsList.append( dayLabel ); 650 mDayLabelsList.append( dayLabel );
651 mLayoutDayLabels->addWidget(dayLabel); 651 mLayoutDayLabels->addWidget(dayLabel);
652 return dayLabel ; 652 return dayLabel ;
653} 653}
654 654
655void KOAgendaView::createDayLabels() 655void KOAgendaView::createDayLabels()
656{ 656{
657 657
658 if ( mBlockUpdating || globalFlagBlockLabel == 1) { 658 if ( mBlockUpdating || globalFlagBlockLabel == 1) {
659 // qDebug(" KOAgendaView::createDayLabels() blocked "); 659 // qDebug(" KOAgendaView::createDayLabels() blocked ");
660 return; 660 return;
661 661
662 } 662 }
663 int newHight; 663 int newHight;
664 664
665 // ### Before deleting and recreating we could check if mSelectedDates changed... 665 // ### Before deleting and recreating we could check if mSelectedDates changed...
666 // It would remove some flickering and gain speed (since this is called by 666 // It would remove some flickering and gain speed (since this is called by
667 // each updateView() call) 667 // each updateView() call)
668 668
669 int maxWid = mUpcomingWidth - mTimeLabels->width()- mAgenda->verticalScrollBar()->width() - 2; 669 int maxWid = mUpcomingWidth - mTimeLabels->width()- mAgenda->verticalScrollBar()->width() - mAgenda->frameWidth()*2;
670 mDayLabelsFrame->setMaximumWidth( mUpcomingWidth ); 670 mDayLabelsFrame->setMaximumWidth( mUpcomingWidth );
671 if ( maxWid < 0 ) 671 if ( maxWid < 0 )
672 maxWid = 20; 672 maxWid = 20;
673 673
674 QFont dlf = KOPrefs::instance()->mTimeLabelsFont; 674 QFont dlf = KOPrefs::instance()->mTimeLabelsFont;
675 QFontMetrics fm ( dlf ); 675 QFontMetrics fm ( dlf );
676 int selCount = mSelectedDates.count(); 676 int selCount = mSelectedDates.count();
677 QString dayTest = "Mon 20"; 677 QString dayTest = "Mon 20";
678 //QString dayTest = "Mon 20"; 678 //QString dayTest = "Mon 20";
679 int wid = fm.width( dayTest ); 679 int wid = fm.width( dayTest );
680 //maxWid -= ( selCount * 3 ); //working for QLabels 680 //maxWid -= ( selCount * 3 ); //working for QLabels
681 maxWid -= ( selCount * 3 ); //working for QPushButton 681 maxWid -= ( selCount * 3 ); //working for QPushButton
682 if ( maxWid < 0 ) 682 if ( maxWid < 0 )
683 maxWid = 20; 683 maxWid = 20;
684 int needWid = wid * selCount; 684 int needWid = wid * selCount;
685 //qDebug("++++++++Needed : %d MaxWidth: %d", needWid, maxWid ); 685 //qDebug("++++++++Needed : %d MaxWidth: %d", needWid, maxWid );
686 //if ( needWid > maxWid ) 686 //if ( needWid > maxWid )
687 // qDebug("DAYLABELS TOOOOOOO BIG "); 687 // qDebug("DAYLABELS TOOOOOOO BIG ");
688 while ( needWid > maxWid ) { 688 while ( needWid > maxWid ) {
689 dayTest = dayTest.left( dayTest.length() - 1 ); 689 dayTest = dayTest.left( dayTest.length() - 1 );
690 wid = fm.width( dayTest ); 690 wid = fm.width( dayTest );
691 needWid = wid * selCount; 691 needWid = wid * selCount;
692 } 692 }
693 int maxLen = dayTest.length(); 693 int maxLen = dayTest.length();
694 int fontPoint = dlf.pointSize(); 694 int fontPoint = dlf.pointSize();
695 if ( maxLen < 2 ) { 695 if ( maxLen < 2 ) {
696 int fontPoint = dlf.pointSize(); 696 int fontPoint = dlf.pointSize();
697 while ( fontPoint > 4 ) { 697 while ( fontPoint > 4 ) {
698 --fontPoint; 698 --fontPoint;
699 dlf.setPointSize( fontPoint ); 699 dlf.setPointSize( fontPoint );
700 QFontMetrics f( dlf ); 700 QFontMetrics f( dlf );
701 wid = f.width( "30" ); 701 wid = f.width( "30" );
702 needWid = wid * selCount; 702 needWid = wid * selCount;
703 if ( needWid < maxWid ) 703 if ( needWid < maxWid )
704 break; 704 break;
705 } 705 }
706 maxLen = 2; 706 maxLen = 2;
707 } 707 }
708 //qDebug("Max len %d ", dayTest.length() ); 708 //qDebug("Max len %d ", dayTest.length() );
709 709
710 QFontMetrics tempF( dlf ); 710 QFontMetrics tempF( dlf );
711 newHight = tempF.height(); 711 newHight = tempF.height();
712 mDayLabels->setFont( dlf ); 712 mDayLabels->setFont( dlf );
713 // mLayoutDayLabels = new QHBoxLayout(mDayLabels);; 713 // mLayoutDayLabels = new QHBoxLayout(mDayLabels);;
714 // mLayoutDayLabels->addSpacing(mTimeLabels->width()); 714 // mLayoutDayLabels->addSpacing(mTimeLabels->width());
715 //mLayoutDayLabels->addSpacing( 2 ); 715 //mLayoutDayLabels->addSpacing( 2 );
716 // QFont lFont = dlf; 716 // QFont lFont = dlf;
717 bool appendLabels = false; 717 bool appendLabels = false;
718 KOAgendaButton *dayLabel; 718 KOAgendaButton *dayLabel;
719 dayLabel = mDayLabelsList.first(); 719 dayLabel = mDayLabelsList.first();
720 if ( !dayLabel ) { 720 if ( !dayLabel ) {
721 appendLabels = true; 721 appendLabels = true;
722 dayLabel = getNewDaylabel(); 722 dayLabel = getNewDaylabel();
723 } 723 }
724 dayLabel->setFixedWidth( mTimeLabels->width()+mAgenda->frameWidth() ); 724 dayLabel->setFixedWidth( mTimeLabels->width()+mAgenda->frameWidth() );
725 dayLabel->setFont( dlf ); 725 dayLabel->setFont( dlf );
726 dayLabel->setNum( -1 ); 726 dayLabel->setNum( -1 );
727 //dayLabel->setAlignment(QLabel::AlignHCenter); 727 //dayLabel->setAlignment(QLabel::AlignHCenter);
728 dayLabel->setText( KOGlobals::self()->calendarSystem()->monthName( mSelectedDates.first(), true ) ); 728 dayLabel->setText( KOGlobals::self()->calendarSystem()->monthName( mSelectedDates.first(), true ) );
729 dayLabel->show(); 729 dayLabel->show();
730 DateList::ConstIterator dit; 730 DateList::ConstIterator dit;
731 bool oneday = (mSelectedDates.first() == mSelectedDates.last() ); 731 bool oneday = (mSelectedDates.first() == mSelectedDates.last() );
732 int counter = -1; 732 int counter = -1;
733 for( dit = mSelectedDates.begin(); dit != mSelectedDates.end(); ++dit ) { 733 for( dit = mSelectedDates.begin(); dit != mSelectedDates.end(); ++dit ) {
734 ++counter; 734 ++counter;
735 QDate date = *dit; 735 QDate date = *dit;
736 // QBoxLayout *dayLayout = new QVBoxLayout(mLayoutDayLabels); 736 // QBoxLayout *dayLayout = new QVBoxLayout(mLayoutDayLabels);
737 if ( ! appendLabels ) { 737 if ( ! appendLabels ) {
738 dayLabel = mDayLabelsList.next(); 738 dayLabel = mDayLabelsList.next();
739 if ( !dayLabel ) 739 if ( !dayLabel )
740 appendLabels = true; 740 appendLabels = true;
741 } 741 }
742 if ( appendLabels ) { 742 if ( appendLabels ) {
743 dayLabel = getNewDaylabel(); 743 dayLabel = getNewDaylabel();
744 } 744 }
745 dayLabel->setMinimumWidth( 1 ); 745 dayLabel->setMinimumWidth( 1 );
746 dayLabel->setMaximumWidth( 10240 ); 746 dayLabel->setMaximumWidth( 10240 );
747 dayLabel->setFont( dlf ); 747 dayLabel->setFont( dlf );
748 dayLabel->show(); 748 dayLabel->show();
749 dayLabel->setAutoRepeat( false ); 749 dayLabel->setAutoRepeat( false );
750 dayLabel->setNum( counter ); 750 dayLabel->setNum( counter );
751 QString str; 751 QString str;
752 int dW = KOGlobals::self()->calendarSystem()->dayOfWeek(date); 752 int dW = KOGlobals::self()->calendarSystem()->dayOfWeek(date);
753 QString dayName = KOGlobals::self()->calendarSystem()->weekDayName( dW, true ); 753 QString dayName = KOGlobals::self()->calendarSystem()->weekDayName( dW, true );
754 switch ( maxLen ) { 754 switch ( maxLen ) {
755 case 2: 755 case 2:
756 str = QString::number( date.day() ); 756 str = QString::number( date.day() );
757 break; 757 break;
758 758
759 case 3: 759 case 3:
760 str = dayName.left( 1 ) +QString::number( date.day()); 760 str = dayName.left( 1 ) +QString::number( date.day());
761 761
762 break; 762 break;
763 case 4: 763 case 4:
764 str = dayName.left( 1 ) + " " +QString::number( date.day()); 764 str = dayName.left( 1 ) + " " +QString::number( date.day());
765 765
766 break; 766 break;
767 case 5: 767 case 5:
768 str = dayName.left( 2 ) + " " +QString::number( date.day()); 768 str = dayName.left( 2 ) + " " +QString::number( date.day());
769 769
770 break; 770 break;
771 case 6: 771 case 6:
772 str = dayName.left( 3 ) + " " +QString::number( date.day()); 772 str = dayName.left( 3 ) + " " +QString::number( date.day());
773 break; 773 break;
774 774
775 default: 775 default:
776 break; 776 break;
777 } 777 }
778 if ( oneday ) { 778 if ( oneday ) {
779 QString addString; 779 QString addString;
780 if ( mSelectedDates.first() == QDateTime::currentDateTime().date() ) 780 if ( mSelectedDates.first() == QDateTime::currentDateTime().date() )
781 addString = i18n("Today"); 781 addString = i18n("Today");
782 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(1) ) 782 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(1) )
783 addString = i18n("Tomorrow"); 783 addString = i18n("Tomorrow");
784 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(-1) ) 784 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(-1) )
785 addString = i18n("Yesterday"); 785 addString = i18n("Yesterday");
786 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(-2) ) 786 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(-2) )
787 addString = i18n("Day before yesterday"); 787 addString = i18n("Day before yesterday");
788 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(2) ) 788 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(2) )
789 addString = i18n("Day after tomorrow"); 789 addString = i18n("Day after tomorrow");
790 if ( !addString.isEmpty() ) { 790 if ( !addString.isEmpty() ) {
791 str = addString+", " + str; 791 str = addString+", " + str;
792 } else { 792 } else {
793 str = KGlobal::locale()->formatDate( date, KOPrefs::instance()->mShortDateInViewer); 793 str = KGlobal::locale()->formatDate( date, KOPrefs::instance()->mShortDateInViewer);
794 } 794 }
795 } 795 }
796 dayLabel->setText(str); 796 dayLabel->setText(str);
797 //dayLabel->setAlignment(QLabel::AlignHCenter); 797 //dayLabel->setAlignment(QLabel::AlignHCenter);
798 if (date == QDate::currentDate()) { 798 if (date == QDate::currentDate()) {
799 QFont bFont = dlf; 799 QFont bFont = dlf;
800 bFont.setBold( true ); 800 bFont.setBold( true );
801 dayLabel->setFont(bFont); 801 dayLabel->setFont(bFont);
802 } 802 }
803 //dayLayout->addWidget(dayLabel); 803 //dayLayout->addWidget(dayLabel);
804 804
805#ifndef KORG_NOPLUGINS 805#ifndef KORG_NOPLUGINS
806 CalendarDecoration::List cds = KOCore::self()->calendarDecorations(); 806 CalendarDecoration::List cds = KOCore::self()->calendarDecorations();
807 CalendarDecoration *it; 807 CalendarDecoration *it;
808 for(it = cds.first(); it; it = cds.next()) { 808 for(it = cds.first(); it; it = cds.next()) {
809 QString text = it->shortText( date ); 809 QString text = it->shortText( date );
810 if ( !text.isEmpty() ) { 810 if ( !text.isEmpty() ) {
811 QLabel *label = new QLabel(text,mDayLabels); 811 QLabel *label = new QLabel(text,mDayLabels);
812 label->setAlignment(AlignCenter); 812 label->setAlignment(AlignCenter);
813 dayLayout->addWidget(label); 813 dayLayout->addWidget(label);
814 } 814 }
815 } 815 }
816 816
817 for(it = cds.first(); it; it = cds.next()) { 817 for(it = cds.first(); it; it = cds.next()) {
818 QWidget *wid = it->smallWidget(mDayLabels,date); 818 QWidget *wid = it->smallWidget(mDayLabels,date);
819 if ( wid ) { 819 if ( wid ) {
820 // wid->setHeight(20); 820 // wid->setHeight(20);
821 dayLayout->addWidget(wid); 821 dayLayout->addWidget(wid);
822 } 822 }
823 } 823 }
824#endif 824#endif
825 } 825 }
826 if ( ! appendLabels ) { 826 if ( ! appendLabels ) {
827 dayLabel = mDayLabelsList.next(); 827 dayLabel = mDayLabelsList.next();
828 if ( !dayLabel ) 828 if ( !dayLabel )
829 appendLabels = true; 829 appendLabels = true;
830 } 830 }
831 if ( appendLabels ) { 831 if ( appendLabels ) {
832 dayLabel = getNewDaylabel(); 832 dayLabel = getNewDaylabel();
833 } 833 }
834 //dayLabel->hide();//test only 834 //dayLabel->hide();//test only
835 qDebug("fremwidd %d ", mAgenda->frameWidth()); 835 qDebug("fremwidd %d ", mAgenda->frameWidth());
836 int offset = (mAgenda->width() - mAgenda->verticalScrollBar()->width()- (mAgenda->frameWidth()*2) ) % mSelectedDates.count() ; 836 int offset = (mAgenda->width() - mAgenda->verticalScrollBar()->width()- (mAgenda->frameWidth()*2) ) % mSelectedDates.count() ;
837 if ( offset < 0 ) offset = 0; 837 if ( offset < 0 ) offset = 0;
838 //qDebug("mLayoutDayLabels->addSpacing %d ", mAgenda->verticalScrollBar()->width()+offset+2 ); 838 //qDebug("mLayoutDayLabels->addSpacing %d ", mAgenda->verticalScrollBar()->width()+offset+2 );
839 dayLabel->setText(">");//QString::number ( mSelectedDates.first().month() ) ); 839 dayLabel->setText(">");//QString::number ( mSelectedDates.first().month() ) );
840 dayLabel->setFont( dlf ); 840 dayLabel->setFont( dlf );
841 dayLabel->setAutoRepeat( true ); 841 dayLabel->setAutoRepeat( true );
842 dayLabel->show(); 842 dayLabel->show();
843 dayLabel->setNum( -2 ); 843 dayLabel->setNum( -2 );
844 dayLabel->setFixedWidth( mAgenda->verticalScrollBar()->width()+ offset ); 844 dayLabel->setFixedWidth( mAgenda->verticalScrollBar()->width()+ offset );
845 //qDebug("setToFixed %d ", mAgenda->verticalScrollBar()->width()+ offset+2); 845 //qDebug("setToFixed %d ", mAgenda->verticalScrollBar()->width()+ offset+2);
846 //mLayoutDayLabels->addSpacing(mAgenda->verticalScrollBar()->width()+ offset+2); 846 //mLayoutDayLabels->addSpacing(mAgenda->verticalScrollBar()->width()+ offset+2);
847 if ( !appendLabels ) { 847 if ( !appendLabels ) {
848 dayLabel = mDayLabelsList.next(); 848 dayLabel = mDayLabelsList.next();
849 while ( dayLabel ) { 849 while ( dayLabel ) {
850 //qDebug("!dayLabel %d",dayLabel ); 850 //qDebug("!dayLabel %d",dayLabel );
851 dayLabel->hide(); 851 dayLabel->hide();
852 dayLabel = mDayLabelsList.next(); 852 dayLabel = mDayLabelsList.next();
853 } 853 }
854 } 854 }
855 855
856 mDayLabelsFrame->setFixedHeight( newHight + 4 ); 856 mDayLabelsFrame->setFixedHeight( newHight + 4 );
857} 857}
858 858
859int KOAgendaView::maxDatesHint() 859int KOAgendaView::maxDatesHint()
860{ 860{
861 // Not sure about the max number of events, so return 0 for now. 861 // Not sure about the max number of events, so return 0 for now.
862 return 0; 862 return 0;
863} 863}
864 864
865int KOAgendaView::currentDateCount() 865int KOAgendaView::currentDateCount()
866{ 866{
867 return mSelectedDates.count(); 867 return mSelectedDates.count();
868} 868}
869 869
870QPtrList<Incidence> KOAgendaView::selectedIncidences() 870QPtrList<Incidence> KOAgendaView::selectedIncidences()
871{ 871{
872 QPtrList<Incidence> selected; 872 QPtrList<Incidence> selected;
873 Incidence *incidence; 873 Incidence *incidence;
874 874
875 incidence = mAgenda->selectedIncidence(); 875 incidence = mAgenda->selectedIncidence();
876 if (incidence) selected.append(incidence); 876 if (incidence) selected.append(incidence);
877 877
878 incidence = mAllDayAgenda->selectedIncidence(); 878 incidence = mAllDayAgenda->selectedIncidence();
879 if (incidence) selected.append(incidence); 879 if (incidence) selected.append(incidence);
880 880
881 return selected; 881 return selected;
882} 882}
883 883
884DateList KOAgendaView::selectedDates() 884DateList KOAgendaView::selectedDates()
885{ 885{
886 DateList selected; 886 DateList selected;
887 QDate qd; 887 QDate qd;
888 888
889 qd = mAgenda->selectedIncidenceDate(); 889 qd = mAgenda->selectedIncidenceDate();
890 if (qd.isValid()) selected.append(qd); 890 if (qd.isValid()) selected.append(qd);
891 891
892 qd = mAllDayAgenda->selectedIncidenceDate(); 892 qd = mAllDayAgenda->selectedIncidenceDate();
893 if (qd.isValid()) selected.append(qd); 893 if (qd.isValid()) selected.append(qd);
894 894
895 return selected; 895 return selected;
896} 896}
897 897
898 898
899void KOAgendaView::updateView() 899void KOAgendaView::updateView()
900{ 900{
901 if ( mBlockUpdating ) 901 if ( mBlockUpdating )
902 return; 902 return;
903 // kdDebug() << "KOAgendaView::updateView()" << endl; 903 // kdDebug() << "KOAgendaView::updateView()" << endl;
904 fillAgenda(); 904 fillAgenda();
905 905
906} 906}
907 907
908 908
909/* 909/*
910 Update configuration settings for the agenda view. This method is not 910 Update configuration settings for the agenda view. This method is not
911 complete. 911 complete.
912*/ 912*/
913void KOAgendaView::updateConfig() 913void KOAgendaView::updateConfig()
914{ 914{
915 if ( mBlockUpdating ) 915 if ( mBlockUpdating )
916 return; 916 return;
917 if ( mAgenda->height() > 96 * KOPrefs::instance()->mHourSize ) { 917 if ( mAgenda->height() > 96 * KOPrefs::instance()->mHourSize ) {
918 int old = KOPrefs::instance()->mHourSize; 918 int old = KOPrefs::instance()->mHourSize;
919 KOPrefs::instance()->mHourSize = mAgenda->height()/96 +1; 919 KOPrefs::instance()->mHourSize = mAgenda->height()/96 +1;
920 qDebug("KOPrefs::instance()->mHourSize adjusted %d to %d ", old,KOPrefs::instance()->mHourSize ); 920 qDebug("KOPrefs::instance()->mHourSize adjusted %d to %d ", old,KOPrefs::instance()->mHourSize );
921 } 921 }
922 922
923 923
924 // update config for children 924 // update config for children
925 mTimeLabels->updateConfig(); 925 mTimeLabels->updateConfig();
926 mAgenda->storePosition(); 926 mAgenda->storePosition();
927 mAgenda->updateConfig(); 927 mAgenda->updateConfig();
928 mAllDayAgenda->updateConfig(); 928 mAllDayAgenda->updateConfig();
929 // widget synchronization 929 // widget synchronization
930 //TODO: find a better way, maybe signal/slot 930 //TODO: find a better way, maybe signal/slot
931 mTimeLabels->positionChanged(); 931 mTimeLabels->positionChanged();
932 932
933 // for some reason, this needs to be called explicitly 933 // for some reason, this needs to be called explicitly
934 mTimeLabels->repaint(); 934 mTimeLabels->repaint();
935 935
936 mDummyAllDayLeft->setFixedWidth(mTimeLabels->width()); 936 mDummyAllDayLeft->setFixedWidth(mTimeLabels->width());
937 937
938 // ToolTips displaying summary of events 938 // ToolTips displaying summary of events
939 KOAgendaItem::toolTipGroup()->setEnabled(KOPrefs::instance() 939 KOAgendaItem::toolTipGroup()->setEnabled(KOPrefs::instance()
940 ->mEnableToolTips); 940 ->mEnableToolTips);
941 941
942 //setHolidayMasks(); 942 //setHolidayMasks();
943 943
944 //createDayLabels(); called by via updateView(); 944 //createDayLabels(); called by via updateView();
945 mEventIndicatorTop->setXOffset(mTimeLabels->width() + mAgenda->frameWidth()); 945 mEventIndicatorTop->setXOffset(mTimeLabels->width() + mAgenda->frameWidth());
946 updateView(); 946 updateView();
947 mAgenda->restorePosition(); 947 mAgenda->restorePosition();
948} 948}
949 949
950 950
951void KOAgendaView::updateEventDates(KOAgendaItem *item, int type) 951void KOAgendaView::updateEventDates(KOAgendaItem *item, int type)
952{ 952{
953 // kdDebug() << "KOAgendaView::updateEventDates(): " << item->text() << endl; 953 // kdDebug() << "KOAgendaView::updateEventDates(): " << item->text() << endl;
954 //qDebug("KOAgendaView::updateEventDates "); 954 //qDebug("KOAgendaView::updateEventDates ");
955 QDateTime startDt,endDt; 955 QDateTime startDt,endDt;
956 QDate startDate; 956 QDate startDate;
957 int lenInSecs; 957 int lenInSecs;
958 // if ( type == KOAgenda::RESIZETOP ) 958 // if ( type == KOAgenda::RESIZETOP )
959 // qDebug("RESIZETOP "); 959 // qDebug("RESIZETOP ");
960 // if ( type == KOAgenda::RESIZEBOTTOM ) 960 // if ( type == KOAgenda::RESIZEBOTTOM )
961 // qDebug("RESIZEBOTTOM "); 961 // qDebug("RESIZEBOTTOM ");
962 // if ( type == KOAgenda::MOVE ) 962 // if ( type == KOAgenda::MOVE )
963 // qDebug("MOVE "); 963 // qDebug("MOVE ");
964 if ( item->incidence()->type() == "Event" ) { 964 if ( item->incidence()->type() == "Event" ) {
965 startDt =item->incidence()->dtStart(); 965 startDt =item->incidence()->dtStart();
966 endDt = item->incidence()->dtEnd(); 966 endDt = item->incidence()->dtEnd();
967 lenInSecs = startDt.secsTo( endDt ); 967 lenInSecs = startDt.secsTo( endDt );
968 } 968 }
969 969
970 // emit incidenceItemChanged( item->incidence(), KOGlobals::EVENTEDITED ); 970 // emit incidenceItemChanged( item->incidence(), KOGlobals::EVENTEDITED );
971 971
972 if ( item->incidence()->type()=="Todo" && item->mLastMoveXPos > 0 ) { 972 if ( item->incidence()->type()=="Todo" && item->mLastMoveXPos > 0 ) {
973 startDate = mSelectedDates[item->mLastMoveXPos]; 973 startDate = mSelectedDates[item->mLastMoveXPos];
974 } else { 974 } else {
975 if (item->cellX() < 0) { 975 if (item->cellX() < 0) {
976 startDate = (mSelectedDates.first()).addDays(item->cellX()); 976 startDate = (mSelectedDates.first()).addDays(item->cellX());
977 } else { 977 } else {
978 startDate = mSelectedDates[item->cellX()]; 978 startDate = mSelectedDates[item->cellX()];
979 } 979 }
980 } 980 }
981 startDt.setDate(startDate); 981 startDt.setDate(startDate);
982 982
983 if (item->incidence()->doesFloat()) { 983 if (item->incidence()->doesFloat()) {
984 endDt.setDate(startDate.addDays(item->cellWidth() - 1)); 984 endDt.setDate(startDate.addDays(item->cellWidth() - 1));
985 } else { 985 } else {
986 if ( type == KOAgenda::RESIZETOP || type == KOAgenda::MOVE ) 986 if ( type == KOAgenda::RESIZETOP || type == KOAgenda::MOVE )
987 startDt.setTime(mAgenda->gyToTime(item->cellYTop())); 987 startDt.setTime(mAgenda->gyToTime(item->cellYTop()));
988 if ( item->incidence()->type() == "Event" ) { 988 if ( item->incidence()->type() == "Event" ) {
989 if ( type == KOAgenda::MOVE ) { 989 if ( type == KOAgenda::MOVE ) {
990 endDt = startDt.addSecs(lenInSecs); 990 endDt = startDt.addSecs(lenInSecs);
991 991
992 } else if ( type == KOAgenda::RESIZEBOTTOM ) { 992 } else if ( type == KOAgenda::RESIZEBOTTOM ) {
993 if (item->lastMultiItem()) { 993 if (item->lastMultiItem()) {
994 endDt.setTime(mAgenda->gyToTime(item->lastMultiItem()->cellYBottom()+1)); 994 endDt.setTime(mAgenda->gyToTime(item->lastMultiItem()->cellYBottom()+1));
995 endDt.setDate(startDate. 995 endDt.setDate(startDate.
996 addDays(item->lastMultiItem()->cellX() - item->cellX())); 996 addDays(item->lastMultiItem()->cellX() - item->cellX()));
997 } else { 997 } else {
998 endDt.setTime(mAgenda->gyToTime(item->cellYBottom()+1)); 998 endDt.setTime(mAgenda->gyToTime(item->cellYBottom()+1));
999 endDt.setDate(startDate); 999 endDt.setDate(startDate);
1000 } 1000 }
1001 } 1001 }
1002 } else { 1002 } else {
1003 // todo 1003 // todo
1004 if (item->lastMultiItem()) { 1004 if (item->lastMultiItem()) {
1005 endDt.setTime(mAgenda->gyToTime(item->lastMultiItem()->cellYBottom()+1)); 1005 endDt.setTime(mAgenda->gyToTime(item->lastMultiItem()->cellYBottom()+1));
1006 endDt.setDate(startDate. 1006 endDt.setDate(startDate.
1007 addDays(item->lastMultiItem()->cellX() - item->cellX())); 1007 addDays(item->lastMultiItem()->cellX() - item->cellX()));
1008 } else { 1008 } else {
1009 //qDebug("tem->cellYBottom() %d",item->cellYBottom() ); 1009 //qDebug("tem->cellYBottom() %d",item->cellYBottom() );
1010 if ( item->cellYBottom() > 0 ) 1010 if ( item->cellYBottom() > 0 )
1011 endDt.setTime(mAgenda->gyToTime(item->cellYBottom()+1)); 1011 endDt.setTime(mAgenda->gyToTime(item->cellYBottom()+1));
1012 else 1012 else
1013 endDt.setTime((static_cast<Todo*>(item->incidence()))->dtDue().time()); 1013 endDt.setTime((static_cast<Todo*>(item->incidence()))->dtDue().time());
1014 endDt.setDate(startDate); 1014 endDt.setDate(startDate);
1015 } 1015 }
1016 } 1016 }
1017 } 1017 }
1018 if ( item->incidence()->type() == "Event" ) { 1018 if ( item->incidence()->type() == "Event" ) {
1019 item->incidence()->setDtStart(startDt); 1019 item->incidence()->setDtStart(startDt);
1020 (static_cast<Event*>(item->incidence()))->setDtEnd(endDt); 1020 (static_cast<Event*>(item->incidence()))->setDtEnd(endDt);
1021 } else if ( item->incidence()->type() == "Todo" ) { 1021 } else if ( item->incidence()->type() == "Todo" ) {
1022 Todo* to = static_cast<Todo*>(item->incidence()); 1022 Todo* to = static_cast<Todo*>(item->incidence());
1023 1023
1024 to->setDtDue(endDt); 1024 to->setDtDue(endDt);
1025 if ( to->hasStartDate() ) { 1025 if ( to->hasStartDate() ) {
1026 if (to->dtStart() >= to->dtDue() ) 1026 if (to->dtStart() >= to->dtDue() )
1027 to->setDtStart(to->dtDue().addDays( -2 )); 1027 to->setDtStart(to->dtDue().addDays( -2 ));
1028 } 1028 }
1029 1029
1030 } 1030 }
1031 //qDebug("KOAgendaView::updateEventDates stsart %s end %s ", startDt.toString().latin1(), endDt.toString().latin1() ); 1031 //qDebug("KOAgendaView::updateEventDates stsart %s end %s ", startDt.toString().latin1(), endDt.toString().latin1() );
1032 item->incidence()->setRevision(item->incidence()->revision()+1); 1032 item->incidence()->setRevision(item->incidence()->revision()+1);
1033 item->setItemDate(startDt.date()); 1033 item->setItemDate(startDt.date());
1034 //item->updateItem(); 1034 //item->updateItem();
1035 if ( item->incidence()->type() == "Todo" ) { 1035 if ( item->incidence()->type() == "Todo" ) {
1036 emit todoMoved((Todo*)item->incidence(), KOGlobals::EVENTEDITED ); 1036 emit todoMoved((Todo*)item->incidence(), KOGlobals::EVENTEDITED );
1037 1037
1038 } 1038 }
1039 else 1039 else
1040 emit incidenceChanged(item->incidence(), KOGlobals::EVENTEDITED); 1040 emit incidenceChanged(item->incidence(), KOGlobals::EVENTEDITED);
1041 item->updateItem(); 1041 item->updateItem();
1042} 1042}
1043 1043
1044void KOAgendaView::showDates( const QDate &start, const QDate &end ) 1044void KOAgendaView::showDates( const QDate &start, const QDate &end )
1045{ 1045{
1046 // kdDebug() << "KOAgendaView::selectDates" << endl; 1046 // kdDebug() << "KOAgendaView::selectDates" << endl;
1047 1047
1048 mSelectedDates.clear(); 1048 mSelectedDates.clear();
1049 // qDebug("KOAgendaView::showDates "); 1049 // qDebug("KOAgendaView::showDates ");
1050 QDate d = start; 1050 QDate d = start;
1051 while (d <= end) { 1051 while (d <= end) {
1052 mSelectedDates.append(d); 1052 mSelectedDates.append(d);
1053 d = d.addDays( 1 ); 1053 d = d.addDays( 1 );