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
@@ -96,11 +96,14 @@ KNoScrollListBox::~KNoScrollListBox()
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 ) {
@@ -125,6 +128,7 @@ void KNoScrollListBox::focusInEvent ( QFocusEvent * e )
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 ();
@@ -173,6 +177,9 @@ void KNoScrollListBox::keyPressEvent(QKeyEvent *e)
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)) {
@@ -182,6 +189,7 @@ void KNoScrollListBox::keyPressEvent(QKeyEvent *e)
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) {
@@ -189,6 +197,9 @@ void KNoScrollListBox::keyPressEvent(QKeyEvent *e)
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) {
@@ -198,6 +209,7 @@ void KNoScrollListBox::keyPressEvent(QKeyEvent *e)
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() ) );
@@ -226,6 +238,9 @@ void KNoScrollListBox::keyPressEvent(QKeyEvent *e)
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())) {
@@ -237,6 +252,7 @@ void KNoScrollListBox::oneDown()
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()) {
@@ -473,10 +489,11 @@ MonthViewCell::MonthViewCell( KOMonthView *parent,QWidget* par )
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()
@@ -989,6 +1006,7 @@ void MonthViewCell::resizeEvent ( QResizeEvent * e )
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 );
@@ -1010,22 +1028,13 @@ void MonthViewCell::newEvent()
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 )
@@ -1151,6 +1160,10 @@ KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name)
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 );
@@ -1164,6 +1177,10 @@ KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name)
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
@@ -1974,3 +1991,12 @@ void KOMonthView::keyPressEvent ( QKeyEvent * e )
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
@@ -83,6 +83,8 @@ class KNoScrollListBox: public QListBox
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();
@@ -188,7 +190,6 @@ class MonthViewCell : public KNoScrollListBox
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
@@ -256,6 +257,8 @@ class KOMonthView: public KOEventView
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);