summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-08-23 17:08:17 (UTC)
committer zautrix <zautrix>2005-08-23 17:08:17 (UTC)
commit789aec1acdf798aea32ab16219a8f19c6155250e (patch) (unidiff)
treefad1651a18ef60d9a4640fd83fc2afad5bdd006c
parente6d678229580cd712ff82ea989e7b151be546dbd (diff)
downloadkdepimpi-789aec1acdf798aea32ab16219a8f19c6155250e.zip
kdepimpi-789aec1acdf798aea32ab16219a8f19c6155250e.tar.gz
kdepimpi-789aec1acdf798aea32ab16219a8f19c6155250e.tar.bz2
layout fix
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koagendaview.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp
index d8a2134..c1b149f 100644
--- a/korganizer/koagendaview.cpp
+++ b/korganizer/koagendaview.cpp
@@ -208,1024 +208,1026 @@ void TimeLabels::updateConfig()
208 } 208 }
209 QFont sFont = font(); 209 QFont sFont = font();
210 sFont.setPointSize( sFont.pointSize()/2 ); 210 sFont.setPointSize( sFont.pointSize()/2 );
211 QFontMetrics fmS( sFont ); 211 QFontMetrics fmS( sFont );
212 mMiniWidth += fmS.width( test ) + frameWidth()*2+4 ; 212 mMiniWidth += fmS.width( test ) + frameWidth()*2+4 ;
213 // update geometry restrictions based on new settings 213 // update geometry restrictions based on new settings
214 setFixedWidth( mMiniWidth ); 214 setFixedWidth( mMiniWidth );
215 215
216 // update HourSize 216 // update HourSize
217 mCellHeight = KOPrefs::instance()->mHourSize*4; 217 mCellHeight = KOPrefs::instance()->mHourSize*4;
218 resizeContents(mMiniWidth,mRows * mCellHeight+1); 218 resizeContents(mMiniWidth,mRows * mCellHeight+1);
219} 219}
220 220
221/** update time label positions */ 221/** update time label positions */
222void TimeLabels::positionChanged() 222void TimeLabels::positionChanged()
223{ 223{
224 int adjustment = mAgenda->contentsY(); 224 int adjustment = mAgenda->contentsY();
225 setContentsPos(0, adjustment); 225 setContentsPos(0, adjustment);
226} 226}
227 227
228/** */ 228/** */
229void TimeLabels::setAgenda(KOAgenda* agenda) 229void TimeLabels::setAgenda(KOAgenda* agenda)
230{ 230{
231 mAgenda = agenda; 231 mAgenda = agenda;
232} 232}
233 233
234void TimeLabels::contentsMousePressEvent ( QMouseEvent * e) 234void TimeLabels::contentsMousePressEvent ( QMouseEvent * e)
235{ 235{
236 mMouseDownY = e->pos().y(); 236 mMouseDownY = e->pos().y();
237 mOrgCap = topLevelWidget()->caption(); 237 mOrgCap = topLevelWidget()->caption();
238} 238}
239 239
240void TimeLabels::contentsMouseMoveEvent ( QMouseEvent * e ) 240void TimeLabels::contentsMouseMoveEvent ( QMouseEvent * e )
241{ 241{
242 int diff = mMouseDownY - e->pos().y(); 242 int diff = mMouseDownY - e->pos().y();
243 if ( diff < 10 && diff > -10 ) 243 if ( diff < 10 && diff > -10 )
244 return; 244 return;
245 int tSize = KOPrefs::instance()->mHourSize + (diff/10) ; 245 int tSize = KOPrefs::instance()->mHourSize + (diff/10) ;
246 if ( tSize < 4 ) 246 if ( tSize < 4 )
247 tSize = 4; 247 tSize = 4;
248 if ( tSize > 22 ) 248 if ( tSize > 22 )
249 tSize = 22; 249 tSize = 22;
250 tSize = (tSize-2)/2; 250 tSize = (tSize-2)/2;
251 topLevelWidget()->setCaption(i18n("New Agendasize: %1").arg(tSize)); 251 topLevelWidget()->setCaption(i18n("New Agendasize: %1").arg(tSize));
252 252
253} 253}
254void TimeLabels::contentsMouseReleaseEvent ( QMouseEvent * e ) 254void TimeLabels::contentsMouseReleaseEvent ( QMouseEvent * e )
255{ 255{
256 topLevelWidget()->setCaption( mOrgCap ); 256 topLevelWidget()->setCaption( mOrgCap );
257 int diff = mMouseDownY - e->pos().y(); 257 int diff = mMouseDownY - e->pos().y();
258 if ( diff < 10 && diff > -10 ) 258 if ( diff < 10 && diff > -10 )
259 return; 259 return;
260 int tSize = KOPrefs::instance()->mHourSize + (diff/10); 260 int tSize = KOPrefs::instance()->mHourSize + (diff/10);
261 if ( tSize < 4 ) 261 if ( tSize < 4 )
262 tSize = 4; 262 tSize = 4;
263 if ( tSize > 22 ) 263 if ( tSize > 22 )
264 tSize = 22; 264 tSize = 22;
265 tSize = (tSize/2)*2; 265 tSize = (tSize/2)*2;
266 if ( tSize == KOPrefs::instance()->mHourSize ) 266 if ( tSize == KOPrefs::instance()->mHourSize )
267 return; 267 return;
268 KOPrefs::instance()->mHourSize = tSize; 268 KOPrefs::instance()->mHourSize = tSize;
269 emit scaleChanged(); 269 emit scaleChanged();
270} 270}
271 271
272/** This is called in response to repaint() */ 272/** This is called in response to repaint() */
273void TimeLabels::paintEvent(QPaintEvent*) 273void TimeLabels::paintEvent(QPaintEvent*)
274{ 274{
275 275
276 // kdDebug() << "paintevent..." << endl; 276 // kdDebug() << "paintevent..." << endl;
277 // this is another hack! 277 // this is another hack!
278 // QPainter painter(this); 278 // QPainter painter(this);
279 //QString c 279 //QString c
280 repaintContents(contentsX(), contentsY(), visibleWidth(), visibleHeight()); 280 repaintContents(contentsX(), contentsY(), visibleWidth(), visibleHeight());
281} 281}
282 282
283//////////////////////////////////////////////////////////////////////////// 283////////////////////////////////////////////////////////////////////////////
284 284
285EventIndicator::EventIndicator(Location loc,QWidget *parent,const char *name) 285EventIndicator::EventIndicator(Location loc,QWidget *parent,const char *name)
286 : QFrame(parent,name) 286 : QFrame(parent,name)
287{ 287{
288 mColumns = 1; 288 mColumns = 1;
289 mTopBox = 0; 289 mTopBox = 0;
290 mLocation = loc; 290 mLocation = loc;
291 mTopLayout = 0; 291 mTopLayout = 0;
292 mPaintWidget = 0; 292 mPaintWidget = 0;
293 mXOffset = 0; 293 mXOffset = 0;
294 if (mLocation == Top) mPixmap = SmallIcon("1uparrow"); 294 if (mLocation == Top) mPixmap = SmallIcon("1uparrow");
295 else mPixmap = SmallIcon("1downarrow"); 295 else mPixmap = SmallIcon("1downarrow");
296 mEnabled.resize(mColumns); 296 mEnabled.resize(mColumns);
297 mEnabled.fill( false ); 297 mEnabled.fill( false );
298 setMinimumHeight(mPixmap.height()); 298 setMinimumHeight(mPixmap.height());
299} 299}
300 300
301EventIndicator::~EventIndicator() 301EventIndicator::~EventIndicator()
302{ 302{
303} 303}
304 304
305void EventIndicator::drawContents(QPainter *p) 305void EventIndicator::drawContents(QPainter *p)
306{ 306{
307 307
308 // kdDebug() << "======== top: " << contentsRect().top() << " bottom " << // contentsRect().bottom() << " left " << contentsRect().left() << " right " << contentsRect().right() << endl; 308 // kdDebug() << "======== top: " << contentsRect().top() << " bottom " << // contentsRect().bottom() << " left " << contentsRect().left() << " right " << contentsRect().right() << endl;
309 KDGanttSplitterHandle* han = 0; 309 KDGanttSplitterHandle* han = 0;
310 if ( mPaintWidget ) 310 if ( mPaintWidget )
311 han = mPaintWidget->firstHandle(); 311 han = mPaintWidget->firstHandle();
312 if ( ! han ) { 312 if ( ! han ) {
313 int i; 313 int i;
314 for(i=0;i<mColumns;++i) { 314 for(i=0;i<mColumns;++i) {
315 if (mEnabled[i]) { 315 if (mEnabled[i]) {
316 int cellWidth = contentsRect().right()/mColumns; 316 int cellWidth = contentsRect().right()/mColumns;
317 int xOffset = KOGlobals::self()->reverseLayout() ? 317 int xOffset = KOGlobals::self()->reverseLayout() ?
318 (mColumns - 1 - i)*cellWidth + (cellWidth -mPixmap.width())/2 : 318 (mColumns - 1 - i)*cellWidth + (cellWidth -mPixmap.width())/2 :
319 i*cellWidth + (cellWidth -mPixmap.width()) /2; 319 i*cellWidth + (cellWidth -mPixmap.width()) /2;
320 p->drawPixmap(QPoint(1+xOffset,0),mPixmap); 320 p->drawPixmap(QPoint(1+xOffset,0),mPixmap);
321 } 321 }
322 } 322 }
323 } else { 323 } else {
324 han->repaint(); 324 han->repaint();
325 //mPaintWidget->setBackgroundColor( red ); 325 //mPaintWidget->setBackgroundColor( red );
326 326
327 QPainter pa( han ); 327 QPainter pa( han );
328 int i; 328 int i;
329 bool setColor = false; 329 bool setColor = false;
330 for(i=0;i<mColumns;++i) { 330 for(i=0;i<mColumns;++i) {
331 if (mEnabled[i]) { 331 if (mEnabled[i]) {
332 setColor = true; 332 setColor = true;
333 333
334 int cellWidth = contentsRect().right()/mColumns; 334 int cellWidth = contentsRect().right()/mColumns;
335 int xOffset = KOGlobals::self()->reverseLayout() ? 335 int xOffset = KOGlobals::self()->reverseLayout() ?
336 (mColumns - 1 - i)*cellWidth + cellWidth/2 -mPixmap.width()/2 : 336 (mColumns - 1 - i)*cellWidth + cellWidth/2 -mPixmap.width()/2 :
337 i*cellWidth + cellWidth/2 -mPixmap.width()/2; 337 i*cellWidth + cellWidth/2 -mPixmap.width()/2;
338 pa.drawPixmap(QPoint(mXOffset + xOffset,0),mPixmap); 338 pa.drawPixmap(QPoint(mXOffset + xOffset,0),mPixmap);
339 //qDebug("222draw pix %d ",xOffset ); 339 //qDebug("222draw pix %d ",xOffset );
340 340
341 } 341 }
342 342
343 } 343 }
344 pa.end(); 344 pa.end();
345 345
346 } 346 }
347} 347}
348 348
349void EventIndicator::setXOffset( int x ) 349void EventIndicator::setXOffset( int x )
350{ 350{
351 mXOffset = x; 351 mXOffset = x;
352} 352}
353void EventIndicator::setPaintWidget( KDGanttMinimizeSplitter * w ) 353void EventIndicator::setPaintWidget( KDGanttMinimizeSplitter * w )
354{ 354{
355 mPaintWidget = w; 355 mPaintWidget = w;
356 setMaximumHeight(0); 356 setMaximumHeight(0);
357 setMinimumHeight(0); 357 setMinimumHeight(0);
358} 358}
359void EventIndicator::changeColumns(int columns) 359void EventIndicator::changeColumns(int columns)
360{ 360{
361 mColumns = columns; 361 mColumns = columns;
362 mEnabled.resize(mColumns); 362 mEnabled.resize(mColumns);
363 363
364 update(); 364 update();
365} 365}
366 366
367void EventIndicator::enableColumn(int column, bool enable) 367void EventIndicator::enableColumn(int column, bool enable)
368{ 368{
369 mEnabled[column] = enable; 369 mEnabled[column] = enable;
370} 370}
371 371
372 372
373//////////////////////////////////////////////////////////////////////////// 373////////////////////////////////////////////////////////////////////////////
374//////////////////////////////////////////////////////////////////////////// 374////////////////////////////////////////////////////////////////////////////
375//////////////////////////////////////////////////////////////////////////// 375////////////////////////////////////////////////////////////////////////////
376 376
377KOAgendaView::KOAgendaView(Calendar *cal,QWidget *parent,const char *name) : 377KOAgendaView::KOAgendaView(Calendar *cal,QWidget *parent,const char *name) :
378 KOEventView (cal,parent,name) 378 KOEventView (cal,parent,name)
379{ 379{
380 mBlockUpdating = true; 380 mBlockUpdating = true;
381 mStartHour = 8; 381 mStartHour = 8;
382 mSelectedDates.append(QDate::currentDate()); 382 mSelectedDates.append(QDate::currentDate());
383 383
384 mLayoutDayLabels = 0; 384 mLayoutDayLabels = 0;
385 mDayLabelsFrame = 0; 385 mDayLabelsFrame = 0;
386 mDayLabels = 0; 386 mDayLabels = 0;
387 bool isRTL = KOGlobals::self()->reverseLayout(); 387 bool isRTL = KOGlobals::self()->reverseLayout();
388 QPixmap expandPix; 388 QPixmap expandPix;
389 if ( KOPrefs::instance()->mVerticalScreen ) { 389 if ( KOPrefs::instance()->mVerticalScreen ) {
390 expandPix = SmallIcon( "1updownarrow" ); 390 expandPix = SmallIcon( "1updownarrow" );
391 } else { 391 } else {
392 expandPix = SmallIcon("1leftrightarrow" ); 392 expandPix = SmallIcon("1leftrightarrow" );
393 } 393 }
394 394
395 QBoxLayout *topLayout = new QVBoxLayout(this); 395 QBoxLayout *topLayout = new QVBoxLayout(this);
396 396
397 // Create day name labels for agenda columns 397 // Create day name labels for agenda columns
398 // Create agenda splitter 398 // Create agenda splitter
399 399
400 mSplitterAgenda = new KDGanttMinimizeSplitter( Qt::Vertical, this); 400 mSplitterAgenda = new KDGanttMinimizeSplitter( Qt::Vertical, this);
401 mSplitterAgenda->setMinimizeDirection ( KDGanttMinimizeSplitter::Up ); 401 mSplitterAgenda->setMinimizeDirection ( KDGanttMinimizeSplitter::Up );
402 topLayout->addWidget( mSplitterAgenda ); 402 topLayout->addWidget( mSplitterAgenda );
403 mAllDayFrame = new QHBox(mSplitterAgenda); 403 mAllDayFrame = new QHBox(mSplitterAgenda);
404 mAllDayFrame->setFocusPolicy(NoFocus); 404 mAllDayFrame->setFocusPolicy(NoFocus);
405 QWidget *agendaFrame = new QWidget(mSplitterAgenda); 405 QWidget *agendaFrame = new QWidget(mSplitterAgenda);
406 agendaFrame->setFocusPolicy(NoFocus); 406 agendaFrame->setFocusPolicy(NoFocus);
407 407
408 // Create all-day agenda widget 408 // Create all-day agenda widget
409 mDummyAllDayLeft = new QVBox( mAllDayFrame ); 409 mDummyAllDayLeft = new QVBox( mAllDayFrame );
410 410
411 mExpandButton = new QPushButton(mDummyAllDayLeft); 411 mExpandButton = new QPushButton(mDummyAllDayLeft);
412 mExpandButton->setPixmap( expandPix ); 412 mExpandButton->setPixmap( expandPix );
413 int widebut = mExpandButton->sizeHint().width()+4; 413 int widebut = mExpandButton->sizeHint().width()+4;
414 int heibut = mExpandButton->sizeHint().height()+4; 414 int heibut = mExpandButton->sizeHint().height()+4;
415 if ( heibut > widebut ) 415 if ( heibut > widebut )
416 widebut = heibut ; 416 widebut = heibut ;
417 417
418 //mExpandButton->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, 418 //mExpandButton->setSizePolicy( QSizePolicy( QSizePolicy::Fixed,
419 // QSizePolicy::Fixed ) ); 419 // QSizePolicy::Fixed ) );
420 mExpandButton->setFixedSize( widebut, widebut); 420 mExpandButton->setFixedSize( widebut, widebut);
421 connect( mExpandButton, SIGNAL( clicked() ), SIGNAL( toggleExpand() ) ); 421 connect( mExpandButton, SIGNAL( clicked() ), SIGNAL( toggleExpand() ) );
422 mExpandButton->setFocusPolicy(NoFocus); 422 mExpandButton->setFocusPolicy(NoFocus);
423 mAllDayAgenda = new KOAgenda(1,mAllDayFrame); 423 mAllDayAgenda = new KOAgenda(1,mAllDayFrame);
424 mAllDayAgenda->setFocusPolicy(NoFocus); 424 mAllDayAgenda->setFocusPolicy(NoFocus);
425 QLabel *dummyAllDayRight = new QLabel (mAllDayFrame); 425 QLabel *dummyAllDayRight = new QLabel (mAllDayFrame);
426 426
427 // Create event context menu for all day agenda 427 // Create event context menu for all day agenda
428 //mAllDayAgendaPopup = eventPopup(); 428 //mAllDayAgendaPopup = eventPopup();
429 429
430 // Create agenda frame 430 // Create agenda frame
431 QGridLayout *agendaLayout = new QGridLayout(agendaFrame,4,3); 431 QGridLayout *agendaLayout = new QGridLayout(agendaFrame,4,3);
432 // QHBox *agendaFrame = new QHBox(splitterAgenda); 432 // QHBox *agendaFrame = new QHBox(splitterAgenda);
433 433
434 // create event indicator bars 434 // create event indicator bars
435 mEventIndicatorTop = new EventIndicator(EventIndicator::Top,agendaFrame); 435 mEventIndicatorTop = new EventIndicator(EventIndicator::Top,agendaFrame);
436#ifndef DESKTOP_VERSION 436#ifndef DESKTOP_VERSION
437 mEventIndicatorTop->setPaintWidget( mSplitterAgenda ); 437 mEventIndicatorTop->setPaintWidget( mSplitterAgenda );
438#endif 438#endif
439 mDayLabelsFrame = new QHBox(agendaFrame); 439 mDayLabelsFrame = new QHBox(agendaFrame);
440 //topLayout->addWidget(mDayLabelsFrame); 440 //topLayout->addWidget(mDayLabelsFrame);
441 mDayLabels = new QFrame (mDayLabelsFrame); 441 mDayLabels = new QFrame (mDayLabelsFrame);
442 mLayoutDayLabels = new QHBoxLayout(mDayLabels); 442 mLayoutDayLabels = new QHBoxLayout(mDayLabels);
443 agendaLayout->addMultiCellWidget(mDayLabelsFrame ,0,0,0,2); 443 agendaLayout->addMultiCellWidget(mDayLabelsFrame ,0,0,0,2);
444 agendaLayout->addWidget(mEventIndicatorTop,1,1); 444 agendaLayout->addWidget(mEventIndicatorTop,1,1);
445 445
446 mEventIndicatorBottom = new EventIndicator(EventIndicator::Bottom, 446 mEventIndicatorBottom = new EventIndicator(EventIndicator::Bottom,
447 agendaFrame); 447 agendaFrame);
448 agendaLayout->addWidget(mEventIndicatorBottom,3,1); 448 agendaLayout->addWidget(mEventIndicatorBottom,3,1);
449 QWidget *dummyAgendaRight = new QWidget(agendaFrame); 449 QWidget *dummyAgendaRight = new QWidget(agendaFrame);
450 agendaLayout->addWidget(dummyAgendaRight,1,2); 450 agendaLayout->addWidget(dummyAgendaRight,1,2);
451 451
452 // Create time labels 452 // Create time labels
453 mTimeLabels = new TimeLabels(24,agendaFrame); 453 mTimeLabels = new TimeLabels(24,agendaFrame);
454 agendaLayout->addWidget(mTimeLabels,2,0); 454 agendaLayout->addWidget(mTimeLabels,2,0);
455 connect(mTimeLabels,SIGNAL( scaleChanged()), 455 connect(mTimeLabels,SIGNAL( scaleChanged()),
456 this,SLOT(updateConfig())); 456 this,SLOT(updateConfig()));
457 457
458 // Create agenda 458 // Create agenda
459 mAgenda = new KOAgenda(1,96,KOPrefs::instance()->mHourSize,agendaFrame); 459 mAgenda = new KOAgenda(1,96,KOPrefs::instance()->mHourSize,agendaFrame);
460 agendaLayout->addMultiCellWidget(mAgenda,2,2,1,2); 460 agendaLayout->addMultiCellWidget(mAgenda,2,2,1,2);
461 agendaLayout->setColStretch(1,1); 461 agendaLayout->setColStretch(1,1);
462 mAgenda->setFocusPolicy(NoFocus); 462 mAgenda->setFocusPolicy(NoFocus);
463 // Create event context menu for agenda 463 // Create event context menu for agenda
464 mAllAgendaPopup = eventPopup(); 464 mAllAgendaPopup = eventPopup();
465 465
466#if 0 466#if 0
467 mAllAgendaPopup->addAdditionalItem(QIconSet(SmallIcon("bell")), 467 mAllAgendaPopup->addAdditionalItem(QIconSet(SmallIcon("bell")),
468 i18n("Toggle Alarm"),mAgenda, 468 i18n("Toggle Alarm"),mAgenda,
469 SLOT(popupAlarm()),true); 469 SLOT(popupAlarm()),true);
470 470
471#endif 471#endif
472 connect(mAgenda,SIGNAL(showIncidencePopupSignal(Incidence *)), 472 connect(mAgenda,SIGNAL(showIncidencePopupSignal(Incidence *)),
473 mAllAgendaPopup,SLOT(showIncidencePopup(Incidence *))); 473 mAllAgendaPopup,SLOT(showIncidencePopup(Incidence *)));
474 474
475 connect(mAllDayAgenda,SIGNAL(showIncidencePopupSignal(Incidence *)), 475 connect(mAllDayAgenda,SIGNAL(showIncidencePopupSignal(Incidence *)),
476 mAllAgendaPopup,SLOT(showIncidencePopup(Incidence *))); 476 mAllAgendaPopup,SLOT(showIncidencePopup(Incidence *)));
477 477
478 connect(mAllAgendaPopup,SIGNAL(categoryChanged(Incidence *)), 478 connect(mAllAgendaPopup,SIGNAL(categoryChanged(Incidence *)),
479 this,SLOT(categoryChanged(Incidence *))); 479 this,SLOT(categoryChanged(Incidence *)));
480 480
481 481
482 mAgenda->setPopup( mAllAgendaPopup ); 482 mAgenda->setPopup( mAllAgendaPopup );
483 mAllDayAgenda->setPopup( mAllAgendaPopup ); 483 mAllDayAgenda->setPopup( mAllAgendaPopup );
484 // make connections between dependent widgets 484 // make connections between dependent widgets
485 mTimeLabels->setAgenda(mAgenda); 485 mTimeLabels->setAgenda(mAgenda);
486 486
487 // Update widgets to reflect user preferences 487 // Update widgets to reflect user preferences
488 // updateConfig(); 488 // updateConfig();
489 489
490 // createDayLabels(); 490 // createDayLabels();
491 491
492 // these blank widgets make the All Day Event box line up with the agenda 492 // these blank widgets make the All Day Event box line up with the agenda
493 dummyAllDayRight->setFixedWidth(mAgenda->verticalScrollBar()->width()); 493 dummyAllDayRight->setFixedWidth(mAgenda->verticalScrollBar()->width());
494 dummyAgendaRight->setFixedWidth(mAgenda->verticalScrollBar()->width()); 494 dummyAgendaRight->setFixedWidth(mAgenda->verticalScrollBar()->width());
495 mDummyAllDayLeft->setFixedWidth(mTimeLabels->width()); 495 mDummyAllDayLeft->setFixedWidth(mTimeLabels->width());
496 496
497 // Scrolling 497 // Scrolling
498 connect(mAgenda->verticalScrollBar(),SIGNAL(valueChanged(int)), 498 connect(mAgenda->verticalScrollBar(),SIGNAL(valueChanged(int)),
499 mTimeLabels, SLOT(positionChanged())); 499 mTimeLabels, SLOT(positionChanged()));
500 connect(mTimeLabels->verticalScrollBar(),SIGNAL(valueChanged(int)), 500 connect(mTimeLabels->verticalScrollBar(),SIGNAL(valueChanged(int)),
501 SLOT(setContentsPos(int))); 501 SLOT(setContentsPos(int)));
502 502
503 connect(mAgenda,SIGNAL(showDateView( int, int)),SLOT(slotShowDateView( int, int ))); 503 connect(mAgenda,SIGNAL(showDateView( int, int)),SLOT(slotShowDateView( int, int )));
504 connect(mAllDayAgenda,SIGNAL(showDateView( int, int )), SLOT(slotShowDateView( int, int ) )); 504 connect(mAllDayAgenda,SIGNAL(showDateView( int, int )), SLOT(slotShowDateView( int, int ) ));
505 505
506 // Create/Show/Edit/Delete Event 506 // Create/Show/Edit/Delete Event
507 connect(mAgenda,SIGNAL(newEventSignal(int,int)), 507 connect(mAgenda,SIGNAL(newEventSignal(int,int)),
508 SLOT(newEvent(int,int))); 508 SLOT(newEvent(int,int)));
509 connect(mAgenda,SIGNAL(newTodoSignal(int,int)), 509 connect(mAgenda,SIGNAL(newTodoSignal(int,int)),
510 SLOT(newTodo(int,int))); 510 SLOT(newTodo(int,int)));
511 connect(mAgenda,SIGNAL(newEventSignal(int,int,int,int)), 511 connect(mAgenda,SIGNAL(newEventSignal(int,int,int,int)),
512 SLOT(newEvent(int,int,int,int))); 512 SLOT(newEvent(int,int,int,int)));
513 connect(mAllDayAgenda,SIGNAL(newEventSignal(int,int)), 513 connect(mAllDayAgenda,SIGNAL(newEventSignal(int,int)),
514 SLOT(newEventAllDay(int,int))); 514 SLOT(newEventAllDay(int,int)));
515 connect(mAllDayAgenda,SIGNAL(newTodoSignal(int,int)), 515 connect(mAllDayAgenda,SIGNAL(newTodoSignal(int,int)),
516 SLOT(newTodoAllDay(int,int))); 516 SLOT(newTodoAllDay(int,int)));
517 connect(mAllDayAgenda,SIGNAL(newEventSignal(int,int,int,int)), 517 connect(mAllDayAgenda,SIGNAL(newEventSignal(int,int,int,int)),
518 SLOT(newEventAllDay(int,int))); 518 SLOT(newEventAllDay(int,int)));
519 connect(mAgenda,SIGNAL(newTimeSpanSignal(int,int,int,int)), 519 connect(mAgenda,SIGNAL(newTimeSpanSignal(int,int,int,int)),
520 SLOT(newTimeSpanSelected(int,int,int,int))); 520 SLOT(newTimeSpanSelected(int,int,int,int)));
521 connect(mAllDayAgenda,SIGNAL(newTimeSpanSignal(int,int,int,int)), 521 connect(mAllDayAgenda,SIGNAL(newTimeSpanSignal(int,int,int,int)),
522 SLOT(newTimeSpanSelectedAllDay(int,int,int,int))); 522 SLOT(newTimeSpanSelectedAllDay(int,int,int,int)));
523 connect(mAgenda,SIGNAL(newStartSelectSignal()),SLOT(updateView())); 523 connect(mAgenda,SIGNAL(newStartSelectSignal()),SLOT(updateView()));
524 connect(mAllDayAgenda,SIGNAL(newStartSelectSignal()),SLOT(updateView())); 524 connect(mAllDayAgenda,SIGNAL(newStartSelectSignal()),SLOT(updateView()));
525 525
526 connect(mAgenda,SIGNAL(editIncidenceSignal(Incidence *)), 526 connect(mAgenda,SIGNAL(editIncidenceSignal(Incidence *)),
527 SIGNAL(editIncidenceSignal(Incidence *))); 527 SIGNAL(editIncidenceSignal(Incidence *)));
528 connect(mAllDayAgenda,SIGNAL(editIncidenceSignal(Incidence *)), 528 connect(mAllDayAgenda,SIGNAL(editIncidenceSignal(Incidence *)),
529 SIGNAL(editIncidenceSignal(Incidence *))); 529 SIGNAL(editIncidenceSignal(Incidence *)));
530 connect(mAgenda,SIGNAL(showIncidenceSignal(Incidence *)), 530 connect(mAgenda,SIGNAL(showIncidenceSignal(Incidence *)),
531 SIGNAL(showIncidenceSignal(Incidence *))); 531 SIGNAL(showIncidenceSignal(Incidence *)));
532 connect(mAllDayAgenda,SIGNAL(showIncidenceSignal(Incidence *)), 532 connect(mAllDayAgenda,SIGNAL(showIncidenceSignal(Incidence *)),
533 SIGNAL(showIncidenceSignal(Incidence *))); 533 SIGNAL(showIncidenceSignal(Incidence *)));
534 connect(mAgenda,SIGNAL(deleteIncidenceSignal(Incidence *)), 534 connect(mAgenda,SIGNAL(deleteIncidenceSignal(Incidence *)),
535 SIGNAL(deleteIncidenceSignal(Incidence *))); 535 SIGNAL(deleteIncidenceSignal(Incidence *)));
536 connect(mAllDayAgenda,SIGNAL(deleteIncidenceSignal(Incidence *)), 536 connect(mAllDayAgenda,SIGNAL(deleteIncidenceSignal(Incidence *)),
537 SIGNAL(deleteIncidenceSignal(Incidence *))); 537 SIGNAL(deleteIncidenceSignal(Incidence *)));
538 538
539 connect(mAgenda,SIGNAL(itemModified(KOAgendaItem *, int )), 539 connect(mAgenda,SIGNAL(itemModified(KOAgendaItem *, int )),
540 SLOT(updateEventDates(KOAgendaItem *, int ))); 540 SLOT(updateEventDates(KOAgendaItem *, int )));
541 connect(mAllDayAgenda,SIGNAL(itemModified(KOAgendaItem *, int )), 541 connect(mAllDayAgenda,SIGNAL(itemModified(KOAgendaItem *, int )),
542 SLOT(updateEventDates(KOAgendaItem *, int))); 542 SLOT(updateEventDates(KOAgendaItem *, int)));
543 543
544 // event indicator update 544 // event indicator update
545 connect(mAgenda,SIGNAL(lowerYChanged(int)), 545 connect(mAgenda,SIGNAL(lowerYChanged(int)),
546 SLOT(updateEventIndicatorTop(int))); 546 SLOT(updateEventIndicatorTop(int)));
547 connect(mAgenda,SIGNAL(upperYChanged(int)), 547 connect(mAgenda,SIGNAL(upperYChanged(int)),
548 SLOT(updateEventIndicatorBottom(int))); 548 SLOT(updateEventIndicatorBottom(int)));
549 // drag signals 549 // drag signals
550 /* 550 /*
551 connect(mAgenda,SIGNAL(startDragSignal(Event *)), 551 connect(mAgenda,SIGNAL(startDragSignal(Event *)),
552 SLOT(startDrag(Event *))); 552 SLOT(startDrag(Event *)));
553 connect(mAllDayAgenda,SIGNAL(startDragSignal(Event *)), 553 connect(mAllDayAgenda,SIGNAL(startDragSignal(Event *)),
554 SLOT(startDrag(Event *))); 554 SLOT(startDrag(Event *)));
555 */ 555 */
556 // synchronize selections 556 // synchronize selections
557 connect( mAgenda, SIGNAL( incidenceSelected( Incidence * ) ), 557 connect( mAgenda, SIGNAL( incidenceSelected( Incidence * ) ),
558 mAllDayAgenda, SLOT( deselectItem() ) ); 558 mAllDayAgenda, SLOT( deselectItem() ) );
559 connect( mAllDayAgenda, SIGNAL( incidenceSelected( Incidence * ) ), 559 connect( mAllDayAgenda, SIGNAL( incidenceSelected( Incidence * ) ),
560 mAgenda, SLOT( deselectItem() ) ); 560 mAgenda, SLOT( deselectItem() ) );
561 connect( mAgenda, SIGNAL( incidenceSelected( Incidence * ) ), 561 connect( mAgenda, SIGNAL( incidenceSelected( Incidence * ) ),
562 SIGNAL( incidenceSelected( Incidence * ) ) ); 562 SIGNAL( incidenceSelected( Incidence * ) ) );
563 connect( mAllDayAgenda, SIGNAL( incidenceSelected( Incidence * ) ), 563 connect( mAllDayAgenda, SIGNAL( incidenceSelected( Incidence * ) ),
564 SIGNAL( incidenceSelected( Incidence * ) ) ); 564 SIGNAL( incidenceSelected( Incidence * ) ) );
565 connect( mAgenda, SIGNAL( resizedSignal() ), 565 connect( mAgenda, SIGNAL( resizedSignal() ),
566 SLOT( updateConfig( ) ) ); 566 SLOT( updateConfig( ) ) );
567 connect( mAgenda, SIGNAL( addToCalSignal(Incidence *, Incidence *) ), 567 connect( mAgenda, SIGNAL( addToCalSignal(Incidence *, Incidence *) ),
568 SLOT( addToCalSlot(Incidence *, Incidence * ) ) ); 568 SLOT( addToCalSlot(Incidence *, Incidence * ) ) );
569 connect( mAllDayAgenda, SIGNAL( addToCalSignal(Incidence * ,Incidence *) ), 569 connect( mAllDayAgenda, SIGNAL( addToCalSignal(Incidence * ,Incidence *) ),
570 SLOT( addToCalSlot(Incidence * , Incidence *) ) ); 570 SLOT( addToCalSlot(Incidence * , Incidence *) ) );
571 // connect( mAgenda, SIGNAL( cloneIncidenceSignal(Incidence *) ), SIGNAL( cloneIncidenceSignal(Incidence *) ) ); 571 // connect( mAgenda, SIGNAL( cloneIncidenceSignal(Incidence *) ), SIGNAL( cloneIncidenceSignal(Incidence *) ) );
572 //connect( mAllDayAgenda, SIGNAL( cloneIncidenceSignal(Incidence *) ), SIGNAL( cloneIncidenceSignal(Incidence *) ) ); 572 //connect( mAllDayAgenda, SIGNAL( cloneIncidenceSignal(Incidence *) ), SIGNAL( cloneIncidenceSignal(Incidence *) ) );
573 573
574 connect( mAllDayAgenda, SIGNAL( signalClearSelection() ),mAgenda, SLOT( slotClearSelection()) ); 574 connect( mAllDayAgenda, SIGNAL( signalClearSelection() ),mAgenda, SLOT( slotClearSelection()) );
575 connect( mAgenda, SIGNAL( signalClearSelection() ),mAllDayAgenda, SLOT( slotClearSelection()) ); 575 connect( mAgenda, SIGNAL( signalClearSelection() ),mAllDayAgenda, SLOT( slotClearSelection()) );
576#ifndef DESKTOP_VERSION 576#ifndef DESKTOP_VERSION
577 connect( mAllDayAgenda, SIGNAL( updateViewSignal() ),this, SLOT( fillAgenda()) ); 577 connect( mAllDayAgenda, SIGNAL( updateViewSignal() ),this, SLOT( fillAgenda()) );
578 connect( mAgenda, SIGNAL( updateViewSignal() ), this, SLOT( fillAgenda()) ); 578 connect( mAgenda, SIGNAL( updateViewSignal() ), this, SLOT( fillAgenda()) );
579 connect( mAllDayAgenda, SIGNAL( sendPing() ),this, SLOT( startIdleTimeout()) ); 579 connect( mAllDayAgenda, SIGNAL( sendPing() ),this, SLOT( startIdleTimeout()) );
580 connect( mAgenda, SIGNAL( sendPing() ), this, SLOT( startIdleTimeout()) ); 580 connect( mAgenda, SIGNAL( sendPing() ), this, SLOT( startIdleTimeout()) );
581 mIdleTimer = new QTimer ( this );; 581 mIdleTimer = new QTimer ( this );;
582 connect(mIdleTimer,SIGNAL(timeout()),SLOT(slotIdleTimeout())); 582 connect(mIdleTimer,SIGNAL(timeout()),SLOT(slotIdleTimeout()));
583#endif 583#endif
584} 584}
585void KOAgendaView::startIdleTimeout() 585void KOAgendaView::startIdleTimeout()
586{ 586{
587#ifndef DESKTOP_VERSION 587#ifndef DESKTOP_VERSION
588 mIdleStart = QDateTime::currentDateTime(); 588 mIdleStart = QDateTime::currentDateTime();
589 mIdleTimer->start( IDLETIMEOUT * 1000 ); 589 mIdleTimer->start( IDLETIMEOUT * 1000 );
590#endif 590#endif
591} 591}
592void KOAgendaView::slotIdleTimeout() 592void KOAgendaView::slotIdleTimeout()
593{ 593{
594#ifndef DESKTOP_VERSION 594#ifndef DESKTOP_VERSION
595 //qDebug("SECS TO %d ",mIdleStart.secsTo( QDateTime::currentDateTime() ) ); 595 //qDebug("SECS TO %d ",mIdleStart.secsTo( QDateTime::currentDateTime() ) );
596 int secsfromstart = mIdleStart.secsTo( QDateTime::currentDateTime() ); 596 int secsfromstart = mIdleStart.secsTo( QDateTime::currentDateTime() );
597 mIdleTimer->stop(); 597 mIdleTimer->stop();
598 bool isActice = topLevelWidget()->isActiveWindow(); 598 bool isActice = topLevelWidget()->isActiveWindow();
599 //qDebug("KO: Active Window %d %d", isActice, isVisible()); 599 //qDebug("KO: Active Window %d %d", isActice, isVisible());
600 // we do nothing if we wake up from a suspend 600 // we do nothing if we wake up from a suspend
601 if ( secsfromstart > IDLETIMEOUT + 30 && isActice ) { 601 if ( secsfromstart > IDLETIMEOUT + 30 && isActice ) {
602 qDebug("KO: Wakeup from suspend "); 602 qDebug("KO: Wakeup from suspend ");
603 startIdleTimeout(); 603 startIdleTimeout();
604 return; 604 return;
605 } 605 }
606 qDebug("KO: Downsizing Pixmaps %s",QDateTime::currentDateTime().toString().latin1()); 606 qDebug("KO: Downsizing Pixmaps %s",QDateTime::currentDateTime().toString().latin1());
607 mAgenda->shrinkPixmap(); 607 mAgenda->shrinkPixmap();
608 mAllDayAgenda->shrinkPixmap(); 608 mAllDayAgenda->shrinkPixmap();
609 KOAgendaItem::paintPix()->resize( 20,20); 609 KOAgendaItem::paintPix()->resize( 20,20);
610 KOAgendaItem::paintPixAllday()->resize( 20,20); 610 KOAgendaItem::paintPixAllday()->resize( 20,20);
611#endif 611#endif
612 612
613} 613}
614void KOAgendaView::toggleAllDay() 614void KOAgendaView::toggleAllDay()
615{ 615{
616 if ( mSplitterAgenda->firstHandle() ) 616 if ( mSplitterAgenda->firstHandle() )
617 mSplitterAgenda->firstHandle()->toggle(); 617 mSplitterAgenda->firstHandle()->toggle();
618} 618}
619void KOAgendaView::addToCalSlot(Incidence * inc, Incidence * incOld ) 619void KOAgendaView::addToCalSlot(Incidence * inc, Incidence * incOld )
620{ 620{
621 calendar()->addIncidence( inc ); 621 calendar()->addIncidence( inc );
622 622
623 if ( incOld ) { 623 if ( incOld ) {
624 if ( incOld->typeID() == todoID ) 624 if ( incOld->typeID() == todoID )
625 emit todoMoved((Todo*)incOld, KOGlobals::EVENTEDITED ); 625 emit todoMoved((Todo*)incOld, KOGlobals::EVENTEDITED );
626 else 626 else
627 emit incidenceChanged(incOld, KOGlobals::EVENTEDITED); 627 emit incidenceChanged(incOld, KOGlobals::EVENTEDITED);
628 } 628 }
629 629
630} 630}
631void KOAgendaView::categoryChanged(Incidence * inc) 631void KOAgendaView::categoryChanged(Incidence * inc)
632{ 632{
633 mAgenda->categoryChanged( inc ); 633 mAgenda->categoryChanged( inc );
634 mAllDayAgenda->categoryChanged( inc ); 634 mAllDayAgenda->categoryChanged( inc );
635} 635}
636KOAgendaView::~KOAgendaView() 636KOAgendaView::~KOAgendaView()
637{ 637{
638 delete mAllAgendaPopup; 638 delete mAllAgendaPopup;
639 //delete mAllDayAgendaPopup; 639 //delete mAllDayAgendaPopup;
640 delete KOAgendaItem::paintPix(); 640 delete KOAgendaItem::paintPix();
641 delete KOAgendaItem::paintPixAllday(); 641 delete KOAgendaItem::paintPixAllday();
642} 642}
643void KOAgendaView::resizeEvent( QResizeEvent* e ) 643void KOAgendaView::resizeEvent( QResizeEvent* e )
644{ 644{
645 //qDebug("KOAgendaView::resizeEvent( QResizeEvent* e ) %d ", e->size().width()); 645 //qDebug("KOAgendaView::resizeEvent( QResizeEvent* e ) %d ", e->size().width());
646 bool uc = false; 646 bool uc = false;
647 int ow = e->oldSize().width(); 647 int ow = e->oldSize().width();
648 int oh = e->oldSize().height(); 648 int oh = e->oldSize().height();
649 int w = e->size().width(); 649 int w = e->size().width();
650 int h = e->size().height(); 650 int h = e->size().height();
651 if ( (ow > oh && w< h ) || (ow < oh && w > h ) ) { 651 if ( (ow > oh && w< h ) || (ow < oh && w > h ) ) {
652 if ( ! mBlockUpdating && !globalFlagBlockStartup && !globalFlagBlockAgenda ) 652 if ( ! mBlockUpdating && !globalFlagBlockStartup && !globalFlagBlockAgenda )
653 uc = true; 653 uc = true;
654 //qDebug("view changed %d %d %d %d ", ow, oh , w , h); 654 //qDebug("view changed %d %d %d %d ", ow, oh , w , h);
655 } 655 }
656 mUpcomingWidth = e->size().width() ; 656 mUpcomingWidth = e->size().width() ;
657 if ( mBlockUpdating || uc ) { 657 if ( mBlockUpdating || uc ) {
658 mBlockUpdating = false; 658 mBlockUpdating = false;
659 //mAgenda->setMinimumSize(800 , 600 ); 659 //mAgenda->setMinimumSize(800 , 600 );
660 //qDebug("mAgenda->resize+++++++++++++++ "); 660 //qDebug("mAgenda->resize+++++++++++++++ ");
661 updateConfig(); 661 updateConfig();
662 //qDebug("KOAgendaView::Updating now possible "); 662 //qDebug("KOAgendaView::Updating now possible ");
663 } else 663 } else
664 createDayLabels(); 664 createDayLabels();
665 //qDebug("resizeEvent end "); 665 //qDebug("resizeEvent end ");
666 666
667} 667}
668void KOAgendaView::slotDaylabelClicked( int num ) 668void KOAgendaView::slotDaylabelClicked( int num )
669{ 669{
670 670
671 QDate firstDate = mSelectedDates.first(); 671 QDate firstDate = mSelectedDates.first();
672 if ( num == -1 ) 672 if ( num == -1 )
673 emit showDateView( 6, firstDate ); 673 emit showDateView( 6, firstDate );
674 else if (num >= 0 ) { 674 else if (num >= 0 ) {
675 if ( mSelectedDates.count() == 1) 675 if ( mSelectedDates.count() == 1)
676 emit showDateView( 9, firstDate.addDays( num ) ); 676 emit showDateView( 9, firstDate.addDays( num ) );
677 else 677 else
678 emit showDateView( 3, firstDate.addDays( num ) ); 678 emit showDateView( 3, firstDate.addDays( num ) );
679 } 679 }
680 else 680 else
681 showDateView( 10, firstDate.addDays(1) ); 681 showDateView( 10, firstDate.addDays(1) );
682} 682}
683 683
684KOAgendaButton* KOAgendaView::getNewDaylabel() 684KOAgendaButton* KOAgendaView::getNewDaylabel()
685{ 685{
686 686
687 KOAgendaButton * dayLabel = new KOAgendaButton(mDayLabels); 687 KOAgendaButton * dayLabel = new KOAgendaButton(mDayLabels);
688 connect( dayLabel, SIGNAL( numClicked(int) ), this, SLOT ( slotDaylabelClicked(int) ) ); 688 connect( dayLabel, SIGNAL( numClicked(int) ), this, SLOT ( slotDaylabelClicked(int) ) );
689 mDayLabelsList.append( dayLabel ); 689 mDayLabelsList.append( dayLabel );
690 mLayoutDayLabels->addWidget(dayLabel); 690 mLayoutDayLabels->addWidget(dayLabel);
691 return dayLabel ; 691 return dayLabel ;
692} 692}
693 693
694void KOAgendaView::createDayLabels() 694void KOAgendaView::createDayLabels()
695{ 695{
696 696
697 if ( mBlockUpdating || globalFlagBlockLabel == 1) { 697 if ( mBlockUpdating || globalFlagBlockLabel == 1) {
698 // qDebug(" KOAgendaView::createDayLabels() blocked "); 698 // qDebug(" KOAgendaView::createDayLabels() blocked ");
699 return; 699 return;
700 700
701 } 701 }
702 int newHight; 702 int newHight;
703 if ( !mSelectedDates.count()) 703 if ( !mSelectedDates.count())
704 return; 704 return;
705 705
706 // ### Before deleting and recreating we could check if mSelectedDates changed... 706 // ### Before deleting and recreating we could check if mSelectedDates changed...
707 // It would remove some flickering and gain speed (since this is called by 707 // It would remove some flickering and gain speed (since this is called by
708 // each updateView() call) 708 // each updateView() call)
709 709
710 int maxWid = mUpcomingWidth - mTimeLabels->width()- mAgenda->verticalScrollBar()->width() - mAgenda->frameWidth()*2; 710 int maxWid = mUpcomingWidth - mTimeLabels->width()- mAgenda->verticalScrollBar()->width() - mAgenda->frameWidth()*2;
711 mDayLabelsFrame->setMaximumWidth( mUpcomingWidth ); 711 mDayLabelsFrame->setMaximumWidth( mUpcomingWidth );
712 if ( maxWid < 20 ) 712 if ( maxWid < 20 )
713 maxWid = 20; 713 maxWid = 20;
714 714
715 QFont dlf = KOPrefs::instance()->mTimeLabelsFont; 715 QFont dlf = KOPrefs::instance()->mTimeLabelsFont;
716 QFontMetrics fm ( dlf ); 716 QFontMetrics fm ( dlf );
717 dlf.setBold( true ); 717 dlf.setBold( true );
718 int selCount = mSelectedDates.count(); 718 int selCount = mSelectedDates.count();
719 int widModulo = maxWid - (mAgenda->gridSpacingX() * selCount)+1; 719 int widModulo = maxWid - (mAgenda->gridSpacingX() * selCount)+1;
720 if ( widModulo < 0 || widModulo > selCount )
721 widModulo = 0;
720 QString dayTest = "Mon 20"; 722 QString dayTest = "Mon 20";
721 //QString dayTest = "Mon 20"; 723 //QString dayTest = "Mon 20";
722 int wid = fm.width( dayTest ); 724 int wid = fm.width( dayTest );
723 //maxWid -= ( selCount * 3 ); //working for QLabels 725 //maxWid -= ( selCount * 3 ); //working for QLabels
724 if ( QApplication::desktop()->width() <= 320 ) 726 if ( QApplication::desktop()->width() <= 320 )
725 maxWid -= ( selCount * 3 ); //working for QPushButton 727 maxWid -= ( selCount * 3 ); //working for QPushButton
726 else 728 else
727 maxWid -= ( selCount * 4 ); //working for QPushButton 729 maxWid -= ( selCount * 4 ); //working for QPushButton
728 if ( maxWid < 0 ) 730 if ( maxWid < 0 )
729 maxWid = 20; 731 maxWid = 20;
730 int needWid = wid * selCount; 732 int needWid = wid * selCount;
731 //qDebug("++++++++Needed : %d MaxWidth: %d", needWid, maxWid ); 733 //qDebug("++++++++Needed : %d MaxWidth: %d", needWid, maxWid );
732 //if ( needWid > maxWid ) 734 //if ( needWid > maxWid )
733 // qDebug("DAYLABELS TOOOOOOO BIG "); 735 // qDebug("DAYLABELS TOOOOOOO BIG ");
734 while ( needWid > maxWid ) { 736 while ( needWid > maxWid ) {
735 dayTest = dayTest.left( dayTest.length() - 1 ); 737 dayTest = dayTest.left( dayTest.length() - 1 );
736 wid = fm.width( dayTest ); 738 wid = fm.width( dayTest );
737 needWid = wid * selCount; 739 needWid = wid * selCount;
738 } 740 }
739 int maxLen = dayTest.length(); 741 int maxLen = dayTest.length();
740 int fontPoint = dlf.pointSize(); 742 int fontPoint = dlf.pointSize();
741 if ( maxLen < 2 ) { 743 if ( maxLen < 2 ) {
742 int fontPoint = dlf.pointSize(); 744 int fontPoint = dlf.pointSize();
743 while ( fontPoint > 4 ) { 745 while ( fontPoint > 4 ) {
744 --fontPoint; 746 --fontPoint;
745 dlf.setPointSize( fontPoint ); 747 dlf.setPointSize( fontPoint );
746 QFontMetrics f( dlf ); 748 QFontMetrics f( dlf );
747 wid = f.width( "30" ); 749 wid = f.width( "30" );
748 needWid = wid * selCount; 750 needWid = wid * selCount;
749 if ( needWid < maxWid ) 751 if ( needWid < maxWid )
750 break; 752 break;
751 } 753 }
752 maxLen = 2; 754 maxLen = 2;
753 } 755 }
754 //qDebug("Max len %d ", dayTest.length() ); 756 //qDebug("Max len %d ", dayTest.length() );
755 if ( !KOPrefs::instance()->mTimeLabelsFont.bold() ) 757 if ( !KOPrefs::instance()->mTimeLabelsFont.bold() )
756 dlf.setBold( false ); 758 dlf.setBold( false );
757 QFontMetrics tempF( dlf ); 759 QFontMetrics tempF( dlf );
758 newHight = tempF.height(); 760 newHight = tempF.height();
759 mDayLabels->setFont( dlf ); 761 mDayLabels->setFont( dlf );
760 // mLayoutDayLabels = new QHBoxLayout(mDayLabels);; 762 // mLayoutDayLabels = new QHBoxLayout(mDayLabels);;
761 // mLayoutDayLabels->addSpacing(mTimeLabels->width()); 763 // mLayoutDayLabels->addSpacing(mTimeLabels->width());
762 //mLayoutDayLabels->addSpacing( 2 ); 764 //mLayoutDayLabels->addSpacing( 2 );
763 // QFont lFont = dlf; 765 // QFont lFont = dlf;
764 bool appendLabels = false; 766 bool appendLabels = false;
765 KOAgendaButton *dayLabel; 767 KOAgendaButton *dayLabel;
766 dayLabel = mDayLabelsList.first(); 768 dayLabel = mDayLabelsList.first();
767 if ( !dayLabel ) { 769 if ( !dayLabel ) {
768 appendLabels = true; 770 appendLabels = true;
769 dayLabel = getNewDaylabel(); 771 dayLabel = getNewDaylabel();
770 } 772 }
771 dayLabel->setFixedWidth( mTimeLabels->width()+mAgenda->frameWidth() ); 773 dayLabel->setFixedWidth( mTimeLabels->width()+mAgenda->frameWidth() );
772 dayLabel->setFont( dlf ); 774 dayLabel->setFont( dlf );
773 dayLabel->setNum( -1 ); 775 dayLabel->setNum( -1 );
774 //dayLabel->setAlignment(QLabel::AlignHCenter); 776 //dayLabel->setAlignment(QLabel::AlignHCenter);
775 777
776 dayLabel->setText( KOGlobals::self()->calendarSystem()->monthName( mSelectedDates.first(), true ) ); 778 dayLabel->setText( KOGlobals::self()->calendarSystem()->monthName( mSelectedDates.first(), true ) );
777 dayLabel->show(); 779 dayLabel->show();
778 DateList::ConstIterator dit; 780 DateList::ConstIterator dit;
779 bool oneday = (mSelectedDates.first() == mSelectedDates.last() ); 781 bool oneday = (mSelectedDates.first() == mSelectedDates.last() );
780 int counter = -1; 782 int counter = -1;
781 for( dit = mSelectedDates.begin(); dit != mSelectedDates.end(); ++dit ) { 783 for( dit = mSelectedDates.begin(); dit != mSelectedDates.end(); ++dit ) {
782 ++counter; 784 ++counter;
783 QDate date = *dit; 785 QDate date = *dit;
784 // QBoxLayout *dayLayout = new QVBoxLayout(mLayoutDayLabels); 786 // QBoxLayout *dayLayout = new QVBoxLayout(mLayoutDayLabels);
785 if ( ! appendLabels ) { 787 if ( ! appendLabels ) {
786 dayLabel = mDayLabelsList.next(); 788 dayLabel = mDayLabelsList.next();
787 if ( !dayLabel ) 789 if ( !dayLabel )
788 appendLabels = true; 790 appendLabels = true;
789 } 791 }
790 if ( appendLabels ) { 792 if ( appendLabels ) {
791 dayLabel = getNewDaylabel(); 793 dayLabel = getNewDaylabel();
792 } 794 }
793 dayLabel->setMinimumWidth( 1 ); 795 dayLabel->setMinimumWidth( 1 );
794 dayLabel->setMaximumWidth( 10240 ); 796 dayLabel->setMaximumWidth( 10240 );
795 dayLabel->setFont( dlf ); 797 dayLabel->setFont( dlf );
796 dayLabel->show(); 798 dayLabel->show();
797 dayLabel->setAutoRepeat( false ); 799 dayLabel->setAutoRepeat( false );
798 dayLabel->setNum( counter ); 800 dayLabel->setNum( counter );
799 QString str; 801 QString str;
800 int dW = KOGlobals::self()->calendarSystem()->dayOfWeek(date); 802 int dW = KOGlobals::self()->calendarSystem()->dayOfWeek(date);
801 QString dayName = KOGlobals::self()->calendarSystem()->weekDayName( dW, true ); 803 QString dayName = KOGlobals::self()->calendarSystem()->weekDayName( dW, true );
802 switch ( maxLen ) { 804 switch ( maxLen ) {
803 case 2: 805 case 2:
804 str = QString::number( date.day() ); 806 str = QString::number( date.day() );
805 break; 807 break;
806 808
807 case 3: 809 case 3:
808 str = dayName.left( 1 ) +QString::number( date.day()); 810 str = dayName.left( 1 ) +QString::number( date.day());
809 811
810 break; 812 break;
811 case 4: 813 case 4:
812 str = dayName.left( 1 ) + " " +QString::number( date.day()); 814 str = dayName.left( 1 ) + " " +QString::number( date.day());
813 815
814 break; 816 break;
815 case 5: 817 case 5:
816 str = dayName.left( 2 ) + " " +QString::number( date.day()); 818 str = dayName.left( 2 ) + " " +QString::number( date.day());
817 819
818 break; 820 break;
819 case 6: 821 case 6:
820 str = dayName.left( 3 ) + " " +QString::number( date.day()); 822 str = dayName.left( 3 ) + " " +QString::number( date.day());
821 break; 823 break;
822 824
823 default: 825 default:
824 break; 826 break;
825 } 827 }
826 if ( oneday ) { 828 if ( oneday ) {
827 QString addString; 829 QString addString;
828 if ( mSelectedDates.first() == QDateTime::currentDateTime().date() ) 830 if ( mSelectedDates.first() == QDateTime::currentDateTime().date() )
829 addString = i18n("Today"); 831 addString = i18n("Today");
830 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(1) ) 832 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(1) )
831 addString = i18n("Tomorrow"); 833 addString = i18n("Tomorrow");
832 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(-1) ) 834 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(-1) )
833 addString = i18n("Yesterday"); 835 addString = i18n("Yesterday");
834 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(-2) ) 836 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(-2) )
835 addString = i18n("Day before yesterday"); 837 addString = i18n("Day before yesterday");
836 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(2) ) 838 else if ( mSelectedDates.first() == QDateTime::currentDateTime().date().addDays(2) )
837 addString = i18n("Day after tomorrow"); 839 addString = i18n("Day after tomorrow");
838 if ( !addString.isEmpty() ) { 840 if ( !addString.isEmpty() ) {
839 if ( QApplication::desktop()->width() < 640 ) 841 if ( QApplication::desktop()->width() < 640 )
840 str = addString+", " + str; 842 str = addString+", " + str;
841 else 843 else
842 str = addString+", "+ KGlobal::locale()->formatDate( date, false); 844 str = addString+", "+ KGlobal::locale()->formatDate( date, false);
843 } else { 845 } else {
844 str = KGlobal::locale()->formatDate( date, KOPrefs::instance()->mShortDateInViewer); 846 str = KGlobal::locale()->formatDate( date, KOPrefs::instance()->mShortDateInViewer);
845 } 847 }
846 } 848 }
847 dayLabel->setText(str); 849 dayLabel->setText(str);
848 //dayLabel->setAlignment(QLabel::AlignHCenter); 850 //dayLabel->setAlignment(QLabel::AlignHCenter);
849 if (date == QDate::currentDate()) { 851 if (date == QDate::currentDate()) {
850 QFont bFont = dlf; 852 QFont bFont = dlf;
851 bFont.setBold( true ); 853 bFont.setBold( true );
852 dayLabel->setFont(bFont); 854 dayLabel->setFont(bFont);
853 } 855 }
854 //dayLayout->addWidget(dayLabel); 856 //dayLayout->addWidget(dayLabel);
855 857
856#ifndef KORG_NOPLUGINS 858#ifndef KORG_NOPLUGINS
857 CalendarDecoration::List cds = KOCore::self()->calendarDecorations(); 859 CalendarDecoration::List cds = KOCore::self()->calendarDecorations();
858 CalendarDecoration *it; 860 CalendarDecoration *it;
859 for(it = cds.first(); it; it = cds.next()) { 861 for(it = cds.first(); it; it = cds.next()) {
860 QString text = it->shortText( date ); 862 QString text = it->shortText( date );
861 if ( !text.isEmpty() ) { 863 if ( !text.isEmpty() ) {
862 QLabel *label = new QLabel(text,mDayLabels); 864 QLabel *label = new QLabel(text,mDayLabels);
863 label->setAlignment(AlignCenter); 865 label->setAlignment(AlignCenter);
864 dayLayout->addWidget(label); 866 dayLayout->addWidget(label);
865 } 867 }
866 } 868 }
867 869
868 for(it = cds.first(); it; it = cds.next()) { 870 for(it = cds.first(); it; it = cds.next()) {
869 QWidget *wid = it->smallWidget(mDayLabels,date); 871 QWidget *wid = it->smallWidget(mDayLabels,date);
870 if ( wid ) { 872 if ( wid ) {
871 // wid->setHeight(20); 873 // wid->setHeight(20);
872 dayLayout->addWidget(wid); 874 dayLayout->addWidget(wid);
873 } 875 }
874 } 876 }
875#endif 877#endif
876 } 878 }
877 if ( ! appendLabels ) { 879 if ( ! appendLabels ) {
878 dayLabel = mDayLabelsList.next(); 880 dayLabel = mDayLabelsList.next();
879 if ( !dayLabel ) 881 if ( !dayLabel )
880 appendLabels = true; 882 appendLabels = true;
881 } 883 }
882 if ( appendLabels ) { 884 if ( appendLabels ) {
883 dayLabel = getNewDaylabel(); 885 dayLabel = getNewDaylabel();
884 } 886 }
885 //dayLabel->hide();//test only 887 //dayLabel->hide();//test only
886 888
887 dayLabel->setText(">"); 889 dayLabel->setText(">");
888 dayLabel->setFont( dlf ); 890 dayLabel->setFont( dlf );
889 dayLabel->setAutoRepeat( true ); 891 dayLabel->setAutoRepeat( true );
890 dayLabel->show(); 892 dayLabel->show();
891 dayLabel->setNum( -2 ); 893 dayLabel->setNum( -2 );
892 dayLabel->setFixedWidth( mAgenda->verticalScrollBar()->width()+ widModulo ); 894 dayLabel->setFixedWidth( mAgenda->verticalScrollBar()->width()+ widModulo );
893 895
894 //mLayoutDayLabels->addSpacing(mAgenda->verticalScrollBar()->width()+ offset+2); 896 //mLayoutDayLabels->addSpacing(mAgenda->verticalScrollBar()->width()+ offset+2);
895 if ( !appendLabels ) { 897 if ( !appendLabels ) {
896 dayLabel = mDayLabelsList.next(); 898 dayLabel = mDayLabelsList.next();
897 while ( dayLabel ) { 899 while ( dayLabel ) {
898 //qDebug("!dayLabel %d",dayLabel ); 900 //qDebug("!dayLabel %d",dayLabel );
899 dayLabel->hide(); 901 dayLabel->hide();
900 dayLabel = mDayLabelsList.next(); 902 dayLabel = mDayLabelsList.next();
901 } 903 }
902 } 904 }
903 905
904 mDayLabelsFrame->setFixedHeight( newHight + 4 ); 906 mDayLabelsFrame->setFixedHeight( newHight + 4 );
905} 907}
906 908
907int KOAgendaView::maxDatesHint() 909int KOAgendaView::maxDatesHint()
908{ 910{
909 // Not sure about the max number of events, so return 0 for now. 911 // Not sure about the max number of events, so return 0 for now.
910 return 0; 912 return 0;
911} 913}
912 914
913int KOAgendaView::currentDateCount() 915int KOAgendaView::currentDateCount()
914{ 916{
915 return mSelectedDates.count(); 917 return mSelectedDates.count();
916} 918}
917 919
918QPtrList<Incidence> KOAgendaView::selectedIncidences() 920QPtrList<Incidence> KOAgendaView::selectedIncidences()
919{ 921{
920 QPtrList<Incidence> selected; 922 QPtrList<Incidence> selected;
921 Incidence *incidence; 923 Incidence *incidence;
922 924
923 incidence = mAgenda->selectedIncidence(); 925 incidence = mAgenda->selectedIncidence();
924 if (incidence) selected.append(incidence); 926 if (incidence) selected.append(incidence);
925 927
926 incidence = mAllDayAgenda->selectedIncidence(); 928 incidence = mAllDayAgenda->selectedIncidence();
927 if (incidence) selected.append(incidence); 929 if (incidence) selected.append(incidence);
928 930
929 return selected; 931 return selected;
930} 932}
931 933
932DateList KOAgendaView::selectedDates() 934DateList KOAgendaView::selectedDates()
933{ 935{
934 DateList selected; 936 DateList selected;
935 QDate qd; 937 QDate qd;
936 938
937 qd = mAgenda->selectedIncidenceDate(); 939 qd = mAgenda->selectedIncidenceDate();
938 if (qd.isValid()) selected.append(qd); 940 if (qd.isValid()) selected.append(qd);
939 941
940 qd = mAllDayAgenda->selectedIncidenceDate(); 942 qd = mAllDayAgenda->selectedIncidenceDate();
941 if (qd.isValid()) selected.append(qd); 943 if (qd.isValid()) selected.append(qd);
942 944
943 return selected; 945 return selected;
944} 946}
945 947
946 948
947void KOAgendaView::updateView() 949void KOAgendaView::updateView()
948{ 950{
949 if ( mBlockUpdating ) 951 if ( mBlockUpdating )
950 return; 952 return;
951 // kdDebug() << "KOAgendaView::updateView()" << endl; 953 // kdDebug() << "KOAgendaView::updateView()" << endl;
952 fillAgenda(); 954 fillAgenda();
953 955
954} 956}
955 957
956 958
957/* 959/*
958 Update configuration settings for the agenda view. This method is not 960 Update configuration settings for the agenda view. This method is not
959 complete. 961 complete.
960*/ 962*/
961void KOAgendaView::updateConfig() 963void KOAgendaView::updateConfig()
962{ 964{
963 if ( mBlockUpdating ) 965 if ( mBlockUpdating )
964 return; 966 return;
965 if ( mAgenda->height() > 96 * KOPrefs::instance()->mHourSize ) { 967 if ( mAgenda->height() > 96 * KOPrefs::instance()->mHourSize ) {
966 int old = KOPrefs::instance()->mHourSize; 968 int old = KOPrefs::instance()->mHourSize;
967 KOPrefs::instance()->mHourSize = mAgenda->height()/96 +1; 969 KOPrefs::instance()->mHourSize = mAgenda->height()/96 +1;
968 //qDebug("KOPrefs::instance()->mHourSize adjusted %d to %d ", old,KOPrefs::instance()->mHourSize ); 970 //qDebug("KOPrefs::instance()->mHourSize adjusted %d to %d ", old,KOPrefs::instance()->mHourSize );
969 } 971 }
970 972
971 973
972 // update config for children 974 // update config for children
973 mTimeLabels->updateConfig(); 975 mTimeLabels->updateConfig();
974 mAgenda->storePosition(); 976 mAgenda->storePosition();
975 mAgenda->updateConfig(); 977 mAgenda->updateConfig();
976 mAllDayAgenda->updateConfig(); 978 mAllDayAgenda->updateConfig();
977 // widget synchronization 979 // widget synchronization
978 //TODO: find a better way, maybe signal/slot 980 //TODO: find a better way, maybe signal/slot
979 mTimeLabels->positionChanged(); 981 mTimeLabels->positionChanged();
980 982
981 // for some reason, this needs to be called explicitly 983 // for some reason, this needs to be called explicitly
982 mTimeLabels->repaint(); 984 mTimeLabels->repaint();
983 985
984 mDummyAllDayLeft->setFixedWidth(mTimeLabels->width()); 986 mDummyAllDayLeft->setFixedWidth(mTimeLabels->width());
985 987
986 // ToolTips displaying summary of events 988 // ToolTips displaying summary of events
987 KOAgendaItem::toolTipGroup()->setEnabled(KOPrefs::instance() 989 KOAgendaItem::toolTipGroup()->setEnabled(KOPrefs::instance()
988 ->mEnableToolTips); 990 ->mEnableToolTips);
989 991
990 //setHolidayMasks(); 992 //setHolidayMasks();
991 993
992 //createDayLabels(); called by via updateView(); 994 //createDayLabels(); called by via updateView();
993 mEventIndicatorTop->setXOffset(mTimeLabels->width() + mAgenda->frameWidth()); 995 mEventIndicatorTop->setXOffset(mTimeLabels->width() + mAgenda->frameWidth());
994 updateView(); 996 updateView();
995 mAgenda->restorePosition(); 997 mAgenda->restorePosition();
996} 998}
997 999
998 1000
999void KOAgendaView::updateEventDates(KOAgendaItem *item, int type) 1001void KOAgendaView::updateEventDates(KOAgendaItem *item, int type)
1000{ 1002{
1001 1003
1002 1004
1003 int xxx = item->cellX(); 1005 int xxx = item->cellX();
1004 //qDebug("KOAgendaView::updateEventDates %d %d %d %d %d", xxx, mMinY.at(xxx),mMaxY.at(xxx),item->cellYTop(),item->cellYBottom() ); 1006 //qDebug("KOAgendaView::updateEventDates %d %d %d %d %d", xxx, mMinY.at(xxx),mMaxY.at(xxx),item->cellYTop(),item->cellYBottom() );
1005 if ( xxx >= 0 && xxx < mMinY.count() && !item->isAllDay() ) { 1007 if ( xxx >= 0 && xxx < mMinY.count() && !item->isAllDay() ) {
1006 if ( mMinY.at(xxx) > item->cellYTop() ) 1008 if ( mMinY.at(xxx) > item->cellYTop() )
1007 mMinY.at(xxx) = item->cellYTop(); 1009 mMinY.at(xxx) = item->cellYTop();
1008 if ( mMaxY.at(xxx) < item->cellYBottom() ) 1010 if ( mMaxY.at(xxx) < item->cellYBottom() )
1009 mMaxY.at(xxx) = item->cellYBottom(); 1011 mMaxY.at(xxx) = item->cellYBottom();
1010 } 1012 }
1011 QDateTime startDt,endDt; 1013 QDateTime startDt,endDt;
1012 QDate startDate; 1014 QDate startDate;
1013 int lenInSecs; 1015 int lenInSecs;
1014 // if ( type == KOAgenda::RESIZETOP ) 1016 // if ( type == KOAgenda::RESIZETOP )
1015 // qDebug("RESIZETOP "); 1017 // qDebug("RESIZETOP ");
1016 // if ( type == KOAgenda::RESIZEBOTTOM ) 1018 // if ( type == KOAgenda::RESIZEBOTTOM )
1017 // qDebug("RESIZEBOTTOM "); 1019 // qDebug("RESIZEBOTTOM ");
1018 // if ( type == KOAgenda::MOVE ) 1020 // if ( type == KOAgenda::MOVE )
1019 // qDebug("MOVE "); 1021 // qDebug("MOVE ");
1020 if ( item->incidence()->typeID() == eventID ) { 1022 if ( item->incidence()->typeID() == eventID ) {
1021 startDt =item->incidence()->dtStart(); 1023 startDt =item->incidence()->dtStart();
1022 endDt = item->incidence()->dtEnd(); 1024 endDt = item->incidence()->dtEnd();
1023 lenInSecs = startDt.secsTo( endDt ); 1025 lenInSecs = startDt.secsTo( endDt );
1024 } 1026 }
1025 1027
1026 // emit incidenceItemChanged( item->incidence(), KOGlobals::EVENTEDITED ); 1028 // emit incidenceItemChanged( item->incidence(), KOGlobals::EVENTEDITED );
1027 1029
1028 if ( item->incidence()->typeID()== todoID && item->mLastMoveXPos > 0 ) { 1030 if ( item->incidence()->typeID()== todoID && item->mLastMoveXPos > 0 ) {
1029 startDate = mSelectedDates[item->mLastMoveXPos]; 1031 startDate = mSelectedDates[item->mLastMoveXPos];
1030 } else { 1032 } else {
1031 if (item->cellX() < 0) { 1033 if (item->cellX() < 0) {
1032 startDate = (mSelectedDates.first()).addDays(item->cellX()); 1034 startDate = (mSelectedDates.first()).addDays(item->cellX());
1033 } else { 1035 } else {
1034 startDate = mSelectedDates[item->cellX()]; 1036 startDate = mSelectedDates[item->cellX()];
1035 } 1037 }
1036 } 1038 }
1037 startDt.setDate(startDate); 1039 startDt.setDate(startDate);
1038 1040
1039 if (item->incidence()->doesFloat()) { 1041 if (item->incidence()->doesFloat()) {
1040 endDt.setDate(startDate.addDays(item->cellWidth() - 1)); 1042 endDt.setDate(startDate.addDays(item->cellWidth() - 1));
1041 } else { 1043 } else {
1042 if ( type == KOAgenda::RESIZETOP || type == KOAgenda::MOVE ) 1044 if ( type == KOAgenda::RESIZETOP || type == KOAgenda::MOVE )
1043 startDt.setTime(mAgenda->gyToTime(item->cellYTop())); 1045 startDt.setTime(mAgenda->gyToTime(item->cellYTop()));
1044 if ( item->incidence()->typeID() == eventID ) { 1046 if ( item->incidence()->typeID() == eventID ) {
1045 if ( type == KOAgenda::MOVE ) { 1047 if ( type == KOAgenda::MOVE ) {
1046 endDt = startDt.addSecs(lenInSecs); 1048 endDt = startDt.addSecs(lenInSecs);
1047 1049
1048 } else if ( type == KOAgenda::RESIZEBOTTOM ) { 1050 } else if ( type == KOAgenda::RESIZEBOTTOM ) {
1049 if (item->lastMultiItem()) { 1051 if (item->lastMultiItem()) {
1050 endDt.setTime(mAgenda->gyToTime(item->lastMultiItem()->cellYBottom()+1)); 1052 endDt.setTime(mAgenda->gyToTime(item->lastMultiItem()->cellYBottom()+1));
1051 endDt.setDate(startDate. 1053 endDt.setDate(startDate.
1052 addDays(item->lastMultiItem()->cellX() - item->cellX())); 1054 addDays(item->lastMultiItem()->cellX() - item->cellX()));
1053 } else { 1055 } else {
1054 endDt.setTime(mAgenda->gyToTime(item->cellYBottom()+1)); 1056 endDt.setTime(mAgenda->gyToTime(item->cellYBottom()+1));
1055 endDt.setDate(startDate); 1057 endDt.setDate(startDate);
1056 } 1058 }
1057 } 1059 }
1058 } else { 1060 } else {
1059 // todo 1061 // todo
1060 if (item->lastMultiItem()) { 1062 if (item->lastMultiItem()) {
1061 endDt.setTime(mAgenda->gyToTime(item->lastMultiItem()->cellYBottom()+1)); 1063 endDt.setTime(mAgenda->gyToTime(item->lastMultiItem()->cellYBottom()+1));
1062 endDt.setDate(startDate. 1064 endDt.setDate(startDate.
1063 addDays(item->lastMultiItem()->cellX() - item->cellX())); 1065 addDays(item->lastMultiItem()->cellX() - item->cellX()));
1064 } else { 1066 } else {
1065 //qDebug("tem->cellYBottom() %d",item->cellYBottom() ); 1067 //qDebug("tem->cellYBottom() %d",item->cellYBottom() );
1066 if ( item->cellYBottom() > 0 ) 1068 if ( item->cellYBottom() > 0 )
1067 endDt.setTime(mAgenda->gyToTime(item->cellYBottom()+1)); 1069 endDt.setTime(mAgenda->gyToTime(item->cellYBottom()+1));
1068 else 1070 else
1069 endDt.setTime((static_cast<Todo*>(item->incidence()))->dtDue().time()); 1071 endDt.setTime((static_cast<Todo*>(item->incidence()))->dtDue().time());
1070 endDt.setDate(startDate); 1072 endDt.setDate(startDate);
1071 } 1073 }
1072 } 1074 }
1073 } 1075 }
1074 if ( item->incidence()->typeID() == eventID ) { 1076 if ( item->incidence()->typeID() == eventID ) {
1075 item->incidence()->setDtStart(startDt); 1077 item->incidence()->setDtStart(startDt);
1076 (static_cast<Event*>(item->incidence()))->setDtEnd(endDt); 1078 (static_cast<Event*>(item->incidence()))->setDtEnd(endDt);
1077 } else if ( item->incidence()->typeID() == todoID ) { 1079 } else if ( item->incidence()->typeID() == todoID ) {
1078 Todo* to = static_cast<Todo*>(item->incidence()); 1080 Todo* to = static_cast<Todo*>(item->incidence());
1079 1081
1080 to->setDtDue(endDt); 1082 to->setDtDue(endDt);
1081 if ( to->hasStartDate() ) { 1083 if ( to->hasStartDate() ) {
1082 if (to->dtStart() >= to->dtDue() ) 1084 if (to->dtStart() >= to->dtDue() )
1083 to->setDtStart(to->dtDue().addDays( -2 )); 1085 to->setDtStart(to->dtDue().addDays( -2 ));
1084 } 1086 }
1085 1087
1086 } 1088 }
1087 //qDebug("KOAgendaView::updateEventDates stsart %s end %s ", startDt.toString().latin1(), endDt.toString().latin1() ); 1089 //qDebug("KOAgendaView::updateEventDates stsart %s end %s ", startDt.toString().latin1(), endDt.toString().latin1() );
1088 item->incidence()->setRevision(item->incidence()->revision()+1); 1090 item->incidence()->setRevision(item->incidence()->revision()+1);
1089 item->setItemDate(startDt.date()); 1091 item->setItemDate(startDt.date());
1090 //item->updateItem(); 1092 //item->updateItem();
1091 if ( item->incidence()->typeID() == todoID ) { 1093 if ( item->incidence()->typeID() == todoID ) {
1092 emit todoMoved((Todo*)item->incidence(), KOGlobals::EVENTEDITED ); 1094 emit todoMoved((Todo*)item->incidence(), KOGlobals::EVENTEDITED );
1093 1095
1094 } 1096 }
1095 else 1097 else
1096 emit incidenceChanged(item->incidence(), KOGlobals::EVENTEDITED); 1098 emit incidenceChanged(item->incidence(), KOGlobals::EVENTEDITED);
1097 item->updateItem(); 1099 item->updateItem();
1098} 1100}
1099 1101
1100void KOAgendaView::showDates( const QDate &start, const QDate &end ) 1102void KOAgendaView::showDates( const QDate &start, const QDate &end )
1101{ 1103{
1102 // kdDebug() << "KOAgendaView::selectDates" << endl; 1104 // kdDebug() << "KOAgendaView::selectDates" << endl;
1103 1105
1104 mSelectedDates.clear(); 1106 mSelectedDates.clear();
1105 // qDebug("KOAgendaView::showDates "); 1107 // qDebug("KOAgendaView::showDates ");
1106 QDate d = start; 1108 QDate d = start;
1107 while (d <= end) { 1109 while (d <= end) {
1108 mSelectedDates.append(d); 1110 mSelectedDates.append(d);
1109 d = d.addDays( 1 ); 1111 d = d.addDays( 1 );
1110 } 1112 }
1111 1113
1112 // and update the view 1114 // and update the view
1113 fillAgenda(); 1115 fillAgenda();
1114} 1116}
1115 1117
1116 1118
1117void KOAgendaView::showEvents(QPtrList<Event>) 1119void KOAgendaView::showEvents(QPtrList<Event>)
1118{ 1120{
1119 kdDebug() << "KOAgendaView::showEvents() is not yet implemented" << endl; 1121 kdDebug() << "KOAgendaView::showEvents() is not yet implemented" << endl;
1120} 1122}
1121 1123
1122void KOAgendaView::changeEventDisplay(Event *, int) 1124void KOAgendaView::changeEventDisplay(Event *, int)
1123{ 1125{
1124 // qDebug("KOAgendaView::changeEventDisplay "); 1126 // qDebug("KOAgendaView::changeEventDisplay ");
1125 // kdDebug() << "KOAgendaView::changeEventDisplay" << endl; 1127 // kdDebug() << "KOAgendaView::changeEventDisplay" << endl;
1126 // this should be re-written to be MUCH smarter. Right now we 1128 // this should be re-written to be MUCH smarter. Right now we
1127 // are just playing dumb. 1129 // are just playing dumb.
1128 fillAgenda(); 1130 fillAgenda();
1129} 1131}
1130 1132
1131void KOAgendaView::fillAgenda(const QDate &) 1133void KOAgendaView::fillAgenda(const QDate &)
1132{ 1134{
1133 // qDebug("KOAgendaView::fillAgenda "); 1135 // qDebug("KOAgendaView::fillAgenda ");
1134 fillAgenda(); 1136 fillAgenda();
1135} 1137}
1136 1138
1137void KOAgendaView::fillAgenda() 1139void KOAgendaView::fillAgenda()
1138{ 1140{
1139 if ( globalFlagBlockStartup ) 1141 if ( globalFlagBlockStartup )
1140 return; 1142 return;
1141 if ( globalFlagBlockAgenda == 1 ) 1143 if ( globalFlagBlockAgenda == 1 )
1142 return; 1144 return;
1143 static bool onlyOne = false; 1145 static bool onlyOne = false;
1144 if ( onlyOne ) 1146 if ( onlyOne )
1145 return; 1147 return;
1146 onlyOne = true; 1148 onlyOne = true;
1147 //if ( globalFlagBlockAgenda == 2 ) 1149 //if ( globalFlagBlockAgenda == 2 )
1148 //globalFlagBlockAgenda = 0; 1150 //globalFlagBlockAgenda = 0;
1149 // globalFlagBlockPainting = false; 1151 // globalFlagBlockPainting = false;
1150 if ( globalFlagBlockAgenda == 0 ) 1152 if ( globalFlagBlockAgenda == 0 )
1151 globalFlagBlockAgenda = 1; 1153 globalFlagBlockAgenda = 1;
1152 // clearView(); 1154 // clearView();
1153 //qDebug("fillAgenda()++++ "); 1155 //qDebug("fillAgenda()++++ ");
1154 globalFlagBlockAgendaItemPaint = 1; 1156 globalFlagBlockAgendaItemPaint = 1;
1155 1157
1156 mAllDayAgenda->changeColumns(mSelectedDates.count()); 1158 mAllDayAgenda->changeColumns(mSelectedDates.count());
1157 mAgenda->changeColumns(mSelectedDates.count()); 1159 mAgenda->changeColumns(mSelectedDates.count());
1158 qApp->processEvents(); 1160 qApp->processEvents();
1159 mEventIndicatorTop->changeColumns(mSelectedDates.count()); 1161 mEventIndicatorTop->changeColumns(mSelectedDates.count());
1160 mEventIndicatorBottom->changeColumns(mSelectedDates.count()); 1162 mEventIndicatorBottom->changeColumns(mSelectedDates.count());
1161 setHolidayMasks(); 1163 setHolidayMasks();
1162 1164
1163 mMinY.resize(mSelectedDates.count()); 1165 mMinY.resize(mSelectedDates.count());
1164 mMaxY.resize(mSelectedDates.count()); 1166 mMaxY.resize(mSelectedDates.count());
1165 1167
1166 QPtrList<Event> dayEvents; 1168 QPtrList<Event> dayEvents;
1167 1169
1168 // ToDo items shall be displayed for the day they are due, but only showed today if they are already overdue. 1170 // ToDo items shall be displayed for the day they are due, but only showed today if they are already overdue.
1169 // Therefore, gtodoset all of them. 1171 // Therefore, gtodoset all of them.
1170 QPtrList<Todo> todos = calendar()->todos(); 1172 QPtrList<Todo> todos = calendar()->todos();
1171 1173
1172 mAgenda->setDateList(mSelectedDates); 1174 mAgenda->setDateList(mSelectedDates);
1173 1175
1174 QDate today = QDate::currentDate(); 1176 QDate today = QDate::currentDate();
1175 1177
1176 DateList::ConstIterator dit; 1178 DateList::ConstIterator dit;
1177 int curCol = 0; 1179 int curCol = 0;
1178 int maxCol = mSelectedDates.count()-1; 1180 int maxCol = mSelectedDates.count()-1;
1179 for( dit = mSelectedDates.begin(); dit != mSelectedDates.end(); ++dit ) { 1181 for( dit = mSelectedDates.begin(); dit != mSelectedDates.end(); ++dit ) {
1180 QDate currentDate = *dit; 1182 QDate currentDate = *dit;
1181 // kdDebug() << "KOAgendaView::fillAgenda(): " << currentDate.toString() 1183 // kdDebug() << "KOAgendaView::fillAgenda(): " << currentDate.toString()
1182 // << endl; 1184 // << endl;
1183 1185
1184 dayEvents = calendar()->events(currentDate,false); 1186 dayEvents = calendar()->events(currentDate,false);
1185 1187
1186 // Default values, which can never be reached 1188 // Default values, which can never be reached
1187 mMinY[curCol] = mAgenda->timeToY(QTime(23,59)) + 1; 1189 mMinY[curCol] = mAgenda->timeToY(QTime(23,59)) + 1;
1188 mMaxY[curCol] = mAgenda->timeToY(QTime(0,0)) - 1; 1190 mMaxY[curCol] = mAgenda->timeToY(QTime(0,0)) - 1;
1189 1191
1190 unsigned int numEvent; 1192 unsigned int numEvent;
1191 //qDebug("+++++NUMEVENT %d", dayEvents.count()); 1193 //qDebug("+++++NUMEVENT %d", dayEvents.count());
1192 for(numEvent=0;numEvent<dayEvents.count();++numEvent) { 1194 for(numEvent=0;numEvent<dayEvents.count();++numEvent) {
1193 Event *event = dayEvents.at(numEvent); 1195 Event *event = dayEvents.at(numEvent);
1194 if ( !KOPrefs::instance()->mShowSyncEvents && event->uid().left(2) == QString("la") ) 1196 if ( !KOPrefs::instance()->mShowSyncEvents && event->uid().left(2) == QString("la") )
1195 if ( event->uid().left(15) == QString("last-syncEvent-") ) 1197 if ( event->uid().left(15) == QString("last-syncEvent-") )
1196 continue; 1198 continue;
1197 // kdDebug() << " Event: " << event->summary() << endl; 1199 // kdDebug() << " Event: " << event->summary() << endl;
1198 1200
1199 int beginX = currentDate.daysTo(event->dtStart().date()) + curCol; 1201 int beginX = currentDate.daysTo(event->dtStart().date()) + curCol;
1200 int endX = currentDate.daysTo(event->dtEnd().date()) + curCol; 1202 int endX = currentDate.daysTo(event->dtEnd().date()) + curCol;
1201 1203
1202 // kdDebug() << " beginX: " << beginX << " endX: " << endX << endl; 1204 // kdDebug() << " beginX: " << beginX << " endX: " << endX << endl;
1203 1205
1204 if (event->doesFloat()) { 1206 if (event->doesFloat()) {
1205 if (event->doesRecur()) { 1207 if (event->doesRecur()) {
1206 if (event->isMultiDay() ) { 1208 if (event->isMultiDay() ) {
1207 endX = endX - beginX;// endX is now number of days 1209 endX = endX - beginX;// endX is now number of days
1208 if ( event->recursOn( currentDate ) ) { 1210 if ( event->recursOn( currentDate ) ) {
1209 endX += curCol; 1211 endX += curCol;
1210 beginX = curCol; 1212 beginX = curCol;
1211 mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX); 1213 mAllDayAgenda->insertAllDayItem(event,currentDate,beginX,endX);
1212 } else { 1214 } else {
1213 //qDebug("days endX %d curCol %d max Col %d %s",endX ,curCol, maxCol, currentDate.toString().latin1()); 1215 //qDebug("days endX %d curCol %d max Col %d %s",endX ,curCol, maxCol, currentDate.toString().latin1());
1214 if ( curCol == maxCol && maxCol+1 < endX ) { 1216 if ( curCol == maxCol && maxCol+1 < endX ) {
1215 int i; 1217 int i;
1216 for ( i = 1; i< endX; ++i ) { 1218 for ( i = 1; i< endX; ++i ) {
1217 if ( event->recursOn( currentDate.addDays( -i ) ) ) 1219 if ( event->recursOn( currentDate.addDays( -i ) ) )
1218 break; 1220 break;
1219 } 1221 }
1220 if ( i > maxCol ) { 1222 if ( i > maxCol ) {
1221 mAllDayAgenda->insertAllDayItem(event,currentDate,0,curCol); 1223 mAllDayAgenda->insertAllDayItem(event,currentDate,0,curCol);
1222 //qDebug("BINGO "); 1224 //qDebug("BINGO ");
1223 } 1225 }
1224 1226
1225 } else { 1227 } else {
1226 QDate dateit = currentDate.addDays( -endX ); 1228 QDate dateit = currentDate.addDays( -endX );
1227 if ( event->recursOn( dateit ) ) { 1229 if ( event->recursOn( dateit ) ) {
1228 //qDebug("found %d %d %d %s", endX,curCol, curCol-endX ,dateit.toString().latin1() ); 1230 //qDebug("found %d %d %d %s", endX,curCol, curCol-endX ,dateit.toString().latin1() );
1229 if ( curCol-endX < 0 ) { 1231 if ( curCol-endX < 0 ) {
1230 mAllDayAgenda->insertAllDayItem(event,currentDate,0,curCol); 1232 mAllDayAgenda->insertAllDayItem(event,currentDate,0,curCol);
1231 } 1233 }