summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2004-10-10 23:26:49 (UTC)
committer zautrix <zautrix>2004-10-10 23:26:49 (UTC)
commitea40295e233db219dc2431960e18fb4398ddb75c (patch) (unidiff)
tree1d654ae51d7f65f4375787105951a8f4f9fc359e
parent640874bb21ea348edb33a54690ad225e0efdd1e4 (diff)
downloadkdepimpi-ea40295e233db219dc2431960e18fb4398ddb75c.zip
kdepimpi-ea40295e233db219dc2431960e18fb4398ddb75c.tar.gz
kdepimpi-ea40295e233db219dc2431960e18fb4398ddb75c.tar.bz2
added better searching in kapi
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--kaddressbook/incsearchwidget.cpp6
-rw-r--r--kaddressbook/incsearchwidget.h2
-rw-r--r--kaddressbook/kabcore.cpp3
-rw-r--r--kaddressbook/kaddressbookview.h2
-rw-r--r--kaddressbook/viewmanager.cpp11
-rw-r--r--kaddressbook/viewmanager.h2
-rw-r--r--kaddressbook/views/kaddressbookcardview.cpp18
-rw-r--r--kaddressbook/views/kaddressbookcardview.h2
-rw-r--r--kaddressbook/views/kaddressbookiconview.cpp17
-rw-r--r--kaddressbook/views/kaddressbookiconview.h2
-rw-r--r--kaddressbook/views/kaddressbooktableview.cpp16
-rw-r--r--kaddressbook/views/kaddressbooktableview.h2
-rw-r--r--microkde/klineedit.h25
13 files changed, 103 insertions, 5 deletions
diff --git a/kaddressbook/incsearchwidget.cpp b/kaddressbook/incsearchwidget.cpp
index 3533427..78eaf65 100644
--- a/kaddressbook/incsearchwidget.cpp
+++ b/kaddressbook/incsearchwidget.cpp
@@ -72,24 +72,30 @@ IncSearchWidget::IncSearchWidget( QWidget *parent, const char *name )
72 72
73 // for performance reasons, we do a search on the pda only after return is pressed 73 // for performance reasons, we do a search on the pda only after return is pressed
74 connect( mSearchText, SIGNAL( textChanged( const QString& ) ), 74 connect( mSearchText, SIGNAL( textChanged( const QString& ) ),
75 SLOT( announceDoSearch2() ) ); 75 SLOT( announceDoSearch2() ) );
76 connect( mFieldCombo, SIGNAL( activated( const QString& ) ), 76 connect( mFieldCombo, SIGNAL( activated( const QString& ) ),
77 SLOT( announceDoSearch2() ) ); 77 SLOT( announceDoSearch2() ) );
78 78
79 connect( mSearchText, SIGNAL( returnPressed() ), 79 connect( mSearchText, SIGNAL( returnPressed() ),
80 SLOT( announceDoSearch() ) ); 80 SLOT( announceDoSearch() ) );
81 connect( mFieldCombo, SIGNAL( activated( const QString& ) ), 81 connect( mFieldCombo, SIGNAL( activated( const QString& ) ),
82 SLOT( announceFieldChanged() ) ); 82 SLOT( announceFieldChanged() ) );
83 83
84
85
86 connect( mSearchText, SIGNAL( scrollUP() ), this, SIGNAL( scrollUP() ));
87 connect( mSearchText, SIGNAL( scrollDOWN() ), this, SIGNAL( scrollDOWN() ));
88
89
84 setFocusProxy( mSearchText ); 90 setFocusProxy( mSearchText );
85} 91}
86 92
87IncSearchWidget::~IncSearchWidget() 93IncSearchWidget::~IncSearchWidget()
88{ 94{
89 95
90} 96}
91void IncSearchWidget::announceDoSearch2() 97void IncSearchWidget::announceDoSearch2()
92{ 98{
93 if ( KABPrefs::instance()->mSearchWithReturn ) 99 if ( KABPrefs::instance()->mSearchWithReturn )
94 return; 100 return;
95 emit doSearch( mSearchText->text() ); 101 emit doSearch( mSearchText->text() );
diff --git a/kaddressbook/incsearchwidget.h b/kaddressbook/incsearchwidget.h
index 5c95438..1546a51 100644
--- a/kaddressbook/incsearchwidget.h
+++ b/kaddressbook/incsearchwidget.h
@@ -39,24 +39,26 @@ class IncSearchWidget : public QWidget
39 IncSearchWidget( QWidget *parent, const char *name = 0 ); 39 IncSearchWidget( QWidget *parent, const char *name = 0 );
40 ~IncSearchWidget(); 40 ~IncSearchWidget();
41 41
42 void setFields( const KABC::Field::List &list ); 42 void setFields( const KABC::Field::List &list );
43 KABC::Field::List fields() const; 43 KABC::Field::List fields() const;
44 44
45 KABC::Field *currentField() const; 45 KABC::Field *currentField() const;
46 46
47 void setCurrentItem( int pos ); 47 void setCurrentItem( int pos );
48 int currentItem() const; 48 int currentItem() const;
49 49
50 signals: 50 signals:
51 void scrollUP();
52 void scrollDOWN();
51 /** 53 /**
52 This signal is emmited whenever the text in the input 54 This signal is emmited whenever the text in the input
53 widget is changed. You can get the sorting field by 55 widget is changed. You can get the sorting field by
54 @ref currentField. 56 @ref currentField.
55 */ 57 */
56 void doSearch( const QString& text ); 58 void doSearch( const QString& text );
57 59
58 /** 60 /**
59 This signal is emmited whenever the search field changes. 61 This signal is emmited whenever the search field changes.
60 */ 62 */
61 void fieldChanged(); 63 void fieldChanged();
62 64
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index cd261f6..f2d4cd6 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -1664,25 +1664,26 @@ void KABCore::initGUI()
1664 addActionsManually(); 1664 addActionsManually();
1665 //US make sure the export and import menues are initialized before creating the xxPortManager. 1665 //US make sure the export and import menues are initialized before creating the xxPortManager.
1666 mXXPortManager = new XXPortManager( this, this ); 1666 mXXPortManager = new XXPortManager( this, this );
1667 1667
1668 // LR mIncSearchWidget = new IncSearchWidget( mMainWindow->getIconToolBar() ); 1668 // LR mIncSearchWidget = new IncSearchWidget( mMainWindow->getIconToolBar() );
1669 //mMainWindow->toolBar()->insertWidget(-1, 4, mIncSearchWidget); 1669 //mMainWindow->toolBar()->insertWidget(-1, 4, mIncSearchWidget);
1670 // mActionQuit->plug ( mMainWindow->toolBar()); 1670 // mActionQuit->plug ( mMainWindow->toolBar());
1671 //mIncSearchWidget = new IncSearchWidget( mMainWindow->toolBar() ); 1671 //mIncSearchWidget = new IncSearchWidget( mMainWindow->toolBar() );
1672 //mMainWindow->toolBar()->insertWidget(-1, 0, mIncSearchWidget); 1672 //mMainWindow->toolBar()->insertWidget(-1, 0, mIncSearchWidget);
1673 // mIncSearchWidget->hide(); 1673 // mIncSearchWidget->hide();
1674 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ), 1674 connect( mIncSearchWidget, SIGNAL( doSearch( const QString& ) ),
1675 SLOT( incrementalSearch( const QString& ) ) ); 1675 SLOT( incrementalSearch( const QString& ) ) );
1676 1676 connect( mIncSearchWidget, SIGNAL( scrollUP() ),mViewManager, SLOT( scrollUP() ) );
1677 connect( mIncSearchWidget, SIGNAL( scrollDOWN() ),mViewManager, SLOT( scrollDOWN() ) );
1677 1678
1678 mJumpButtonBar = new JumpButtonBar( this, this ); 1679 mJumpButtonBar = new JumpButtonBar( this, this );
1679 1680
1680 topLayout->addWidget( mJumpButtonBar ); 1681 topLayout->addWidget( mJumpButtonBar );
1681//US topLayout->setStretchFactor( mJumpButtonBar, 10 ); 1682//US topLayout->setStretchFactor( mJumpButtonBar, 10 );
1682 1683
1683// mMainWindow->getIconToolBar()->raise(); 1684// mMainWindow->getIconToolBar()->raise();
1684 1685
1685#endif //KAB_EMBEDDED 1686#endif //KAB_EMBEDDED
1686 1687
1687} 1688}
1688void KABCore::initActions() 1689void KABCore::initActions()
diff --git a/kaddressbook/kaddressbookview.h b/kaddressbook/kaddressbookview.h
index 17106e8..c134e96 100644
--- a/kaddressbook/kaddressbookview.h
+++ b/kaddressbook/kaddressbookview.h
@@ -56,24 +56,26 @@ class KAddressBookView : public QWidget
56 public: 56 public:
57 enum DefaultFilterType { None = 0, Active = 1, Specific = 2 }; 57 enum DefaultFilterType { None = 0, Active = 1, Specific = 2 };
58 58
59 KAddressBookView( KABC::AddressBook *ab, QWidget *parent, const char *name ); 59 KAddressBookView( KABC::AddressBook *ab, QWidget *parent, const char *name );
60 virtual ~KAddressBookView(); 60 virtual ~KAddressBookView();
61 61
62 /** 62 /**
63 Must be overloaded in subclasses. Should return a list of 63 Must be overloaded in subclasses. Should return a list of
64 all the uids of selected contacts. 64 all the uids of selected contacts.
65 */ 65 */
66 virtual QStringList selectedUids() = 0; 66 virtual QStringList selectedUids() = 0;
67 virtual void doSearch( const QString& s ,KABC::Field *field ) = 0; 67 virtual void doSearch( const QString& s ,KABC::Field *field ) = 0;
68 virtual void scrollUP() = 0;
69 virtual void scrollDOWN() = 0;
68 70
69 /** 71 /**
70 Called whenever this view should read the config. This can be used 72 Called whenever this view should read the config. This can be used
71 as a sign that the config has changed, therefore the view should 73 as a sign that the config has changed, therefore the view should
72 assume the worst and rebuild itself if necessary. For example, 74 assume the worst and rebuild itself if necessary. For example,
73 in a table view this method may be called when the user adds or 75 in a table view this method may be called when the user adds or
74 removes columns from the view. 76 removes columns from the view.
75 77
76 If overloaded in the subclass, do not forget to call super class's 78 If overloaded in the subclass, do not forget to call super class's
77 method. 79 method.
78 80
79 @param config The KConfig object to read from. The group will already 81 @param config The KConfig object to read from. The group will already
diff --git a/kaddressbook/viewmanager.cpp b/kaddressbook/viewmanager.cpp
index c6baeac..f4fb08b 100644
--- a/kaddressbook/viewmanager.cpp
+++ b/kaddressbook/viewmanager.cpp
@@ -76,25 +76,34 @@ ViewManager::ViewManager( KABCore *core, QWidget *parent, const char *name )
76 initActions(); 76 initActions();
77 77
78 mViewDict.setAutoDelete( true ); 78 mViewDict.setAutoDelete( true );
79 79
80 createViewFactories(); 80 createViewFactories();
81} 81}
82 82
83ViewManager::~ViewManager() 83ViewManager::~ViewManager()
84{ 84{
85 unloadViews(); 85 unloadViews();
86 mViewFactoryDict.clear(); 86 mViewFactoryDict.clear();
87} 87}
88 88void ViewManager::scrollUP()
89{
90 if ( mActiveView )
91 mActiveView->scrollUP();
92}
93void ViewManager::scrollDOWN()
94{
95 if ( mActiveView )
96 mActiveView->scrollDOWN();
97}
89void ViewManager::restoreSettings() 98void ViewManager::restoreSettings()
90{ 99{
91 mViewNameList = KABPrefs::instance()->mViewNames; 100 mViewNameList = KABPrefs::instance()->mViewNames;
92 QString activeViewName = KABPrefs::instance()->mCurrentView; 101 QString activeViewName = KABPrefs::instance()->mCurrentView;
93 102
94 mActionSelectView->setItems( mViewNameList ); 103 mActionSelectView->setItems( mViewNameList );
95 104
96 // Filter 105 // Filter
97 mFilterList = Filter::restore( mCore->config(), "Filter" ); 106 mFilterList = Filter::restore( mCore->config(), "Filter" );
98 mActionSelectFilter->setItems( filterNames() ); 107 mActionSelectFilter->setItems( filterNames() );
99 mActionSelectFilter->setCurrentItem( KABPrefs::instance()->mCurrentFilter ); 108 mActionSelectFilter->setCurrentItem( KABPrefs::instance()->mCurrentFilter );
100 109
diff --git a/kaddressbook/viewmanager.h b/kaddressbook/viewmanager.h
index 6def6b6..585f4e9 100644
--- a/kaddressbook/viewmanager.h
+++ b/kaddressbook/viewmanager.h
@@ -57,24 +57,26 @@ class ViewManager : public QWidget
57 void saveSettings(); 57 void saveSettings();
58 void doSearch( const QString& s ,KABC::Field *field ); 58 void doSearch( const QString& s ,KABC::Field *field );
59 59
60 void unloadViews(); 60 void unloadViews();
61 KSelectAction * getFilterAction() { return mActionSelectFilter; } 61 KSelectAction * getFilterAction() { return mActionSelectFilter; }
62 62
63 QStringList selectedUids() const; 63 QStringList selectedUids() const;
64 QStringList selectedEmails() const; 64 QStringList selectedEmails() const;
65 KABC::Addressee::List selectedAddressees() const; 65 KABC::Addressee::List selectedAddressees() const;
66 void setListSelected(QStringList); 66 void setListSelected(QStringList);
67 67
68 public slots: 68 public slots:
69 void scrollUP();
70 void scrollDOWN();
69 71
70//US void setSelected( const QString &uid = QString::null, bool selected = true ); 72//US void setSelected( const QString &uid = QString::null, bool selected = true );
71 void setSelected( const QString &uid, bool); 73 void setSelected( const QString &uid, bool);
72//US added another method with no parameter, since my moc compiler does not support default parameters. 74//US added another method with no parameter, since my moc compiler does not support default parameters.
73 void setSelected(); 75 void setSelected();
74 76
75 77
76 78
77//US added another method with no parameter, since my moc compiler does not support default parameters. 79//US added another method with no parameter, since my moc compiler does not support default parameters.
78 void refreshView(); 80 void refreshView();
79 void refreshView( const QString &uid); 81 void refreshView( const QString &uid);
80 82
diff --git a/kaddressbook/views/kaddressbookcardview.cpp b/kaddressbook/views/kaddressbookcardview.cpp
index 4babf67..a7bf6c9 100644
--- a/kaddressbook/views/kaddressbookcardview.cpp
+++ b/kaddressbook/views/kaddressbookcardview.cpp
@@ -18,24 +18,25 @@
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23 23
24#include <qdragobject.h> 24#include <qdragobject.h>
25#include <qevent.h> 25#include <qevent.h>
26#include <qiconview.h> 26#include <qiconview.h>
27#include <qlayout.h> 27#include <qlayout.h>
28#include <qstringlist.h> 28#include <qstringlist.h>
29#include <qregexp.h> 29#include <qregexp.h>
30#include <qapplication.h>
30 31
31#include <kabc/addressbook.h> 32#include <kabc/addressbook.h>
32#include <kabc/addressee.h> 33#include <kabc/addressee.h>
33#include <kconfig.h> 34#include <kconfig.h>
34#include <kdebug.h> 35#include <kdebug.h>
35#include <klocale.h> 36#include <klocale.h>
36 37
37#include "kabprefs.h" 38#include "kabprefs.h"
38#include "viewmanager.h" 39#include "viewmanager.h"
39 40
40#include "kaddressbookcardview.h" 41#include "kaddressbookcardview.h"
41 42
@@ -160,24 +161,35 @@ KAddressBookCardView::KAddressBookCardView( KABC::AddressBook *ab,
160 connect(mCardView, SIGNAL(selectionChanged()), 161 connect(mCardView, SIGNAL(selectionChanged()),
161 this, SLOT(addresseeSelected())); 162 this, SLOT(addresseeSelected()));
162 connect(mCardView, SIGNAL(addresseeDropped(QDropEvent*)), 163 connect(mCardView, SIGNAL(addresseeDropped(QDropEvent*)),
163 this, SIGNAL(dropped(QDropEvent*))); 164 this, SIGNAL(dropped(QDropEvent*)));
164 connect(mCardView, SIGNAL(startAddresseeDrag()), 165 connect(mCardView, SIGNAL(startAddresseeDrag()),
165 this, SIGNAL(startDrag())); 166 this, SIGNAL(startDrag()));
166} 167}
167 168
168KAddressBookCardView::~KAddressBookCardView() 169KAddressBookCardView::~KAddressBookCardView()
169{ 170{
170} 171}
171 172
173void KAddressBookCardView::scrollUP()
174{
175 QKeyEvent * ev = new QKeyEvent ( QEvent::KeyPress, Qt::Key_Up, 0,0 );
176 QApplication::postEvent( mCardView, ev );
177
178}
179void KAddressBookCardView::scrollDOWN()
180{
181 QKeyEvent * ev = new QKeyEvent ( QEvent::KeyPress, Qt::Key_Down, 0,0 );
182 QApplication::postEvent( mCardView, ev );
183}
172void KAddressBookCardView::readConfig(KConfig *config) 184void KAddressBookCardView::readConfig(KConfig *config)
173{ 185{
174 KAddressBookView::readConfig(config); 186 KAddressBookView::readConfig(config);
175 187
176 // costum colors? 188 // costum colors?
177 if ( config->readBoolEntry( "EnableCustomColors", false ) ) 189 if ( config->readBoolEntry( "EnableCustomColors", false ) )
178 { 190 {
179 QPalette p( mCardView->palette() ); 191 QPalette p( mCardView->palette() );
180 QColor c = p.color(QPalette::Normal, QColorGroup::Base ); 192 QColor c = p.color(QPalette::Normal, QColorGroup::Base );
181 p.setColor( QPalette::Normal, QColorGroup::Base, config->readColorEntry( "BackgroundColor", &c ) ); 193 p.setColor( QPalette::Normal, QColorGroup::Base, config->readColorEntry( "BackgroundColor", &c ) );
182 c = p.color(QPalette::Normal, QColorGroup::Text ); 194 c = p.color(QPalette::Normal, QColorGroup::Text );
183 p.setColor( QPalette::Normal, QColorGroup::Text, config->readColorEntry( "TextColor", &c ) ); 195 p.setColor( QPalette::Normal, QColorGroup::Text, config->readColorEntry( "TextColor", &c ) );
@@ -281,25 +293,29 @@ void KAddressBookCardView::doSearch( const QString& s,KABC::Field *field )
281 if (re.match((*fieldIt)->value( *it ).lower()) != -1) 293 if (re.match((*fieldIt)->value( *it ).lower()) != -1)
282#endif 294#endif
283 { 295 {
284 new AddresseeCardViewItem(fields(), mShowEmptyFields, 296 new AddresseeCardViewItem(fields(), mShowEmptyFields,
285 addressBook(), *it, mCardView); 297 addressBook(), *it, mCardView);
286 continue; 298 continue;
287 } 299 }
288 } 300 }
289 } 301 }
290 } 302 }
291 mCardView->viewport()->setUpdatesEnabled( true ); 303 mCardView->viewport()->setUpdatesEnabled( true );
292 mCardView->viewport()->update(); 304 mCardView->viewport()->update();
293 // by default nothing is selected 305 if ( mCardView->firstItem() ) {
306 mCardView->setCurrentItem ( mCardView->firstItem() );
307 mCardView->setSelected ( mCardView->firstItem() , true );
308 }
309 else
294 emit selected(QString::null); 310 emit selected(QString::null);
295} 311}
296QStringList KAddressBookCardView::selectedUids() 312QStringList KAddressBookCardView::selectedUids()
297{ 313{
298 QStringList uidList; 314 QStringList uidList;
299 CardViewItem *item; 315 CardViewItem *item;
300 AddresseeCardViewItem *aItem; 316 AddresseeCardViewItem *aItem;
301 317
302 for (item = mCardView->firstItem(); item; item = item->nextItem()) 318 for (item = mCardView->firstItem(); item; item = item->nextItem())
303 { 319 {
304 if (item->isSelected()) 320 if (item->isSelected())
305 { 321 {
diff --git a/kaddressbook/views/kaddressbookcardview.h b/kaddressbook/views/kaddressbookcardview.h
index b8efb01..45a9781 100644
--- a/kaddressbook/views/kaddressbookcardview.h
+++ b/kaddressbook/views/kaddressbookcardview.h
@@ -51,24 +51,26 @@ class KAddressBookCardView : public KAddressBookView
51 Q_OBJECT 51 Q_OBJECT
52 52
53 public: 53 public:
54 KAddressBookCardView( KABC::AddressBook *ab, QWidget *parent, 54 KAddressBookCardView( KABC::AddressBook *ab, QWidget *parent,
55 const char *name = 0 ); 55 const char *name = 0 );
56 virtual ~KAddressBookCardView(); 56 virtual ~KAddressBookCardView();
57 void doSearch( const QString& s,KABC::Field *field ); 57 void doSearch( const QString& s,KABC::Field *field );
58 virtual QStringList selectedUids(); 58 virtual QStringList selectedUids();
59 virtual QString type() const { return "Card"; } 59 virtual QString type() const { return "Card"; }
60 60
61 virtual void readConfig(KConfig *config); 61 virtual void readConfig(KConfig *config);
62 virtual void writeConfig(KConfig *); 62 virtual void writeConfig(KConfig *);
63 virtual void scrollUP();
64 virtual void scrollDOWN();
63 65
64 public slots: 66 public slots:
65 void refresh(QString uid = QString::null); 67 void refresh(QString uid = QString::null);
66 void setSelected(QString uid/*US = QString::null*/, bool selected/*US = true*/); 68 void setSelected(QString uid/*US = QString::null*/, bool selected/*US = true*/);
67//US added an additional method without parameter 69//US added an additional method without parameter
68 void setSelected(); 70 void setSelected();
69 71
70 protected slots: 72 protected slots:
71 void addresseeExecuted(CardViewItem *item); 73 void addresseeExecuted(CardViewItem *item);
72 void addresseeSelected(); 74 void addresseeSelected();
73 75
74 private: 76 private:
diff --git a/kaddressbook/views/kaddressbookiconview.cpp b/kaddressbook/views/kaddressbookiconview.cpp
index fdc0db9..f4c68b8 100644
--- a/kaddressbook/views/kaddressbookiconview.cpp
+++ b/kaddressbook/views/kaddressbookiconview.cpp
@@ -32,24 +32,25 @@
32#include <kiconloader.h> 32#include <kiconloader.h>
33#include <klocale.h> 33#include <klocale.h>
34 34
35#else //KAB_EMBEDDED 35#else //KAB_EMBEDDED
36#endif //KAB_EMBEDDED 36#endif //KAB_EMBEDDED
37 37
38#include <kabc/addressbook.h> 38#include <kabc/addressbook.h>
39#include "kabprefs.h" 39#include "kabprefs.h"
40#include "viewmanager.h" 40#include "viewmanager.h"
41#include "kaddressbookiconview.h" 41#include "kaddressbookiconview.h"
42#include <qlayout.h> 42#include <qlayout.h>
43#include <qregexp.h> 43#include <qregexp.h>
44#include <qapplication.h>
44#include <kglobal.h> 45#include <kglobal.h>
45/*US transfered to the headerfile 46/*US transfered to the headerfile
46class IconViewFactory : public ViewFactory 47class IconViewFactory : public ViewFactory
47{ 48{
48 public: 49 public:
49 KAddressBookView *view( KABC::AddressBook *ab, QWidget *parent, const char *name ) 50 KAddressBookView *view( KABC::AddressBook *ab, QWidget *parent, const char *name )
50 { 51 {
51 return new KAddressBookIconView( ab, parent, name ); 52 return new KAddressBookIconView( ab, parent, name );
52 } 53 }
53 54
54 QString type() const { return "Icon"; } 55 QString type() const { return "Icon"; }
55 56
@@ -202,24 +203,34 @@ KAddressBookIconView::KAddressBookIconView( KABC::AddressBook *ab,
202 connect(mIconView, SIGNAL(selectionChanged()), 203 connect(mIconView, SIGNAL(selectionChanged()),
203 this, SLOT(addresseeSelected())); 204 this, SLOT(addresseeSelected()));
204 connect(mIconView, SIGNAL(addresseeDropped(QDropEvent*)), 205 connect(mIconView, SIGNAL(addresseeDropped(QDropEvent*)),
205 this, SIGNAL(dropped(QDropEvent*))); 206 this, SIGNAL(dropped(QDropEvent*)));
206 connect(mIconView, SIGNAL(startAddresseeDrag()), 207 connect(mIconView, SIGNAL(startAddresseeDrag()),
207 this, SIGNAL(startDrag())); 208 this, SIGNAL(startDrag()));
208} 209}
209 210
210KAddressBookIconView::~KAddressBookIconView() 211KAddressBookIconView::~KAddressBookIconView()
211{ 212{
212} 213}
213 214
215void KAddressBookIconView::scrollUP()
216{
217 QKeyEvent * ev = new QKeyEvent ( QEvent::KeyPress, Qt::Key_Up, 0,0 );
218 QApplication::postEvent( mIconView, ev );
219}
220void KAddressBookIconView::scrollDOWN()
221{
222 QKeyEvent * ev = new QKeyEvent ( QEvent::KeyPress, Qt::Key_Down, 0,0 );
223 QApplication::postEvent( mIconView, ev );
224}
214void KAddressBookIconView::readConfig(KConfig *config) 225void KAddressBookIconView::readConfig(KConfig *config)
215{ 226{
216 KAddressBookView::readConfig(config); 227 KAddressBookView::readConfig(config);
217 228
218//US method executed is part of KIconView 229//US method executed is part of KIconView
219//US disconnect(mIconView, SIGNAL(executed(QIconViewItem *)), 230//US disconnect(mIconView, SIGNAL(executed(QIconViewItem *)),
220//US this, SLOT(addresseeExecuted(QIconViewItem *))); 231//US this, SLOT(addresseeExecuted(QIconViewItem *)));
221 disconnect(mIconView, SIGNAL(selectionChanged(QIconViewItem *)), 232 disconnect(mIconView, SIGNAL(selectionChanged(QIconViewItem *)),
222 this, SLOT(addresseeExecuted(QIconViewItem *))); 233 this, SLOT(addresseeExecuted(QIconViewItem *)));
223 234
224//US method executed is part of KIconView. Use selectionChanged instead 235//US method executed is part of KIconView. Use selectionChanged instead
225/*US 236/*US
@@ -271,24 +282,30 @@ void KAddressBookIconView::doSearch( const QString& s ,KABC::Field *field )
271 if (re.search((*fieldIt)->value( *it ).lower()) != -1) 282 if (re.search((*fieldIt)->value( *it ).lower()) != -1)
272#else 283#else
273 if (re.match((*fieldIt)->value( *it ).lower()) != -1) 284 if (re.match((*fieldIt)->value( *it ).lower()) != -1)
274#endif 285#endif
275 { 286 {
276 mIconList.append( new AddresseeIconViewItem( fields(), addressBook(), *it, mIconView )); 287 mIconList.append( new AddresseeIconViewItem( fields(), addressBook(), *it, mIconView ));
277 continue; 288 continue;
278 } 289 }
279 } 290 }
280 } 291 }
281 } 292 }
282 mIconView->arrangeItemsInGrid( true ); 293 mIconView->arrangeItemsInGrid( true );
294 if ( mIconView->firstItem() ) {
295 mIconView->setCurrentItem ( mIconView->firstItem() );
296 mIconView->setSelected ( mIconView->firstItem() , true );
297 }
298 else
299 emit selected(QString::null);
283} 300}
284QStringList KAddressBookIconView::selectedUids() 301QStringList KAddressBookIconView::selectedUids()
285{ 302{
286 QStringList uidList; 303 QStringList uidList;
287 QIconViewItem *item; 304 QIconViewItem *item;
288 AddresseeIconViewItem *aItem; 305 AddresseeIconViewItem *aItem;
289 306
290 for (item = mIconView->firstItem(); item; item = item->nextItem()) 307 for (item = mIconView->firstItem(); item; item = item->nextItem())
291 { 308 {
292 if (item->isSelected()) 309 if (item->isSelected())
293 { 310 {
294#ifndef KAB_EMBEDDED 311#ifndef KAB_EMBEDDED
diff --git a/kaddressbook/views/kaddressbookiconview.h b/kaddressbook/views/kaddressbookiconview.h
index 963ee7c..acfcd71 100644
--- a/kaddressbook/views/kaddressbookiconview.h
+++ b/kaddressbook/views/kaddressbookiconview.h
@@ -52,24 +52,26 @@ class KAddressBookIconView : public KAddressBookView
52 Q_OBJECT 52 Q_OBJECT
53 53
54 public: 54 public:
55 KAddressBookIconView( KABC::AddressBook *ab, QWidget *parent, 55 KAddressBookIconView( KABC::AddressBook *ab, QWidget *parent,
56 const char *name = 0 ); 56 const char *name = 0 );
57 virtual ~KAddressBookIconView(); 57 virtual ~KAddressBookIconView();
58 58
59 virtual QStringList selectedUids(); 59 virtual QStringList selectedUids();
60 virtual QString type() const { return "Icon"; } 60 virtual QString type() const { return "Icon"; }
61 void doSearch( const QString& s ,KABC::Field *field ); 61 void doSearch( const QString& s ,KABC::Field *field );
62 62
63 virtual void readConfig(KConfig *config); 63 virtual void readConfig(KConfig *config);
64 virtual void scrollUP();
65 virtual void scrollDOWN();
64 66
65 public slots: 67 public slots:
66 void refresh(QString uid = QString::null); 68 void refresh(QString uid = QString::null);
67#ifndef KAB_EMBEDDED 69#ifndef KAB_EMBEDDED
68//MOC_SKIP_BEGIN 70//MOC_SKIP_BEGIN
69 void setSelected(QString uid = QString::null, bool selected = true); 71 void setSelected(QString uid = QString::null, bool selected = true);
70//MOC_SKIP_END 72//MOC_SKIP_END
71#else //KAB_EMBEDDED 73#else //KAB_EMBEDDED
72//US my MOC do not like default parameters ??? 74//US my MOC do not like default parameters ???
73 void setSelected(QString uid, bool selected); 75 void setSelected(QString uid, bool selected);
74#endif //KAB_EMBEDDED 76#endif //KAB_EMBEDDED
75 77
diff --git a/kaddressbook/views/kaddressbooktableview.cpp b/kaddressbook/views/kaddressbooktableview.cpp
index fbfddba..2412170 100644
--- a/kaddressbook/views/kaddressbooktableview.cpp
+++ b/kaddressbook/views/kaddressbooktableview.cpp
@@ -42,25 +42,34 @@ KAddressBookTableView::KAddressBookTableView( KABC::AddressBook *ab,
42 QWidget *parent, const char *name ) 42 QWidget *parent, const char *name )
43 : KAddressBookView( ab, parent, name ) 43 : KAddressBookView( ab, parent, name )
44{ 44{
45 mainLayout = new QVBoxLayout( viewWidget(), 2 ); 45 mainLayout = new QVBoxLayout( viewWidget(), 2 );
46 46
47 // The list view will be created when the config is read. 47 // The list view will be created when the config is read.
48 mListView = 0; 48 mListView = 0;
49} 49}
50 50
51KAddressBookTableView::~KAddressBookTableView() 51KAddressBookTableView::~KAddressBookTableView()
52{ 52{
53} 53}
54 54void KAddressBookTableView::scrollUP()
55{
56 QKeyEvent * ev = new QKeyEvent ( QEvent::KeyPress, Qt::Key_Up, 0,0 );
57 QApplication::postEvent( mListView, ev );
58}
59void KAddressBookTableView::scrollDOWN()
60{
61 QKeyEvent * ev = new QKeyEvent ( QEvent::KeyPress, Qt::Key_Down, 0,0 );
62 QApplication::postEvent( mListView, ev );
63}
55void KAddressBookTableView::reconstructListView() 64void KAddressBookTableView::reconstructListView()
56{ 65{
57 if (mListView) 66 if (mListView)
58 { 67 {
59 disconnect(mListView, SIGNAL(selectionChanged()), 68 disconnect(mListView, SIGNAL(selectionChanged()),
60 this, SLOT(addresseeSelected())); 69 this, SLOT(addresseeSelected()));
61 disconnect(mListView, SIGNAL(executed(QListViewItem*)), 70 disconnect(mListView, SIGNAL(executed(QListViewItem*)),
62 this, SLOT(addresseeExecuted(QListViewItem*))); 71 this, SLOT(addresseeExecuted(QListViewItem*)));
63 disconnect(mListView, SIGNAL(doubleClicked(QListViewItem*)), 72 disconnect(mListView, SIGNAL(doubleClicked(QListViewItem*)),
64 this, SLOT(addresseeExecuted(QListViewItem*))); 73 this, SLOT(addresseeExecuted(QListViewItem*)));
65 disconnect(mListView, SIGNAL(startAddresseeDrag()), this, 74 disconnect(mListView, SIGNAL(startAddresseeDrag()), this,
66 SIGNAL(startDrag())); 75 SIGNAL(startDrag()));
@@ -150,24 +159,29 @@ void KAddressBookTableView::doSearch( const QString& s, KABC::Field *field )
150 if (re.match((*fieldIt)->value( *it ).lower()) != -1) 159 if (re.match((*fieldIt)->value( *it ).lower()) != -1)
151#endif 160#endif
152 { 161 {
153 ContactListViewItem *item = new ContactListViewItem(*it, mListView, addressBook(), fields()); 162 ContactListViewItem *item = new ContactListViewItem(*it, mListView, addressBook(), fields());
154 break; 163 break;
155 } 164 }
156 } 165 }
157 } 166 }
158 } 167 }
159 // Sometimes the background pixmap gets messed up when we add lots 168 // Sometimes the background pixmap gets messed up when we add lots
160 // of items. 169 // of items.
161 mListView->repaint(); 170 mListView->repaint();
171 if ( mListView->firstChild() ) {
172 mListView->setCurrentItem ( mListView->firstChild() );
173 mListView->setSelected ( mListView->firstChild(), true );
174 }
175 else
162 emit selected(QString::null); 176 emit selected(QString::null);
163 177
164} 178}
165void KAddressBookTableView::writeConfig(KConfig *config) 179void KAddressBookTableView::writeConfig(KConfig *config)
166{ 180{
167 KAddressBookView::writeConfig(config); 181 KAddressBookView::writeConfig(config);
168 182
169 mListView->saveLayout(config, config->group()); 183 mListView->saveLayout(config, config->group());
170} 184}
171 185
172void KAddressBookTableView::readConfig(KConfig *config) 186void KAddressBookTableView::readConfig(KConfig *config)
173{ 187{
diff --git a/kaddressbook/views/kaddressbooktableview.h b/kaddressbook/views/kaddressbooktableview.h
index ecfe7a1..865f8d5 100644
--- a/kaddressbook/views/kaddressbooktableview.h
+++ b/kaddressbook/views/kaddressbooktableview.h
@@ -54,24 +54,26 @@ friend class ContactListView;
54 public: 54 public:
55 KAddressBookTableView( KABC::AddressBook *ab, QWidget *parent, 55 KAddressBookTableView( KABC::AddressBook *ab, QWidget *parent,
56 const char *name = 0 ); 56 const char *name = 0 );
57 virtual ~KAddressBookTableView(); 57 virtual ~KAddressBookTableView();
58 58
59 virtual void refresh(QString uid = QString::null); 59 virtual void refresh(QString uid = QString::null);
60 virtual QStringList selectedUids(); 60 virtual QStringList selectedUids();
61 virtual void setSelected(QString uid = QString::null, bool selected = false); 61 virtual void setSelected(QString uid = QString::null, bool selected = false);
62 virtual void readConfig(KConfig *config); 62 virtual void readConfig(KConfig *config);
63 virtual void writeConfig(KConfig *config); 63 virtual void writeConfig(KConfig *config);
64 virtual QString type() const { return "Table"; } 64 virtual QString type() const { return "Table"; }
65 void doSearch( const QString& s ,KABC::Field *field ); 65 void doSearch( const QString& s ,KABC::Field *field );
66 virtual void scrollUP();
67 virtual void scrollDOWN();
66 68
67 public slots: 69 public slots:
68 virtual void reconstructListView(); 70 virtual void reconstructListView();
69 71
70 protected slots: 72 protected slots:
71 /** Called whenever the user selects an addressee in the list view. 73 /** Called whenever the user selects an addressee in the list view.
72 */ 74 */
73 void addresseeSelected(); 75 void addresseeSelected();
74 void addresseeDeleted(); 76 void addresseeDeleted();
75 77
76 /** Called whenever the user executes an addressee. In terms of the 78 /** Called whenever the user executes an addressee. In terms of the
77 * list view, this is probably a double click 79 * list view, this is probably a double click
diff --git a/microkde/klineedit.h b/microkde/klineedit.h
index 65e2f59..70c72d1 100644
--- a/microkde/klineedit.h
+++ b/microkde/klineedit.h
@@ -1,24 +1,47 @@
1#ifndef MINIKDE_KLINEEDIT_H 1#ifndef MINIKDE_KLINEEDIT_H
2#define MINIKDE_KLINEEDIT_H 2#define MINIKDE_KLINEEDIT_H
3 3
4#include <qlineedit.h> 4#include <qlineedit.h>
5 5
6#ifndef DESKTOP_VERSION 6#ifndef DESKTOP_VERSION
7#include <qpe/qpeapplication.h> 7#include <qpe/qpeapplication.h>
8#endif 8#endif
9 9
10 10
11class KLineEdit : public QLineEdit 11class KLineEdit : public QLineEdit
12{ 12{
13
14 Q_OBJECT
15
13 public: 16 public:
14 KLineEdit( QWidget *parent=0, const char *name=0 ) : 17 KLineEdit( QWidget *parent=0, const char *name=0 ) :
15 QLineEdit( parent, name ) { 18 QLineEdit( parent, name )
19 {
16#ifndef DESKTOP_VERSION 20#ifndef DESKTOP_VERSION
17 QPEApplication::setStylusOperation( this, QPEApplication::RightOnHold ); 21 QPEApplication::setStylusOperation( this, QPEApplication::RightOnHold );
18#endif 22#endif
19} 23}
24 void keyPressEvent ( QKeyEvent * e)
25 {
26 switch ( e->key() ) {
27 case Qt::Key_Down:
28 emit scrollDOWN();
29 e->accept();
30 break;
31 case Qt::Key_Up:
32 emit scrollUP();
33 e->accept();
34 break;
35 default:
36 QLineEdit::keyPressEvent ( e );
37 break;
38 }
20 39
40 }
21 void setTrapReturnKey( bool ) {} 41 void setTrapReturnKey( bool ) {}
42 signals:
43 void scrollUP();
44 void scrollDOWN();
22}; 45};
23 46
24#endif 47#endif