summaryrefslogtreecommitdiffabout
path: root/kaddressbook
Side-by-side diff
Diffstat (limited to 'kaddressbook') (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/jumpbuttonbar.cpp13
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 );