Diffstat (limited to 'core/pim/addressbook/ablabel.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | core/pim/addressbook/ablabel.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/core/pim/addressbook/ablabel.cpp b/core/pim/addressbook/ablabel.cpp index 80b57ae..6d8de91 100644 --- a/core/pim/addressbook/ablabel.cpp +++ b/core/pim/addressbook/ablabel.cpp @@ -87,12 +87,13 @@ void AbLabel::sync() QString text = (*m_itCurContact).toRichText(); setText( text ); } void AbLabel::keyPressEvent( QKeyEvent *e ) { + // Commonly handled keys if ( !m_empty ){ switch( e->key() ) { case Qt::Key_Left: qWarning( "Left.."); case Qt::Key_Right: @@ -100,26 +101,39 @@ void AbLabel::keyPressEvent( QKeyEvent *e ) case Qt::Key_F33: qWarning( "OK.."); emit signalOkPressed(); break; case Qt::Key_Up: qWarning( "UP.."); + if ( ( visibleHeight() < contentsHeight() ) && + ( verticalScrollBar()->value() > verticalScrollBar()->minValue() ) ) + scrollBy( 0, -(visibleHeight()-20) ); + else { --m_itCurContact; if ( *m_itCurContact != OContact() ) sync(); else m_itCurContact = m_viewList.end(); + } break; case Qt::Key_Down: qWarning( "DOWN.."); +// qWarning( "visible: %d, content: %d",visibleHeight(),contentsHeight()); +// qWarning( "value: %d; barMaxValue: %d", verticalScrollBar()->value() +// , verticalScrollBar()->maxValue() ); + if ( ( visibleHeight() < contentsHeight() ) && + ( verticalScrollBar()->value() < verticalScrollBar()->maxValue() ) ) + scrollBy( 0, visibleHeight()-20 ); + else { ++m_itCurContact; if ( *m_itCurContact != OContact() ) sync(); else m_itCurContact = m_viewList.begin(); + } break; case Qt::Key_Return: // fall through case Qt::Key_Space: // fall through case Qt::Key_Enter: // we want to switch back emit signalOkPressed(); break; |