summaryrefslogtreecommitdiff
path: root/core
authortux_mike <tux_mike>2002-04-17 20:46:18 (UTC)
committer tux_mike <tux_mike>2002-04-17 20:46:18 (UTC)
commit7b19e1d98d5acf01102ac057ec077fc036c034c6 (patch) (side-by-side diff)
treea5ec8752ba8cbf9c5c037f1ec3552be544cc8b3f /core
parent106073977316103f057930daf45f3a083114d48d (diff)
downloadopie-7b19e1d98d5acf01102ac057ec077fc036c034c6.zip
opie-7b19e1d98d5acf01102ac057ec077fc036c034c6.tar.gz
opie-7b19e1d98d5acf01102ac057ec077fc036c034c6.tar.bz2
Added a Letter Picker
Diffstat (limited to 'core') (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/addressbook/abtable.cpp86
-rw-r--r--core/pim/addressbook/addressbook.cpp27
-rw-r--r--core/pim/addressbook/addressbook.h1
-rw-r--r--core/pim/addressbook/picker.cpp7
4 files changed, 98 insertions, 23 deletions
diff --git a/core/pim/addressbook/abtable.cpp b/core/pim/addressbook/abtable.cpp
index 759cb48..124ff6c 100644
--- a/core/pim/addressbook/abtable.cpp
+++ b/core/pim/addressbook/abtable.cpp
@@ -1004,25 +1004,24 @@ QStringList AbTable::choiceSelection(int /*index*/) const
return r;
}
void AbTable::setShowCategory( const QString &c )
{
showCat = c;
updateVisible();
}
void AbTable::setShowByLetter( char c )
{
showChar = tolower(c);
- qDebug( "AbTable::setShowByLetter %c", showChar);
updateVisible();
}
QString AbTable::showCategory() const
{
return showCat;
}
QStringList AbTable::categories()
{
mCat.load( categoryFileName() );
@@ -1068,30 +1067,107 @@ void AbTable::updateVisible()
for ( it = 0; it < totalCats; it++ ) {
if ( cats[it] == id ) {
hide = false;
break;
}
}
}
}
}
if ( showChar != '\0' ) {
tmpStr = fileAsName.left(1);
tmpStr = tmpStr.lower();
- qDebug( "updateVisible ");
- qDebug( tmpStr );
- qDebug( "updateVisible2 %c", showChar );
- if ( tmpStr != QString(QChar(showChar)) ) {
+ if ( tmpStr != QString(QChar(showChar)) && showChar != '#' ) {
hide = true;
}
+ if ( showChar == '#' ) {
+ if (tmpStr == "a")
+ hide = true;
+
+ if (tmpStr == "b")
+ hide = true;
+
+ if (tmpStr == "c")
+ hide = true;
+
+ if (tmpStr == "d")
+ hide = true;
+
+ if (tmpStr == "e")
+ hide = true;
+
+ if (tmpStr == "f")
+ hide = true;
+
+ if (tmpStr == "g")
+ hide = true;
+
+ if (tmpStr == "h")
+ hide = true;
+
+ if (tmpStr == "i")
+ hide = true;
+
+ if (tmpStr == "j")
+ hide = true;
+
+ if (tmpStr == "k")
+ hide = true;
+
+ if (tmpStr == "l")
+ hide = true;
+
+ if (tmpStr == "m")
+ hide = true;
+
+ if (tmpStr == "n")
+ hide = true;
+
+ if (tmpStr == "o")
+ hide = true;
+
+ if (tmpStr == "p")
+ hide = true;
+
+ if (tmpStr == "q")
+ hide = true;
+
+ if (tmpStr == "r")
+ hide = true;
+
+ if (tmpStr == "s")
+ hide = true;
+
+ if (tmpStr == "t")
+ hide = true;
+
+ if (tmpStr == "u")
+ hide = true;
+
+ if (tmpStr == "v")
+ hide = true;
+
+ if (tmpStr == "w")
+ hide = true;
+
+ if (tmpStr == "x")
+ hide = true;
+
+ if (tmpStr == "y")
+ hide = true;
+
+ if (tmpStr == "z")
+ hide = true;
+ }
+
}
if ( hide ) {
if ( currentRow() == row )
setCurrentCell( -1, 0 );
if ( rowHeight(row) > 0 )
hideRow( row );
} else {
if ( rowHeight(row) == 0 ) {
showRow( row );
adjustRow( row );
}
visible++;
diff --git a/core/pim/addressbook/addressbook.cpp b/core/pim/addressbook/addressbook.cpp
index e502cf6..beb953a 100644
--- a/core/pim/addressbook/addressbook.cpp
+++ b/core/pim/addressbook/addressbook.cpp
@@ -90,25 +90,24 @@ AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name,
: QMainWindow( parent, name, f ),
abEditor(0),
bAbEditFirstTime(TRUE),
syncing(FALSE)
{
initFields();
setCaption( tr("Contacts") );
setIcon( Resource::loadPixmap( "AddressBook" ) );
setToolBarsMovable( FALSE );
- QBoxLayout *vb = new QVBoxLayout( this, 0, 0 );
// Create Toolbars
QPEToolBar *bar = new QPEToolBar( this );
bar->setHorizontalStretchable( TRUE );
QPEMenuBar *mbList = new QPEMenuBar( bar );
mbList->setMargin( 0 );
QPopupMenu *edit = new QPopupMenu( this );
mbList->insertItem( tr( "Contact" ), edit );
listTools = new QPEToolBar( this, "list operations" );
@@ -181,67 +180,71 @@ AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name,
// This is safe to call without checking to see if it exists...
// not to mention it also does the necessary stuff for the
// journaling...
QString str = addressbookXMLFilename();
if ( str.isNull() ) {
QMessageBox::warning( this, tr("Out of Space"),
tr("There is not enough space to create\n"
"neccessary startup files.\n"
"\nFree up some space before\nentering data!")
);
}
- abList = new AbTable( &orderedFields, this, "table" );
- vb->insertWidget(0,abList);
+ listContainer = new QWidget( this );
+
+ QVBoxLayout *vb = new QVBoxLayout( listContainer );
+
+ abList = new AbTable( &orderedFields, listContainer, "table" );
+ vb->addWidget(abList);
abList->setHScrollBarMode( QScrollView::AlwaysOff );
connect( abList, SIGNAL( empty( bool ) ),
this, SLOT( listIsEmpty( bool ) ) );
connect( abList, SIGNAL( details() ),
this, SLOT( slotListView() ) );
connect( abList, SIGNAL(currentChanged(int,int)),
this, SLOT(slotUpdateToolbar()) );
mView = 0;
abList->load( addressbookXMLFilename() );
if ( QFile::exists(addressbookOldXMLFilename()) ) {
abList->load( addressbookOldXMLFilename() );
QFile::remove(addressbookOldXMLFilename());
}
- pLabel = new LetterPicker( abList );
+ pLabel = new LetterPicker( listContainer );
connect(pLabel, SIGNAL(letterClicked(char)), this, SLOT(slotSetLetter(char)));
- vb->insertWidget(1,pLabel);
+ vb->addWidget(pLabel);
catMenu = new QPopupMenu( this );
catMenu->setCheckable( TRUE );
connect( catMenu, SIGNAL(activated(int)), this, SLOT(slotSetCategory(int)) );
populateCategories();
mbList->insertItem( tr("View"), catMenu );
- setCentralWidget( abList );
+ setCentralWidget( listContainer );
fontMenu = new QPopupMenu(this);
fontMenu->setCheckable( true );
connect( fontMenu, SIGNAL(activated(int)), this, SLOT(slotSetFont(int)));
fontMenu->insertItem(tr( "Small" ), 0);
fontMenu->insertItem(tr( "Normal" ), 1);
fontMenu->insertItem(tr( "Large" ), 2);
defaultFont = new QFont( abList->font() );
slotSetFont(startFontSize);
mbList->insertItem( tr("Font"), fontMenu);
- setCentralWidget(abList);
+ setCentralWidget(listContainer);
// qDebug("adressbook contrsuction: t=%d", t.elapsed() );
}
void AddressbookWindow::slotSetFont( int size ) {
if (size > 2 || size < 0)
size = 1;
startFontSize = size;
QFont *currentFont;
@@ -285,56 +288,56 @@ void AddressbookWindow::setDocument( const QString &filename )
// if ( QMessageBox::information( this, tr("received contact"), msg, QMessageBox::Ok, QMessageBox::Cancel ) ==
// QMessageBox::Ok ) {
abList->addEntry( *it );
// }
}
}
void AddressbookWindow::resizeEvent( QResizeEvent *e )
{
QMainWindow::resizeEvent( e );
- if ( centralWidget() == abList )
+ if ( centralWidget() == listContainer )
showList();
else if ( centralWidget() == mView )
showView();
}
AddressbookWindow::~AddressbookWindow()
{
Config cfg("AddressBook");
cfg.setGroup("Font");
cfg.writeEntry("fontSize", startFontSize);
}
void AddressbookWindow::slotUpdateToolbar()
{
Contact ce = abList->currentEntry();
actionMail->setEnabled( !ce.defaultEmail().isEmpty() );
}
void AddressbookWindow::showList()
{
if ( mView ) mView->hide();
- setCentralWidget( abList );
- abList->show();
+ setCentralWidget( listContainer );
+ listContainer->show();
// update our focues... (or use a stack widget!);
abList->setFocus();
}
void AddressbookWindow::showView()
{
if ( abList->numRows() > 0 ) {
- abList->hide();
+ listContainer->hide();
setCentralWidget( abView() );
mView->show();
mView->setFocus();
}
}
void AddressbookWindow::slotListNew()
{
Contact cnt;
if( !syncing ) {
if ( abEditor )
abEditor->setEntry( cnt );
@@ -592,25 +595,25 @@ void AddressbookWindow::slotPersonalView()
actionFind->setEnabled(FALSE);
#endif
actionMail->setEnabled(FALSE);
setCaption( tr("Contacts - My Personal Details") );
QString filename = addressbookPersonalVCardName();
Contact me;
if (QFile::exists(filename))
me = Contact::readVCard( filename )[0];
abView()->init( me );
abView()->sync();
- abList->hide();
+ listContainer->hide();
setCentralWidget( abView() );
mView->show();
mView->setFocus();
}
void AddressbookWindow::editEntry( EntryMode entryMode )
{
Contact entry;
if ( bAbEditFirstTime ) {
abEditor = new ContactEditor( entry, &orderedFields, &slOrderedFields,
this, "editor" );
bAbEditFirstTime = FALSE;
diff --git a/core/pim/addressbook/addressbook.h b/core/pim/addressbook/addressbook.h
index 31c4660..8e8c883 100644
--- a/core/pim/addressbook/addressbook.h
+++ b/core/pim/addressbook/addressbook.h
@@ -80,24 +80,25 @@ private:
QPopupMenu *catMenu, *fontMenu;
QPEToolBar *listTools;
QToolButton *deleteButton;
QValueList<int> allFields,
orderedFields;
QStringList slOrderedFields;
enum Panes { paneList=0, paneView, paneEdit };
ContactEditor *abEditor;
AbLabel *mView;
LetterPicker *pLabel;
AbTable *abList;
+ QWidget *listContainer;
QAction *actionNew, *actionEdit, *actionTrash, *actionFind, *actionBeam,
*actionPersonal, *actionMail;
bool bAbEditFirstTime;
int viewMargin;
bool syncing;
QFont *defaultFont;
int startFontSize;
};
diff --git a/core/pim/addressbook/picker.cpp b/core/pim/addressbook/picker.cpp
index 06dcc7d..a165451 100644
--- a/core/pim/addressbook/picker.cpp
+++ b/core/pim/addressbook/picker.cpp
@@ -70,76 +70,72 @@ void PickerLabel::clearLetter()
tmpStr += "</qt>";
setText(tmpStr);
currentLetter = 0;
}
void PickerLabel::mouseReleaseEvent( QMouseEvent *e )
{
QString tmpStr;
- if (lastLetter != letter1 && lastLetter != letter2 && lastLetter != letter3)
+ if (lastLetter != letter1 && lastLetter != letter2 && lastLetter != letter3 && lastLetter != '\0')
QTimer::singleShot( 0, this, SLOT(emitClearSignal()) );
- qDebug( "a" );
switch (currentLetter) {
case 0:
tmpStr = "<qt><font color=\"#7F0000\">";
tmpStr += letter1;
tmpStr += "</font>";
tmpStr += letter2;
tmpStr += letter3;
tmpStr += "</qt>";
setText(tmpStr);
currentLetter++;
lastLetter = letter1;
emit selectedLetter( letter1 );
- qDebug( "PickerLabel::mouseReleaseEvent %c", letter1 );
break;
case 1:
tmpStr = "<qt>";
tmpStr += letter1;
tmpStr += "<font color=\"#7F0000\">";
tmpStr += letter2;
tmpStr += "</font>";
tmpStr += letter3;
tmpStr += "</qt>";
setText(tmpStr);
currentLetter++;
lastLetter = letter2;
emit selectedLetter( letter2 );
- qDebug( "PickerLabel::mouseReleaseEvent %c", letter2 );
break;
case 2:
tmpStr = "<qt>";
tmpStr += letter1;
tmpStr += letter2;
tmpStr += "<font color=\"#7F0000\">";
tmpStr += letter3;
tmpStr += "</font></qt>";
setText(tmpStr);
currentLetter++;
lastLetter = letter3;
emit selectedLetter( letter3 );
- qDebug( "PickerLabel::mouseReleaseEvent %c", letter3 );
break;
default:
clearLetter();
lastLetter = '\0';
emit selectedLetter( '\0' );
}
}
void PickerLabel::emitClearSignal() {
@@ -219,16 +215,15 @@ void LetterPicker::clear()
lblDEF->clearLetter();
lblGHI->clearLetter();
lblJKL->clearLetter();
lblMNO->clearLetter();
lblPQR->clearLetter();
lblSTU->clearLetter();
lblVWX->clearLetter();
lblYZ->clearLetter();
}
void LetterPicker::newLetter( char letter )
{
- qDebug( "LetterPicker::newLetter %c", letter );
emit letterClicked( letter );
}