-rw-r--r-- | kaddressbook/jumpbuttonbar.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/kaddressbook/jumpbuttonbar.cpp b/kaddressbook/jumpbuttonbar.cpp index b12d9e7..e89ec52 100644 --- a/kaddressbook/jumpbuttonbar.cpp +++ b/kaddressbook/jumpbuttonbar.cpp @@ -125,57 +125,58 @@ void JumpButtonBar::recreateButtons() setEnabled( false ); return; } mCharacters.append( "*"); for ( it = ab->begin(); it != ab->end(); ++it ) { if ( !field->value( *it ).isEmpty() ) character = field->value( *it )[ 0 ].lower(); if ( character != "!" ) if ( !character.isEmpty() && !mCharacters.contains( character ) ) mCharacters.append( character ); } if ( mCharacters.count() == 0 ) { setEnabled( false ); return; } int maxRows = mCharacters.count() / 2; // we use 2 columns if ( mCharacters.count() % 2 ) maxRows++; int fixwid = 20; sortListLocaleAware( mCharacters ); bool skip2 = false; int skipcount = 0; int maxHei = 25; - if ( QApplication::desktop()->width() < 480 && mCharacters.count() > 13) { - skipcount = mCharacters.count()-13; - maxHei = (QApplication::desktop()->height()-65)/13; + int roW = 15;//13 is ok + if ( QApplication::desktop()->width() < 480 && mCharacters.count() > roW ) { + skipcount = mCharacters.count()-roW ; + maxHei = (QApplication::desktop()->height()-65)/roW ; } else { fixwid = 30; - if ( mCharacters.count() > 20 ) - skipcount = mCharacters.count()- 20; - maxHei = (QApplication::desktop()->height()-120)/(mCharacters.count()-skipcount); + if ( mCharacters.count() > 16 ) + skipcount = mCharacters.count()- 16; + maxHei = (QApplication::desktop()->height()-120)/(16); } maxRows = 28; bool skipcurrent = false; bool state = isUpdatesEnabled(); setUpdatesEnabled( false ); //qDebug("cc %d ",mCharacters.count() ); JumpButton *button = 0; int row = 0, col = 0; JumpButton* cur = mButtons.first(); for ( uint i = 0; i < mCharacters.count(); ++i ) { if ( skipcount > 0 && skipcurrent ) { --skipcount; if ( button ) { button->setCharacter( button->character() + mCharacters[ i ]); } } else { if ( cur ) { button = cur ; cur = mButtons.next(); button->setCharacter(mCharacters[ i ]); } else { button = new JumpButton( mCharacters[ i ].upper(), this, mCharacters[ i ] ); button->setFixedWidth( fixwid ); |