summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--kaddressbook/jumpbuttonbar.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/kaddressbook/jumpbuttonbar.cpp b/kaddressbook/jumpbuttonbar.cpp
index 7524fb7..aebf8a6 100644
--- a/kaddressbook/jumpbuttonbar.cpp
+++ b/kaddressbook/jumpbuttonbar.cpp
@@ -100,68 +100,69 @@ void JumpButtonBar::letterClicked()
JumpButton *button = (JumpButton*)sender();
QString character = button->character();
if ( character.length() == 2 )
character = character.left(1) +"-"+character.right(1);
if ( !character.isNull() )
emit jumpToLetter( character );
//qDebug("emit *%s* ",character.latin1());
}
void JumpButtonBar::recreateButtons()
{
// the easiest way to remove all buttons ;)
//mButtons.setAutoDelete( true );
//mButtons.clear();
//mButtons.setAutoDelete( false );
mCharacters.clear();
QString character;
KABC::AddressBook *ab = mCore->addressBook();
KABC::AddressBook::Iterator it;
KABC::Field *field = mCore->currentSearchField();
if ( field ) {
setEnabled( true );
} else {
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 ) )
+ if ( character != "!" ) {
+ if ( !character.isEmpty() && !mCharacters.contains( character ) && character.at( 0 ).isLetter ())
mCharacters.append( character );
}
+ }
if ( mCharacters.count() == 0 ) {
setEnabled( false );
return;
}
int maxRows = mCharacters.count() / 2; // we use 2 columns
if ( mCharacters.count() % 2 )
maxRows++;
sortListLocaleAware( mCharacters );
bool skip2 = false;
int skipcount = 0;
int maxHei = 0;
#ifdef DESKTOP_VERSION
int maxChar = 16;
int heightDiff = 200;
int fixwid = 36;
#else
//default for 240x320 diaplay:
int maxChar = 16;
int heightDiff = 64;
int fixwid = 20;
if ( QApplication::desktop()->height() == 480 ) {
maxChar = 16;
heightDiff = 135;
fixwid = 34;
} else if ( QApplication::desktop()->height() >= 640 ) {
maxChar = 20;
heightDiff = 135;
fixwid = 34;
}
#endif