summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--korganizer/komonthview.cpp60
-rw-r--r--korganizer/komonthview.h5
2 files changed, 47 insertions, 18 deletions
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp
index e66ddce..4dfb9df 100644
--- a/korganizer/komonthview.cpp
+++ b/korganizer/komonthview.cpp
@@ -75,189 +75,205 @@ private:
75 75
76}; 76};
77 77
78 78
79KNoScrollListBox::KNoScrollListBox(QWidget *parent,const char *name) 79KNoScrollListBox::KNoScrollListBox(QWidget *parent,const char *name)
80 : QListBox(parent, name, WRepaintNoErase) 80 : QListBox(parent, name, WRepaintNoErase)
81{ 81{
82#ifndef DESKTOP_VERSION 82#ifndef DESKTOP_VERSION
83 QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold ); 83 QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold );
84#endif 84#endif
85 mWT = new KNOWhatsThis(this); 85 mWT = new KNOWhatsThis(this);
86 resetOnFocusIn = true; 86 resetOnFocusIn = true;
87 setVScrollBarMode(QScrollView::AlwaysOff); 87 setVScrollBarMode(QScrollView::AlwaysOff);
88 setHScrollBarMode(QScrollView::AlwaysOff); 88 setHScrollBarMode(QScrollView::AlwaysOff);
89} 89}
90KNoScrollListBox::~KNoScrollListBox() 90KNoScrollListBox::~KNoScrollListBox()
91{ 91{
92 92
93} 93}
94 94
95 95
96void KNoScrollListBox::focusInEvent ( QFocusEvent * e ) 96void KNoScrollListBox::focusInEvent ( QFocusEvent * e )
97{ 97{
98 QListBox::focusInEvent ( e ); 98 QListBox::focusInEvent ( e );
99 QListBoxItem * i = item ( 0 ); 99 if ( count() ){
100 if ( i && resetOnFocusIn ) { 100 int ci = currentItem();
101 setCurrentItem( i ); 101 if ( ci < 0 ) ci = 0;
102 setSelected ( 0, true ); 102
103 } 103 setCurrentItem( ci );
104 setSelected ( ci, true );
105 emit highlighted( item ( ci ) );
106
104 resetOnFocusIn = true; 107 resetOnFocusIn = true;
105 108
106 if ( KOPrefs::instance()->mEnableMonthScroll || KOPrefs::instance()->mMonthViewWeek ) { 109 if ( KOPrefs::instance()->mEnableMonthScroll || KOPrefs::instance()->mMonthViewWeek ) {
107 QListBoxItem *fi = firstItem (); 110 QListBoxItem *fi = firstItem ();
108 if (fi ) { 111 if (fi ) {
109 int ihei = fi->height( this ); 112 int ihei = fi->height( this );
110 int hei = numRows () * ihei; 113 int hei = numRows () * ihei;
111 if ( hei < height() - horizontalScrollBar()->height () ) { 114 if ( hei < height() - horizontalScrollBar()->height () ) {
112 setVScrollBarMode(QScrollView::AlwaysOff); 115 setVScrollBarMode(QScrollView::AlwaysOff);
113 } 116 }
114 else 117 else
115 setVScrollBarMode(QScrollView::Auto); 118 setVScrollBarMode(QScrollView::Auto);
116 if ( ihei *3 > height() ) { 119 if ( ihei *3 > height() ) {
117 setHScrollBarMode(QScrollView::AlwaysOff); 120 setHScrollBarMode(QScrollView::AlwaysOff);
118 } 121 }
119 else { 122 else {
120 setHScrollBarMode(QScrollView::Auto); 123 setHScrollBarMode(QScrollView::Auto);
121 } 124 }
122 } else { 125 } else {
123 setVScrollBarMode(QScrollView::Auto); 126 setVScrollBarMode(QScrollView::Auto);
124 setHScrollBarMode(QScrollView::Auto); 127 setHScrollBarMode(QScrollView::Auto);
125 } 128 }
126 } 129 }
127} 130}
131}
128void KNoScrollListBox::focusOutEvent ( QFocusEvent * e ) 132void KNoScrollListBox::focusOutEvent ( QFocusEvent * e )
129{ 133{
130 int i = currentItem (); 134 int i = currentItem ();
131 if ( i >= 0 ) { 135 if ( i >= 0 ) {
132 setSelected ( i, false ); 136 setSelected ( i, false );
133 } 137 }
134 QListBox::focusOutEvent ( e ); 138 QListBox::focusOutEvent ( e );
135 setVScrollBarMode(QScrollView::AlwaysOff); 139 setVScrollBarMode(QScrollView::AlwaysOff);
136 setHScrollBarMode(QScrollView::AlwaysOff); 140 setHScrollBarMode(QScrollView::AlwaysOff);
137} 141}
138 142
139QString KNoScrollListBox::getWhatsThisText(QPoint p) 143QString KNoScrollListBox::getWhatsThisText(QPoint p)
140{ 144{
141 QListBoxItem* item = itemAt ( p ); 145 QListBoxItem* item = itemAt ( p );
142 if ( ! item ) { 146 if ( ! item ) {
143 return i18n("Click in the cell\nto add an event!"); 147 return i18n("Click in the cell\nto add an event!");
144 } 148 }
145 return KIncidenceFormatter::instance()->getFormattedText(((MonthViewItem*) item)->incidence(), 149 return KIncidenceFormatter::instance()->getFormattedText(((MonthViewItem*) item)->incidence(),
146 KOPrefs::instance()->mWTshowDetails, 150 KOPrefs::instance()->mWTshowDetails,
147 KOPrefs::instance()->mWTshowCreated, 151 KOPrefs::instance()->mWTshowCreated,
148 KOPrefs::instance()->mWTshowChanged); 152 KOPrefs::instance()->mWTshowChanged);
149} 153}
150void KNoScrollListBox::keyPressEvent(QKeyEvent *e) 154void KNoScrollListBox::keyPressEvent(QKeyEvent *e)
151{ 155{
152 //qDebug("KNoScrollListBox::keyPressEvent "); 156 //qDebug("KNoScrollListBox::keyPressEvent ");
153 switch(e->key()) { 157 switch(e->key()) {
154 case Key_Right: 158 case Key_Right:
155 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 159 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
156 { 160 {
157 e->ignore(); 161 e->ignore();
158 return; 162 return;
159 } 163 }
160 scrollBy(10,0); 164 scrollBy(10,0);
161 break; 165 break;
162 case Key_Left: 166 case Key_Left:
163 if (e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 167 if (e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
164 { 168 {
165 e->ignore(); 169 e->ignore();
166 return; 170 return;
167 } 171 }
168 scrollBy(-10,0); 172 scrollBy(-10,0);
169 break; 173 break;
170 case Key_Up: 174 case Key_Up:
171 if( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton) { 175 if( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton) {
172 e->ignore(); 176 e->ignore();
173 break; 177 break;
174 } 178 }
175 if ( count() ) { 179 if ( count() ) {
180 if ( currentItem() == 0 ) {
181 emit prevCell();
182 } else {
176 setCurrentItem((currentItem()+count()-1)%count()); 183 setCurrentItem((currentItem()+count()-1)%count());
177 if(!itemVisible(currentItem())) { 184 if(!itemVisible(currentItem())) {
178 if((unsigned int) currentItem() == (count()-1)) { 185 if((unsigned int) currentItem() == (count()-1)) {
179 setTopItem(currentItem()-numItemsVisible()+1); 186 setTopItem(currentItem()-numItemsVisible()+1);
180 } else { 187 } else {
181 setTopItem(topItem()-1); 188 setTopItem(topItem()-1);
182 } 189 }
183 } 190 }
184 } 191 }
192 }
185 break; 193 break;
186 case Key_Down: 194 case Key_Down:
187 if(e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton) { 195 if(e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton) {
188 e->ignore(); 196 e->ignore();
189 break; 197 break;
190 } 198 }
191 if ( count () ) { 199 if ( count () ) {
200 if ( currentItem()+1 == count () ) {
201 emit nextCell();
202 } else {
192 setCurrentItem((currentItem()+1)%count()); 203 setCurrentItem((currentItem()+1)%count());
193 if(!itemVisible(currentItem())) { 204 if(!itemVisible(currentItem())) {
194 if(currentItem() == 0) { 205 if(currentItem() == 0) {
195 setTopItem(0); 206 setTopItem(0);
196 } else { 207 } else {
197 setTopItem(topItem()+1); 208 setTopItem(topItem()+1);
198 } 209 }
199 } 210 }
200 } 211 }
212 }
201 break; 213 break;
202 case Key_I: 214 case Key_I:
203 QTimer::singleShot( 1, this, SLOT ( oneDown() ) ); 215 QTimer::singleShot( 1, this, SLOT ( oneDown() ) );
204 e->ignore(); 216 e->ignore();
205 break; 217 break;
206 case Key_Return: 218 case Key_Return:
207 case Key_Enter: 219 case Key_Enter:
208 { 220 {
209 if ( currentItem() >= 0 ) { 221 if ( currentItem() >= 0 ) {
210 emit doubleClicked( item( currentItem() ) ); 222 emit doubleClicked( item( currentItem() ) );
211 e->accept(); 223 e->accept();
212 } else { 224 } else {
213 e->ignore(); 225 e->ignore();
214 } 226 }
215 } 227 }
216 break; 228 break;
217 case Key_Shift: 229 case Key_Shift:
218 emit shiftDown(); 230 emit shiftDown();
219 break; 231 break;
220 default: 232 default:
221 e->ignore(); 233 e->ignore();
222 break; 234 break;
223 } 235 }
224} 236}
225 237
226void KNoScrollListBox::oneDown() 238void KNoScrollListBox::oneDown()
227{ 239{
228 if ( count () ) { 240 if ( count () ) {
241 if ( currentItem()+1 == count () ) {
242 emit nextCell();
243 } else {
229 resetOnFocusIn = false; 244 resetOnFocusIn = false;
230 setCurrentItem((currentItem()+1)%count()); 245 setCurrentItem((currentItem()+1)%count());
231 if(!itemVisible(currentItem())) { 246 if(!itemVisible(currentItem())) {
232 if(currentItem() == 0) { 247 if(currentItem() == 0) {
233 setTopItem(0); 248 setTopItem(0);
234 } else { 249 } else {
235 setTopItem(topItem()+1); 250 setTopItem(topItem()+1);
236 } 251 }
237 } 252 }
238 } 253 }
239} 254}
255}
240void KNoScrollListBox::keyReleaseEvent(QKeyEvent *e) 256void KNoScrollListBox::keyReleaseEvent(QKeyEvent *e)
241{ 257{
242 switch(e->key()) { 258 switch(e->key()) {
243 case Key_Shift: 259 case Key_Shift:
244 emit shiftUp(); 260 emit shiftUp();
245 break; 261 break;
246 default: 262 default:
247 break; 263 break;
248 } 264 }
249} 265}
250 266
251void KNoScrollListBox::mousePressEvent(QMouseEvent *e) 267void KNoScrollListBox::mousePressEvent(QMouseEvent *e)
252{ 268{
253 QListBox::mousePressEvent(e); 269 QListBox::mousePressEvent(e);
254 270
255 if(e->button() == RightButton) { 271 if(e->button() == RightButton) {
256 emit rightClick(); 272 emit rightClick();
257 } 273 }
258} 274}
259 275
260MonthViewItem::MonthViewItem( Incidence *incidence, QDate qd, const QString & s) 276MonthViewItem::MonthViewItem( Incidence *incidence, QDate qd, const QString & s)
261 : QListBoxItem() 277 : QListBoxItem()
262{ 278{
263 mblockRepaint = true; 279 mblockRepaint = true;
@@ -452,52 +468,53 @@ MonthViewCell::MonthViewCell( KOMonthView *parent,QWidget* par )
452 //mLabel->setAlignment( AlignCenter ); 468 //mLabel->setAlignment( AlignCenter );
453 mLabel->setFlat( true ); 469 mLabel->setFlat( true );
454 mLabel->setFocusPolicy(NoFocus); 470 mLabel->setFocusPolicy(NoFocus);
455 //mItemList = new KNoScrollListBox( this ); 471 //mItemList = new KNoScrollListBox( this );
456 setMinimumSize( 10, 10 ); 472 setMinimumSize( 10, 10 );
457 setFrameStyle( QFrame::Panel | QFrame::Plain ); 473 setFrameStyle( QFrame::Panel | QFrame::Plain );
458 setLineWidth( 1 ); 474 setLineWidth( 1 );
459 //topLayout->addWidget( mItemList ); 475 //topLayout->addWidget( mItemList );
460 mLabel->raise(); 476 mLabel->raise();
461 // QColor( 0,0,255 ) QColor( 160,1600,255 ) 477 // QColor( 0,0,255 ) QColor( 160,1600,255 )
462 mStandardPalette = palette(); 478 mStandardPalette = palette();
463 mStandardPalette.setColor(QColorGroup::Base, mStandardPalette.color( QPalette::Normal, QColorGroup::Background ) ); 479 mStandardPalette.setColor(QColorGroup::Base, mStandardPalette.color( QPalette::Normal, QColorGroup::Background ) );
464 480
465 enableScrollBars( false ); 481 enableScrollBars( false );
466 updateConfig(); 482 updateConfig();
467 //connect( mLabel, SIGNAL( clicked( )), SLOT( newEvent() )); 483 //connect( mLabel, SIGNAL( clicked( )), SLOT( newEvent() ));
468 connect( mLabel, SIGNAL( clicked( )), SLOT( showDay() )); 484 connect( mLabel, SIGNAL( clicked( )), SLOT( showDay() ));
469 connect( this , SIGNAL( doubleClicked( QListBoxItem *) ), 485 connect( this , SIGNAL( doubleClicked( QListBoxItem *) ),
470 SLOT( defaultAction( QListBoxItem * ) ) ); 486 SLOT( defaultAction( QListBoxItem * ) ) );
471 connect( this, SIGNAL( rightButtonPressed( QListBoxItem *, 487 connect( this, SIGNAL( rightButtonPressed( QListBoxItem *,
472 const QPoint &) ), 488 const QPoint &) ),
473 SLOT( contextMenu( QListBoxItem * ) ) ); 489 SLOT( contextMenu( QListBoxItem * ) ) );
474 connect( this, SIGNAL( highlighted( QListBoxItem *) ), 490 connect( this, SIGNAL( highlighted( QListBoxItem *) ),
475 SLOT( selection( QListBoxItem * ) ) ); 491 SLOT( selection( QListBoxItem * ) ) );
476 connect( this, SIGNAL( clicked( QListBoxItem * ) ), 492
477 SLOT( cellClicked( QListBoxItem * ) ) ); 493 /*
478 connect( this, SIGNAL( clicked( QListBoxItem * ) ), 494 connect( this, SIGNAL( clicked( QListBoxItem * ) ),
479 SLOT( selection( QListBoxItem * ) ) ); 495 SLOT( selection( QListBoxItem * ) ) );
496 */
480} 497}
481#ifdef DESKTOP_VERSION 498#ifdef DESKTOP_VERSION
482QToolTipGroup *MonthViewCell::toolTipGroup() 499QToolTipGroup *MonthViewCell::toolTipGroup()
483{ 500{
484 if (!mToolTipGroup) mToolTipGroup = new QToolTipGroup(0); 501 if (!mToolTipGroup) mToolTipGroup = new QToolTipGroup(0);
485 return mToolTipGroup; 502 return mToolTipGroup;
486} 503}
487#endif 504#endif
488 505
489void MonthViewCell::setDate( const QDate &date ) 506void MonthViewCell::setDate( const QDate &date )
490{ 507{
491 // kdDebug() << "MonthViewCell::setDate(): " << date.toString() << endl; 508 // kdDebug() << "MonthViewCell::setDate(): " << date.toString() << endl;
492 mDate = date; 509 mDate = date;
493 510
494 511
495 512
496 //resizeEvent( 0 ); 513 //resizeEvent( 0 );
497} 514}
498 515
499QDate MonthViewCell::date() const 516QDate MonthViewCell::date() const
500{ 517{
501 return mDate; 518 return mDate;
502} 519}
503 520
@@ -968,85 +985,77 @@ void MonthViewCell::resizeEvent ( QResizeEvent * e )
968 mLabel->resize( mLabelBigSize ); 985 mLabel->resize( mLabelBigSize );
969 text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) ); 986 text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) );
970 } else { 987 } else {
971 mLabel->resize( mLabelSize ); 988 mLabel->resize( mLabelSize );
972 text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) ); 989 text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) );
973 } 990 }
974 mLabel->setText( text ); 991 mLabel->setText( text );
975 992
976 int size = height() - mLabel->height() - lineWidth()-1; 993 int size = height() - mLabel->height() - lineWidth()-1;
977 //qDebug("LW %d ", lineWidth()); 994 //qDebug("LW %d ", lineWidth());
978 if ( size > 0 ) 995 if ( size > 0 )
979 verticalScrollBar()->setMaximumHeight( size ); 996 verticalScrollBar()->setMaximumHeight( size );
980 size = width() - mLabel->width() -lineWidth()-1; 997 size = width() - mLabel->width() -lineWidth()-1;
981 if ( size > 0 ) 998 if ( size > 0 )
982 horizontalScrollBar()->setMaximumWidth( size ); 999 horizontalScrollBar()->setMaximumWidth( size );
983 mLabel->move( width()-lineWidth() - mLabel->width(), height()-lineWidth() - mLabel->height() ); 1000 mLabel->move( width()-lineWidth() - mLabel->width(), height()-lineWidth() - mLabel->height() );
984 //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2); 1001 //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2);
985 // mItemList->resize ( width(), height () ); 1002 // mItemList->resize ( width(), height () );
986 if ( e ) 1003 if ( e )
987 KNoScrollListBox::resizeEvent ( e ); 1004 KNoScrollListBox::resizeEvent ( e );
988} 1005}
989 1006
990void MonthViewCell::defaultAction( QListBoxItem *item ) 1007void MonthViewCell::defaultAction( QListBoxItem *item )
991{ 1008{
1009
992 if ( !item ) { 1010 if ( !item ) {
993 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) ); 1011 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) );
994 emit newEventSignal( dt ); 1012 emit newEventSignal( dt );
995 return; 1013 return;
996 } 1014 }
997 1015
998 MonthViewItem *eventItem = static_cast<MonthViewItem *>( item ); 1016 MonthViewItem *eventItem = static_cast<MonthViewItem *>( item );
999 Incidence *incidence = eventItem->incidence(); 1017 Incidence *incidence = eventItem->incidence();
1000 if ( incidence ) mMonthView->defaultAction( incidence ); 1018 if ( incidence ) mMonthView->defaultAction( incidence );
1001} 1019}
1002void MonthViewCell::showDay() 1020void MonthViewCell::showDay()
1003{ 1021{
1004 emit showDaySignal( date() ); 1022 emit showDaySignal( date() );
1005} 1023}
1006void MonthViewCell::newEvent() 1024void MonthViewCell::newEvent()
1007{ 1025{
1008 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) ); 1026 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) );
1009 emit newEventSignal( dt ); 1027 emit newEventSignal( dt );
1010} 1028}
1011void MonthViewCell::cellClicked( QListBoxItem *item ) 1029void MonthViewCell::cellClicked( QListBoxItem *item )
1012{ 1030{
1031 qDebug("CELL ");
1013 if ( item == 0 ) { 1032 if ( item == 0 ) {
1014 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) ); 1033 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) );
1015 emit newEventSignal( dt ); 1034 emit newEventSignal( dt );
1016 return; 1035 return;
1017 } 1036 }
1018 /*
1019 if ( lastClicked )
1020 if ( ! item ) {
1021 if ( lastClicked->listBox() != item->listBox() )
1022 lastClicked->listBox()->clearSelection();
1023 }
1024 */
1025 1037
1026 mMonthView->setSelectedCell( this );
1027 if( KOPrefs::instance()->mEnableMonthScroll || KOPrefs::instance()->mMonthViewWeek ) enableScrollBars( true );
1028 select();
1029} 1038}
1030 1039
1031void MonthViewCell::contextMenu( QListBoxItem *item ) 1040void MonthViewCell::contextMenu( QListBoxItem *item )
1032{ 1041{
1033 if ( !item ) return; 1042 if ( !item ) return;
1034 1043
1035 MonthViewItem *eventItem = static_cast<MonthViewItem *>( item ); 1044 MonthViewItem *eventItem = static_cast<MonthViewItem *>( item );
1036 Incidence *incidence = eventItem->incidence(); 1045 Incidence *incidence = eventItem->incidence();
1037 if ( incidence ) mMonthView->showContextMenu( incidence ); 1046 if ( incidence ) mMonthView->showContextMenu( incidence );
1038} 1047}
1039 1048
1040void MonthViewCell::selection( QListBoxItem *item ) 1049void MonthViewCell::selection( QListBoxItem *item )
1041{ 1050{
1042 if ( !item ) return; 1051 if ( !item ) return;
1043 1052
1044 mMonthView->setSelectedCell( this ); 1053 mMonthView->setSelectedCell( this );
1045} 1054}
1046 1055
1047 1056
1048// ******************************************************************************* 1057// *******************************************************************************
1049// ******************************************************************************* 1058// *******************************************************************************
1050// ******************************************************************************* 1059// *******************************************************************************
1051 1060
1052 1061
@@ -1130,61 +1139,69 @@ KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name)
1130 label->setFlat(true); 1139 label->setFlat(true);
1131 QWhatsThis::add(label,i18n("Click on the week number to\nshow week zoomed")); 1140 QWhatsThis::add(label,i18n("Click on the week number to\nshow week zoomed"));
1132 //label->setFrameStyle(QFrame::Panel|QFrame::Raised); 1141 //label->setFrameStyle(QFrame::Panel|QFrame::Raised);
1133 //label->setLineWidth(1); 1142 //label->setLineWidth(1);
1134 //label->setAlignment(AlignCenter); 1143 //label->setAlignment(AlignCenter);
1135 mWeekLabelsW.insert( i, label ); 1144 mWeekLabelsW.insert( i, label );
1136 } 1145 }
1137 mWeekLabelsW[1]->setText( i18n("W")); 1146 mWeekLabelsW[1]->setText( i18n("W"));
1138 mWeekLabelsW[1]->setFocusPolicy(WheelFocus); 1147 mWeekLabelsW[1]->setFocusPolicy(WheelFocus);
1139 1148
1140 1149
1141 int row, col; 1150 int row, col;
1142 mCells.resize( mNumCells ); 1151 mCells.resize( mNumCells );
1143 for( row = 0; row < mNumWeeks; ++row ) { 1152 for( row = 0; row < mNumWeeks; ++row ) {
1144 for( col = 0; col < mDaysPerWeek; ++col ) { 1153 for( col = 0; col < mDaysPerWeek; ++col ) {
1145 MonthViewCell *cell = new MonthViewCell( this, mMonthView ); 1154 MonthViewCell *cell = new MonthViewCell( this, mMonthView );
1146 mCells.insert( row * mDaysPerWeek + col, cell ); 1155 mCells.insert( row * mDaysPerWeek + col, cell );
1147 1156
1148 connect( cell, SIGNAL( defaultAction( Incidence * ) ), 1157 connect( cell, SIGNAL( defaultAction( Incidence * ) ),
1149 SLOT( defaultAction( Incidence * ) ) ); 1158 SLOT( defaultAction( Incidence * ) ) );
1150 connect( cell, SIGNAL( newEventSignal( QDateTime ) ), 1159 connect( cell, SIGNAL( newEventSignal( QDateTime ) ),
1151 SIGNAL( newEventSignal( QDateTime ) ) ); 1160 SIGNAL( newEventSignal( QDateTime ) ) );
1152 connect( cell, SIGNAL( showDaySignal( QDate ) ), 1161 connect( cell, SIGNAL( showDaySignal( QDate ) ),
1153 SIGNAL( showDaySignal( QDate ) ) ); 1162 SIGNAL( showDaySignal( QDate ) ) );
1163 connect( cell, SIGNAL( nextCell() ),
1164 SLOT( nextCell() ) );
1165 connect( cell, SIGNAL( prevCell() ),
1166 SLOT( prevCell() ) );
1154 } 1167 }
1155 } 1168 }
1156 mCellsW.resize( mDaysPerWeek ); 1169 mCellsW.resize( mDaysPerWeek );
1157 for( col = 0; col < mDaysPerWeek; ++col ) { 1170 for( col = 0; col < mDaysPerWeek; ++col ) {
1158 MonthViewCell *cell = new MonthViewCell( this, mWeekView ); 1171 MonthViewCell *cell = new MonthViewCell( this, mWeekView );
1159 mCellsW.insert( col, cell ); 1172 mCellsW.insert( col, cell );
1160 1173
1161 connect( cell, SIGNAL( defaultAction( Incidence * ) ), 1174 connect( cell, SIGNAL( defaultAction( Incidence * ) ),
1162 SLOT( defaultAction( Incidence * ) ) ); 1175 SLOT( defaultAction( Incidence * ) ) );
1163 connect( cell, SIGNAL( newEventSignal( QDateTime ) ), 1176 connect( cell, SIGNAL( newEventSignal( QDateTime ) ),
1164 SIGNAL( newEventSignal( QDateTime ) ) ); 1177 SIGNAL( newEventSignal( QDateTime ) ) );
1165 connect( cell, SIGNAL( showDaySignal( QDate ) ), 1178 connect( cell, SIGNAL( showDaySignal( QDate ) ),
1166 SIGNAL( showDaySignal( QDate ) ) ); 1179 SIGNAL( showDaySignal( QDate ) ) );
1180 connect( cell, SIGNAL( nextCell() ),
1181 SLOT( nextCell() ) );
1182 connect( cell, SIGNAL( prevCell() ),
1183 SLOT( prevCell() ) );
1167 cell->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont ); 1184 cell->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont );
1168 } 1185 }
1169 1186
1170 //connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), SLOT( switchView() ) ); 1187 //connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), SLOT( switchView() ) );
1171 mContextMenu = eventPopup(); 1188 mContextMenu = eventPopup();
1172 // updateConfig(); //useless here... 1189 // updateConfig(); //useless here...
1173 // ... but we need mWidthLongDayLabel computed 1190 // ... but we need mWidthLongDayLabel computed
1174 QFontMetrics fontmetric(mDayLabels[0]->font()); 1191 QFontMetrics fontmetric(mDayLabels[0]->font());
1175 mWidthLongDayLabel = 0; 1192 mWidthLongDayLabel = 0;
1176 for (int i = 0; i < 7; i++) { 1193 for (int i = 0; i < 7; i++) {
1177 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1)); 1194 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1));
1178 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width; 1195 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width;
1179 } 1196 }
1180 1197
1181 //mWeekLabels[mNumWeeks]->setText( i18n("W")); 1198 //mWeekLabels[mNumWeeks]->setText( i18n("W"));
1182 1199
1183#if 0 1200#if 0
1184 if ( mShowWeekView ) 1201 if ( mShowWeekView )
1185 mWidStack->raiseWidget( mWeekView ); 1202 mWidStack->raiseWidget( mWeekView );
1186 else 1203 else
1187 mWidStack->raiseWidget( mMonthView ); 1204 mWidStack->raiseWidget( mMonthView );
1188#endif 1205#endif
1189 1206
1190 emit incidenceSelected( 0 ); 1207 emit incidenceSelected( 0 );
@@ -1953,24 +1970,33 @@ void KOMonthView::keyPressEvent ( QKeyEvent * e )
1953 1970
1954 } 1971 }
1955 e->accept(); 1972 e->accept();
1956 break; 1973 break;
1957 case Key_Return: 1974 case Key_Return:
1958 case Key_Enter: 1975 case Key_Enter:
1959 { 1976 {
1960 selectInternalWeekNum ( currentWeek() ); 1977 selectInternalWeekNum ( currentWeek() );
1961 } 1978 }
1962 e->accept(); 1979 e->accept();
1963 break; 1980 break;
1964 case Key_D: 1981 case Key_D:
1965 if ( mSelectedCell ) { 1982 if ( mSelectedCell ) {
1966 mSelectedCell->showDay(); 1983 mSelectedCell->showDay();
1967 e->accept(); 1984 e->accept();
1968 } else { 1985 } else {
1969 e->ignore(); 1986 e->ignore();
1970 } 1987 }
1971 break; 1988 break;
1972 default: 1989 default:
1973 e->ignore(); 1990 e->ignore();
1974 break; 1991 break;
1975 } 1992 }
1976} 1993}
1994
1995void KOMonthView::nextCell()
1996{
1997 bool res = focusNextPrevChild ( true );
1998}
1999void KOMonthView::prevCell()
2000{
2001 focusNextPrevChild ( false );
2002}
diff --git a/korganizer/komonthview.h b/korganizer/komonthview.h
index e39eeb0..c6b6b5e 100644
--- a/korganizer/komonthview.h
+++ b/korganizer/komonthview.h
@@ -62,48 +62,50 @@ class KOWeekButton : public QPushButton
62private: 62private:
63 void focusInEvent ( QFocusEvent * ){;} 63 void focusInEvent ( QFocusEvent * ){;}
64 int mNumber; 64 int mNumber;
65 void keyPressEvent ( QKeyEvent * e ) 65 void keyPressEvent ( QKeyEvent * e )
66 { 66 {
67 e->ignore(); 67 e->ignore();
68 } 68 }
69 69
70private slots : 70private slots :
71 void bottonClicked() { if ( mNumber > 0 ) emit selectWeekNum ( mNumber ); } 71 void bottonClicked() { if ( mNumber > 0 ) emit selectWeekNum ( mNumber ); }
72}; 72};
73 73
74class KNoScrollListBox: public QListBox 74class KNoScrollListBox: public QListBox
75{ 75{
76 Q_OBJECT 76 Q_OBJECT
77 public: 77 public:
78 KNoScrollListBox(QWidget *parent=0, const char *name=0); 78 KNoScrollListBox(QWidget *parent=0, const char *name=0);
79 ~KNoScrollListBox(); 79 ~KNoScrollListBox();
80 QString getWhatsThisText(QPoint p) ; 80 QString getWhatsThisText(QPoint p) ;
81 81
82 signals: 82 signals:
83 void shiftDown(); 83 void shiftDown();
84 void shiftUp(); 84 void shiftUp();
85 void rightClick(); 85 void rightClick();
86 void nextCell();
87 void prevCell();
86 88
87 protected slots: 89 protected slots:
88 void oneDown(); 90 void oneDown();
89 void keyPressEvent(QKeyEvent *); 91 void keyPressEvent(QKeyEvent *);
90 void keyReleaseEvent(QKeyEvent *); 92 void keyReleaseEvent(QKeyEvent *);
91 void mousePressEvent(QMouseEvent *); 93 void mousePressEvent(QMouseEvent *);
92 void focusInEvent ( QFocusEvent * ); 94 void focusInEvent ( QFocusEvent * );
93 void focusOutEvent ( QFocusEvent * ); 95 void focusOutEvent ( QFocusEvent * );
94 96
95 private: 97 private:
96 bool resetOnFocusIn; 98 bool resetOnFocusIn;
97 KNOWhatsThis * mWT; 99 KNOWhatsThis * mWT;
98}; 100};
99 101
100 102
101class MonthViewItem: public QListBoxItem 103class MonthViewItem: public QListBoxItem
102{ 104{
103 public: 105 public:
104 MonthViewItem( Incidence *, QDate qd, const QString & title ); 106 MonthViewItem( Incidence *, QDate qd, const QString & title );
105 void recycle( Incidence *incidence, QDate qd, const QString & s); 107 void recycle( Incidence *incidence, QDate qd, const QString & s);
106 void setRecur(bool on) { mRecur = on; } 108 void setRecur(bool on) { mRecur = on; }
107 void setAlarm(bool on) { mAlarm = on; } 109 void setAlarm(bool on) { mAlarm = on; }
108 void setReply(bool on) { mReply = on; } 110 void setReply(bool on) { mReply = on; }
109 void setMoreInfo(bool on) { mInfo = on; } 111 void setMoreInfo(bool on) { mInfo = on; }
@@ -167,49 +169,48 @@ class MonthViewCell : public KNoScrollListBox
167 void insertTodo(Todo *); 169 void insertTodo(Todo *);
168 170
169 void updateConfig( bool bigFont = false ); 171 void updateConfig( bool bigFont = false );
170 172
171 void enableScrollBars( bool ); 173 void enableScrollBars( bool );
172 174
173 Incidence *selectedIncidence(); 175 Incidence *selectedIncidence();
174 QDate selectedIncidenceDate(); 176 QDate selectedIncidenceDate();
175 QPushButton * dateLabel() { return mLabel; } 177 QPushButton * dateLabel() { return mLabel; }
176 178
177 void deselect(); 179 void deselect();
178 void select(); 180 void select();
179#ifdef DESKTOP_VERSION 181#ifdef DESKTOP_VERSION
180 static QToolTipGroup *toolTipGroup(); 182 static QToolTipGroup *toolTipGroup();
181#endif 183#endif
182 signals: 184 signals:
183 void defaultAction( Incidence * ); 185 void defaultAction( Incidence * );
184 void newEventSignal( QDateTime ); 186 void newEventSignal( QDateTime );
185 void showDaySignal( QDate ); 187 void showDaySignal( QDate );
186 188
187 protected: 189 protected:
188 QStringList mToolTip; 190 QStringList mToolTip;
189 void resizeEvent( QResizeEvent * ); 191 void resizeEvent( QResizeEvent * );
190 192
191
192public slots: 193public slots:
193 void showDay(); 194 void showDay();
194 195
195 protected slots: 196 protected slots:
196 void defaultAction( QListBoxItem * ); 197 void defaultAction( QListBoxItem * );
197 void contextMenu( QListBoxItem * ); 198 void contextMenu( QListBoxItem * );
198 void selection( QListBoxItem * ); 199 void selection( QListBoxItem * );
199 void cellClicked( QListBoxItem * ); 200 void cellClicked( QListBoxItem * );
200 void newEvent(); 201 void newEvent();
201 202
202 private: 203 private:
203 int mdayCount; 204 int mdayCount;
204 QPtrList <MonthViewItem> mAvailItemList; 205 QPtrList <MonthViewItem> mAvailItemList;
205 KOMonthView *mMonthView; 206 KOMonthView *mMonthView;
206 int currentPalette; 207 int currentPalette;
207 208
208 QDate mDate; 209 QDate mDate;
209 bool mPrimary; 210 bool mPrimary;
210 bool mHoliday; 211 bool mHoliday;
211 QString mHolidayString; 212 QString mHolidayString;
212 213
213 //QLabel *mLabel; 214 //QLabel *mLabel;
214 QPushButton *mLabel; 215 QPushButton *mLabel;
215 //QListBox *mItemList; 216 //QListBox *mItemList;
@@ -235,48 +236,50 @@ class KOMonthView: public KOEventView
235 KOMonthView(Calendar *cal, QWidget *parent = 0, const char *name = 0 ); 236 KOMonthView(Calendar *cal, QWidget *parent = 0, const char *name = 0 );
236 ~KOMonthView(); 237 ~KOMonthView();
237 238
238 /** Returns maximum number of days supported by the komonthview */ 239 /** Returns maximum number of days supported by the komonthview */
239 virtual int maxDatesHint(); 240 virtual int maxDatesHint();
240 241
241 /** Returns number of currently shown dates. */ 242 /** Returns number of currently shown dates. */
242 virtual int currentDateCount(); 243 virtual int currentDateCount();
243 244
244 /** returns the currently selected events */ 245 /** returns the currently selected events */
245 virtual QPtrList<Incidence> selectedIncidences(); 246 virtual QPtrList<Incidence> selectedIncidences();
246 247
247 /** returns dates of the currently selected events */ 248 /** returns dates of the currently selected events */
248 virtual DateList selectedDates(); 249 virtual DateList selectedDates();
249 250
250 virtual void printPreview(CalPrinter *calPrinter, 251 virtual void printPreview(CalPrinter *calPrinter,
251 const QDate &, const QDate &); 252 const QDate &, const QDate &);
252 bool isMonthView() { return !mShowWeekView; } 253 bool isMonthView() { return !mShowWeekView; }
253 bool isUpdatePossible() { return updatePossible; } 254 bool isUpdatePossible() { return updatePossible; }
254 255
255 MonthViewCell * selectedCell(); 256 MonthViewCell * selectedCell();
256 bool skipResize; 257 bool skipResize;
257 NavigatorBar* navigatorBar() { return mNavigatorBar ;} 258 NavigatorBar* navigatorBar() { return mNavigatorBar ;}
258 public slots: 259 public slots:
260 void nextCell();
261 void prevCell();
259 virtual void updateView(); 262 virtual void updateView();
260 virtual void updateConfig(); 263 virtual void updateConfig();
261 virtual void showDates(const QDate &start, const QDate &end); 264 virtual void showDates(const QDate &start, const QDate &end);
262 virtual void showEvents(QPtrList<Event> eventList); 265 virtual void showEvents(QPtrList<Event> eventList);
263 266
264 void changeEventDisplay(Event *, int); 267 void changeEventDisplay(Event *, int);
265 268
266 void clearSelection(); 269 void clearSelection();
267 270
268 void showContextMenu( Incidence * ); 271 void showContextMenu( Incidence * );
269 272
270 void setSelectedCell( MonthViewCell * ); 273 void setSelectedCell( MonthViewCell * );
271 void switchView(); 274 void switchView();
272 void setKeyBoardFocus(); 275 void setKeyBoardFocus();
273 void setKeyBFocus(); 276 void setKeyBFocus();
274 277
275 protected slots: 278 protected slots:
276 void slotComputeLayout(); 279 void slotComputeLayout();
277 void selectInternalWeekNum ( int ); 280 void selectInternalWeekNum ( int );
278 void processSelectionChange(); 281 void processSelectionChange();
279 signals: 282 signals:
280 void nextMonth(); 283 void nextMonth();
281 void prevMonth(); 284 void prevMonth();
282 void selectWeekNum ( int ); 285 void selectWeekNum ( int );