summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/kdatenavigator.cpp18
-rw-r--r--korganizer/komonthview.cpp25
-rw-r--r--korganizer/komonthview.h2
-rw-r--r--korganizer/mainwindow.cpp28
4 files changed, 24 insertions, 49 deletions
diff --git a/korganizer/kdatenavigator.cpp b/korganizer/kdatenavigator.cpp
index 38bddc2..2fca49e 100644
--- a/korganizer/kdatenavigator.cpp
+++ b/korganizer/kdatenavigator.cpp
@@ -197,274 +197,272 @@ void KDateNavigator::setBaseDate( const QDate &date , bool doRepaint ) // = true
197 197
198 updateDates(); 198 updateDates();
199 updateView(); 199 updateView();
200 200
201 KCal::DateList dates; 201 KCal::DateList dates;
202 dates.append( date ); 202 dates.append( date );
203 mNavigatorBar->selectDates( dates ); 203 mNavigatorBar->selectDates( dates );
204 204
205 daymatrix->clearSelection(); 205 daymatrix->clearSelection();
206 if ( doRepaint ) 206 if ( doRepaint )
207 daymatrix->repaint( false ); 207 daymatrix->repaint( false );
208} 208}
209 209
210void KDateNavigator::enableRollover(RolloverType r) 210void KDateNavigator::enableRollover(RolloverType r)
211{ 211{
212 switch(r) 212 switch(r)
213 { 213 {
214 case None : 214 case None :
215 if (updateTimer) 215 if (updateTimer)
216 { 216 {
217 updateTimer->stop(); 217 updateTimer->stop();
218 delete updateTimer; 218 delete updateTimer;
219 updateTimer=0L; 219 updateTimer=0L;
220 } 220 }
221 break; 221 break;
222 case FollowDay : 222 case FollowDay :
223 case FollowMonth : 223 case FollowMonth :
224 if (!updateTimer) 224 if (!updateTimer)
225 { 225 {
226 updateTimer = new QTimer(this); 226 updateTimer = new QTimer(this);
227 QObject::connect(updateTimer,SIGNAL(timeout()), 227 QObject::connect(updateTimer,SIGNAL(timeout()),
228 this,SLOT(possiblyPastMidnight())); 228 this,SLOT(possiblyPastMidnight()));
229 } 229 }
230 updateTimer->start(0,true); 230 updateTimer->start(0,true);
231 lastDayChecked = QDate::currentDate(); 231 lastDayChecked = QDate::currentDate();
232 } 232 }
233 updateRollover=r; 233 updateRollover=r;
234} 234}
235 235
236 236
237KDateNavigator::~KDateNavigator() 237KDateNavigator::~KDateNavigator()
238{ 238{
239} 239}
240 240
241 241
242void KDateNavigator::passedMidnight() 242void KDateNavigator::passedMidnight()
243{ 243{
244 QDate today = QDate::currentDate(); 244 QDate today = QDate::currentDate();
245 bool emitMonth = false; 245 bool emitMonth = false;
246 246
247 if (today.month() != lastDayChecked.month()) 247 if (today.month() != lastDayChecked.month())
248 { 248 {
249 if (updateRollover==FollowMonth && 249 if (updateRollover==FollowMonth &&
250 daymatrix->isEndOfMonth()) { 250 daymatrix->isEndOfMonth()) {
251 goNextMonth(); 251 goNextMonth();
252 emitMonth=true; 252 emitMonth=true;
253 } 253 }
254 } 254 }
255 daymatrix->recalculateToday(); 255 daymatrix->recalculateToday();
256 daymatrix->repaint( false ); 256 daymatrix->repaint( false );
257 emit dayPassed(today); 257 emit dayPassed(today);
258 if (emitMonth) { emit monthPassed(today); } 258 if (emitMonth) { emit monthPassed(today); }
259} 259}
260 260
261/* slot */ void KDateNavigator::possiblyPastMidnight() 261/* slot */ void KDateNavigator::possiblyPastMidnight()
262{ 262{
263 if (lastDayChecked!=QDate::currentDate()) 263 if (lastDayChecked!=QDate::currentDate())
264 { 264 {
265 passedMidnight(); 265 passedMidnight();
266 lastDayChecked=QDate::currentDate(); 266 lastDayChecked=QDate::currentDate();
267 } 267 }
268 // Set the timer to go off 1 second after midnight 268 // Set the timer to go off 1 second after midnight
269 // or after 8 minutes, whichever comes first. 269 // or after 8 minutes, whichever comes first.
270 if (updateTimer) 270 if (updateTimer)
271 { 271 {
272 QTime now = QTime::currentTime(); 272 QTime now = QTime::currentTime();
273 QTime midnight = QTime(23,59,59); 273 QTime midnight = QTime(23,59,59);
274 int msecsWait = QMIN(480000,now.msecsTo(midnight)+2000); 274 int msecsWait = QMIN(480000,now.msecsTo(midnight)+2000);
275 275
276 // qDebug(QString("Waiting %1 msec from %2 to %3.").arg(msecsWait)) 276 // qDebug(QString("Waiting %1 msec from %2 to %3.").arg(msecsWait))
277 //.arg(now.toString()).arg(midnight.toString())); 277 //.arg(now.toString()).arg(midnight.toString()));
278 278
279 updateTimer->stop(); 279 updateTimer->stop();
280 updateTimer->start(msecsWait,true); 280 updateTimer->start(msecsWait,true);
281 } 281 }
282} 282}
283 283
284void KDateNavigator::updateDates() 284void KDateNavigator::updateDates()
285{ 285{
286 // Find the first day of the week of the current month. 286 // Find the first day of the week of the current month.
287 //int d1 = KOGlobals::self()->calendarSystem()->day( m_MthYr ); 287 //int d1 = KOGlobals::self()->calendarSystem()->day( m_MthYr );
288 QDate dayone( m_MthYr.year(), m_MthYr.month(), m_MthYr.day() ); 288 QDate dayone( m_MthYr.year(), m_MthYr.month(), m_MthYr.day() );
289 int d2 = KOGlobals::self()->calendarSystem()->day( dayone ); 289 int d2 = KOGlobals::self()->calendarSystem()->day( dayone );
290 //int di = d1 - d2 + 1; 290 //int di = d1 - d2 + 1;
291 dayone = dayone.addDays( -d2 + 1 ); 291 dayone = dayone.addDays( -d2 + 1 );
292 292
293 int m_fstDayOfWkCalsys = KOGlobals::self()->calendarSystem()->dayOfWeek( dayone ); 293 int m_fstDayOfWkCalsys = KOGlobals::self()->calendarSystem()->dayOfWeek( dayone );
294 294
295 // If month begins on Monday and Monday is first day of week, 295 // If month begins on Monday and Monday is first day of week,
296 // month should begin on second line. Sunday doesn't have this problem. 296 // month should begin on second line. Sunday doesn't have this problem.
297 int nextLine = ( ( m_fstDayOfWkCalsys == 1) && 297 int nextLine = ( ( m_fstDayOfWkCalsys == 1) &&
298 ( KGlobal::locale()->weekStartsMonday() == 1 ) ) ? 7 : 0; 298 ( KGlobal::locale()->weekStartsMonday() == 1 ) ) ? 7 : 0;
299 299
300 // update the matrix dates 300 // update the matrix dates
301 int index = (KGlobal::locale()->weekStartsMonday() ? 1 : 0) - m_fstDayOfWkCalsys - nextLine; 301 int index = (KGlobal::locale()->weekStartsMonday() ? 1 : 0) - m_fstDayOfWkCalsys - nextLine;
302 302
303 303
304 daymatrix->updateView(dayone.addDays(index)); 304 daymatrix->updateView(dayone.addDays(index));
305//each updateDates is followed by an updateView -> repaint is issued there ! 305//each updateDates is followed by an updateView -> repaint is issued there !
306// daymatrix->repaint(); 306// daymatrix->repaint();
307} 307}
308 308
309void KDateNavigator::updateDayMatrix() 309void KDateNavigator::updateDayMatrix()
310{ 310{
311 daymatrix->updateView(); 311 daymatrix->updateView();
312 //daymatrix->repaint(); 312 //daymatrix->repaint();
313} 313}
314 314
315 315
316void KDateNavigator::updateView() 316void KDateNavigator::updateView()
317{ 317{
318 318
319 setUpdatesEnabled( false ); 319 setUpdatesEnabled( false );
320 320
321 int i; 321 int i;
322 322
323// kdDebug() << "updateView() -> daymatrix->updateView()" << endl; 323// kdDebug() << "updateView() -> daymatrix->updateView()" << endl;
324 daymatrix->updateView(); 324 daymatrix->updateView();
325 325 int sub = 4;
326 if ( ! KGlobal::locale()->weekStartsMonday() )
327 --sub;
326 // set the week numbers. 328 // set the week numbers.
327 for(i = 0; i < 6; i++) { 329 for(i = 0; i < 6; i++) {
328 QString weeknum;
329 // remember, according to ISO 8601, the first week of the year is the 330 // remember, according to ISO 8601, the first week of the year is the
330 // first week that contains a thursday. Thus we must subtract off 4, 331 // first week that contains a thursday. Thus we must subtract off 4,
331 // not just 1. 332 // not just 1.
332 333
333 //ET int dayOfYear = buttons[(i + 1) * 7 - 4]->date().dayOfYear(); 334 //ET int dayOfYear = buttons[(i + 1) * 7 - 4]->date().dayOfYear();
334 int dayOfYear = KOGlobals::self()->calendarSystem()->dayOfYear((daymatrix->getDate((i+1)*7-4))); 335 int dayOfYear = KOGlobals::self()->calendarSystem()->dayOfYear((daymatrix->getDate((i+1)*7-sub)));
335 336 int weekNo;
336 int add = 0;
337 if ( ! KGlobal::locale()->weekStartsMonday() )
338 ++add;
339 if (dayOfYear % 7 != 0) 337 if (dayOfYear % 7 != 0)
340 weeknum.setNum(dayOfYear / 7 + 1+add); 338 weekNo = (dayOfYear / 7 + 1);
341 else 339 else
342 weeknum.setNum(dayOfYear / 7 +add); 340 weekNo = (dayOfYear / 7);
343 weeknos[i]->setText(weeknum); 341 weeknos[i]->setText(QString::number( weekNo ));
344 } 342 }
345 343
346 setUpdatesEnabled( true ); 344 setUpdatesEnabled( true );
347// kdDebug() << "updateView() -> repaint()" << endl; 345// kdDebug() << "updateView() -> repaint()" << endl;
348 repaint(); 346 repaint();
349 // daymatrix->repaint(); 347 // daymatrix->repaint();
350} 348}
351 349
352void KDateNavigator::updateConfig() 350void KDateNavigator::updateConfig()
353{ 351{
354 int day; 352 int day;
355 for(int i=0; i<7; i++) { 353 for(int i=0; i<7; i++) {
356 // take the first letter of the day name to be the abbreviation 354 // take the first letter of the day name to be the abbreviation
357 if (KGlobal::locale()->weekStartsMonday()) { 355 if (KGlobal::locale()->weekStartsMonday()) {
358 day = i+1; 356 day = i+1;
359 } else { 357 } else {
360 if (i==0) day = 7; 358 if (i==0) day = 7;
361 else day = i; 359 else day = i;
362 } 360 }
363 QString dayName = KOGlobals::self()->calendarSystem()->weekDayName( day, 361 QString dayName = KOGlobals::self()->calendarSystem()->weekDayName( day,
364 true ); 362 true );
365 if ( KOPrefs::instance()->mCompactDialogs ) dayName = dayName.left( 1 ); 363 if ( KOPrefs::instance()->mCompactDialogs ) dayName = dayName.left( 1 );
366 headings[i]->setText( dayName ); 364 headings[i]->setText( dayName );
367 } 365 }
368 updateDates(); 366 updateDates();
369 updateView(); 367 updateView();
370} 368}
371 369
372void KDateNavigator::setShowWeekNums(bool enabled) 370void KDateNavigator::setShowWeekNums(bool enabled)
373{ 371{
374 qDebug("KDateNavigator::setShowWeekNums***************************** "); 372 qDebug("KDateNavigator::setShowWeekNums***************************** ");
375 m_bShowWeekNums = enabled; 373 m_bShowWeekNums = enabled;
376 for(int i=0; i<6; i++) { 374 for(int i=0; i<6; i++) {
377 if(enabled) 375 if(enabled)
378 weeknos[i]->show(); 376 weeknos[i]->show();
379 else 377 else
380 weeknos[i]->hide(); 378 weeknos[i]->hide();
381 } 379 }
382 resize(size()); 380 resize(size());
383} 381}
384 382
385void KDateNavigator::selectDates(const DateList& dateList) 383void KDateNavigator::selectDates(const DateList& dateList)
386{ 384{
387 385
388 if (dateList.count() > 0) { 386 if (dateList.count() > 0) {
389 mNavigatorBar->selectDates( dateList ); 387 mNavigatorBar->selectDates( dateList );
390 mSelectedDates = dateList; 388 mSelectedDates = dateList;
391 389
392 // set our record of the month and year that this datetbl is 390 // set our record of the month and year that this datetbl is
393 // displaying. 391 // displaying.
394 m_MthYr = mSelectedDates.first(); 392 m_MthYr = mSelectedDates.first();
395 393
396 394
397 // set our record of the first day of the week of the current 395 // set our record of the first day of the week of the current
398 // month. This needs to be done before calling dayToIndex, since it 396 // month. This needs to be done before calling dayToIndex, since it
399 // relies on this information being up to date. 397 // relies on this information being up to date.
400 QDate dayone(m_MthYr.year(), m_MthYr.month(), 1); 398 QDate dayone(m_MthYr.year(), m_MthYr.month(), 1);
401 m_fstDayOfWk = dayone.dayOfWeek(); 399 m_fstDayOfWk = dayone.dayOfWeek();
402 400
403 updateDates(); 401 updateDates();
404 402
405 daymatrix->setSelectedDaysFrom(*(dateList.begin()), *(--dateList.end())); 403 daymatrix->setSelectedDaysFrom(*(dateList.begin()), *(--dateList.end()));
406 404
407 updateView(); 405 updateView();
408 } 406 }
409} 407}
410 408
411int KDateNavigator::dayNum(int row, int col) 409int KDateNavigator::dayNum(int row, int col)
412{ 410{
413 return 7 * (row - 1) + (col + 1) - m_fstDayOfWk; 411 return 7 * (row - 1) + (col + 1) - m_fstDayOfWk;
414} 412}
415 413
416int KDateNavigator::dayToIndex(int dayNum) 414int KDateNavigator::dayToIndex(int dayNum)
417{ 415{
418 int row, col; 416 int row, col;
419 417
420 row = (dayNum+m_fstDayOfWk-1-(KGlobal::locale()->weekStartsMonday() ? 1 : 0)) / 7; 418 row = (dayNum+m_fstDayOfWk-1-(KGlobal::locale()->weekStartsMonday() ? 1 : 0)) / 7;
421 if (KGlobal::locale()->weekStartsMonday() && (m_fstDayOfWk == 1)) 419 if (KGlobal::locale()->weekStartsMonday() && (m_fstDayOfWk == 1))
422 row++; 420 row++;
423 col = (dayNum+m_fstDayOfWk-1-(KGlobal::locale()->weekStartsMonday() ? 1 : 0)) % 7; 421 col = (dayNum+m_fstDayOfWk-1-(KGlobal::locale()->weekStartsMonday() ? 1 : 0)) % 7;
424 return row * 7 + col; 422 return row * 7 + col;
425} 423}
426 424
427void KDateNavigator::wheelEvent (QWheelEvent *e) 425void KDateNavigator::wheelEvent (QWheelEvent *e)
428{ 426{
429 if(e->delta()>0) emit goPrevious(); 427 if(e->delta()>0) emit goPrevious();
430 else emit goNext(); 428 else emit goNext();
431 429
432 e->accept(); 430 e->accept();
433} 431}
434 432
435bool KDateNavigator::eventFilter (QObject *o,QEvent *e) 433bool KDateNavigator::eventFilter (QObject *o,QEvent *e)
436{ 434{
437 if (e->type() == QEvent::MouseButtonPress) { 435 if (e->type() == QEvent::MouseButtonPress) {
438 int i; 436 int i;
439 for(i=0;i<6;++i) { 437 for(i=0;i<6;++i) {
440 if (o == weeknos[i]) { 438 if (o == weeknos[i]) {
441 QDate weekstart = daymatrix->getDate(i*7); 439 QDate weekstart = daymatrix->getDate(i*7);
442 emit weekClicked(weekstart); 440 emit weekClicked(weekstart);
443 break; 441 break;
444 } 442 }
445 } 443 }
446 for(i=0;i<7;++i) { 444 for(i=0;i<7;++i) {
447 if (o == headings[i]) { 445 if (o == headings[i]) {
448 KCal::DateList selDays; 446 KCal::DateList selDays;
449 QDate date = daymatrix->getDate(14); 447 QDate date = daymatrix->getDate(14);
450 emit showMonth(date ); 448 emit showMonth(date );
451#if 0 449#if 0
452 int dio = date.daysInMonth(); 450 int dio = date.daysInMonth();
453 int j; 451 int j;
454 int ye = date.year(); 452 int ye = date.year();
455 int mo = date.month(); 453 int mo = date.month();
456 for ( j = 1; j <= dio; ++j ) { 454 for ( j = 1; j <= dio; ++j ) {
457 selDays.append( QDate( ye, mo, j ) ); 455 selDays.append( QDate( ye, mo, j ) );
458 } 456 }
459 emit datesSelected( selDays ); 457 emit datesSelected( selDays );
460#endif 458#endif
461 break; 459 break;
462 } 460 }
463 } 461 }
464 return true; 462 return true;
465 } else { 463 } else {
466 return false; 464 return false;
467 } 465 }
468} 466}
469 467
470//#include "kdatenavigator.moc" 468//#include "kdatenavigator.moc"
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp
index 9085775..d825493 100644
--- a/korganizer/komonthview.cpp
+++ b/korganizer/komonthview.cpp
@@ -876,568 +876,567 @@ void MonthViewCell::deselect()
876{ 876{
877 clearSelection(); 877 clearSelection();
878 enableScrollBars( false ); 878 enableScrollBars( false );
879 // updateCell(); 879 // updateCell();
880} 880}
881void MonthViewCell::select() 881void MonthViewCell::select()
882{ 882{
883 ;// updateCell(); 883 ;// updateCell();
884} 884}
885 885
886void MonthViewCell::resizeEvent ( QResizeEvent * e ) 886void MonthViewCell::resizeEvent ( QResizeEvent * e )
887{ 887{
888 if ( !mMonthView->isUpdatePossible() ) 888 if ( !mMonthView->isUpdatePossible() )
889 return; 889 return;
890 //qDebug("++++++++++++++MonthViewCell::resizeEvent %d %d ", width(), height()); 890 //qDebug("++++++++++++++MonthViewCell::resizeEvent %d %d ", width(), height());
891 deselect(); 891 deselect();
892 mLabel->setMaximumHeight( height() - lineWidth()*2 ); 892 mLabel->setMaximumHeight( height() - lineWidth()*2 );
893 893
894 QString text; 894 QString text;
895 mLabel->setText( text ); 895 mLabel->setText( text );
896 bool smallDisplay = QApplication::desktop()->width() < 320 && KOPrefs::instance()->mMonthViewSatSunTog; 896 bool smallDisplay = QApplication::desktop()->width() < 320 && KOPrefs::instance()->mMonthViewSatSunTog;
897 if ( KOPrefs::instance()->mMonthViewWeek || KOGlobals::self()->calendarSystem()->day( mDate ) == 1 || (mDate.dayOfWeek() == 7 && !smallDisplay ) || KOPrefs::instance()->mMonthShowShort) { 897 if ( KOPrefs::instance()->mMonthViewWeek || KOGlobals::self()->calendarSystem()->day( mDate ) == 1 || (mDate.dayOfWeek() == 7 && !smallDisplay ) || KOPrefs::instance()->mMonthShowShort) {
898 text = KOGlobals::self()->calendarSystem()->monthName( mDate, true ) + " "; 898 text = KOGlobals::self()->calendarSystem()->monthName( mDate, true ) + " ";
899 mLabel->resize( mLabelBigSize ); 899 mLabel->resize( mLabelBigSize );
900 text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) ); 900 text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) );
901 } else { 901 } else {
902 mLabel->resize( mLabelSize ); 902 mLabel->resize( mLabelSize );
903 text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) ); 903 text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) );
904 } 904 }
905 mLabel->setText( text ); 905 mLabel->setText( text );
906 906
907 int size = height() - mLabel->height() - lineWidth()-1; 907 int size = height() - mLabel->height() - lineWidth()-1;
908 //qDebug("LW %d ", lineWidth()); 908 //qDebug("LW %d ", lineWidth());
909 if ( size > 0 ) 909 if ( size > 0 )
910 verticalScrollBar()->setMaximumHeight( size ); 910 verticalScrollBar()->setMaximumHeight( size );
911 size = width() - mLabel->width() -lineWidth()-1; 911 size = width() - mLabel->width() -lineWidth()-1;
912 if ( size > 0 ) 912 if ( size > 0 )
913 horizontalScrollBar()->setMaximumWidth( size ); 913 horizontalScrollBar()->setMaximumWidth( size );
914 mLabel->move( width()-lineWidth() - mLabel->width(), height()-lineWidth() - mLabel->height() ); 914 mLabel->move( width()-lineWidth() - mLabel->width(), height()-lineWidth() - mLabel->height() );
915 //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2); 915 //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2);
916 // mItemList->resize ( width(), height () ); 916 // mItemList->resize ( width(), height () );
917 if ( e ) 917 if ( e )
918 KNoScrollListBox::resizeEvent ( e ); 918 KNoScrollListBox::resizeEvent ( e );
919} 919}
920 920
921void MonthViewCell::defaultAction( QListBoxItem *item ) 921void MonthViewCell::defaultAction( QListBoxItem *item )
922{ 922{
923 if ( !item ) return; 923 if ( !item ) return;
924 924
925 MonthViewItem *eventItem = static_cast<MonthViewItem *>( item ); 925 MonthViewItem *eventItem = static_cast<MonthViewItem *>( item );
926 Incidence *incidence = eventItem->incidence(); 926 Incidence *incidence = eventItem->incidence();
927 if ( incidence ) mMonthView->defaultAction( incidence ); 927 if ( incidence ) mMonthView->defaultAction( incidence );
928} 928}
929void MonthViewCell::showDay() 929void MonthViewCell::showDay()
930{ 930{
931 emit showDaySignal( date() ); 931 emit showDaySignal( date() );
932} 932}
933void MonthViewCell::newEvent() 933void MonthViewCell::newEvent()
934{ 934{
935 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) ); 935 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) );
936 emit newEventSignal( dt ); 936 emit newEventSignal( dt );
937} 937}
938void MonthViewCell::cellClicked( QListBoxItem *item ) 938void MonthViewCell::cellClicked( QListBoxItem *item )
939{ 939{
940 static QListBoxItem * lastClicked = 0; 940 static QListBoxItem * lastClicked = 0;
941 if ( item == 0 ) { 941 if ( item == 0 ) {
942 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) ); 942 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) );
943 emit newEventSignal( dt ); 943 emit newEventSignal( dt );
944 return; 944 return;
945 } 945 }
946 /* 946 /*
947 if ( lastClicked ) 947 if ( lastClicked )
948 if ( ! item ) { 948 if ( ! item ) {
949 if ( lastClicked->listBox() != item->listBox() ) 949 if ( lastClicked->listBox() != item->listBox() )
950 lastClicked->listBox()->clearSelection(); 950 lastClicked->listBox()->clearSelection();
951 } 951 }
952 */ 952 */
953 953
954 mMonthView->setSelectedCell( this ); 954 mMonthView->setSelectedCell( this );
955 if( KOPrefs::instance()->mEnableMonthScroll || KOPrefs::instance()->mMonthViewWeek ) enableScrollBars( true ); 955 if( KOPrefs::instance()->mEnableMonthScroll || KOPrefs::instance()->mMonthViewWeek ) enableScrollBars( true );
956 select(); 956 select();
957} 957}
958 958
959void MonthViewCell::contextMenu( QListBoxItem *item ) 959void MonthViewCell::contextMenu( QListBoxItem *item )
960{ 960{
961 if ( !item ) return; 961 if ( !item ) return;
962 962
963 MonthViewItem *eventItem = static_cast<MonthViewItem *>( item ); 963 MonthViewItem *eventItem = static_cast<MonthViewItem *>( item );
964 Incidence *incidence = eventItem->incidence(); 964 Incidence *incidence = eventItem->incidence();
965 if ( incidence ) mMonthView->showContextMenu( incidence ); 965 if ( incidence ) mMonthView->showContextMenu( incidence );
966} 966}
967 967
968void MonthViewCell::selection( QListBoxItem *item ) 968void MonthViewCell::selection( QListBoxItem *item )
969{ 969{
970 if ( !item ) return; 970 if ( !item ) return;
971 971
972 mMonthView->setSelectedCell( this ); 972 mMonthView->setSelectedCell( this );
973} 973}
974 974
975 975
976// ******************************************************************************* 976// *******************************************************************************
977// ******************************************************************************* 977// *******************************************************************************
978// ******************************************************************************* 978// *******************************************************************************
979 979
980 980
981KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name) 981KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name)
982 : KOEventView( calendar, parent, name ), 982 : KOEventView( calendar, parent, name ),
983 mDaysPerWeek( 7 ), mNumWeeks( 6 ), mNumCells( mDaysPerWeek * mNumWeeks ), 983 mDaysPerWeek( 7 ), mNumWeeks( 6 ), mNumCells( mDaysPerWeek * mNumWeeks ),
984 mWidthLongDayLabel( 0 ), mSelectedCell( 0 ) 984 mWidthLongDayLabel( 0 ), mSelectedCell( 0 )
985{ 985{
986 mShortDayLabelsM = false; 986 mShortDayLabelsM = false;
987 mShortDayLabelsW = false; 987 mShortDayLabelsW = false;
988 skipResize = false; 988 skipResize = false;
989 clPending = true; 989 clPending = true;
990 mNavigatorBar = new NavigatorBar( QDate::currentDate(), this, "useBigPixmaps" ); 990 mNavigatorBar = new NavigatorBar( QDate::currentDate(), this, "useBigPixmaps" );
991 mWidStack = new QWidgetStack( this ); 991 mWidStack = new QWidgetStack( this );
992 QVBoxLayout* hb = new QVBoxLayout( this ); 992 QVBoxLayout* hb = new QVBoxLayout( this );
993 mMonthView = new QWidget( mWidStack ); 993 mMonthView = new QWidget( mWidStack );
994 mWeekView = new QWidget( mWidStack ); 994 mWeekView = new QWidget( mWidStack );
995#if QT_VERSION >= 0x030000 995#if QT_VERSION >= 0x030000
996 mWidStack->addWidget(mMonthView ); 996 mWidStack->addWidget(mMonthView );
997 mWidStack->addWidget(mWeekView ); 997 mWidStack->addWidget(mWeekView );
998#else 998#else
999 mWidStack->addWidget( mMonthView, 1 ); 999 mWidStack->addWidget( mMonthView, 1 );
1000 mWidStack->addWidget( mWeekView , 1 ); 1000 mWidStack->addWidget( mWeekView , 1 );
1001#endif 1001#endif
1002 hb->addWidget( mNavigatorBar ); 1002 hb->addWidget( mNavigatorBar );
1003 hb->addWidget( mWidStack ); 1003 hb->addWidget( mWidStack );
1004 mWeekStartsMonday = KGlobal::locale()->weekStartsMonday();
1005 mShowWeekView = KOPrefs::instance()->mMonthViewWeek; 1004 mShowWeekView = KOPrefs::instance()->mMonthViewWeek;
1006 if ( mShowWeekView )
1007 mWeekStartsMonday = true;
1008 updatePossible = false; 1005 updatePossible = false;
1009 //updatePossible = true; 1006 //updatePossible = true;
1010 mCells.setAutoDelete( true ); 1007 mCells.setAutoDelete( true );
1011 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ; 1008 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ;
1012 mDayLabels.resize( mDaysPerWeek ); 1009 mDayLabels.resize( mDaysPerWeek );
1013 mDayLabelsW.resize( mDaysPerWeek ); 1010 mDayLabelsW.resize( mDaysPerWeek );
1014 QFont bfont = font(); 1011 QFont bfont = font();
1015 if ( QApplication::desktop()->width() < 650 ) { 1012 if ( QApplication::desktop()->width() < 650 ) {
1016 bfont.setPointSize( bfont.pointSize() - 2 ); 1013 bfont.setPointSize( bfont.pointSize() - 2 );
1017 } 1014 }
1018 bfont.setBold( true ); 1015 bfont.setBold( true );
1019 int i; 1016 int i;
1020 1017
1021 for( i = 0; i < mDaysPerWeek; i++ ) { 1018 for( i = 0; i < mDaysPerWeek; i++ ) {
1022 QLabel *label = new QLabel( mMonthView ); 1019 QLabel *label = new QLabel( mMonthView );
1023 label->setFont(bfont); 1020 label->setFont(bfont);
1024 label->setFrameStyle(QFrame::Panel|QFrame::Raised); 1021 label->setFrameStyle(QFrame::Panel|QFrame::Raised);
1025 label->setLineWidth(1); 1022 label->setLineWidth(1);
1026 label->setAlignment(AlignCenter); 1023 label->setAlignment(AlignCenter);
1027 mDayLabels.insert( i, label ); 1024 mDayLabels.insert( i, label );
1028 label = new QLabel( mWeekView ); 1025 label = new QLabel( mWeekView );
1029 label->setFont(bfont); 1026 label->setFont(bfont);
1030 label->setFrameStyle(QFrame::Panel|QFrame::Raised); 1027 label->setFrameStyle(QFrame::Panel|QFrame::Raised);
1031 label->setLineWidth(1); 1028 label->setLineWidth(1);
1032 label->setAlignment(AlignCenter); 1029 label->setAlignment(AlignCenter);
1033 mDayLabelsW.insert( i, label ); 1030 mDayLabelsW.insert( i, label );
1034 } 1031 }
1035 1032
1036 bfont.setBold( false ); 1033 bfont.setBold( false );
1037 mWeekLabels.resize( mNumWeeks+1 ); 1034 mWeekLabels.resize( mNumWeeks+1 );
1038 mWeekLabelsW.resize( 2 ); 1035 mWeekLabelsW.resize( 2 );
1039 for( i = 0; i < mNumWeeks+1; i++ ) { 1036 for( i = 0; i < mNumWeeks+1; i++ ) {
1040 KOWeekButton *label = new KOWeekButton( mMonthView ); 1037 KOWeekButton *label = new KOWeekButton( mMonthView );
1041 label->setFocusPolicy(NoFocus); 1038 label->setFocusPolicy(NoFocus);
1042 label->setFont(bfont); 1039 label->setFont(bfont);
1043 connect( label, SIGNAL( selectWeekNum ( int )),this, SLOT( selectInternalWeekNum ( int )) ); 1040 connect( label, SIGNAL( selectWeekNum ( int )),this, SLOT( selectInternalWeekNum ( int )) );
1044 label->setFlat(true); 1041 label->setFlat(true);
1045 QWhatsThis::add(label,i18n("Click on the week number to\nshow week zoomed")); 1042 QWhatsThis::add(label,i18n("Click on the week number to\nshow week zoomed"));
1046 //label->setFrameStyle(QFrame::Panel|QFrame::Raised); 1043 //label->setFrameStyle(QFrame::Panel|QFrame::Raised);
1047 //label->setLineWidth(1); 1044 //label->setLineWidth(1);
1048 //label->setAlignment(AlignCenter); 1045 //label->setAlignment(AlignCenter);
1049 mWeekLabels.insert( i, label ); 1046 mWeekLabels.insert( i, label );
1050 } 1047 }
1051 mWeekLabels[mNumWeeks]->setText( i18n("W")); 1048 mWeekLabels[mNumWeeks]->setText( i18n("W"));
1052 QWhatsThis::add(mWeekLabels[mNumWeeks],i18n("Click on this to\nselect week number")); 1049 QWhatsThis::add(mWeekLabels[mNumWeeks],i18n("Click on this to\nselect week number"));
1053 1050
1054 for( i = 0; i < 1+1; i++ ) { 1051 for( i = 0; i < 1+1; i++ ) {
1055 KOWeekButton *label = new KOWeekButton( mWeekView ); 1052 KOWeekButton *label = new KOWeekButton( mWeekView );
1056 label->setFocusPolicy(NoFocus); 1053 label->setFocusPolicy(NoFocus);
1057 label->setFont(bfont); 1054 label->setFont(bfont);
1058 connect( label, SIGNAL( selectWeekNum ( int )),this, SLOT( selectInternalWeekNum ( int )) ); 1055 connect( label, SIGNAL( selectWeekNum ( int )),this, SLOT( selectInternalWeekNum ( int )) );
1059 label->setFlat(true); 1056 label->setFlat(true);
1060 QWhatsThis::add(label,i18n("Click on the week number to\nshow week zoomed")); 1057 QWhatsThis::add(label,i18n("Click on the week number to\nshow week zoomed"));
1061 //label->setFrameStyle(QFrame::Panel|QFrame::Raised); 1058 //label->setFrameStyle(QFrame::Panel|QFrame::Raised);
1062 //label->setLineWidth(1); 1059 //label->setLineWidth(1);
1063 //label->setAlignment(AlignCenter); 1060 //label->setAlignment(AlignCenter);
1064 mWeekLabelsW.insert( i, label ); 1061 mWeekLabelsW.insert( i, label );
1065 } 1062 }
1066 mWeekLabelsW[1]->setText( i18n("W")); 1063 mWeekLabelsW[1]->setText( i18n("W"));
1067 1064
1068 1065
1069 int row, col; 1066 int row, col;
1070 mCells.resize( mNumCells ); 1067 mCells.resize( mNumCells );
1071 for( row = 0; row < mNumWeeks; ++row ) { 1068 for( row = 0; row < mNumWeeks; ++row ) {
1072 for( col = 0; col < mDaysPerWeek; ++col ) { 1069 for( col = 0; col < mDaysPerWeek; ++col ) {
1073 MonthViewCell *cell = new MonthViewCell( this, mMonthView ); 1070 MonthViewCell *cell = new MonthViewCell( this, mMonthView );
1074 mCells.insert( row * mDaysPerWeek + col, cell ); 1071 mCells.insert( row * mDaysPerWeek + col, cell );
1075 1072
1076 connect( cell, SIGNAL( defaultAction( Incidence * ) ), 1073 connect( cell, SIGNAL( defaultAction( Incidence * ) ),
1077 SLOT( defaultAction( Incidence * ) ) ); 1074 SLOT( defaultAction( Incidence * ) ) );
1078 connect( cell, SIGNAL( newEventSignal( QDateTime ) ), 1075 connect( cell, SIGNAL( newEventSignal( QDateTime ) ),
1079 SIGNAL( newEventSignal( QDateTime ) ) ); 1076 SIGNAL( newEventSignal( QDateTime ) ) );
1080 connect( cell, SIGNAL( showDaySignal( QDate ) ), 1077 connect( cell, SIGNAL( showDaySignal( QDate ) ),
1081 SIGNAL( showDaySignal( QDate ) ) ); 1078 SIGNAL( showDaySignal( QDate ) ) );
1082 } 1079 }
1083 } 1080 }
1084 mCellsW.resize( mDaysPerWeek ); 1081 mCellsW.resize( mDaysPerWeek );
1085 for( col = 0; col < mDaysPerWeek; ++col ) { 1082 for( col = 0; col < mDaysPerWeek; ++col ) {
1086 MonthViewCell *cell = new MonthViewCell( this, mWeekView ); 1083 MonthViewCell *cell = new MonthViewCell( this, mWeekView );
1087 mCellsW.insert( col, cell ); 1084 mCellsW.insert( col, cell );
1088 1085
1089 connect( cell, SIGNAL( defaultAction( Incidence * ) ), 1086 connect( cell, SIGNAL( defaultAction( Incidence * ) ),
1090 SLOT( defaultAction( Incidence * ) ) ); 1087 SLOT( defaultAction( Incidence * ) ) );
1091 connect( cell, SIGNAL( newEventSignal( QDateTime ) ), 1088 connect( cell, SIGNAL( newEventSignal( QDateTime ) ),
1092 SIGNAL( newEventSignal( QDateTime ) ) ); 1089 SIGNAL( newEventSignal( QDateTime ) ) );
1093 connect( cell, SIGNAL( showDaySignal( QDate ) ), 1090 connect( cell, SIGNAL( showDaySignal( QDate ) ),
1094 SIGNAL( showDaySignal( QDate ) ) ); 1091 SIGNAL( showDaySignal( QDate ) ) );
1095 cell->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont ); 1092 cell->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont );
1096 } 1093 }
1097 1094
1098 //connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), SLOT( switchView() ) ); 1095 //connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), SLOT( switchView() ) );
1099 mContextMenu = eventPopup(); 1096 mContextMenu = eventPopup();
1100 // updateConfig(); //useless here... 1097 // updateConfig(); //useless here...
1101 // ... but we need mWidthLongDayLabel computed 1098 // ... but we need mWidthLongDayLabel computed
1102 QFontMetrics fontmetric(mDayLabels[0]->font()); 1099 QFontMetrics fontmetric(mDayLabels[0]->font());
1103 mWidthLongDayLabel = 0; 1100 mWidthLongDayLabel = 0;
1104 for (int i = 0; i < 7; i++) { 1101 for (int i = 0; i < 7; i++) {
1105 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1)); 1102 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1));
1106 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width; 1103 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width;
1107 } 1104 }
1108 1105
1109 //mWeekLabels[mNumWeeks]->setText( i18n("W")); 1106 //mWeekLabels[mNumWeeks]->setText( i18n("W"));
1110 1107
1111#if 0 1108#if 0
1112 if ( mShowWeekView ) 1109 if ( mShowWeekView )
1113 mWidStack->raiseWidget( mWeekView ); 1110 mWidStack->raiseWidget( mWeekView );
1114 else 1111 else
1115 mWidStack->raiseWidget( mMonthView ); 1112 mWidStack->raiseWidget( mMonthView );
1116#endif 1113#endif
1117 1114
1118 emit incidenceSelected( 0 ); 1115 emit incidenceSelected( 0 );
1119 1116
1120 mComputeLayoutTimer = new QTimer( this ); 1117 mComputeLayoutTimer = new QTimer( this );
1121 connect (mComputeLayoutTimer ,SIGNAL(timeout()), this, SLOT ( slotComputeLayout())); 1118 connect (mComputeLayoutTimer ,SIGNAL(timeout()), this, SLOT ( slotComputeLayout()));
1122 1119
1123 1120
1124#ifndef DESKTOP_VERSION 1121#ifndef DESKTOP_VERSION
1125 resize( QApplication::desktop()->size() ); 1122 resize( QApplication::desktop()->size() );
1126#else 1123#else
1127 resize(640, 480 ); 1124 resize(640, 480 );
1128 updatePossible = true; 1125 updatePossible = true;
1129#endif 1126#endif
1130 computeLayout(); 1127 computeLayout();
1131 1128
1132 if ( mShowWeekView ) 1129 if ( mShowWeekView )
1133 mWidStack->raiseWidget( mWeekView ); 1130 mWidStack->raiseWidget( mWeekView );
1134 else 1131 else
1135 mWidStack->raiseWidget( mMonthView ); 1132 mWidStack->raiseWidget( mMonthView );
1136} 1133}
1137 1134
1138KOMonthView::~KOMonthView() 1135KOMonthView::~KOMonthView()
1139{ 1136{
1140 delete mContextMenu; 1137 delete mContextMenu;
1141} 1138}
1142 1139
1143void KOMonthView::selectInternalWeekNum ( int n ) 1140void KOMonthView::selectInternalWeekNum ( int n )
1144{ 1141{
1145 switchView(); 1142 switchView();
1146 if ( !KOPrefs::instance()->mMonthViewWeek ) 1143 if ( !KOPrefs::instance()->mMonthViewWeek )
1147 emit selectMonth (); 1144 emit selectMonth ();
1148 else 1145 else
1149 emit selectWeekNum ( n ); 1146 emit selectWeekNum ( n );
1150} 1147}
1151 1148
1152int KOMonthView::currentWeek() 1149int KOMonthView::currentWeek()
1153{ 1150{
1154 if ( mShowWeekView ) 1151 if ( mShowWeekView )
1155 return mWeekLabelsW[0]->getWeekNum(); 1152 return mWeekLabelsW[0]->getWeekNum();
1156 return mWeekLabels[0]->getWeekNum(); 1153 return mWeekLabels[0]->getWeekNum();
1157} 1154}
1158void KOMonthView::switchView() 1155void KOMonthView::switchView()
1159{ 1156{
1160 if ( selectedCell( ) ) 1157 if ( selectedCell( ) )
1161 selectedCell()->deselect(); 1158 selectedCell()->deselect();
1162 mShowWeekView = !mShowWeekView; 1159 mShowWeekView = !mShowWeekView;
1163 KOPrefs::instance()->mMonthViewWeek = mShowWeekView; 1160 KOPrefs::instance()->mMonthViewWeek = mShowWeekView;
1164 if ( clPending ) { 1161 if ( clPending ) {
1165 computeLayout(); 1162 computeLayout();
1166 updateConfig(); 1163 updateConfig();
1167 } 1164 }
1168 if ( mShowWeekView ) 1165 if ( mShowWeekView )
1169 mWidStack->raiseWidget( mWeekView ); 1166 mWidStack->raiseWidget( mWeekView );
1170 else 1167 else
1171 mWidStack->raiseWidget( mMonthView ); 1168 mWidStack->raiseWidget( mMonthView );
1172 clPending = false; 1169 clPending = false;
1173} 1170}
1174 1171
1175int KOMonthView::maxDatesHint() 1172int KOMonthView::maxDatesHint()
1176{ 1173{
1177 return mNumCells; 1174 return mNumCells;
1178} 1175}
1179 1176
1180int KOMonthView::currentDateCount() 1177int KOMonthView::currentDateCount()
1181{ 1178{
1182 return mNumCells; 1179 return mNumCells;
1183} 1180}
1184 1181
1185QPtrList<Incidence> KOMonthView::selectedIncidences() 1182QPtrList<Incidence> KOMonthView::selectedIncidences()
1186{ 1183{
1187 QPtrList<Incidence> selected; 1184 QPtrList<Incidence> selected;
1188 1185
1189 if ( mSelectedCell ) { 1186 if ( mSelectedCell ) {
1190 Incidence *incidence = mSelectedCell->selectedIncidence(); 1187 Incidence *incidence = mSelectedCell->selectedIncidence();
1191 if ( incidence ) selected.append( incidence ); 1188 if ( incidence ) selected.append( incidence );
1192 } 1189 }
1193 1190
1194 return selected; 1191 return selected;
1195} 1192}
1196 1193
1197DateList KOMonthView::selectedDates() 1194DateList KOMonthView::selectedDates()
1198{ 1195{
1199 DateList selected; 1196 DateList selected;
1200 1197
1201 if ( mSelectedCell ) { 1198 if ( mSelectedCell ) {
1202 QDate qd = mSelectedCell->selectedIncidenceDate(); 1199 QDate qd = mSelectedCell->selectedIncidenceDate();
1203 if ( qd.isValid() ) selected.append( qd ); 1200 if ( qd.isValid() ) selected.append( qd );
1204 } 1201 }
1205 1202
1206 return selected; 1203 return selected;
1207} 1204}
1208 1205
1209void KOMonthView::printPreview(CalPrinter *calPrinter, const QDate &fd, 1206void KOMonthView::printPreview(CalPrinter *calPrinter, const QDate &fd,
1210 const QDate &td) 1207 const QDate &td)
1211{ 1208{
1212#ifndef KORG_NOPRINTER 1209#ifndef KORG_NOPRINTER
1213 calPrinter->preview(CalPrinter::Month, fd, td); 1210 calPrinter->preview(CalPrinter::Month, fd, td);
1214#endif 1211#endif
1215} 1212}
1216 1213
1217void KOMonthView::updateConfig() 1214void KOMonthView::updateConfig()
1218{ 1215{
1219 1216
1220 mWeekStartsMonday = KGlobal::locale()->weekStartsMonday(); 1217 int mWeekStartsMonday = KGlobal::locale()->weekStartsMonday();
1221 1218
1222 if ( mShowWeekView ) { 1219 if ( mShowWeekView || KOPrefs::instance()->mMonthViewSatSunTog ) {
1223 mWeekStartsMonday = true; 1220 mWeekStartsMonday = true;
1224 } 1221 }
1225 QFontMetrics fontmetric(mDayLabels[0]->font()); 1222 QFontMetrics fontmetric(mDayLabels[0]->font());
1226 mWidthLongDayLabel = 0; 1223 mWidthLongDayLabel = 0;
1227 1224
1228 for (int i = 0; i < 7; i++) { 1225 for (int i = 0; i < 7; i++) {
1229 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1)); 1226 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1));
1230 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width; 1227 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width;
1231 } 1228 }
1232 bool temp = mShowSatSunComp ; 1229 bool temp = mShowSatSunComp ;
1233 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ; 1230 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ;
1234 if ( ! mShowWeekView ) { 1231 if ( ! mShowWeekView ) {
1235 if ( temp != KOPrefs::instance()->mMonthViewSatSunTog ) 1232 if ( temp != KOPrefs::instance()->mMonthViewSatSunTog )
1236 computeLayout(); 1233 computeLayout();
1237 } 1234 }
1238 updateDayLabels(); 1235 updateDayLabels();
1239 //qDebug("KOMonthView::updateConfig() %d %d %d ",height(), mDayLabels[0]->sizeHint().height() ,mNumWeeks); 1236 //qDebug("KOMonthView::updateConfig() %d %d %d ",height(), mDayLabels[0]->sizeHint().height() ,mNumWeeks);
1240 //int cellHeight = (height() - mDayLabels[0]->sizeHint().height()) /mNumWeeks; 1237 //int cellHeight = (height() - mDayLabels[0]->sizeHint().height()) /mNumWeeks;
1241 //resizeEvent( 0 ); 1238 //resizeEvent( 0 );
1242 for (uint i = 0; i < mCells.count(); ++i) { 1239 for (uint i = 0; i < mCells.count(); ++i) {
1243 mCells[i]->updateConfig(); 1240 mCells[i]->updateConfig();
1244 } 1241 }
1245 1242
1246 for (uint i = 0; i < mCellsW.count(); ++i) { 1243 for (uint i = 0; i < mCellsW.count(); ++i) {
1247 mCellsW[i]->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont); 1244 mCellsW[i]->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont);
1248 } 1245 }
1249#ifdef DESKTOP_VERSION 1246#ifdef DESKTOP_VERSION
1250 MonthViewCell::toolTipGroup()->setEnabled(KOPrefs::instance()->mEnableToolTips); 1247 MonthViewCell::toolTipGroup()->setEnabled(KOPrefs::instance()->mEnableToolTips);
1251#endif 1248#endif
1252 updateView(); 1249 updateView();
1253} 1250}
1254 1251
1255void KOMonthView::updateDayLabels() 1252void KOMonthView::updateDayLabels()
1256{ 1253{
1257 1254
1258 QPtrVector<QLabel> *mDayLabelsT; 1255 QPtrVector<QLabel> *mDayLabelsT;
1259 1256
1260 mDayLabelsT = &mDayLabelsW; 1257 mDayLabelsT = &mDayLabelsW;
1261 for (int i = 0; i < 7; i++) { 1258 for (int i = 0; i < 7; i++) {
1262 if (mWeekStartsMonday) { 1259 {
1263 bool show = mShortDayLabelsW; 1260 bool show = mShortDayLabelsW;
1264 if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() ) 1261 if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() )
1265 show = true; 1262 show = true;
1266 (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show)); 1263 (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show));
1267 } else {
1268 if (i==0) (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(7,mShortDayLabelsW));
1269 else (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i,mShortDayLabelsW));
1270
1271 } 1264 }
1272 } 1265 }
1273 mDayLabelsT = &mDayLabels; 1266 mDayLabelsT = &mDayLabels;
1274 for (int i = 0; i < 7; i++) { 1267 for (int i = 0; i < 7; i++) {
1275 if (mWeekStartsMonday) { 1268 if (KGlobal::locale()->weekStartsMonday() || KOPrefs::instance()->mMonthViewSatSunTog ) {
1276 bool show = mShortDayLabelsM; 1269 bool show = mShortDayLabelsM;
1277 if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() ) 1270 if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() )
1278 show = true; 1271 show = true;
1279 (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show)); 1272 (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show));
1280 } else { 1273 } else {
1281 if (i==0) (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(7,mShortDayLabelsM)); 1274 if (i==0) (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(7,mShortDayLabelsM));
1282 else (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i,mShortDayLabelsM)); 1275 else (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i,mShortDayLabelsM));
1283 1276
1284 } 1277 }
1285 } 1278 }
1286 1279
1287} 1280}
1288 1281
1289void KOMonthView::showDates(const QDate &start, const QDate &) 1282void KOMonthView::showDates(const QDate &start, const QDate &)
1290{ 1283{
1291 // kdDebug() << "KOMonthView::showDates(): " << start.toString() << endl; 1284 // kdDebug() << "KOMonthView::showDates(): " << start.toString() << endl;
1292 1285
1293 QPtrVector<MonthViewCell> *cells; 1286 QPtrVector<MonthViewCell> *cells;
1294 QPtrVector<QLabel> *dayLabels; 1287 QPtrVector<QLabel> *dayLabels;
1295 QPtrVector<KOWeekButton> *weekLabels; 1288 QPtrVector<KOWeekButton> *weekLabels;
1296 int weekNum = 6; 1289 int weekNum = 6;
1290 mStartDate = start;
1297 if ( mShowWeekView ) { 1291 if ( mShowWeekView ) {
1298 weekNum = 1; 1292 weekNum = 1;
1299 cells = &mCellsW; 1293 cells = &mCellsW;
1300 dayLabels = &mDayLabelsW; 1294 dayLabels = &mDayLabelsW;
1301 weekLabels = &mWeekLabelsW; 1295 weekLabels = &mWeekLabelsW;
1296 if ( !KGlobal::locale()->weekStartsMonday() ) {
1297 mStartDate = mStartDate.addDays( 1 );
1298 }
1302 } else { 1299 } else {
1303 cells = &mCells; 1300 cells = &mCells;
1304 dayLabels = &mDayLabels; 1301 dayLabels = &mDayLabels;
1305 weekLabels = &mWeekLabels; 1302 weekLabels = &mWeekLabels;
1306 } 1303 }
1307 1304
1308 mStartDate = start; 1305 int mWeekStartsMonday = KGlobal::locale()->weekStartsMonday();
1309 1306
1307 if ( mShowWeekView || KOPrefs::instance()->mMonthViewSatSunTog ) {
1308 mWeekStartsMonday = true;
1309 }
1310 int startWeekDay = mWeekStartsMonday ? 1 : 7; 1310 int startWeekDay = mWeekStartsMonday ? 1 : 7;
1311 1311
1312 while( KOGlobals::self()->calendarSystem()->dayOfWeek(mStartDate) != startWeekDay ) { 1312 while( KOGlobals::self()->calendarSystem()->dayOfWeek(mStartDate) != startWeekDay ) {
1313 mStartDate = mStartDate.addDays( -1 ); 1313 mStartDate = mStartDate.addDays( -1 );
1314 } 1314 }
1315
1316 bool primary = false; 1315 bool primary = false;
1317 uint i; 1316 uint i;
1318 for( i = 0; i < (*cells).size(); ++i ) { 1317 for( i = 0; i < (*cells).size(); ++i ) {
1319 QDate date = mStartDate.addDays( i ); 1318 QDate date = mStartDate.addDays( i );
1320 (*cells)[i]->setDate( date ); 1319 (*cells)[i]->setDate( date );
1321 1320
1322#ifndef KORG_NOPLUGINS 1321#ifndef KORG_NOPLUGINS
1323 // add holiday, if present 1322 // add holiday, if present
1324 QString hstring(KOCore::self()->holiday(date)); 1323 QString hstring(KOCore::self()->holiday(date));
1325 (*cells)[i]->setHoliday( hstring ); 1324 (*cells)[i]->setHoliday( hstring );
1326#endif 1325#endif
1327 1326
1328 } 1327 }
1329 QDate date = mStartDate.addDays( mWeekStartsMonday ? 3 : 4 ); 1328 QDate date = mStartDate.addDays( mWeekStartsMonday ? 3 : 4 );
1330 for( i = 0; i < weekNum; ++i ) { 1329 for( i = 0; i < weekNum; ++i ) {
1331 int wno; 1330 int wno;
1332 // remember, according to ISO 8601, the first week of the year is the 1331 // remember, according to ISO 8601, the first week of the year is the
1333 // first week that contains a thursday. Thus we must subtract off 4, 1332 // first week that contains a thursday. Thus we must subtract off 4,
1334 // not just 1. 1333 // not just 1.
1335 int dayOfYear = date.dayOfYear(); 1334 int dayOfYear = date.dayOfYear();
1336 if (dayOfYear % 7 != 0) 1335 if (dayOfYear % 7 != 0)
1337 wno = dayOfYear / 7 + 1; 1336 wno = dayOfYear / 7 + 1;
1338 else 1337 else
1339 wno =dayOfYear / 7; 1338 wno =dayOfYear / 7;
1340 (*weekLabels)[i]->setWeekNum( wno ); 1339 (*weekLabels)[i]->setWeekNum( wno );
1341 date = date.addDays( 7 ); 1340 date = date.addDays( 7 );
1342 } 1341 }
1343 updateView(); 1342 updateView();
1344} 1343}
1345 1344
1346void KOMonthView::showEvents(QPtrList<Event>) 1345void KOMonthView::showEvents(QPtrList<Event>)
1347{ 1346{
1348 qDebug("KOMonthView::selectEvents is not implemented yet. "); 1347 qDebug("KOMonthView::selectEvents is not implemented yet. ");
1349} 1348}
1350 1349
1351void KOMonthView::changeEventDisplay(Event *, int) 1350void KOMonthView::changeEventDisplay(Event *, int)
1352{ 1351{
1353 // this should be re-written to be much more efficient, but this 1352 // this should be re-written to be much more efficient, but this
1354 // quick-and-dirty-hack gets the job done for right now. 1353 // quick-and-dirty-hack gets the job done for right now.
1355 updateView(); 1354 updateView();
1356} 1355}
1357 1356
1358void KOMonthView::updateView() 1357void KOMonthView::updateView()
1359{ 1358{
1360 1359
1361 if ( !updatePossible ) 1360 if ( !updatePossible )
1362 return; 1361 return;
1363 //qDebug("UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU "); 1362 //qDebug("UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU ");
1364 //QTime ti; 1363 //QTime ti;
1365 //ti.start(); 1364 //ti.start();
1366 clearSelection(); 1365 clearSelection();
1367 QPtrVector<MonthViewCell> *cells; 1366 QPtrVector<MonthViewCell> *cells;
1368 if ( mShowWeekView ) { 1367 if ( mShowWeekView ) {
1369 cells = &mCellsW; 1368 cells = &mCellsW;
1370 } else { 1369 } else {
1371 cells = &mCells; 1370 cells = &mCells;
1372 } 1371 }
1373#if 1 1372#if 1
1374 int i; 1373 int i;
1375 int timeSpan = (*cells).size()-1; 1374 int timeSpan = (*cells).size()-1;
1376 if ( KOPrefs::instance()->mMonthViewWeek ) 1375 if ( KOPrefs::instance()->mMonthViewWeek )
1377 timeSpan = 6; 1376 timeSpan = 6;
1378 for( i = 0; i < timeSpan + 1; ++i ) { 1377 for( i = 0; i < timeSpan + 1; ++i ) {
1379 (*cells)[i]->startUpdateCell(); 1378 (*cells)[i]->startUpdateCell();
1380 } 1379 }
1381 1380
1382 QPtrList<Event> events = calendar()->events(); 1381 QPtrList<Event> events = calendar()->events();
1383 Event *event; 1382 Event *event;
1384 QDateTime dt; 1383 QDateTime dt;
1385 bool ok; 1384 bool ok;
1386 QDate endDate = mStartDate.addDays( timeSpan ); 1385 QDate endDate = mStartDate.addDays( timeSpan );
1387 for( event = events.first(); event; event = events.next() ) { // for event 1386 for( event = events.first(); event; event = events.next() ) { // for event
1388 if ( event->doesRecur() ) { 1387 if ( event->doesRecur() ) {
1389 bool last; 1388 bool last;
1390 QDateTime incidenceStart = event->recurrence()->getPreviousDateTime( QDateTime( mStartDate ) , &last ); 1389 QDateTime incidenceStart = event->recurrence()->getPreviousDateTime( QDateTime( mStartDate ) , &last );
1391 QDateTime incidenceEnd; 1390 QDateTime incidenceEnd;
1392 int eventlen = event->dtStart().date().daysTo ( event->dtEnd().date() ); 1391 int eventlen = event->dtStart().date().daysTo ( event->dtEnd().date() );
1393 bool invalid = false; 1392 bool invalid = false;
1394 while( true ) { 1393 while( true ) {
1395 if ( incidenceStart.isValid() ) { 1394 if ( incidenceStart.isValid() ) {
1396 incidenceEnd = incidenceStart.addDays( eventlen ); 1395 incidenceEnd = incidenceStart.addDays( eventlen );
1397 int st = incidenceStart.date().daysTo( endDate ); 1396 int st = incidenceStart.date().daysTo( endDate );
1398 if ( st >= 0 ) { // start before timeend 1397 if ( st >= 0 ) { // start before timeend
1399 int end = mStartDate.daysTo( incidenceEnd.date() ); 1398 int end = mStartDate.daysTo( incidenceEnd.date() );
1400 if ( end >= 0 ) { // end after timestart --- got one! 1399 if ( end >= 0 ) { // end after timestart --- got one!
1401 //normalize 1400 //normalize
1402 st = timeSpan - st; 1401 st = timeSpan - st;
1403 if ( st < 0 ) st = 0; 1402 if ( st < 0 ) st = 0;
1404 if ( end > timeSpan ) end = timeSpan; 1403 if ( end > timeSpan ) end = timeSpan;
1405 int iii; 1404 int iii;
1406 //qDebug("found %s %d %d ",event->summary().latin1(), st, end ); 1405 //qDebug("found %s %d %d ",event->summary().latin1(), st, end );
1407 for ( iii = st;iii<= end;++iii) 1406 for ( iii = st;iii<= end;++iii)
1408 (*cells)[iii]->insertEvent( event ); 1407 (*cells)[iii]->insertEvent( event );
1409 } 1408 }
1410 } 1409 }
1411 } else { 1410 } else {
1412 if ( invalid ) 1411 if ( invalid )
1413 break; 1412 break;
1414 invalid = true; 1413 invalid = true;
1415 //qDebug("invalid %s", event->summary().latin1()); 1414 //qDebug("invalid %s", event->summary().latin1());
1416 incidenceStart = QDateTime( mStartDate ).addSecs( -2 );; 1415 incidenceStart = QDateTime( mStartDate ).addSecs( -2 );;
1417 } 1416 }
1418 if ( last ) 1417 if ( last )
1419 break; 1418 break;
1420 bool ok; 1419 bool ok;
1421 incidenceStart = event->getNextOccurence( incidenceStart.addSecs( 1 ) ,&ok ); 1420 incidenceStart = event->getNextOccurence( incidenceStart.addSecs( 1 ) ,&ok );
1422 if ( ! ok ) 1421 if ( ! ok )
1423 break; 1422 break;
1424 if ( incidenceStart.date() > endDate ) 1423 if ( incidenceStart.date() > endDate )
1425 break; 1424 break;
1426 } 1425 }
1427 } else { // no recur 1426 } else { // no recur
1428 int st = event->dtStart().date().daysTo( endDate ); 1427 int st = event->dtStart().date().daysTo( endDate );
1429 if ( st >= 0 ) { // start before timeend 1428 if ( st >= 0 ) { // start before timeend
1430 int end = mStartDate.daysTo( event->dtEnd().date() ); 1429 int end = mStartDate.daysTo( event->dtEnd().date() );
1431 if ( end >= 0 ) { // end after timestart --- got one! 1430 if ( end >= 0 ) { // end after timestart --- got one!
1432 //normalize 1431 //normalize
1433 st = timeSpan - st; 1432 st = timeSpan - st;
1434 if ( st < 0 ) st = 0; 1433 if ( st < 0 ) st = 0;
1435 if ( end > timeSpan ) end = timeSpan; 1434 if ( end > timeSpan ) end = timeSpan;
1436 int iii; 1435 int iii;
1437 for ( iii = st;iii<= end;++iii) 1436 for ( iii = st;iii<= end;++iii)
1438 (*cells)[iii]->insertEvent( event ); 1437 (*cells)[iii]->insertEvent( event );
1439 } 1438 }
1440 } 1439 }
1441 } 1440 }
1442 } 1441 }
1443 // insert due todos 1442 // insert due todos
diff --git a/korganizer/komonthview.h b/korganizer/komonthview.h
index a58f6b8..9e724c7 100644
--- a/korganizer/komonthview.h
+++ b/korganizer/komonthview.h
@@ -161,154 +161,154 @@ class MonthViewCell : public KNoScrollListBox
161 QDate selectedIncidenceDate(); 161 QDate selectedIncidenceDate();
162 QPushButton * dateLabel() { return mLabel; } 162 QPushButton * dateLabel() { return mLabel; }
163 163
164 void deselect(); 164 void deselect();
165 void select(); 165 void select();
166 166
167#ifdef DESKTOP_VERSION 167#ifdef DESKTOP_VERSION
168 static QToolTipGroup *toolTipGroup(); 168 static QToolTipGroup *toolTipGroup();
169#endif 169#endif
170 signals: 170 signals:
171 void defaultAction( Incidence * ); 171 void defaultAction( Incidence * );
172 void newEventSignal( QDateTime ); 172 void newEventSignal( QDateTime );
173 void showDaySignal( QDate ); 173 void showDaySignal( QDate );
174 174
175 protected: 175 protected:
176 QStringList mToolTip; 176 QStringList mToolTip;
177 void resizeEvent( QResizeEvent * ); 177 void resizeEvent( QResizeEvent * );
178 178
179 179
180public slots: 180public slots:
181 void showDay(); 181 void showDay();
182 182
183 protected slots: 183 protected slots:
184 void defaultAction( QListBoxItem * ); 184 void defaultAction( QListBoxItem * );
185 void contextMenu( QListBoxItem * ); 185 void contextMenu( QListBoxItem * );
186 void selection( QListBoxItem * ); 186 void selection( QListBoxItem * );
187 void cellClicked( QListBoxItem * ); 187 void cellClicked( QListBoxItem * );
188 void newEvent(); 188 void newEvent();
189 189
190 private: 190 private:
191 MonthViewItem* mCurrentAvailItem; 191 MonthViewItem* mCurrentAvailItem;
192 QPtrList <MonthViewItem> mAvailItemList; 192 QPtrList <MonthViewItem> mAvailItemList;
193 KOMonthView *mMonthView; 193 KOMonthView *mMonthView;
194 int currentPalette; 194 int currentPalette;
195 195
196 QDate mDate; 196 QDate mDate;
197 bool mPrimary; 197 bool mPrimary;
198 bool mHoliday; 198 bool mHoliday;
199 QString mHolidayString; 199 QString mHolidayString;
200 200
201 //QLabel *mLabel; 201 //QLabel *mLabel;
202 QPushButton *mLabel; 202 QPushButton *mLabel;
203 //QListBox *mItemList; 203 //QListBox *mItemList;
204#ifdef DESKTOP_VERSION 204#ifdef DESKTOP_VERSION
205 static QToolTipGroup *mToolTipGroup; 205 static QToolTipGroup *mToolTipGroup;
206#endif 206#endif
207 QSize mLabelSize; 207 QSize mLabelSize;
208 QSize mLabelBigSize; 208 QSize mLabelBigSize;
209 QPalette mHolidayPalette; 209 QPalette mHolidayPalette;
210 QPalette mStandardPalette; 210 QPalette mStandardPalette;
211 QPalette mPrimaryPalette; 211 QPalette mPrimaryPalette;
212 QPalette mNonPrimaryPalette; 212 QPalette mNonPrimaryPalette;
213 void setMyPalette(); 213 void setMyPalette();
214 QPalette getPalette (); 214 QPalette getPalette ();
215 215
216}; 216};
217 217
218 218
219class KOMonthView: public KOEventView 219class KOMonthView: public KOEventView
220{ 220{
221 Q_OBJECT 221 Q_OBJECT
222 public: 222 public:
223 KOMonthView(Calendar *cal, QWidget *parent = 0, const char *name = 0 ); 223 KOMonthView(Calendar *cal, QWidget *parent = 0, const char *name = 0 );
224 ~KOMonthView(); 224 ~KOMonthView();
225 225
226 /** Returns maximum number of days supported by the komonthview */ 226 /** Returns maximum number of days supported by the komonthview */
227 virtual int maxDatesHint(); 227 virtual int maxDatesHint();
228 228
229 /** Returns number of currently shown dates. */ 229 /** Returns number of currently shown dates. */
230 virtual int currentDateCount(); 230 virtual int currentDateCount();
231 231
232 /** returns the currently selected events */ 232 /** returns the currently selected events */
233 virtual QPtrList<Incidence> selectedIncidences(); 233 virtual QPtrList<Incidence> selectedIncidences();
234 234
235 /** returns dates of the currently selected events */ 235 /** returns dates of the currently selected events */
236 virtual DateList selectedDates(); 236 virtual DateList selectedDates();
237 237
238 virtual void printPreview(CalPrinter *calPrinter, 238 virtual void printPreview(CalPrinter *calPrinter,
239 const QDate &, const QDate &); 239 const QDate &, const QDate &);
240 bool isMonthView() { return !mShowWeekView; } 240 bool isMonthView() { return !mShowWeekView; }
241 bool isUpdatePossible() { return updatePossible; } 241 bool isUpdatePossible() { return updatePossible; }
242 242
243 MonthViewCell * selectedCell(); 243 MonthViewCell * selectedCell();
244 bool skipResize; 244 bool skipResize;
245 NavigatorBar* navigatorBar() { return mNavigatorBar ;} 245 NavigatorBar* navigatorBar() { return mNavigatorBar ;}
246 public slots: 246 public slots:
247 virtual void updateView(); 247 virtual void updateView();
248 virtual void updateConfig(); 248 virtual void updateConfig();
249 virtual void showDates(const QDate &start, const QDate &end); 249 virtual void showDates(const QDate &start, const QDate &end);
250 virtual void showEvents(QPtrList<Event> eventList); 250 virtual void showEvents(QPtrList<Event> eventList);
251 251
252 void changeEventDisplay(Event *, int); 252 void changeEventDisplay(Event *, int);
253 253
254 void clearSelection(); 254 void clearSelection();
255 255
256 void showContextMenu( Incidence * ); 256 void showContextMenu( Incidence * );
257 257
258 void setSelectedCell( MonthViewCell * ); 258 void setSelectedCell( MonthViewCell * );
259 void switchView(); 259 void switchView();
260 260
261 protected slots: 261 protected slots:
262 void slotComputeLayout(); 262 void slotComputeLayout();
263 void selectInternalWeekNum ( int ); 263 void selectInternalWeekNum ( int );
264 void processSelectionChange(); 264 void processSelectionChange();
265 signals: 265 signals:
266 void nextMonth(); 266 void nextMonth();
267 void prevMonth(); 267 void prevMonth();
268 void selectWeekNum ( int ); 268 void selectWeekNum ( int );
269 void selectMonth (); 269 void selectMonth ();
270 void showDaySignal( QDate ); 270 void showDaySignal( QDate );
271 protected: 271 protected:
272 void resizeEvent(QResizeEvent *); 272 void resizeEvent(QResizeEvent *);
273 void viewChanged(); 273 void viewChanged();
274 void updateDayLabels(); 274 void updateDayLabels();
275 275
276 private: 276 private:
277 QTimer* mComputeLayoutTimer; 277 QTimer* mComputeLayoutTimer;
278 NavigatorBar* mNavigatorBar; 278 NavigatorBar* mNavigatorBar;
279 int currentWeek(); 279 int currentWeek();
280 bool clPending; 280 bool clPending;
281 QWidgetStack * mWidStack; 281 QWidgetStack * mWidStack;
282 QWidget* mMonthView; 282 QWidget* mMonthView;
283 QWidget* mWeekView; 283 QWidget* mWeekView;
284 bool mShowWeekView; 284 bool mShowWeekView;
285 bool updatePossible; 285 bool updatePossible;
286 int mDaysPerWeek; 286 int mDaysPerWeek;
287 int mNumWeeks; 287 int mNumWeeks;
288 int mNumCells; 288 int mNumCells;
289 bool mWeekStartsMonday; 289 //bool mWeekStartsMonday;
290 bool mShowSatSunComp; 290 bool mShowSatSunComp;
291 void computeLayout(); 291 void computeLayout();
292 void computeLayoutWeek(); 292 void computeLayoutWeek();
293 293
294 QPtrVector<MonthViewCell> mCells; 294 QPtrVector<MonthViewCell> mCells;
295 QPtrVector<QLabel> mDayLabels; 295 QPtrVector<QLabel> mDayLabels;
296 QPtrVector<KOWeekButton> mWeekLabels; 296 QPtrVector<KOWeekButton> mWeekLabels;
297 QPtrVector<MonthViewCell> mCellsW; 297 QPtrVector<MonthViewCell> mCellsW;
298 QPtrVector<QLabel> mDayLabelsW; 298 QPtrVector<QLabel> mDayLabelsW;
299 QPtrVector<KOWeekButton> mWeekLabelsW; 299 QPtrVector<KOWeekButton> mWeekLabelsW;
300 300
301 bool mShortDayLabelsM; 301 bool mShortDayLabelsM;
302 bool mShortDayLabelsW; 302 bool mShortDayLabelsW;
303 int mWidthLongDayLabel; 303 int mWidthLongDayLabel;
304 304
305 QDate mStartDate; 305 QDate mStartDate;
306 306
307 MonthViewCell *mSelectedCell; 307 MonthViewCell *mSelectedCell;
308 308
309 KOEventPopupMenu *mContextMenu; 309 KOEventPopupMenu *mContextMenu;
310 void keyPressEvent ( QKeyEvent * ) ; 310 void keyPressEvent ( QKeyEvent * ) ;
311 311
312}; 312};
313 313
314#endif 314#endif
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index 2da592b..8e52968 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -1353,283 +1353,261 @@ void MainWindow::multisynchowto()
1353void MainWindow::synchowto() 1353void MainWindow::synchowto()
1354{ 1354{
1355 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/SyncHowto.txt" ); 1355 KApplication::showFile( "KDE-Pim/Pi Synchronization HowTo", "kdepim/SyncHowto.txt" );
1356} 1356}
1357void MainWindow::faq() 1357void MainWindow::faq()
1358{ 1358{
1359 KApplication::showFile( i18n("KO/Pi FAQ"), "kdepim/korganizer/kopiFAQ.txt" ); 1359 KApplication::showFile( i18n("KO/Pi FAQ"), "kdepim/korganizer/kopiFAQ.txt" );
1360 1360
1361} 1361}
1362void MainWindow::whatsNew() 1362void MainWindow::whatsNew()
1363{ 1363{
1364 KApplication::showFile( "KDE-Pim/Pi Version Info", "kdepim/WhatsNew.txt" ); 1364 KApplication::showFile( "KDE-Pim/Pi Version Info", "kdepim/WhatsNew.txt" );
1365 1365
1366} 1366}
1367void MainWindow::licence() 1367void MainWindow::licence()
1368{ 1368{
1369 KApplication::showLicence(); 1369 KApplication::showLicence();
1370 1370
1371} 1371}
1372void MainWindow::about() 1372void MainWindow::about()
1373{ 1373{
1374 QString version; 1374 QString version;
1375#include <../version> 1375#include <../version>
1376 QMessageBox::about( this, i18n("About KOrganizer/Pi"), 1376 QMessageBox::about( this, i18n("About KOrganizer/Pi"),
1377 i18n("KOrganizer/Platform-independent\n") + 1377 i18n("KOrganizer/Platform-independent\n") +
1378 "(KO/Pi) " + version + " - " + 1378 "(KO/Pi) " + version + " - " +
1379 1379
1380#ifdef DESKTOP_VERSION 1380#ifdef DESKTOP_VERSION
1381 i18n("Desktop Edition\n") + 1381 i18n("Desktop Edition\n") +
1382#else 1382#else
1383 i18n("PDA-Edition\nfor: Zaurus 5x00/7x0/860/3000/6000\n") + 1383 i18n("PDA-Edition\nfor: Zaurus 5x00/7x0/860/3000/6000\n") +
1384#endif 1384#endif
1385 i18n("(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi is based on KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) and the KDE team.\nKOrganizer/Pi is licensed under the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.pi-sync.info --- www.korganizer.org\nSpecial thanks to Michael and Ben\nfor intensive testing!") ); 1385 i18n("(c)2004 Lutz Rogowski (rogowski@kde.org)\nKO/Pi is based on KOrganizer\n(c)2002,2003 Cornelius Schumacher\n(schumacher@kde.org) and the KDE team.\nKOrganizer/Pi is licensed under the GPL.\nKO/Pi can be compiled for\nLinux, Zaurus-PDA and Windows\nwww.pi-sync.info --- www.korganizer.org\nSpecial thanks to Michael and Ben\nfor intensive testing!") );
1386} 1386}
1387void MainWindow::keyBindings() 1387void MainWindow::keyBindings()
1388{ 1388{
1389 QString cap = i18n("KO/Pi Keys + Colors"); 1389 QString cap = i18n("KO/Pi Keys + Colors");
1390 QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") + 1390 QString text = i18n("<p><h2>KO/Pi key shortcuts:</h2></p>\n") +
1391 i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+ 1391 i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+
1392 i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") + 1392 i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") +
1393 i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+ 1393 i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+
1394 i18n("<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n")+ 1394 i18n("<p><b>F</b>: Toggle filterview |<b>F+ctrl</b>: Edit filter </p>\n")+
1395 i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+ 1395 i18n("<p><b>O</b>: Filter On/Off | <b>J</b>: Journal view</p>\n")+
1396 i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+ 1396 i18n("<p><b>1-0</b> (+<b>ctrl</b>): Select filter 1-10 (11-20)</p>\n")+
1397 i18n("<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ")+ 1397 i18n("<p><b>N</b>: Next days view| <b>W</b>: What's next view\n ")+
1398 i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+ 1398 i18n("<p><b>V</b>: Todo view | <b>L</b>: Event list view</p>\n")+
1399 i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+ 1399 i18n("<p><b>Z,Y</b>: Work week view | <b>U</b>: Week view</p>\n")+
1400 i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+ 1400 i18n("<p><b>D</b>: One day view | <b>M</b>: Month view</p>\n")+
1401 i18n("<p><b>K</b>: Week view in Month view syle</p>\n")+ 1401 i18n("<p><b>K</b>: Week view in Month view syle</p>\n")+
1402 i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+ 1402 i18n("<p><b>E</b>: Edit selected item |<b> E+ctrl</b>: New Event</p>\n")+
1403 i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+ 1403 i18n("<p><b>T</b>: Goto today | <b>T+ctrl</b>: New Todo</p>\n")+
1404 i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n")+ 1404 i18n("<p><b>S+ctrl</b>: Add sub-todo | <b>X</b>: Toggle datenavigator</p>\n")+
1405 i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+ 1405 i18n("<p><b>+,-</b> : Zoom in/out agenda | <b>A</b>: Toggle allday agenda height</p>\n")+
1406 i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+ 1406 i18n("<p><b>C</b>: Show current time in agenda view</p>\n")+
1407 i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+ 1407 i18n("<p><b>B</b>: Edit description (details) of selected item</p>\n")+
1408 i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+ 1408 i18n("<p><b>right</b>: Next week | <b>right+ctrl</b>: Next month</p>\n")+
1409 i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+ 1409 i18n("<p><b>left</b>: Prev. week | <b>left+ctrl</b>: Prev. month</p>\n")+
1410 i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+ 1410 i18n("<p><b>del,backspace</b>: Delete selected item</p>\n")+
1411 i18n("<p><h3>In agenda view:</h3></p>\n") + 1411 i18n("<p><h3>In agenda view:</h3></p>\n") +
1412 i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+ 1412 i18n("<p><b>up/down</b>: Scroll agenda view</p>\n")+
1413 i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+ 1413 i18n("<p><b>ctrl+up/down</b>: Scroll small todo view</p>\n")+
1414 i18n("<p><h3>In todo view:</h3></p>\n") + 1414 i18n("<p><h3>In todo view:</h3></p>\n") +
1415 i18n("<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n")+ 1415 i18n("<p><b>shift+U</b>: <b>U</b>nparent todo (make root todo)</p>\n")+
1416 i18n("<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n")+ 1416 i18n("<p><b>shift+S</b>: Make <b>S</b>ubtodo (reparent todo)</p>\n")+
1417 i18n("<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n")+ 1417 i18n("<p><b>shift+P</b>: Make new <b>P</b>arent for todo selected with shift+S</p>\n")+
1418 i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+ 1418 i18n("<p><b>Q</b>: Toggle quick todo line edit.</p>\n")+
1419 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ 1419 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+
1420 i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+ 1420 i18n("<p><b>return</b>: Mark item as completed+one step down.</p>\n")+
1421 i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+ 1421 i18n("<p><b>return+shift</b>: Mark item as not completed+one step down</p>\n")+
1422 i18n("<p><h3>In list view:</h3></p>\n") + 1422 i18n("<p><h3>In list view:</h3></p>\n") +
1423 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+ 1423 i18n("<p><b>I</b>: Show info of current item+one step down.</p>\n")+
1424 i18n("<p><b>return</b>: Select item+one step down</p>\n")+ 1424 i18n("<p><b>return</b>: Select item+one step down</p>\n")+
1425 i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+ 1425 i18n("<p><b>return+shift</b>: Deselect item+one step down</p>\n")+
1426 i18n("<p><b>up/down</b>: Next/prev item</p>\n")+ 1426 i18n("<p><b>up/down</b>: Next/prev item</p>\n")+
1427 i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+ 1427 i18n("<p><b>ctrl+up/down</b>: Goto up/down by 20% of items</p>\n")+
1428 i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+ 1428 i18n("<p><b>shift+up/down</b>: Goto first/last item</p>\n")+
1429 i18n("<p><h3>In event/todo viewer:</h3></p>\n") + 1429 i18n("<p><h3>In event/todo viewer:</h3></p>\n") +
1430 i18n("<p><b>I,C</b>: Close dialog.</p>\n")+ 1430 i18n("<p><b>I,C</b>: Close dialog.</p>\n")+
1431 i18n("<p><b>A</b>: Show agenda view.</p>\n")+ 1431 i18n("<p><b>A</b>: Show agenda view.</p>\n")+
1432 i18n("<p><b>E</b>: Edit item</p>\n") + 1432 i18n("<p><b>E</b>: Edit item</p>\n") +
1433 i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") + 1433 i18n("<p><h2>KO/Pi icon colors:</h2></p>\n") +
1434 i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") + 1434 i18n("<p><b>(for square icons in agenda and month view)</b></p>\n") +
1435 i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+ 1435 i18n("<p><b>Cross</b>: Item cancelled.([c] in Whats'Next view)</p>\n")+
1436 i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+ 1436 i18n("<p><b>Red</b>: Alarm set.([a] in Whats'Next view)</p>\n")+
1437 i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+ 1437 i18n("<p><b>Blue</b>: Recurrent event.([r] in Whats'Next view)</p>\n")+
1438 i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+ 1438 i18n("<p><b>Dark green</b>: Information(description) available.([i] in WN view)</p>\n")+
1439 i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+ 1439 i18n("<p><b>Black</b>: Event/todo with attendees. You are the organizer!</p>\n")+
1440 i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") + 1440 i18n("<p><b>Dark yellow</b>: Event/todo with attendees.</p>\n") +
1441 i18n("<p><b>White</b>: Item readonly</p>\n"); 1441 i18n("<p><b>White</b>: Item readonly</p>\n");
1442 displayText( text, cap); 1442 displayText( text, cap);
1443} 1443}
1444void MainWindow::aboutAutoSaving() 1444void MainWindow::aboutAutoSaving()
1445{ 1445{
1446 QString text = i18n("After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configurable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n"); 1446 QString text = i18n("After changing something, the data is\nautomatically saved to the file\n~/kdepim/apps/korganizer/mycalendar.ics\nafter (configurable) three minutes.\nFor safety reasons there is one autosaving\nafter 10 minutes (of idle time) again. The \ndata is saved automatically when closing KO/Pi\nYou can create a backup file \nwith: File - Save Calendar Backup\n");
1447 1447
1448 KApplication::showText( i18n("Auto Saving in KOrganizer/Pi"), text); 1448 KApplication::showText( i18n("Auto Saving in KOrganizer/Pi"), text);
1449 1449
1450} 1450}
1451void MainWindow::aboutKnownBugs() 1451void MainWindow::aboutKnownBugs()
1452{ 1452{
1453 QMessageBox* msg; 1453 QMessageBox* msg;
1454 msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"), 1454 msg = new QMessageBox( i18n("Known Problems in KOrganizer/Pi"),
1455 i18n("1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n")+ 1455 i18n("1) Importing *.vcs or *.ics files from\nother applications may not work properly,\nif there are events with properties\nKO/Pi does not support.\n")+
1456 i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+ 1456 i18n("2) Audio alarm daemon\nfor Zaurus is available!\nas an additional small application\n")+
1457 i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.info\n") + 1457 i18n("\nPlease report unexpected behaviour to\nlutz@pi-sync.info\n") +
1458 i18n("\nor report them in the bugtracker on\n") + 1458 i18n("\nor report them in the bugtracker on\n") +
1459 i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"), 1459 i18n("\nhttp://sourceforge.net/projects/kdepimpi\n"),
1460 QMessageBox::NoIcon, 1460 QMessageBox::NoIcon,
1461 QMessageBox::Ok, 1461 QMessageBox::Ok,
1462 QMessageBox::NoButton, 1462 QMessageBox::NoButton,
1463 QMessageBox::NoButton); 1463 QMessageBox::NoButton);
1464 msg->exec(); 1464 msg->exec();
1465 delete msg; 1465 delete msg;
1466 1466
1467} 1467}
1468 1468
1469QString MainWindow::defaultFileName() 1469QString MainWindow::defaultFileName()
1470{ 1470{
1471 return locateLocal( "data", "korganizer/mycalendar.ics" ); 1471 return locateLocal( "data", "korganizer/mycalendar.ics" );
1472} 1472}
1473QString MainWindow::syncFileName() 1473QString MainWindow::syncFileName()
1474{ 1474{
1475#ifdef DESKTOP_VERSION 1475#ifdef DESKTOP_VERSION
1476 return locateLocal( "tmp", "synccalendar.ics" ); 1476 return locateLocal( "tmp", "synccalendar.ics" );
1477#else 1477#else
1478 return QString( "/tmp/synccalendar.ics" ); 1478 return QString( "/tmp/synccalendar.ics" );
1479#endif 1479#endif
1480} 1480}
1481#include "koglobals.h"
1482#include <kcalendarsystem.h>
1481void MainWindow::updateWeek(QDate seda) 1483void MainWindow::updateWeek(QDate seda)
1482{ 1484{
1483 int weekNum = 0; 1485 int weekNum = KGlobal::locale()->weekNum ( seda );
1484 QDate d = QDate ( seda.year(), 1,1);
1485 seda = seda.addDays( 1-seda.dayOfWeek() );//we are on monday
1486 if ( seda.addDays(6).year() != seda.year() ) {
1487 if ( seda.year() != d.year() ) {
1488 if ( d.dayOfWeek() > 4 )
1489 d = QDate ( seda.year(), 1,1);
1490 else
1491 weekNum = 1;
1492 } else {
1493 QDate dd( seda.year()+1, 1,1);
1494 if ( dd.dayOfWeek() <= 4 )
1495 weekNum = 1;
1496 }
1497 }
1498 if ( weekNum == 0 ){
1499 int dow = d.dayOfWeek();
1500 if ( dow <= 4 )
1501 d = d.addDays( 1-dow );
1502 else // 5,6,7
1503 d = d.addDays( 8-dow );
1504 // we have the first week of the year.we are on monday
1505 weekNum = d.daysTo( seda ) / 7 +1;
1506 }
1507
1508 mWeekPixmap.fill( mWeekBgColor ); 1486 mWeekPixmap.fill( mWeekBgColor );
1509 QPainter p ( &mWeekPixmap ); 1487 QPainter p ( &mWeekPixmap );
1510 p.setFont( mWeekFont ); 1488 p.setFont( mWeekFont );
1511 p.drawText( 0,0,mWeekPixmap.width(), mWeekPixmap.height(),AlignCenter, QString::number( weekNum) ); 1489 p.drawText( 0,0,mWeekPixmap.width(), mWeekPixmap.height(),AlignCenter, QString::number( weekNum) );
1512 p.end(); 1490 p.end();
1513 QIconSet icon3 ( mWeekPixmap ); 1491 QIconSet icon3 ( mWeekPixmap );
1514 mWeekAction->setIconSet ( icon3 ); 1492 mWeekAction->setIconSet ( icon3 );
1515 1493
1516} 1494}
1517void MainWindow::updateWeekNum(const DateList &selectedDates) 1495void MainWindow::updateWeekNum(const DateList &selectedDates)
1518{ 1496{
1519 updateWeek( selectedDates.first() ); 1497 updateWeek( selectedDates.first() );
1520} 1498}
1521void MainWindow::processIncidenceSelection( Incidence *incidence ) 1499void MainWindow::processIncidenceSelection( Incidence *incidence )
1522{ 1500{
1523 1501
1524 if ( !incidence ) { 1502 if ( !incidence ) {
1525 enableIncidenceActions( false ); 1503 enableIncidenceActions( false );
1526 1504
1527 mNewSubTodoAction->setEnabled( false ); 1505 mNewSubTodoAction->setEnabled( false );
1528 setCaptionToDates(); 1506 setCaptionToDates();
1529 return; 1507 return;
1530 1508
1531 } 1509 }
1532 1510
1533 //KGlobal::locale()->formatDateTime(nextA, true); 1511 //KGlobal::locale()->formatDateTime(nextA, true);
1534 QString startString = ""; 1512 QString startString = "";
1535 if ( incidence->type() != "Todo" ) { 1513 if ( incidence->type() != "Todo" ) {
1536 if ( incidence->dtStart().date() < incidence->dtEnd().date() ) { 1514 if ( incidence->dtStart().date() < incidence->dtEnd().date() ) {
1537 if ( incidence->doesFloat() ) { 1515 if ( incidence->doesFloat() ) {
1538 startString += ": "+incidence->dtStartDateStr( true ); 1516 startString += ": "+incidence->dtStartDateStr( true );
1539 startString += " --- "+((Event*)incidence)->dtEndDateStr( true ); 1517 startString += " --- "+((Event*)incidence)->dtEndDateStr( true );
1540 1518
1541 } else { 1519 } else {
1542 startString = ": "+incidence->dtStartStr(true); 1520 startString = ": "+incidence->dtStartStr(true);
1543 startString += " --- "+((Event*)incidence)->dtEndStr(true); 1521 startString += " --- "+((Event*)incidence)->dtEndStr(true);
1544 1522
1545 } 1523 }
1546 1524
1547 } else { 1525 } else {
1548 if ( incidence->dtStart().time() != incidence->dtEnd().time() ) 1526 if ( incidence->dtStart().time() != incidence->dtEnd().time() )
1549 startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+ 1527 startString = ": "+KGlobal::locale()->formatTime(incidence->dtStart().time())+
1550 "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time()); 1528 "-"+KGlobal::locale()->formatTime(incidence->dtEnd().time());
1551 if ( incidence->categories().contains( i18n("Birthday") ) || incidence->categories().contains( i18n("Anniversary") ) ) { 1529 if ( incidence->categories().contains( i18n("Birthday") ) || incidence->categories().contains( i18n("Anniversary") ) ) {
1552 bool ok; 1530 bool ok;
1553 QDateTime noc = incidence->getNextOccurence( mView->startDate().addDays(-1), &ok ); 1531 QDateTime noc = incidence->getNextOccurence( mView->startDate().addDays(-1), &ok );
1554 if ( ok ) { 1532 if ( ok ) {
1555 int years = noc.date().year() - incidence->dtStart().date().year(); 1533 int years = noc.date().year() - incidence->dtStart().date().year();
1556 startString += i18n(" (%1 y.)"). arg( years ); 1534 startString += i18n(" (%1 y.)"). arg( years );
1557 } 1535 }
1558 } 1536 }
1559 else 1537 else
1560 startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true); 1538 startString +=" "+KGlobal::locale()->formatDate( incidence->dtStart().date(), true);
1561 } 1539 }
1562 1540
1563 } 1541 }
1564 else 1542 else
1565 startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed"); 1543 startString = i18n(": (Prio ") +QString::number( (( KCal::Todo*)incidence)->priority() ) +") "+QString::number( (( KCal::Todo*)incidence)->percentComplete() ) +i18n("\% completed");
1566 if ( !incidence->location().isEmpty() ) 1544 if ( !incidence->location().isEmpty() )
1567 startString += " (" +incidence->location()+")"; 1545 startString += " (" +incidence->location()+")";
1568 setCaption( incidence->summary()+startString); 1546 setCaption( incidence->summary()+startString);
1569 1547
1570 enableIncidenceActions( true ); 1548 enableIncidenceActions( true );
1571 1549
1572 if ( incidence->type() == "Event" ) { 1550 if ( incidence->type() == "Event" ) {
1573 mShowAction->setText( i18n("Show Event...") ); 1551 mShowAction->setText( i18n("Show Event...") );
1574 mEditAction->setText( i18n("Edit Event...") ); 1552 mEditAction->setText( i18n("Edit Event...") );
1575 mDeleteAction->setText( i18n("Delete Event...") ); 1553 mDeleteAction->setText( i18n("Delete Event...") );
1576 1554
1577 mNewSubTodoAction->setEnabled( false ); 1555 mNewSubTodoAction->setEnabled( false );
1578 } else if ( incidence->type() == "Todo" ) { 1556 } else if ( incidence->type() == "Todo" ) {
1579 mShowAction->setText( i18n("Show Todo...") ); 1557 mShowAction->setText( i18n("Show Todo...") );
1580 mEditAction->setText( i18n("Edit Todo...") ); 1558 mEditAction->setText( i18n("Edit Todo...") );
1581 mDeleteAction->setText( i18n("Delete Todo...") ); 1559 mDeleteAction->setText( i18n("Delete Todo...") );
1582 1560
1583 mNewSubTodoAction->setEnabled( true ); 1561 mNewSubTodoAction->setEnabled( true );
1584 } else { 1562 } else {
1585 mShowAction->setText( i18n("Show...") ); 1563 mShowAction->setText( i18n("Show...") );
1586 mShowAction->setText( i18n("Edit...") ); 1564 mShowAction->setText( i18n("Edit...") );
1587 mShowAction->setText( i18n("Delete...") ); 1565 mShowAction->setText( i18n("Delete...") );
1588 1566
1589 mNewSubTodoAction->setEnabled( false ); 1567 mNewSubTodoAction->setEnabled( false );
1590 } 1568 }
1591} 1569}
1592 1570
1593void MainWindow::enableIncidenceActions( bool enabled ) 1571void MainWindow::enableIncidenceActions( bool enabled )
1594{ 1572{
1595 mShowAction->setEnabled( enabled ); 1573 mShowAction->setEnabled( enabled );
1596 mEditAction->setEnabled( enabled ); 1574 mEditAction->setEnabled( enabled );
1597 mDeleteAction->setEnabled( enabled ); 1575 mDeleteAction->setEnabled( enabled );
1598 1576
1599 mCloneAction->setEnabled( enabled ); 1577 mCloneAction->setEnabled( enabled );
1600 mMoveAction->setEnabled( enabled ); 1578 mMoveAction->setEnabled( enabled );
1601 mBeamAction->setEnabled( enabled ); 1579 mBeamAction->setEnabled( enabled );
1602 mCancelAction->setEnabled( enabled ); 1580 mCancelAction->setEnabled( enabled );
1603} 1581}
1604 1582
1605void MainWindow::importOL() 1583void MainWindow::importOL()
1606{ 1584{
1607#ifdef _OL_IMPORT_ 1585#ifdef _OL_IMPORT_
1608 KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this ); 1586 KOImportOLdialog *id = new KOImportOLdialog("Import from OL - select folder!" , mView->calendar(),this );
1609 id->exec(); 1587 id->exec();
1610 delete id; 1588 delete id;
1611 mView->updateView(); 1589 mView->updateView();
1612#endif 1590#endif
1613} 1591}
1614void MainWindow::importBday() 1592void MainWindow::importBday()
1615{ 1593{
1616 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"), 1594 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),
1617 i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"), 1595 i18n("When importing birthdays twice\nduplicated events will be ignored,\nif the event has not been\nchanged in KO/Pi!\n"),
1618 i18n("Import!"), i18n("Cancel"), 0, 1596 i18n("Import!"), i18n("Cancel"), 0,
1619 0, 1 ); 1597 0, 1 );
1620 if ( result == 0 ) { 1598 if ( result == 0 ) {
1621 mView->importBday(); 1599 mView->importBday();
1622 1600
1623 } 1601 }
1624 1602
1625 1603
1626} 1604}
1627void MainWindow::importQtopia() 1605void MainWindow::importQtopia()
1628{ 1606{
1629 //#ifndef DESKTOP_VERSION 1607 //#ifndef DESKTOP_VERSION
1630 QString mess = i18n("When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing"); 1608 QString mess = i18n("When importing a calendar twice\nduplicated events will be ignored!\nYou can create a backup file with\nFile - Save Calendar Backup\nto revert importing");
1631#ifdef DESKTOP_VERSION 1609#ifdef DESKTOP_VERSION
1632 mess += i18n("The content of the following files will be\nimported (located in your home directory (hd)):\n(hd)/Applications/datebook/datebook.xml\n(hd)/Applications/todolist/todolist.xml\nThe following category file will be used:\n(hd)/Settings/Categories.xml"); 1610 mess += i18n("The content of the following files will be\nimported (located in your home directory (hd)):\n(hd)/Applications/datebook/datebook.xml\n(hd)/Applications/todolist/todolist.xml\nThe following category file will be used:\n(hd)/Settings/Categories.xml");
1633#endif 1611#endif
1634 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mess, 1612 int result = QMessageBox::warning( this, i18n("KO/Pi: Warning!"),mess,
1635 i18n("Import!"), i18n("Cancel"), 0, 1613 i18n("Import!"), i18n("Cancel"), 0,