From 0e1275a67cae2435c0ac8cee2252f91737c2e10a Mon Sep 17 00:00:00 2001 From: eilers Date: Mon, 24 Mar 2003 07:44:33 +0000 Subject: DetailView: If card is too big to show, use page up/down instead of next/previous contact if cursor up/down is used .. --- (limited to 'core/pim/addressbook/ablabel.cpp') 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 @@ -90,6 +90,7 @@ void AbLabel::sync() void AbLabel::keyPressEvent( QKeyEvent *e ) { + // Commonly handled keys if ( !m_empty ){ switch( e->key() ) { @@ -103,20 +104,33 @@ void AbLabel::keyPressEvent( QKeyEvent *e ) break; case Qt::Key_Up: qWarning( "UP.."); - --m_itCurContact; - if ( *m_itCurContact != OContact() ) - sync(); - else - m_itCurContact = m_viewList.end(); + 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.."); - ++m_itCurContact; - if ( *m_itCurContact != OContact() ) - sync(); - else - m_itCurContact = m_viewList.begin(); +// 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 -- cgit v0.9.0.2