-rw-r--r-- | korganizer/komonthview.cpp | 55 | ||||
-rw-r--r-- | korganizer/komonthview.h | 8 | ||||
-rw-r--r-- | korganizer/koviewmanager.cpp | 2 |
3 files changed, 48 insertions, 17 deletions
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp index 940d288..ca35a86 100644 --- a/korganizer/komonthview.cpp +++ b/korganizer/komonthview.cpp @@ -100,9 +100,9 @@ QString KNoScrollListBox::getWhatsThisText(QPoint p) KOPrefs::instance()->mWTshowChanged); } void KNoScrollListBox::keyPressEvent(QKeyEvent *e) { - + //qDebug("KNoScrollListBox::keyPressEvent "); switch(e->key()) { case Key_Right: if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) { @@ -153,8 +153,19 @@ void KNoScrollListBox::keyPressEvent(QKeyEvent *e) break; case Key_I: QTimer::singleShot( 11, this, SLOT ( oneDown() ) ); e->ignore(); + break; + case Key_Return: + case Key_Enter: + { + if ( currentItem() >= 0 ) { + emit doubleClicked( item( currentItem() ) ); + e->accept(); + } else { + e->ignore(); + } + } break; case Key_Shift: emit shiftDown(); break; @@ -312,10 +323,10 @@ void MonthViewItem::paint(QPainter *p) x += half+half + 4; } else { int val = td->percentComplete()/20; - p->fillRect ( x+1, y-1, val ,size+2,Qt::black ); - p->drawRect ( x, y-1,7,size+2); + p->fillRect ( x+1, y-2, val ,size+4,Qt::black ); + p->drawRect ( x, y-2,7,size+4); x += size + 3; } } QFontMetrics fm = p->fontMetrics(); @@ -1051,8 +1062,9 @@ KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name) //label->setAlignment(AlignCenter); mWeekLabels.insert( i, label ); } mWeekLabels[mNumWeeks]->setText( i18n("W")); + mWeekLabels[0]->setFocusPolicy(WheelFocus); QWhatsThis::add(mWeekLabels[mNumWeeks],i18n("Click on this to\nselect week number")); for( i = 0; i < 1+1; i++ ) { KOWeekButton *label = new KOWeekButton( mWeekView ); @@ -1066,8 +1078,9 @@ KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name) //label->setAlignment(AlignCenter); mWeekLabelsW.insert( i, label ); } mWeekLabelsW[1]->setText( i18n("W")); + mWeekLabelsW[0]->setFocusPolicy(WheelFocus); int row, col; mCells.resize( mNumCells ); @@ -1465,11 +1478,9 @@ void KOMonthView::updateView() //qApp->processEvents(); for( i = 0; i < timeSpan+1; ++i ) { (*cells)[i]->repaintfinishUpdateCell(); } - (*cells)[0]->setFocus(); - - + setKeyBFocus(); #else // old code //qDebug("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ "); int i; @@ -1485,8 +1496,28 @@ void KOMonthView::updateView() //qDebug("update time %d ", ti.elapsed()); } +void KOMonthView::setKeyBoardFocus() +{ + bool shootAgain = false; + if ( mShowWeekView ) { + shootAgain = !mWeekLabelsW[0]->hasFocus(); + mWeekLabelsW[0]->setFocus(); + } + else { + shootAgain = !mWeekLabels[0]->hasFocus(); + mWeekLabels[0]->setFocus(); + } + if ( shootAgain ) { + QTimer::singleShot( 0, this, SLOT ( setKeyBFocus() ) ); + } +} +void KOMonthView::setKeyBFocus() +{ + //qDebug("KOMonthView::setKeyBFocus() "); + QTimer::singleShot( 0, this, SLOT ( setKeyBoardFocus() ) ); +} void KOMonthView::resizeEvent(QResizeEvent * e) { //qDebug("KOMonthView::resizeEvent %d %d -- %d %d ", e->size().width(), e->size().height(), e->oldSize().width(), e->oldSize().height()); if ( isVisible() ) { @@ -1500,14 +1531,10 @@ void KOMonthView::slotComputeLayout() { mComputeLayoutTimer->stop(); //qDebug("KOMonthView::Post - resizeEvent %d %d ", width(), height() ); computeLayout(); - clPending = true; - if ( mShowWeekView ) - mCellsW[0]->setFocus(); - else - mCells[0]->setFocus(); - + clPending = true; + setKeyBFocus(); } void KOMonthView::computeLayoutWeek() { static int lastWid = 0; @@ -1816,26 +1843,22 @@ void KOMonthView::keyPressEvent ( QKeyEvent * e ) switch(e->key()) { case Key_Up: { if ( mShowWeekView ) { - mCellsW[0]->setFocus(); emit selectWeekNum ( currentWeek() - 1 ); } else { - mCells[0]->setFocus(); emit prevMonth(); } } e->accept(); break; case Key_Down: { if ( mShowWeekView ) { - mCellsW[0]->setFocus(); emit selectWeekNum ( currentWeek() +1); } else { - mCells[0]->setFocus(); emit nextMonth(); } } diff --git a/korganizer/komonthview.h b/korganizer/komonthview.h index 9e724c7..c1ca3d4 100644 --- a/korganizer/komonthview.h +++ b/korganizer/komonthview.h @@ -60,8 +60,13 @@ class KOWeekButton : public QPushButton signals: void selectWeekNum ( int ); private: int mNumber; + void keyPressEvent ( QKeyEvent * e ) + { + e->ignore(); + } + private slots : void bottonClicked() { if ( mNumber > 0 ) emit selectWeekNum ( mNumber ); } }; @@ -162,9 +167,8 @@ class MonthViewCell : public KNoScrollListBox QPushButton * dateLabel() { return mLabel; } void deselect(); void select(); - #ifdef DESKTOP_VERSION static QToolTipGroup *toolTipGroup(); #endif signals: @@ -256,8 +260,10 @@ class KOMonthView: public KOEventView void showContextMenu( Incidence * ); void setSelectedCell( MonthViewCell * ); void switchView(); + void setKeyBoardFocus(); + void setKeyBFocus(); protected slots: void slotComputeLayout(); void selectInternalWeekNum ( int ); diff --git a/korganizer/koviewmanager.cpp b/korganizer/koviewmanager.cpp index 53cd011..548ffd3 100644 --- a/korganizer/koviewmanager.cpp +++ b/korganizer/koviewmanager.cpp @@ -646,8 +646,9 @@ void KOViewManager::showMonthViewWeek() full = true; } mMainView->dateNavigator()->selectWeek(); showView(mMonthView, full ); + mMonthView->setKeyBFocus(); } void KOViewManager::showMonth( const QDate & date ) { @@ -675,8 +676,9 @@ void KOViewManager::showMonthView() } mMainView->dateNavigator()->selectMonth(); showView(mMonthView, full ); + mMonthView->setKeyBFocus(); } void KOViewManager::showTodoView() |