author | eilers <eilers> | 2002-10-18 15:42:57 (UTC) |
---|---|---|
committer | eilers <eilers> | 2002-10-18 15:42:57 (UTC) |
commit | 47e60a8dc20f46dd00b9405f7fde122792018627 (patch) (side-by-side diff) | |
tree | b109ca9e9c200e7e47c0e61e8f2e86ba6bf4a37f | |
parent | c16dcab3fe45ae7193cbdfb2f62bf7e5482d449b (diff) | |
download | opie-47e60a8dc20f46dd00b9405f7fde122792018627.zip opie-47e60a8dc20f46dd00b9405f7fde122792018627.tar.gz opie-47e60a8dc20f46dd00b9405f7fde122792018627.tar.bz2 |
First attempt of new find entry field.. It still needs some finetuning !
-rw-r--r-- | core/pim/addressbook/TODO | 1 | ||||
-rw-r--r-- | core/pim/addressbook/abtable.cpp | 10 | ||||
-rw-r--r-- | core/pim/addressbook/abtable.h | 2 | ||||
-rw-r--r-- | core/pim/addressbook/addressbook.cpp | 69 | ||||
-rw-r--r-- | core/pim/addressbook/addressbook.h | 17 | ||||
-rw-r--r-- | core/pim/addressbook/addressbook.pro | 3 | ||||
-rw-r--r-- | core/pim/addressbook/ofloatbar.h | 20 |
7 files changed, 97 insertions, 25 deletions
diff --git a/core/pim/addressbook/TODO b/core/pim/addressbook/TODO index 7bc906d..d8720b3 100644 --- a/core/pim/addressbook/TODO +++ b/core/pim/addressbook/TODO @@ -7,16 +7,17 @@ Urgent: Important: - Finishing of new View functions (List, Phonebook...) - Reload if contacts were changed externally - "What's this" should be added - The names of the countries are sorted by there english names, only.. Even if they are translated.. :S - Store last settings of combo-boxes +- Mail-Icon is missing Less important: - Find widget should be replaced by something like qpdf has. - The picker (alphabetical sort widget) should be placed verticaly or horizontally (configurable) diff --git a/core/pim/addressbook/abtable.cpp b/core/pim/addressbook/abtable.cpp index 91a7171..9297d6a 100644 --- a/core/pim/addressbook/abtable.cpp +++ b/core/pim/addressbook/abtable.cpp @@ -630,18 +630,26 @@ void QTable::paintEmptyArea( QPainter *p, int cx, int cy, int cw, int ch ) // } // int AbTable::rowAt( int pos ) const // { // return QMIN( pos/18, numRows()-1 ); // } void AbTable::slotDoFind( const QString &findString, bool caseSensitive, - bool backwards, int category ) + bool backwards, QString cat /* int category */ ) { + int category = 0; + if ( cat.isEmpty() ) + category = -2; // mCat.id("Contacts", "All"); + else + category = mCat.id("Contacts", cat ); + + qWarning ("Found in Category %d", category); + if ( currFindRow < -1 ) currFindRow = currentRow() - 1; clearSelection( TRUE ); int rows, row; AbTableItem *ati; QRegExp r( findString ); r.setCaseSensitive( caseSensitive ); rows = numRows(); diff --git a/core/pim/addressbook/abtable.h b/core/pim/addressbook/abtable.h index 80c3ca0..a603e17 100644 --- a/core/pim/addressbook/abtable.h +++ b/core/pim/addressbook/abtable.h @@ -95,17 +95,17 @@ public: void show(); void setPaintingEnabled( bool e ); QString showBook() const; public slots: void slotDoFind( const QString &str, bool caseSensitive, bool backwards, - int category ); + QString category = QString::null ); signals: void empty( bool ); void details(); void signalNotFound(); void signalWrapAround(); protected: virtual void keyPressEvent( QKeyEvent *e ); diff --git a/core/pim/addressbook/addressbook.cpp b/core/pim/addressbook/addressbook.cpp index 82a1b57..8335d8b 100644 --- a/core/pim/addressbook/addressbook.cpp +++ b/core/pim/addressbook/addressbook.cpp @@ -63,20 +63,16 @@ #include <sys/types.h> #include <fcntl.h> #include <unistd.h> #include <qdatetime.h> #include "picker.h" -// Remove this for OPIE releae 1.0 ! -#define __DEBUG_RELEASE - - static QString addressbookPersonalVCardName() { QString filename = Global::applicationFileName("addressbook", "businesscard.vcf"); return filename; } @@ -135,30 +131,41 @@ AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name, // make it possible to go directly to businesscard via qcop call #if defined(Q_WS_QWS) #if !defined(QT_NO_COP) QCopChannel *addressChannel = new QCopChannel("QPE/Addressbook" , this ); connect (addressChannel, SIGNAL( received(const QCString &, const QByteArray &)), this, SLOT ( appMessage(const QCString &, const QByteArray &) ) ); #endif #endif - - - - - -#ifndef MAKE_FOR_SHARP_ROM a = new QAction( tr( "Find" ), Resource::loadPixmap( "mag" ), QString::null, 0, this, 0 ); actionFind = a; - connect( a, SIGNAL(activated()), this, SLOT(slotFind()) ); + connect( a, SIGNAL(activated()), this, SLOT( slotFindOpen()) ); a->addTo( edit ); a->addTo( listTools ); -#endif - + + // Much better search widget, taken from QTReader.. (se) + searchBar = new OFloatBar( "Search", this, QMainWindow::Top, TRUE ); + searchBar->setHorizontalStretchable( TRUE ); + searchBar->hide(); + searchEdit = new QLineEdit( searchBar, "searchEdit" ); +// QFont f("unifont", 16 /*, QFont::Bold*/); +// searchEdit->setFont( f ); + searchBar->setStretchableWidget( searchEdit ); + connect( searchEdit, SIGNAL( returnPressed( ) ), + this, SLOT( slotFind( ) ) ); + + a = new QAction( tr( "Find Next" ), Resource::loadPixmap( "next" ), QString::null, 0, this, 0 ); + connect( a, SIGNAL( activated() ), this, SLOT( slotFindNext() ) ); + a->addTo( searchBar ); + + a = new QAction( tr( "Close Find" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); + connect( a, SIGNAL( activated() ), this, SLOT( slotFindClose() ) ); + a->addTo( searchBar ); a = new QAction( tr( "Write Mail To" ), Resource::loadPixmap( "qtmail/reply" ), QString::null, 0, this, 0 ); //a->setEnabled( FALSE ); we got support for it now :) zecke actionMail = a; connect( a, SIGNAL( activated() ), this, SLOT( writeMail() ) ); a->addTo( edit ); a->addTo( listTools ); @@ -193,17 +200,17 @@ AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name, // connect( a, SIGNAL( activated() ), this, SLOT( slotSettings() ) ); // a->addTo( edit ); #ifdef __DEBUG_RELEASE // Remove this function for public Release ! This is only // for debug purposes .. a = new QAction( tr( "Save all Data"), QString::null, 0, 0 ); - connect( a, SIGNAL( activated() ), this, SLOT( save() ) ); + connect( a, SIGNAL( activated() ), this , SLOT( slotSave() ) ); a->addTo( edit ); #endif // Create Views listContainer = new QWidget( this ); QVBoxLayout *vb = new QVBoxLayout( listContainer ); @@ -748,16 +755,23 @@ bool AddressbookWindow::save() != QMessageBox::No ) return TRUE; else return FALSE; } return TRUE; } +#ifdef __DEBUG_RELEASE +void AddressbookWindow::slotSave() +{ + save(); +} +#endif + void AddressbookWindow::slotSettings() { AddressSettings frmSettings( this ); #if defined(Q_WS_QWS) || defined(_WS_QWS_) frmSettings.showMaximized(); #endif if ( frmSettings.exec() ) { @@ -872,34 +886,47 @@ AbLabel *AddressbookWindow::abView() if ( !mView ) { mView = new AbLabel( this, "viewer" ); mView->init( OContact() ); connect( mView, SIGNAL( okPressed() ), this, SLOT( slotListView() ) ); } return mView; } +void AddressbookWindow::slotFindOpen() +{ + searchBar->show(); +} +void AddressbookWindow::slotFindClose() +{ + searchBar->hide(); +} +void AddressbookWindow::slotFindNext() +{ +} + void AddressbookWindow::slotFind() { -#ifndef MAKE_FOR_SHARP_ROM if ( centralWidget() == abView() ) showList(); - FindDialog frmFind( "Contacts", this ); - QObject::connect( &frmFind, SIGNAL(signalFindClicked(const QString &, bool, bool, int)), abList, SLOT(slotDoFind( const QString&,bool,bool,int))); - QObject::connect( abList, SIGNAL(signalNotFound()), &frmFind, SLOT(slotNotFound()) ); - QObject::connect( abList, SIGNAL(signalWrapAround()), &frmFind, SLOT(slotWrapAround()) ); +// FindDialog frmFind( "Contacts", this ); +// QObject::connect( abList, SIGNAL(signalNotFound()), &frmFind, SLOT(slotNotFound()) ); +// QObject::connect( abList, SIGNAL(signalWrapAround()), &frmFind, SLOT(slotWrapAround()) ); +// frmFind.exec(); + + // QStringList categories = abList->categories(); + // abList->setShowCategory( book, cat ); + abList->slotDoFind( searchEdit->text(), false, false); - frmFind.exec(); if ( abList->numSelections() ) abList->clearSelection(); abList->clearFindRow(); -#endif } void AddressbookWindow::slotSetCategory( int c ) { QString cat, book; if ( c <= 0 ) diff --git a/core/pim/addressbook/addressbook.h b/core/pim/addressbook/addressbook.h index bf36407..b7cf355 100644 --- a/core/pim/addressbook/addressbook.h +++ b/core/pim/addressbook/addressbook.h @@ -15,19 +15,24 @@ ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ #ifndef Addressbook_H #define Addressbook_H +// Remove this for OPIE releae 1.0 ! +#define __DEBUG_RELEASE + #include <qmainwindow.h> #include <qvaluelist.h> #include <qstringlist.h> +#include <qlineedit.h> +#include "ofloatbar.h" class ContactEditor; class AbLabel; class AbTable; class QPEToolBar; class QPopupMenu; class QToolButton; class QDialog; @@ -52,36 +57,43 @@ protected: void closeEvent( QCloseEvent *e ); bool save(); public slots: void flush(); void reload(); void appMessage(const QCString &, const QByteArray &); void setDocument( const QString & ); +#ifdef __DEBUG_RELEASE + void slotSave(); +#endif private slots: void importvCard(); void slotListNew(); void slotListView(); void slotListDelete(); void slotViewBack(); void slotViewEdit(); void slotPersonalView(); void listIsEmpty( bool ); void slotSettings(); void writeMail(); void slotBeam(); void beamDone( Ir * ); - void slotFind(); void slotSetCategory( int ); void slotSetLetter( char ); void slotUpdateToolbar(); void slotSetFont(int); + void slotFindOpen(); + void slotFindClose(); + void slotFind(); + void slotFindNext(); + private: void initFields(); // inititialize our fields... AbLabel *abView(); void populateCategories(); QPopupMenu *catMenu, *fontMenu; QPEToolBar *listTools; QToolButton *deleteButton; @@ -89,16 +101,19 @@ private: QStringList slOrderedFields; enum Panes { paneList=0, paneView, paneEdit }; ContactEditor *abEditor; AbLabel *mView; LetterPicker *pLabel; AbTable *abList; QWidget *listContainer; + OFloatBar* searchBar; + QLineEdit* searchEdit; + QAction *actionNew, *actionEdit, *actionTrash, *actionFind, *actionBeam, *actionPersonal, *actionMail; bool bAbEditFirstTime; int viewMargin; bool syncing; QFont *defaultFont; int startFontSize; diff --git a/core/pim/addressbook/addressbook.pro b/core/pim/addressbook/addressbook.pro index 24bdd8c..05aa5ec 100644 --- a/core/pim/addressbook/addressbook.pro +++ b/core/pim/addressbook/addressbook.pro @@ -1,17 +1,18 @@ TEMPLATE = app CONFIG = qt warn_on release DESTDIR = $(OPIEDIR)/bin HEADERS = addressbook.h \ contacteditor.h \ ablabel.h \ abtable.h \ addresssettings.h \ - picker.h + picker.h \ + ofloatbar.h SOURCES = main.cpp \ addressbook.cpp \ contacteditor.cpp \ ablabel.cpp \ abtable.cpp \ addresssettings.cpp \ picker.cpp INTERFACES = addresssettingsbase.ui diff --git a/core/pim/addressbook/ofloatbar.h b/core/pim/addressbook/ofloatbar.h new file mode 100644 index 0000000..85a0c4f --- a/dev/null +++ b/core/pim/addressbook/ofloatbar.h @@ -0,0 +1,20 @@ +#ifndef __OFLOATBAR_H +#define __OFLOATBAR_H + +#include <qtoolbar.h> +#include <qevent.h> + +class OFloatBar : public QToolBar +{ + Q_OBJECT + virtual void hideEvent(QHideEvent* e) + { + /*if (e->spontaneous())*/ emit OnHide(); + } + public: + OFloatBar(char* t, QMainWindow* mw, QMainWindow::ToolBarDock td, bool f) : QToolBar(t, mw, td, f) {} + signals: + void OnHide(); +}; + +#endif |