summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/jumpbuttonbar.cpp47
-rw-r--r--kaddressbook/kabcore.cpp6
2 files changed, 36 insertions, 17 deletions
diff --git a/kaddressbook/jumpbuttonbar.cpp b/kaddressbook/jumpbuttonbar.cpp
index e89ec52..32922a6 100644
--- a/kaddressbook/jumpbuttonbar.cpp
+++ b/kaddressbook/jumpbuttonbar.cpp
@@ -52,51 +52,51 @@ class JumpButton : public QPushButton
JumpButton::JumpButton( const QString &text, QWidget *parent,
const QString &character )
: QPushButton( text, parent )
{
mCharacter = character;
}
void JumpButton::setCharacter( const QString &character )
{
mCharacter = character;
setText(mCharacter.upper() );
}
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 );
+ mButtonLayout = new QGridLayout( this, 1, 18 );
else
- mButtonLayout = new QGridLayout( this, 1, 28 );
+ mButtonLayout = new QGridLayout( this, 1, 20 );
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.length() == 2 )
@@ -120,92 +120,107 @@ void JumpButtonBar::recreateButtons()
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 ) )
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;
- 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() > 16 )
- skipcount = mCharacters.count()- 16;
- maxHei = (QApplication::desktop()->height()-120)/(16);
+ int maxHei = 0;
+#ifdef DESKTOP_VERSION
+ int maxChar = 26;
+ int heightDiff = 200;
+ int fixwid = 0;
+#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
+
+ if ( mCharacters.count() > maxChar )
+ skipcount = mCharacters.count()- maxChar;
+ maxHei = (QApplication::desktop()->height()-heightDiff)/(maxChar);
+
+
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 );
+ if ( fixwid )
+ button->setFixedWidth( fixwid );
mButtons.append( button );
connect( button, SIGNAL( clicked() ), this, SLOT( letterClicked() ) );
mButtonLayout->addWidget( button, row, col );
}
- button->setMaximumHeight( maxHei );
+ if ( maxHei )
+ button->setMaximumHeight( maxHei );
button->show();
if ( col == maxRows ) {
row = 0;
col++;
} else
row++;
}
if ( i > 0 )
skipcurrent = !skipcurrent;
}
while ( cur ) {
cur->hide();
cur = mButtons.next();
}
mButtonLayout->activate();
setUpdatesEnabled( state );
update();
}
void JumpButtonBar::sortListLocaleAware( QStringList &list )
{
QStringList::Iterator beginIt = list.begin();
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index 0def16e..5987e99 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -1,43 +1,43 @@
/*
This file is part of KAddressbook.
Copyright (c) 2003 Tobias Koenig <tokoe@kde.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- As a special exception, permission is given to link this program
+ Async a special exception, permission is given to link this program
with any edition of Qt, and distribute the resulting executable,
without including the source code for Qt in the source distribution.
*/
/*s
Enhanced Version of the file for platform independent KDE tools.
Copyright (c) 2004 Ulf Schenk
$Id$
*/
#include "kabcore.h"
#include <stdaddressbook.h>
#include <klocale.h>
#include <kfiledialog.h>
#include <qtimer.h>
#include <qlabel.h>
#include <qregexp.h>
#include <qlineedit.h>
#include <qcheckbox.h>
#include <qpushbutton.h>
#include <qprogressbar.h>
#include <libkdepim/phoneaccess.h>
@@ -2093,49 +2093,53 @@ void KABCore::initActions()
//US we need this function, to plug all actions into the correct menues.
// KDE uses a XML format to plug the actions, but we work her without this overhead.
void KABCore::addActionsManually()
{
//US qDebug("KABCore::initActions(): mIsPart %i", mIsPart);
#ifdef KAB_EMBEDDED
QPopupMenu *fileMenu = new QPopupMenu( this );
QPopupMenu *editMenu = new QPopupMenu( this );
QPopupMenu *helpMenu = new QPopupMenu( this );
KToolBar* tb = mMainWindow->toolBar();
#ifndef DESKTOP_VERSION
if ( KABPrefs::instance()->mFullMenuBarVisible ) {
#endif
QMenuBar* mb = mMainWindow->menuBar();
//US setup menubar.
//Disable the following block if you do not want to have a menubar.
mb->insertItem( i18n("&File"), fileMenu );
mb->insertItem( i18n("&Edit"), editMenu );
mb->insertItem( i18n("&View"), viewMenu );
mb->insertItem( i18n("&Settings"), settingsMenu );
+#ifdef DESKTOP_VERSION
mb->insertItem( i18n("Synchronize"), syncMenu );
+#else
+ mb->insertItem( i18n("Sync"), syncMenu );
+#endif
//mb->insertItem( i18n("&Change"), changeMenu );
mb->insertItem( i18n("&Help"), helpMenu );
mIncSearchWidget = new IncSearchWidget( tb );
// tb->insertWidget(-1, 0, mIncSearchWidget);
#ifndef DESKTOP_VERSION
} else {
//US setup toolbar
QPEMenuBar *menuBarTB = new QPEMenuBar( tb );
QPopupMenu *popupBarTB = new QPopupMenu( this );
menuBarTB->insertItem( "ME", popupBarTB);
tb->insertWidget(-1, 0, menuBarTB);
mIncSearchWidget = new IncSearchWidget( tb );
tb->enableMoving(false);
popupBarTB->insertItem( i18n("&File"), fileMenu );
popupBarTB->insertItem( i18n("&Edit"), editMenu );
popupBarTB->insertItem( i18n("&View"), viewMenu );
popupBarTB->insertItem( i18n("&Settings"), settingsMenu );
popupBarTB->insertItem( i18n("Synchronize"), syncMenu );
mViewManager->getFilterAction()->plug ( popupBarTB);
//popupBarTB->insertItem( i18n("&Change selected"), changeMenu );
popupBarTB->insertItem( i18n("&Help"), helpMenu );
if (QApplication::desktop()->width() > 320 ) {
// mViewManager->getFilterAction()->plug ( tb);