summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (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()
125 setEnabled( false ); 125 setEnabled( false );
126 return; 126 return;
127 } 127 }
128 mCharacters.append( "*"); 128 mCharacters.append( "*");
129 for ( it = ab->begin(); it != ab->end(); ++it ) { 129 for ( it = ab->begin(); it != ab->end(); ++it ) {
130 if ( !field->value( *it ).isEmpty() ) 130 if ( !field->value( *it ).isEmpty() )
131 character = field->value( *it )[ 0 ].lower(); 131 character = field->value( *it )[ 0 ].lower();
132 if ( character != "!" ) 132 if ( character != "!" )
133 if ( !character.isEmpty() && !mCharacters.contains( character ) ) 133 if ( !character.isEmpty() && !mCharacters.contains( character ) )
134 mCharacters.append( character ); 134 mCharacters.append( character );
135 } 135 }
136 if ( mCharacters.count() == 0 ) { 136 if ( mCharacters.count() == 0 ) {
137 setEnabled( false ); 137 setEnabled( false );
138 return; 138 return;
139 } 139 }
140 140
141 int maxRows = mCharacters.count() / 2; // we use 2 columns 141 int maxRows = mCharacters.count() / 2; // we use 2 columns
142 if ( mCharacters.count() % 2 ) 142 if ( mCharacters.count() % 2 )
143 maxRows++; 143 maxRows++;
144 int fixwid = 20; 144 int fixwid = 20;
145 sortListLocaleAware( mCharacters ); 145 sortListLocaleAware( mCharacters );
146 bool skip2 = false; 146 bool skip2 = false;
147 int skipcount = 0; 147 int skipcount = 0;
148 int maxHei = 25; 148 int maxHei = 25;
149 if ( QApplication::desktop()->width() < 480 && mCharacters.count() > 13) { 149 int roW = 15;//13 is ok
150 skipcount = mCharacters.count()-13; 150 if ( QApplication::desktop()->width() < 480 && mCharacters.count() > roW ) {
151 maxHei = (QApplication::desktop()->height()-65)/13; 151 skipcount = mCharacters.count()-roW ;
152 maxHei = (QApplication::desktop()->height()-65)/roW ;
152 } 153 }
153 else { 154 else {
154 fixwid = 30; 155 fixwid = 30;
155 if ( mCharacters.count() > 20 ) 156 if ( mCharacters.count() > 16 )
156 skipcount = mCharacters.count()- 20; 157 skipcount = mCharacters.count()- 16;
157 maxHei = (QApplication::desktop()->height()-120)/(mCharacters.count()-skipcount); 158 maxHei = (QApplication::desktop()->height()-120)/(16);
158 159
159 } 160 }
160 maxRows = 28; 161 maxRows = 28;
161 bool skipcurrent = false; 162 bool skipcurrent = false;
162 bool state = isUpdatesEnabled(); 163 bool state = isUpdatesEnabled();
163 setUpdatesEnabled( false ); 164 setUpdatesEnabled( false );
164 //qDebug("cc %d ",mCharacters.count() ); 165 //qDebug("cc %d ",mCharacters.count() );
165 JumpButton *button = 0; 166 JumpButton *button = 0;
166 int row = 0, col = 0; 167 int row = 0, col = 0;
167 JumpButton* cur = mButtons.first(); 168 JumpButton* cur = mButtons.first();
168 for ( uint i = 0; i < mCharacters.count(); ++i ) { 169 for ( uint i = 0; i < mCharacters.count(); ++i ) {
169 if ( skipcount > 0 && skipcurrent ) { 170 if ( skipcount > 0 && skipcurrent ) {
170 --skipcount; 171 --skipcount;
171 if ( button ) { 172 if ( button ) {
172 button->setCharacter( button->character() + mCharacters[ i ]); 173 button->setCharacter( button->character() + mCharacters[ i ]);
173 } 174 }
174 } else { 175 } else {
175 if ( cur ) { 176 if ( cur ) {
176 button = cur ; 177 button = cur ;
177 cur = mButtons.next(); 178 cur = mButtons.next();
178 button->setCharacter(mCharacters[ i ]); 179 button->setCharacter(mCharacters[ i ]);
179 } else { 180 } else {
180 button = new JumpButton( mCharacters[ i ].upper(), this, mCharacters[ i ] ); 181 button = new JumpButton( mCharacters[ i ].upper(), this, mCharacters[ i ] );
181 button->setFixedWidth( fixwid ); 182 button->setFixedWidth( fixwid );