Diffstat (limited to 'core/pim/addressbook/addressbook.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | core/pim/addressbook/addressbook.cpp | 66 |
1 files changed, 49 insertions, 17 deletions
diff --git a/core/pim/addressbook/addressbook.cpp b/core/pim/addressbook/addressbook.cpp index f7e4c95..3466801 100644 --- a/core/pim/addressbook/addressbook.cpp +++ b/core/pim/addressbook/addressbook.cpp @@ -75,19 +75,26 @@ static QString addressbookPersonalVCardName() AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name, WFlags f ) : QMainWindow( parent, name, f ), abEditor(0), useRegExp(false), - DoSignalWrapAround(false), + doNotifyWrapAround(true), caseSensitive(false), bAbEditFirstTime(TRUE), syncing(FALSE) { isLoading = true; + // Read Config settings + Config cfg("AddressBook"); + cfg.setGroup("Search"); + useRegExp = cfg.readBoolEntry( "useRegExp" ); + caseSensitive = cfg.readBoolEntry( "caseSensitive" ); + doNotifyWrapAround = cfg.readBoolEntry( "doNotifyWrapAround" ); + initFields(); setCaption( tr("Contacts") ); setIcon( Resource::loadPixmap( "AddressBook" ) ); setToolBarsMovable( FALSE ); @@ -221,12 +228,18 @@ AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name, 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()) ); + connect( abList, SIGNAL( signalSearchNext() ), this, SLOT( slotFindNext() ) ); + connect( abList, SIGNAL( signalSearchBackward() ), this, SLOT( slotFindPrevious() ) ); + + // Maybe we should react on Wraparound and notfound ? + QObject::connect( abList, SIGNAL(signalNotFound()), this, SLOT(slotNotFound()) ); + QObject::connect( abList, SIGNAL(signalWrapAround()), this, SLOT(slotWrapAround()) ); mView = 0; abList->load(); pLabel = new LetterPicker( listContainer ); @@ -256,35 +269,28 @@ AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name, setCentralWidget(listContainer); // qDebug("adressbook contrsuction: t=%d", t.elapsed() ); abList->setCurrentCell( 0, 0 ); - // Read Config settings - Config cfg("AddressBook"); - cfg.setGroup("Search"); - useRegExp = cfg.readBoolEntry( "useRegExp" ); - caseSensitive = cfg.readBoolEntry( "caseSensitive" ); - DoSignalWrapAround = cfg.readBoolEntry( "signalWrapAround" ); - isLoading = false; } void AddressbookWindow::slotConfig() { ConfigDlg* dlg = new ConfigDlg( this, "Config" ); dlg -> setUseRegExp ( useRegExp ); dlg -> setBeCaseSensitive( caseSensitive ); - dlg -> setSignalWrapAround( DoSignalWrapAround ); + dlg -> setSignalWrapAround( doNotifyWrapAround ); dlg -> showMaximized(); if ( dlg -> exec() ) { qWarning ("Config Dialog accepted !"); useRegExp = dlg -> useRegExp(); caseSensitive = dlg -> beCaseSensitive(); - DoSignalWrapAround = dlg -> signalWrapAround(); + doNotifyWrapAround = dlg -> signalWrapAround(); } delete dlg; } @@ -370,13 +376,13 @@ AddressbookWindow::~AddressbookWindow() cfg.setGroup("Font"); cfg.writeEntry("fontSize", startFontSize); cfg.setGroup("Search"); cfg.writeEntry("useRegExp", useRegExp); cfg.writeEntry("caseSensitive", caseSensitive); - cfg.writeEntry("signalWrapAround", DoSignalWrapAround); + cfg.writeEntry("doNotifyWrapAround", doNotifyWrapAround); } void AddressbookWindow::slotUpdateToolbar() { OContact ce = abList->currentEntry(); actionMail->setEnabled( !ce.defaultEmail().isEmpty() ); @@ -653,15 +659,13 @@ void AddressbookWindow::slotPersonalView() { if (!actionPersonal->isOn()) { // we just turned it off setCaption( tr("Contacts") ); actionNew->setEnabled(TRUE); actionTrash->setEnabled(TRUE); -#ifndef MAKE_FOR_SHARP_ROM actionFind->setEnabled(TRUE); -#endif slotUpdateToolbar(); // maybe some of the above could be moved there showList(); return; } // XXX need to disable some QActions. @@ -925,30 +929,40 @@ AbLabel *AddressbookWindow::abView() return mView; } void AddressbookWindow::slotFindOpen() { searchBar->show(); + abList -> inSearch(); searchEdit->setFocus(); } void AddressbookWindow::slotFindClose() { searchBar->hide(); + abList -> offSearch(); abList->setFocus(); } void AddressbookWindow::slotFindNext() { if ( centralWidget() == abView() ) showList(); - // Maybe we should react on Wraparound and notfound ? -// QObject::connect( abList, SIGNAL(signalNotFound()), &frmFind, SLOT(slotNotFound()) ); -// QObject::connect( abList, SIGNAL(signalWrapAround()), &frmFind, SLOT(slotWrapAround()) ); - abList->slotDoFind( searchEdit->text(), caseSensitive, useRegExp, false); + searchEdit->clearFocus(); + abList->setFocus(); + if ( abList->numSelections() ) + abList->clearSelection(); + +} +void AddressbookWindow::slotFindPrevious() +{ + if ( centralWidget() == abView() ) + showList(); + + abList->slotDoFind( searchEdit->text(), caseSensitive, useRegExp, true); if ( abList->numSelections() ) abList->clearSelection(); } @@ -956,12 +970,30 @@ void AddressbookWindow::slotFind() { abList->clearFindRow(); slotFindNext(); } +void AddressbookWindow::slotNotFound() +{ + qWarning("Got notfound signal !"); + QMessageBox::information( this, tr( "Not Found" ), + tr( "Unable to find a contact for this" ) + "\n" + + tr( "search pattern !" ) ); + + +} +void AddressbookWindow::slotWrapAround() +{ + qWarning("Got wrap signal !"); + if ( doNotifyWrapAround ) + QMessageBox::information( this, tr( "End of list" ), + tr( "End of list. Wrap around now.. !" ) + "\n" ); + +} + void AddressbookWindow::slotSetCategory( int c ) { QString cat, book; if ( c <= 0 ) |