author | zautrix <zautrix> | 2005-04-05 19:42:46 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-04-05 19:42:46 (UTC) |
commit | 6add774cf9841377f32613c7aa23161a823aa1da (patch) (unidiff) | |
tree | 43631d25bdfff4eb9d9934bc604609c38717b000 /korganizer/komonthview.cpp | |
parent | 8734ae4789ed411cb546edd304816a77c431a2bf (diff) | |
download | kdepimpi-6add774cf9841377f32613c7aa23161a823aa1da.zip kdepimpi-6add774cf9841377f32613c7aa23161a823aa1da.tar.gz kdepimpi-6add774cf9841377f32613c7aa23161a823aa1da.tar.bz2 |
fix
-rw-r--r-- | korganizer/komonthview.cpp | 146 |
1 files changed, 86 insertions, 60 deletions
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp index e66ddce..4dfb9df 100644 --- a/korganizer/komonthview.cpp +++ b/korganizer/komonthview.cpp | |||
@@ -96,34 +96,38 @@ KNoScrollListBox::~KNoScrollListBox() | |||
96 | void KNoScrollListBox::focusInEvent ( QFocusEvent * e ) | 96 | void 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 | resetOnFocusIn = true; | 104 | setSelected ( ci, true ); |
105 | 105 | emit highlighted( item ( ci ) ); | |
106 | if ( KOPrefs::instance()->mEnableMonthScroll || KOPrefs::instance()->mMonthViewWeek ) { | 106 | |
107 | QListBoxItem *fi = firstItem (); | 107 | resetOnFocusIn = true; |
108 | if (fi ) { | 108 | |
109 | int ihei = fi->height( this ); | 109 | if ( KOPrefs::instance()->mEnableMonthScroll || KOPrefs::instance()->mMonthViewWeek ) { |
110 | int hei = numRows () * ihei; | 110 | QListBoxItem *fi = firstItem (); |
111 | if ( hei < height() - horizontalScrollBar()->height () ) { | 111 | if (fi ) { |
112 | setVScrollBarMode(QScrollView::AlwaysOff); | 112 | int ihei = fi->height( this ); |
113 | } | 113 | int hei = numRows () * ihei; |
114 | else | 114 | if ( hei < height() - horizontalScrollBar()->height () ) { |
115 | setVScrollBarMode(QScrollView::AlwaysOff); | ||
116 | } | ||
117 | else | ||
118 | setVScrollBarMode(QScrollView::Auto); | ||
119 | if ( ihei *3 > height() ) { | ||
120 | setHScrollBarMode(QScrollView::AlwaysOff); | ||
121 | } | ||
122 | else { | ||
123 | setHScrollBarMode(QScrollView::Auto); | ||
124 | } | ||
125 | } else { | ||
115 | setVScrollBarMode(QScrollView::Auto); | 126 | setVScrollBarMode(QScrollView::Auto); |
116 | if ( ihei *3 > height() ) { | ||
117 | setHScrollBarMode(QScrollView::AlwaysOff); | ||
118 | } | ||
119 | else { | ||
120 | setHScrollBarMode(QScrollView::Auto); | 127 | setHScrollBarMode(QScrollView::Auto); |
121 | } | 128 | } |
122 | } else { | 129 | } |
123 | setVScrollBarMode(QScrollView::Auto); | 130 | } |
124 | setHScrollBarMode(QScrollView::Auto); | ||
125 | } | ||
126 | } | ||
127 | } | 131 | } |
128 | void KNoScrollListBox::focusOutEvent ( QFocusEvent * e ) | 132 | void KNoScrollListBox::focusOutEvent ( QFocusEvent * e ) |
129 | { | 133 | { |
@@ -172,13 +176,17 @@ void KNoScrollListBox::keyPressEvent(QKeyEvent *e) | |||
172 | e->ignore(); | 176 | e->ignore(); |
173 | break; | 177 | break; |
174 | } | 178 | } |
175 | if ( count() ) { | 179 | if ( count() ) { |
176 | setCurrentItem((currentItem()+count()-1)%count()); | 180 | if ( currentItem() == 0 ) { |
177 | if(!itemVisible(currentItem())) { | 181 | emit prevCell(); |
178 | if((unsigned int) currentItem() == (count()-1)) { | 182 | } else { |
179 | setTopItem(currentItem()-numItemsVisible()+1); | 183 | setCurrentItem((currentItem()+count()-1)%count()); |
180 | } else { | 184 | if(!itemVisible(currentItem())) { |
181 | setTopItem(topItem()-1); | 185 | if((unsigned int) currentItem() == (count()-1)) { |
186 | setTopItem(currentItem()-numItemsVisible()+1); | ||
187 | } else { | ||
188 | setTopItem(topItem()-1); | ||
189 | } | ||
182 | } | 190 | } |
183 | } | 191 | } |
184 | } | 192 | } |
@@ -188,13 +196,17 @@ void KNoScrollListBox::keyPressEvent(QKeyEvent *e) | |||
188 | e->ignore(); | 196 | e->ignore(); |
189 | break; | 197 | break; |
190 | } | 198 | } |
191 | if ( count () ) { | 199 | if ( count () ) { |
192 | setCurrentItem((currentItem()+1)%count()); | 200 | if ( currentItem()+1 == count () ) { |
193 | if(!itemVisible(currentItem())) { | 201 | emit nextCell(); |
194 | if(currentItem() == 0) { | 202 | } else { |
195 | setTopItem(0); | 203 | setCurrentItem((currentItem()+1)%count()); |
196 | } else { | 204 | if(!itemVisible(currentItem())) { |
197 | setTopItem(topItem()+1); | 205 | if(currentItem() == 0) { |
206 | setTopItem(0); | ||
207 | } else { | ||
208 | setTopItem(topItem()+1); | ||
209 | } | ||
198 | } | 210 | } |
199 | } | 211 | } |
200 | } | 212 | } |
@@ -225,14 +237,18 @@ void KNoScrollListBox::keyPressEvent(QKeyEvent *e) | |||
225 | 237 | ||
226 | void KNoScrollListBox::oneDown() | 238 | void KNoScrollListBox::oneDown() |
227 | { | 239 | { |
228 | if ( count () ) { | 240 | if ( count () ) { |
229 | resetOnFocusIn = false; | 241 | if ( currentItem()+1 == count () ) { |
230 | setCurrentItem((currentItem()+1)%count()); | 242 | emit nextCell(); |
231 | if(!itemVisible(currentItem())) { | 243 | } else { |
232 | if(currentItem() == 0) { | 244 | resetOnFocusIn = false; |
233 | setTopItem(0); | 245 | setCurrentItem((currentItem()+1)%count()); |
234 | } else { | 246 | if(!itemVisible(currentItem())) { |
235 | setTopItem(topItem()+1); | 247 | if(currentItem() == 0) { |
248 | setTopItem(0); | ||
249 | } else { | ||
250 | setTopItem(topItem()+1); | ||
251 | } | ||
236 | } | 252 | } |
237 | } | 253 | } |
238 | } | 254 | } |
@@ -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 |
482 | QToolTipGroup *MonthViewCell::toolTipGroup() | 499 | QToolTipGroup *MonthViewCell::toolTipGroup() |
@@ -989,6 +1006,7 @@ void MonthViewCell::resizeEvent ( QResizeEvent * e ) | |||
989 | 1006 | ||
990 | void MonthViewCell::defaultAction( QListBoxItem *item ) | 1007 | void 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 | } |
1011 | void MonthViewCell::cellClicked( QListBoxItem *item ) | 1029 | void 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 | /* | 1037 | |
1019 | if ( lastClicked ) | ||
1020 | if ( ! item ) { | ||
1021 | if ( lastClicked->listBox() != item->listBox() ) | ||
1022 | lastClicked->listBox()->clearSelection(); | ||
1023 | } | ||
1024 | */ | ||
1025 | |||
1026 | mMonthView->setSelectedCell( this ); | ||
1027 | if( KOPrefs::instance()->mEnableMonthScroll || KOPrefs::instance()->mMonthViewWeek ) enableScrollBars( true ); | ||
1028 | select(); | ||
1029 | } | 1038 | } |
1030 | 1039 | ||
1031 | void MonthViewCell::contextMenu( QListBoxItem *item ) | 1040 | void 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 | |||
1995 | void KOMonthView::nextCell() | ||
1996 | { | ||
1997 | bool res = focusNextPrevChild ( true ); | ||
1998 | } | ||
1999 | void KOMonthView::prevCell() | ||
2000 | { | ||
2001 | focusNextPrevChild ( false ); | ||
2002 | } | ||