summaryrefslogtreecommitdiffabout
path: root/kaddressbook
authorzautrix <zautrix>2005-01-19 14:35:53 (UTC)
committer zautrix <zautrix>2005-01-19 14:35:53 (UTC)
commita9f8ad6916ea1a849a43fe49c4085f6c44b5c47b (patch) (side-by-side diff)
treea649fbc1c07e2c199833da1a23cf326d68406d4b /kaddressbook
parent0d878a0144644499ead17b2532cc94abb545bcdb (diff)
downloadkdepimpi-a9f8ad6916ea1a849a43fe49c4085f6c44b5c47b.zip
kdepimpi-a9f8ad6916ea1a849a43fe49c4085f6c44b5c47b.tar.gz
kdepimpi-a9f8ad6916ea1a849a43fe49c4085f6c44b5c47b.tar.bz2
dislog size fixes
Diffstat (limited to 'kaddressbook') (more/less context) (show whitespace changes)
-rw-r--r--kaddressbook/jumpbuttonbar.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/kaddressbook/jumpbuttonbar.cpp b/kaddressbook/jumpbuttonbar.cpp
index ee5b44e..184d516 100644
--- a/kaddressbook/jumpbuttonbar.cpp
+++ b/kaddressbook/jumpbuttonbar.cpp
@@ -64,128 +64,129 @@ void JumpButton::setCharacter( const QString &character )
}
QString JumpButton::character() const
{
return mCharacter;
}
JumpButtonBar::JumpButtonBar( KABCore *core, QWidget *parent, const char *name )
: QWidget( parent, name ), mCore( core )
{
if ( QApplication::desktop()->width() < 480 )
mButtonLayout = new QGridLayout( this, 2, 14 );
else
mButtonLayout = new QGridLayout( this, 1, 28 );
mButtonLayout->setAlignment( Qt::AlignTop );
recreateButtons();
}
JumpButtonBar::~JumpButtonBar()
{
}
QSizePolicy JumpButtonBar::sizePolicy() const
{
#ifndef KAB_EMBEDDED
return QSizePolicy( QSizePolicy::Maximum, QSizePolicy::Minimum,
QSizePolicy::Vertically );
#else //KAB_EMBEDDED
return QSizePolicy( QSizePolicy::Maximum, QSizePolicy::Minimum);
#endif //KAB_EMBEDDED
}
void JumpButtonBar::letterClicked()
{
JumpButton *button = (JumpButton*)sender();
QString character = button->character();
if ( !character.isNull() )
emit jumpToLetter( character );
}
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;
}
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;
}
else {
fixwid = 30;
if ( mCharacters.count() > 20 )
skipcount = mCharacters.count()- 20;
maxHei = (QApplication::desktop()->height()-120)/(mCharacters.count()-skipcount);
}
maxRows = 28;
bool skipcurrent = false;
bool state = isUpdatesEnabled();
setUpdatesEnabled( false );
//qDebug("cc %d ",mCharacters.count() );
JumpButton *button;
int row = 0, col = 0;
JumpButton* cur = mButtons.first();
for ( uint i = 0; i < mCharacters.count(); ++i ) {
if ( skipcount > 0 && skipcurrent ) {
--skipcount;
} 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 );
mButtons.append( button );
connect( button, SIGNAL( clicked() ), this, SLOT( letterClicked() ) );
mButtonLayout->addWidget( button, row, col );
}
button->setMaximumHeight( maxHei );
button->show();
if ( col == maxRows ) {
row = 0;
col++;
} else
row++;
}
skipcurrent = !skipcurrent;
}
while ( cur ) {
cur->hide();