summaryrefslogtreecommitdiffabout
path: root/korganizer/komonthview.cpp
authorzautrix <zautrix>2005-02-04 22:22:10 (UTC)
committer zautrix <zautrix>2005-02-04 22:22:10 (UTC)
commit936b4b2aa37e699052a2517dc2d928d717398cf6 (patch) (unidiff)
tree964ac33783c2126ecbaea0a2ee72b83ae6475b52 /korganizer/komonthview.cpp
parent4659ee80518c7d5108c21ba04a12a25eab783113 (diff)
downloadkdepimpi-936b4b2aa37e699052a2517dc2d928d717398cf6.zip
kdepimpi-936b4b2aa37e699052a2517dc2d928d717398cf6.tar.gz
kdepimpi-936b4b2aa37e699052a2517dc2d928d717398cf6.tar.bz2
fifi
Diffstat (limited to 'korganizer/komonthview.cpp') (more/less context) (show whitespace changes)
-rw-r--r--korganizer/komonthview.cpp52
1 files changed, 42 insertions, 10 deletions
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp
index dfa89e2..df5e060 100644
--- a/korganizer/komonthview.cpp
+++ b/korganizer/komonthview.cpp
@@ -79,100 +79,115 @@ KNoScrollListBox::KNoScrollListBox(QWidget *parent,const char *name)
79 : QListBox(parent, name, WRepaintNoErase) 79 : QListBox(parent, name, WRepaintNoErase)
80{ 80{
81#ifndef DESKTOP_VERSION 81#ifndef DESKTOP_VERSION
82 QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold ); 82 QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold );
83#endif 83#endif
84 mWT = new KNOWhatsThis(this); 84 mWT = new KNOWhatsThis(this);
85} 85}
86KNoScrollListBox::~KNoScrollListBox() 86KNoScrollListBox::~KNoScrollListBox()
87{ 87{
88 88
89} 89}
90QString KNoScrollListBox::getWhatsThisText(QPoint p) 90QString KNoScrollListBox::getWhatsThisText(QPoint p)
91{ 91{
92 QListBoxItem* item = itemAt ( p ); 92 QListBoxItem* item = itemAt ( p );
93 if ( ! item ) { 93 if ( ! item ) {
94 return i18n("Click in the cell\nto add an event!"); 94 return i18n("Click in the cell\nto add an event!");
95 } 95 }
96 return KIncidenceFormatter::instance()->getFormattedText(((MonthViewItem*) item)->incidence()); 96 return KIncidenceFormatter::instance()->getFormattedText(((MonthViewItem*) item)->incidence());
97} 97}
98void KNoScrollListBox::keyPressEvent(QKeyEvent *e) 98void KNoScrollListBox::keyPressEvent(QKeyEvent *e)
99{ 99{
100 100
101 switch(e->key()) { 101 switch(e->key()) {
102 case Key_Right: 102 case Key_Right:
103 // if ( e->state() == Qt::ControlButton ) 103 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
104 { 104 {
105 e->ignore(); 105 e->ignore();
106 return; 106 return;
107 } 107 }
108 scrollBy(4,0); 108 scrollBy(10,0);
109 break; 109 break;
110 case Key_Left: 110 case Key_Left:
111 // if ( e->state() == Qt::ControlButton ) 111 if (e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
112 { 112 {
113 e->ignore(); 113 e->ignore();
114 return; 114 return;
115 } 115 }
116 scrollBy(-4,0); 116 scrollBy(-10,0);
117 break; 117 break;
118 case Key_Up: 118 case Key_Up:
119 if(count() < 2) { 119 if( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton) {
120 e->ignore(); 120 e->ignore();
121 break; 121 break;
122 } 122 }
123 setCurrentItem((currentItem()+count()-1)%count()); 123 setCurrentItem((currentItem()+count()-1)%count());
124 if(!itemVisible(currentItem())) { 124 if(!itemVisible(currentItem())) {
125 if((unsigned int) currentItem() == (count()-1)) { 125 if((unsigned int) currentItem() == (count()-1)) {
126 setTopItem(currentItem()-numItemsVisible()+1); 126 setTopItem(currentItem()-numItemsVisible()+1);
127 } else { 127 } else {
128 setTopItem(topItem()-1); 128 setTopItem(topItem()-1);
129 } 129 }
130 } 130 }
131 break; 131 break;
132 case Key_Down: 132 case Key_Down:
133 if(count() < 2) { 133 if(e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton) {
134 e->ignore(); 134 e->ignore();
135 break; 135 break;
136 } 136 }
137 setCurrentItem((currentItem()+1)%count()); 137 setCurrentItem((currentItem()+1)%count());
138 if(!itemVisible(currentItem())) { 138 if(!itemVisible(currentItem())) {
139 if(currentItem() == 0) { 139 if(currentItem() == 0) {
140 setTopItem(0); 140 setTopItem(0);
141 } else { 141 } else {
142 setTopItem(topItem()+1); 142 setTopItem(topItem()+1);
143 } 143 }
144 } 144 }
145 break; 145 break;
146 case Key_I:
147 QTimer::singleShot( 11, this, SLOT ( oneDown() ) );
148 e->ignore();
149 break;
146 case Key_Shift: 150 case Key_Shift:
147 emit shiftDown(); 151 emit shiftDown();
148 break; 152 break;
149 default: 153 default:
150 e->ignore(); 154 e->ignore();
151 break; 155 break;
152 } 156 }
153} 157}
154 158
159void KNoScrollListBox::oneDown()
160{
161 setCurrentItem((currentItem()+1)%count());
162 if(!itemVisible(currentItem())) {
163 if(currentItem() == 0) {
164 setTopItem(0);
165 } else {
166 setTopItem(topItem()+1);
167 }
168 }
169}
155void KNoScrollListBox::keyReleaseEvent(QKeyEvent *e) 170void KNoScrollListBox::keyReleaseEvent(QKeyEvent *e)
156{ 171{
157 switch(e->key()) { 172 switch(e->key()) {
158 case Key_Shift: 173 case Key_Shift:
159 emit shiftUp(); 174 emit shiftUp();
160 break; 175 break;
161 default: 176 default:
162 break; 177 break;
163 } 178 }
164} 179}
165 180
166void KNoScrollListBox::mousePressEvent(QMouseEvent *e) 181void KNoScrollListBox::mousePressEvent(QMouseEvent *e)
167{ 182{
168 QListBox::mousePressEvent(e); 183 QListBox::mousePressEvent(e);
169 184
170 if(e->button() == RightButton) { 185 if(e->button() == RightButton) {
171 emit rightClick(); 186 emit rightClick();
172 } 187 }
173} 188}
174 189
175MonthViewItem::MonthViewItem( Incidence *incidence, QDate qd, const QString & s) 190MonthViewItem::MonthViewItem( Incidence *incidence, QDate qd, const QString & s)
176 : QListBoxItem() 191 : QListBoxItem()
177{ 192{
178 setText( s ); 193 setText( s );
@@ -261,48 +276,49 @@ int MonthViewItem::width(const QListBox *lb) const
261 if( mAlarm ) { 276 if( mAlarm ) {
262 x += size+1; 277 x += size+1;
263 } 278 }
264 if( mReply ) { 279 if( mReply ) {
265 x += size+1; 280 x += size+1;
266 } 281 }
267 282
268 return( x + lb->fontMetrics().width( text() ) + 1 ); 283 return( x + lb->fontMetrics().width( text() ) + 1 );
269} 284}
270 285
271 286
272MonthViewCell::MonthViewCell( KOMonthView *parent,QWidget* par ) 287MonthViewCell::MonthViewCell( KOMonthView *parent,QWidget* par )
273 : QWidget( par ), 288 : QWidget( par ),
274 mMonthView( parent ) 289 mMonthView( parent )
275{ 290{
276 291
277 QVBoxLayout *topLayout = new QVBoxLayout( this ); 292 QVBoxLayout *topLayout = new QVBoxLayout( this );
278 293
279 // mLabel = new QLabel( this );QPushButton 294 // mLabel = new QLabel( this );QPushButton
280 mLabel = new QPushButton( this ); 295 mLabel = new QPushButton( this );
281 //mLabel->setFrameStyle( QFrame::Panel | QFrame::Plain ); 296 //mLabel->setFrameStyle( QFrame::Panel | QFrame::Plain );
282 //mLabel->setLineWidth( 1 ); 297 //mLabel->setLineWidth( 1 );
283 //mLabel->setAlignment( AlignCenter ); 298 //mLabel->setAlignment( AlignCenter );
284 mLabel->setFlat( true ); 299 mLabel->setFlat( true );
300 mLabel->setFocusPolicy(NoFocus);
285 mItemList = new KNoScrollListBox( this ); 301 mItemList = new KNoScrollListBox( this );
286 mItemList->setMinimumSize( 10, 10 ); 302 mItemList->setMinimumSize( 10, 10 );
287 mItemList->setFrameStyle( QFrame::Panel | QFrame::Plain ); 303 mItemList->setFrameStyle( QFrame::Panel | QFrame::Plain );
288 mItemList->setLineWidth( 1 ); 304 mItemList->setLineWidth( 1 );
289 topLayout->addWidget( mItemList ); 305 topLayout->addWidget( mItemList );
290 mLabel->raise(); 306 mLabel->raise();
291 // QColor( 0,0,255 ) QColor( 160,1600,255 ) 307 // QColor( 0,0,255 ) QColor( 160,1600,255 )
292 mStandardPalette = palette(); 308 mStandardPalette = palette();
293 mStandardPalette.setColor(QColorGroup::Base, mStandardPalette.color( QPalette::Normal, QColorGroup::Background ) ); 309 mStandardPalette.setColor(QColorGroup::Base, mStandardPalette.color( QPalette::Normal, QColorGroup::Background ) );
294 310
295 enableScrollBars( false ); 311 enableScrollBars( false );
296 updateConfig(); 312 updateConfig();
297 //connect( mLabel, SIGNAL( clicked( )), SLOT( newEvent() )); 313 //connect( mLabel, SIGNAL( clicked( )), SLOT( newEvent() ));
298 connect( mLabel, SIGNAL( clicked( )), SLOT( showDay() )); 314 connect( mLabel, SIGNAL( clicked( )), SLOT( showDay() ));
299 connect( mItemList, SIGNAL( doubleClicked( QListBoxItem *) ), 315 connect( mItemList, SIGNAL( doubleClicked( QListBoxItem *) ),
300 SLOT( defaultAction( QListBoxItem * ) ) ); 316 SLOT( defaultAction( QListBoxItem * ) ) );
301 connect( mItemList, SIGNAL( rightButtonPressed( QListBoxItem *, 317 connect( mItemList, SIGNAL( rightButtonPressed( QListBoxItem *,
302 const QPoint &) ), 318 const QPoint &) ),
303 SLOT( contextMenu( QListBoxItem * ) ) ); 319 SLOT( contextMenu( QListBoxItem * ) ) );
304 connect( mItemList, SIGNAL( highlighted( QListBoxItem *) ), 320 connect( mItemList, SIGNAL( highlighted( QListBoxItem *) ),
305 SLOT( selection( QListBoxItem * ) ) ); 321 SLOT( selection( QListBoxItem * ) ) );
306 connect( mItemList, SIGNAL( clicked( QListBoxItem * ) ), 322 connect( mItemList, SIGNAL( clicked( QListBoxItem * ) ),
307 SLOT( cellClicked( QListBoxItem * ) ) ); 323 SLOT( cellClicked( QListBoxItem * ) ) );
308 connect( mItemList, SIGNAL( clicked( QListBoxItem * ) ), 324 connect( mItemList, SIGNAL( clicked( QListBoxItem * ) ),
@@ -380,80 +396,84 @@ void MonthViewCell::setHoliday( const QString &holiday )
380{ 396{
381 mHolidayString = holiday; 397 mHolidayString = holiday;
382 398
383 if ( !holiday.isEmpty() ) { 399 if ( !holiday.isEmpty() ) {
384 setHoliday( true ); 400 setHoliday( true );
385 } 401 }
386} 402}
387void MonthViewCell::keyPressEvent ( QKeyEvent * e ) 403void MonthViewCell::keyPressEvent ( QKeyEvent * e )
388{ 404{
389 405
390 e->ignore(); 406 e->ignore();
391 407
392} 408}
393void MonthViewCell::clear() 409void MonthViewCell::clear()
394{ 410{
395 mItemList->clear(); 411 mItemList->clear();
396 QApplication::removePostedEvents ( mItemList ); 412 QApplication::removePostedEvents ( mItemList );
397 QApplication::removePostedEvents ( mLabel ); 413 QApplication::removePostedEvents ( mLabel );
398 QApplication::removePostedEvents ( this ); 414 QApplication::removePostedEvents ( this );
399} 415}
400 416
401void MonthViewCell::startUpdateCell() 417void MonthViewCell::startUpdateCell()
402{ 418{
403 419
420 mItemList->setFocusPolicy(NoFocus);
404 if ( !mMonthView->isUpdatePossible() ) 421 if ( !mMonthView->isUpdatePossible() )
405 return; 422 return;
423
406 /* 424 /*
407 if ( !isVisible() ){ 425 if ( !isVisible() ){
408 return; 426 return;
409 } 427 }
410 */ 428 */
411 // qDebug("MonthViewCell::updateCell() "); 429 // qDebug("MonthViewCell::updateCell() ");
412 setPrimary( mDate.month()%2 ); 430 setPrimary( mDate.month()%2 );
413 setHoliday( KOGlobals::self()->calendarSystem()->dayOfWeek(mDate) == KOGlobals::self()->calendarSystem()->weekDayOfPray() || ( mDate.dayOfWeek() == 6 ) && KOPrefs::instance()-> mExcludeSaturdays); 431 setHoliday( KOGlobals::self()->calendarSystem()->dayOfWeek(mDate) == KOGlobals::self()->calendarSystem()->weekDayOfPray() || ( mDate.dayOfWeek() == 6 ) && KOPrefs::instance()-> mExcludeSaturdays);
414 if ( mDate == QDate::currentDate() ) { 432 if ( mDate == QDate::currentDate() ) {
415 mItemList->setLineWidth( 3 ); 433 mItemList->setLineWidth( 3 );
416 } else { 434 } else {
417 mItemList->setLineWidth( 1 ); 435 mItemList->setLineWidth( 1 );
418 } 436 }
419 mItemList->clear(); 437 mItemList->clear();
420 438
421#ifdef DESKTOP_VERSION 439#ifdef DESKTOP_VERSION
422 QToolTip::remove(this); 440 QToolTip::remove(this);
423#endif 441#endif
424 mToolTip = ""; 442 mToolTip = "";
425 //qApp->processEvents(); 443 //qApp->processEvents();
426 if ( !mHolidayString.isEmpty() ) { 444 if ( !mHolidayString.isEmpty() ) {
427 MonthViewItem *item = new MonthViewItem( 0, mDate, mHolidayString ); 445 MonthViewItem *item = new MonthViewItem( 0, mDate, mHolidayString );
428 item->setPalette( mHolidayPalette ); 446 item->setPalette( mHolidayPalette );
429 mItemList->insertItem( item ); 447 mItemList->insertItem( item );
430 mToolTip += mHolidayString+"\n"; 448 mToolTip += mHolidayString+"\n";
431 } 449 }
432} 450}
433 451
434void MonthViewCell::insertEvent(Event *event) 452void MonthViewCell::insertEvent(Event *event)
435{ 453{
454
455 mItemList->setFocusPolicy(WheelFocus);
436 if ( !(event->doesRecur() == Recurrence::rNone) ) { 456 if ( !(event->doesRecur() == Recurrence::rNone) ) {
437 if ( !KOPrefs::instance()->mMonthDailyRecur && event->doesRecur() == Recurrence::rDaily ) 457 if ( !KOPrefs::instance()->mMonthDailyRecur && event->doesRecur() == Recurrence::rDaily )
438 return; 458 return;
439 else 459 else
440 if ( !KOPrefs::instance()->mMonthWeeklyRecur && event->doesRecur() == Recurrence::rWeekly ) 460 if ( !KOPrefs::instance()->mMonthWeeklyRecur && event->doesRecur() == Recurrence::rWeekly )
441 return; 461 return;
442 } 462 }
443 463
444 if ( event->categories().contains("Holiday") || 464 if ( event->categories().contains("Holiday") ||
445 event->categories().contains(i18n("Holiday"))) { 465 event->categories().contains(i18n("Holiday"))) {
446 setHoliday( true ); 466 setHoliday( true );
447 if ( mDate.dayOfWeek() == 7 ) 467 if ( mDate.dayOfWeek() == 7 )
448 mItemList->setLineWidth( 3 ); 468 mItemList->setLineWidth( 3 );
449 } 469 }
450 QString text; 470 QString text;
451 if (event->isMultiDay()) { 471 if (event->isMultiDay()) {
452 QString prefix = "<->"; 472 QString prefix = "<->";
453 if ( event->doesRecur() ) { 473 if ( event->doesRecur() ) {
454 if ( event->recursOn( mDate) ) 474 if ( event->recursOn( mDate) )
455 prefix ="->" ; 475 prefix ="->" ;
456 else { 476 else {
457 int days = event->dtStart().date().daysTo ( event->dtEnd().date() ); 477 int days = event->dtStart().date().daysTo ( event->dtEnd().date() );
458 if ( event->recursOn( mDate.addDays( -days)) ) 478 if ( event->recursOn( mDate.addDays( -days)) )
459 prefix ="<-" ; 479 prefix ="<-" ;
@@ -517,49 +537,49 @@ void MonthViewCell::insertEvent(Event *event)
517 item->setMoreInfo( event->description().length() > 0 ); 537 item->setMoreInfo( event->description().length() > 0 );
518#ifdef DESKTOP_VERSION 538#ifdef DESKTOP_VERSION
519 Attendee *me = event->attendeeByMails(KOPrefs::instance()->mAdditionalMails, 539 Attendee *me = event->attendeeByMails(KOPrefs::instance()->mAdditionalMails,
520 KOPrefs::instance()->email()); 540 KOPrefs::instance()->email());
521 if ( me != 0 ) { 541 if ( me != 0 ) {
522 if ( me->status() == Attendee::NeedsAction && me->RSVP()) 542 if ( me->status() == Attendee::NeedsAction && me->RSVP())
523 item->setReply(true); 543 item->setReply(true);
524 else 544 else
525 item->setReply(false); 545 item->setReply(false);
526 } else 546 } else
527 item->setReply(false); 547 item->setReply(false);
528#endif 548#endif
529 mItemList->insertItem( item ); 549 mItemList->insertItem( item );
530 mToolTip += "\n"; 550 mToolTip += "\n";
531} 551}
532void MonthViewCell::insertTodo(Todo *todo) 552void MonthViewCell::insertTodo(Todo *todo)
533{ 553{
534 QString text; 554 QString text;
535 if (todo->hasDueDate()) { 555 if (todo->hasDueDate()) {
536 if (!todo->doesFloat()) { 556 if (!todo->doesFloat()) {
537 text += KGlobal::locale()->formatTime(todo->dtDue().time()); 557 text += KGlobal::locale()->formatTime(todo->dtDue().time());
538 text += " "; 558 text += " ";
539 } 559 }
540 } 560 }
541 text += i18n("To-Do: %1").arg(todo->summary()); 561 text += i18n("Td: %1").arg(todo->summary());
542 562
543 MonthViewItem *item = new MonthViewItem( todo, mDate, text ); 563 MonthViewItem *item = new MonthViewItem( todo, mDate, text );
544 //item->setPalette( mStandardPalette ); 564 //item->setPalette( mStandardPalette );
545 QPalette pal; 565 QPalette pal;
546 if (KOPrefs::instance()->mMonthViewUsesCategoryColor) { 566 if (KOPrefs::instance()->mMonthViewUsesCategoryColor) {
547 QStringList categories = todo->categories(); 567 QStringList categories = todo->categories();
548 QString cat = categories.first(); 568 QString cat = categories.first();
549 if ( KOPrefs::instance()->mMonthViewUsesForegroundColor ) { 569 if ( KOPrefs::instance()->mMonthViewUsesForegroundColor ) {
550 pal = getPalette(); 570 pal = getPalette();
551 if (cat.isEmpty()) { 571 if (cat.isEmpty()) {
552 pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->mEventColor); 572 pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->mEventColor);
553 } else { 573 } else {
554 pal.setColor(QColorGroup::Foreground, *(KOPrefs::instance()->categoryColor(cat))); 574 pal.setColor(QColorGroup::Foreground, *(KOPrefs::instance()->categoryColor(cat)));
555 } 575 }
556 576
557 } else { 577 } else {
558 if (cat.isEmpty()) { 578 if (cat.isEmpty()) {
559 pal = QPalette(KOPrefs::instance()->mEventColor, KOPrefs::instance()->mEventColor); 579 pal = QPalette(KOPrefs::instance()->mEventColor, KOPrefs::instance()->mEventColor);
560 } else { 580 } else {
561 pal = QPalette(*(KOPrefs::instance()->categoryColor(cat)), *(KOPrefs::instance()->categoryColor(cat))); 581 pal = QPalette(*(KOPrefs::instance()->categoryColor(cat)), *(KOPrefs::instance()->categoryColor(cat)));
562 } 582 }
563 } 583 }
564 584
565 } else { 585 } else {
@@ -805,62 +825,64 @@ KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name)
805 } 825 }
806 bfont.setBold( true ); 826 bfont.setBold( true );
807 int i; 827 int i;
808 828
809 for( i = 0; i < mDaysPerWeek; i++ ) { 829 for( i = 0; i < mDaysPerWeek; i++ ) {
810 QLabel *label = new QLabel( mMonthView ); 830 QLabel *label = new QLabel( mMonthView );
811 label->setFont(bfont); 831 label->setFont(bfont);
812 label->setFrameStyle(QFrame::Panel|QFrame::Raised); 832 label->setFrameStyle(QFrame::Panel|QFrame::Raised);
813 label->setLineWidth(1); 833 label->setLineWidth(1);
814 label->setAlignment(AlignCenter); 834 label->setAlignment(AlignCenter);
815 mDayLabels.insert( i, label ); 835 mDayLabels.insert( i, label );
816 label = new QLabel( mWeekView ); 836 label = new QLabel( mWeekView );
817 label->setFont(bfont); 837 label->setFont(bfont);
818 label->setFrameStyle(QFrame::Panel|QFrame::Raised); 838 label->setFrameStyle(QFrame::Panel|QFrame::Raised);
819 label->setLineWidth(1); 839 label->setLineWidth(1);
820 label->setAlignment(AlignCenter); 840 label->setAlignment(AlignCenter);
821 mDayLabelsW.insert( i, label ); 841 mDayLabelsW.insert( i, label );
822 } 842 }
823 843
824 bfont.setBold( false ); 844 bfont.setBold( false );
825 mWeekLabels.resize( mNumWeeks+1 ); 845 mWeekLabels.resize( mNumWeeks+1 );
826 mWeekLabelsW.resize( 2 ); 846 mWeekLabelsW.resize( 2 );
827 for( i = 0; i < mNumWeeks+1; i++ ) { 847 for( i = 0; i < mNumWeeks+1; i++ ) {
828 KOWeekButton *label = new KOWeekButton( mMonthView ); 848 KOWeekButton *label = new KOWeekButton( mMonthView );
849 label->setFocusPolicy(NoFocus);
829 label->setFont(bfont); 850 label->setFont(bfont);
830 connect( label, SIGNAL( selectWeekNum ( int )),this, SLOT( selectInternalWeekNum ( int )) ); 851 connect( label, SIGNAL( selectWeekNum ( int )),this, SLOT( selectInternalWeekNum ( int )) );
831 label->setFlat(true); 852 label->setFlat(true);
832 QWhatsThis::add(label,i18n("Click on the week number to\nshow week zoomed")); 853 QWhatsThis::add(label,i18n("Click on the week number to\nshow week zoomed"));
833 //label->setFrameStyle(QFrame::Panel|QFrame::Raised); 854 //label->setFrameStyle(QFrame::Panel|QFrame::Raised);
834 //label->setLineWidth(1); 855 //label->setLineWidth(1);
835 //label->setAlignment(AlignCenter); 856 //label->setAlignment(AlignCenter);
836 mWeekLabels.insert( i, label ); 857 mWeekLabels.insert( i, label );
837 } 858 }
838 mWeekLabels[mNumWeeks]->setText( i18n("W")); 859 mWeekLabels[mNumWeeks]->setText( i18n("W"));
839 QWhatsThis::add(mWeekLabels[mNumWeeks],i18n("Click on this to\nselect week number")); 860 QWhatsThis::add(mWeekLabels[mNumWeeks],i18n("Click on this to\nselect week number"));
840 861
841 for( i = 0; i < 1+1; i++ ) { 862 for( i = 0; i < 1+1; i++ ) {
842 KOWeekButton *label = new KOWeekButton( mWeekView ); 863 KOWeekButton *label = new KOWeekButton( mWeekView );
864 label->setFocusPolicy(NoFocus);
843 label->setFont(bfont); 865 label->setFont(bfont);
844 connect( label, SIGNAL( selectWeekNum ( int )),this, SLOT( selectInternalWeekNum ( int )) ); 866 connect( label, SIGNAL( selectWeekNum ( int )),this, SLOT( selectInternalWeekNum ( int )) );
845 label->setFlat(true); 867 label->setFlat(true);
846 QWhatsThis::add(label,i18n("Click on the week number to\nshow week zoomed")); 868 QWhatsThis::add(label,i18n("Click on the week number to\nshow week zoomed"));
847 //label->setFrameStyle(QFrame::Panel|QFrame::Raised); 869 //label->setFrameStyle(QFrame::Panel|QFrame::Raised);
848 //label->setLineWidth(1); 870 //label->setLineWidth(1);
849 //label->setAlignment(AlignCenter); 871 //label->setAlignment(AlignCenter);
850 mWeekLabelsW.insert( i, label ); 872 mWeekLabelsW.insert( i, label );
851 } 873 }
852 mWeekLabelsW[1]->setText( i18n("W")); 874 mWeekLabelsW[1]->setText( i18n("W"));
853 875
854 876
855 int row, col; 877 int row, col;
856 mCells.resize( mNumCells ); 878 mCells.resize( mNumCells );
857 for( row = 0; row < mNumWeeks; ++row ) { 879 for( row = 0; row < mNumWeeks; ++row ) {
858 for( col = 0; col < mDaysPerWeek; ++col ) { 880 for( col = 0; col < mDaysPerWeek; ++col ) {
859 MonthViewCell *cell = new MonthViewCell( this, mMonthView ); 881 MonthViewCell *cell = new MonthViewCell( this, mMonthView );
860 mCells.insert( row * mDaysPerWeek + col, cell ); 882 mCells.insert( row * mDaysPerWeek + col, cell );
861 883
862 connect( cell, SIGNAL( defaultAction( Incidence * ) ), 884 connect( cell, SIGNAL( defaultAction( Incidence * ) ),
863 SLOT( defaultAction( Incidence * ) ) ); 885 SLOT( defaultAction( Incidence * ) ) );
864 connect( cell, SIGNAL( newEventSignal( QDateTime ) ), 886 connect( cell, SIGNAL( newEventSignal( QDateTime ) ),
865 SIGNAL( newEventSignal( QDateTime ) ) ); 887 SIGNAL( newEventSignal( QDateTime ) ) );
866 connect( cell, SIGNAL( showDaySignal( QDate ) ), 888 connect( cell, SIGNAL( showDaySignal( QDate ) ),
@@ -882,58 +904,61 @@ KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name)
882 } 904 }
883 905
884 //connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), SLOT( switchView() ) ); 906 //connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), SLOT( switchView() ) );
885 mContextMenu = eventPopup(); 907 mContextMenu = eventPopup();
886 // updateConfig(); //useless here 908 // updateConfig(); //useless here
887 909
888 //mWeekLabels[mNumWeeks]->setText( i18n("W")); 910 //mWeekLabels[mNumWeeks]->setText( i18n("W"));
889#if 0 911#if 0
890 mWidStack = new QWidgetStack( this ); 912 mWidStack = new QWidgetStack( this );
891 mMonthView = new QWidget( mWidStack ); 913 mMonthView = new QWidget( mWidStack );
892 mWeekView = new QWidget( mWidStack ); 914 mWeekView = new QWidget( mWidStack );
893#endif 915#endif
894 if ( mShowWeekView ) 916 if ( mShowWeekView )
895 mWidStack->raiseWidget( mWeekView ); 917 mWidStack->raiseWidget( mWeekView );
896 else 918 else
897 mWidStack->raiseWidget( mMonthView ); 919 mWidStack->raiseWidget( mMonthView );
898 920
899 emit incidenceSelected( 0 ); 921 emit incidenceSelected( 0 );
900} 922}
901 923
902KOMonthView::~KOMonthView() 924KOMonthView::~KOMonthView()
903{ 925{
904 delete mContextMenu; 926 delete mContextMenu;
905} 927}
906void KOMonthView::selectDateWeekNum ( int )
907{
908 928
909}
910void KOMonthView::selectInternalWeekNum ( int n ) 929void KOMonthView::selectInternalWeekNum ( int n )
911{ 930{
912 switchView(); 931 switchView();
913 emit selectWeekNum ( n ); 932 emit selectWeekNum ( n );
914} 933}
915 934
935int KOMonthView::currentWeek()
936{
937 if ( mShowWeekView )
938 return mWeekLabelsW[0]->getWeekNum();
939 return mWeekLabels[0]->getWeekNum();
940}
916void KOMonthView::switchView() 941void KOMonthView::switchView()
917{ 942{
918 943
919 if ( selectedCell( ) ) 944 if ( selectedCell( ) )
920 selectedCell()->deselect(); 945 selectedCell()->deselect();
921 mShowWeekView = !mShowWeekView; 946 mShowWeekView = !mShowWeekView;
922 KOPrefs::instance()->mMonthViewWeek = mShowWeekView; 947 KOPrefs::instance()->mMonthViewWeek = mShowWeekView;
923 //emit showNavigator( !mShowWeekView ); 948 //emit showNavigator( !mShowWeekView );
924 if ( clPending ) { 949 if ( clPending ) {
925 computeLayout(); 950 computeLayout();
926 updateConfig(); 951 updateConfig();
927 } 952 }
928 if ( mShowWeekView ) 953 if ( mShowWeekView )
929 mWidStack->raiseWidget( mWeekView ); 954 mWidStack->raiseWidget( mWeekView );
930 else 955 else
931 mWidStack->raiseWidget( mMonthView ); 956 mWidStack->raiseWidget( mMonthView );
932 clPending = false; 957 clPending = false;
933} 958}
934 959
935int KOMonthView::maxDatesHint() 960int KOMonthView::maxDatesHint()
936{ 961{
937 return mNumCells; 962 return mNumCells;
938} 963}
939 964
@@ -1518,29 +1543,36 @@ void KOMonthView::clearSelection()
1518 if ( mSelectedCell ) { 1543 if ( mSelectedCell ) {
1519 mSelectedCell->deselect(); 1544 mSelectedCell->deselect();
1520 mSelectedCell = 0; 1545 mSelectedCell = 0;
1521 } 1546 }
1522} 1547}
1523void KOMonthView::keyPressEvent ( QKeyEvent * e ) 1548void KOMonthView::keyPressEvent ( QKeyEvent * e )
1524{ 1549{
1525 //qDebug("KOMonthView::keyPressEvent "); 1550 //qDebug("KOMonthView::keyPressEvent ");
1526 switch(e->key()) { 1551 switch(e->key()) {
1527 case Key_Up: 1552 case Key_Up:
1528 { 1553 {
1529 emit prevMonth(); 1554 emit prevMonth();
1530 mCells[0]->setFocus(); 1555 mCells[0]->setFocus();
1531 } 1556 }
1532 e->accept(); 1557 e->accept();
1533 break; 1558 break;
1534 case Key_Down: 1559 case Key_Down:
1535 { 1560 {
1536 emit nextMonth(); 1561 emit nextMonth();
1537 mCells[0]->setFocus(); 1562 mCells[0]->setFocus();
1538 1563
1539 } 1564 }
1540 e->accept(); 1565 e->accept();
1541 break; 1566 break;
1567 case Key_Return:
1568 case Key_Enter:
1569 {
1570 selectInternalWeekNum ( currentWeek() );
1571 }
1572 e->accept();
1573 break;
1542 default: 1574 default:
1543 e->ignore(); 1575 e->ignore();
1544 break; 1576 break;
1545 } 1577 }
1546} 1578}