summaryrefslogtreecommitdiff
authoreilers <eilers>2002-10-21 16:29:20 (UTC)
committer eilers <eilers>2002-10-21 16:29:20 (UTC)
commit507afe645a86191815a2f85380a452ab6797e383 (patch) (unidiff)
treee69293f25af3d6d8e2125b0f92a097615ddb0a38
parent71c7800e8ae5dc2d701242828ceb8c11bcd96fbe (diff)
downloadopie-507afe645a86191815a2f85380a452ab6797e383.zip
opie-507afe645a86191815a2f85380a452ab6797e383.tar.gz
opie-507afe645a86191815a2f85380a452ab6797e383.tar.bz2
Some usability updates in picker and find..
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/addressbook/TODO7
-rw-r--r--core/pim/addressbook/ablabel.cpp43
-rw-r--r--core/pim/addressbook/abtable.cpp45
-rw-r--r--core/pim/addressbook/abtable.h7
-rw-r--r--core/pim/addressbook/addressbook.cpp70
-rw-r--r--core/pim/addressbook/addressbook.h7
-rw-r--r--core/pim/addressbook/picker.cpp24
-rw-r--r--core/pim/addressbook/picker.h3
8 files changed, 164 insertions, 42 deletions
diff --git a/core/pim/addressbook/TODO b/core/pim/addressbook/TODO
index 4daa2a8..796dc49 100644
--- a/core/pim/addressbook/TODO
+++ b/core/pim/addressbook/TODO
@@ -8,3 +8,3 @@ Important:
8 8
9- Picker: Activated letter schould be more visible 9- Cursor keys should work in detail-view (ablabel)
10- "What's this" should be added 10- "What's this" should be added
@@ -12,2 +12,3 @@ Important:
12- Mail-Icon is missing 12- Mail-Icon is missing
13- Overview window cleanup needed..
13- Finishing of new View functions (List, Phonebook...) 14- Finishing of new View functions (List, Phonebook...)
@@ -32,2 +33,4 @@ Fixed:
32 qpdf has. 33 qpdf has.
33- Adding a configuration dialog \ No newline at end of file 34- Adding a configuration dialog
35- Picker: Activated letter schould be more visible
36- Advanced handling of cursor keys (search..)
diff --git a/core/pim/addressbook/ablabel.cpp b/core/pim/addressbook/ablabel.cpp
index cf1e39f..ea80700 100644
--- a/core/pim/addressbook/ablabel.cpp
+++ b/core/pim/addressbook/ablabel.cpp
@@ -49,5 +49,42 @@ void AbLabel::keyPressEvent( QKeyEvent *e )
49{ 49{
50 if ( e->key() == Qt::Key_F33 ) { 50 // Commonly handled keys
51 emit okPressed(); 51 switch( e->key() ) {
52 } 52 case Qt::Key_Left:
53 qWarning( "Left..");
54 case Qt::Key_F33:
55 qWarning( "OK..");
56 emit okPressed();
57 break;
58 }
59
60
61 if ( /* m_inSearch */ false ) {
62 // Running in seach-mode, therefore we will interprete
63 // some key differently
64 qWarning("Received key in search mode");
65 switch( e->key() ) {
66 case Qt::Key_Up:
67 qWarning("a");
68 // emit signalSearchBackward();
69 break;
70 case Qt::Key_Down:
71 qWarning("b");
72 // emit signalSearchNext();
73 break;
74 }
75
76 } else {
77 qWarning("Received key in NON search mode");
78
79 switch( e->key() ) {
80 case Qt::Key_Up:
81 qWarning("a");
82 // emit signalSearchBackward();
83 break;
84 case Qt::Key_Down:
85 qWarning("b");
86 // emit signalSearchNext();
87 break;
88 }
89 }
53} 90}
diff --git a/core/pim/addressbook/abtable.cpp b/core/pim/addressbook/abtable.cpp
index d4dcf7b..97b26db 100644
--- a/core/pim/addressbook/abtable.cpp
+++ b/core/pim/addressbook/abtable.cpp
@@ -132,2 +132,3 @@ AbTable::AbTable( const QValueList<int> *order, QWidget *parent, const char *nam
132 mCat( 0 ), 132 mCat( 0 ),
133 m_inSearch (false),
133 m_contactdb ("addressbook", 0l, 0l, false) // Handle syncing myself.. ! 134 m_contactdb ("addressbook", 0l, 0l, false) // Handle syncing myself.. !
@@ -262,10 +263,36 @@ void AbTable::keyPressEvent( QKeyEvent *e )
262 263
263 switch( e->key() ) { 264 if ( m_inSearch ) {
264 case Qt::Key_Space: 265 // Running in seach-mode, therefore we will interprete
265 case Qt::Key_Return: 266 // some key differently
266 case Qt::Key_Enter: 267 qWarning("Received key in search mode");
267 emit details(); 268 switch( e->key() ) {
268 break; 269 case Qt::Key_Space:
269 default: 270 case Qt::Key_Return:
270 QTable::keyPressEvent( e ); 271 case Qt::Key_Enter:
272 emit details();
273 break;
274 case Qt::Key_Up:
275 qWarning("a");
276 emit signalSearchBackward();
277 break;
278 case Qt::Key_Down:
279 qWarning("b");
280 emit signalSearchNext();
281 break;
282 default:
283 QTable::keyPressEvent( e );
284 }
285
286 } else {
287 qWarning("Received key in NON search mode");
288
289 switch( e->key() ) {
290 case Qt::Key_Space:
291 case Qt::Key_Return:
292 case Qt::Key_Enter:
293 emit details();
294 break;
295 default:
296 QTable::keyPressEvent( e );
297 }
271 } 298 }
@@ -685,3 +712,3 @@ void AbTable::slotDoFind( const QString &findString, bool caseSensitive, bool us
685 emit signalNotFound(); 712 emit signalNotFound();
686 713
687 wrapAround = !wrapAround; 714 wrapAround = !wrapAround;
diff --git a/core/pim/addressbook/abtable.h b/core/pim/addressbook/abtable.h
index b445874..35a1e9e 100644
--- a/core/pim/addressbook/abtable.h
+++ b/core/pim/addressbook/abtable.h
@@ -100,2 +100,5 @@ public:
100 100
101 void inSearch() { m_inSearch = true; }
102 void offSearch() { m_inSearch = false; }
103
101public slots: 104public slots:
@@ -108,2 +111,4 @@ signals:
108 void signalWrapAround(); 111 void signalWrapAround();
112 void signalSearchBackward(); // Signalled if backward search is requested
113 void signalSearchNext(); // Singalled if forward search is requested
109 114
@@ -150,2 +155,4 @@ private:
150 155
156 bool m_inSearch;
157
151 OContactAccess m_contactdb; 158 OContactAccess m_contactdb;
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
@@ -80,3 +80,3 @@ AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name,
80 useRegExp(false), 80 useRegExp(false),
81 DoSignalWrapAround(false), 81 doNotifyWrapAround(true),
82 caseSensitive(false), 82 caseSensitive(false),
@@ -87,2 +87,9 @@ AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name,
87 87
88 // Read Config settings
89 Config cfg("AddressBook");
90 cfg.setGroup("Search");
91 useRegExp = cfg.readBoolEntry( "useRegExp" );
92 caseSensitive = cfg.readBoolEntry( "caseSensitive" );
93 doNotifyWrapAround = cfg.readBoolEntry( "doNotifyWrapAround" );
94
88 initFields(); 95 initFields();
@@ -163,3 +170,3 @@ AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name,
163 a->addTo( searchBar ); 170 a->addTo( searchBar );
164 171
165 a = new QAction( tr( "Write Mail To" ), Resource::loadPixmap( "qtmail/reply" ), 172 a = new QAction( tr( "Write Mail To" ), Resource::loadPixmap( "qtmail/reply" ),
@@ -225,3 +232,9 @@ AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name,
225 connect( abList, SIGNAL( details() ), this, SLOT( slotListView() ) ); 232 connect( abList, SIGNAL( details() ), this, SLOT( slotListView() ) );
226 connect( abList, SIGNAL(currentChanged(int,int)), this, SLOT(slotUpdateToolbar()) ); 233 connect( abList, SIGNAL( currentChanged(int,int) ), this, SLOT( slotUpdateToolbar() ) );
234 connect( abList, SIGNAL( signalSearchNext() ), this, SLOT( slotFindNext() ) );
235 connect( abList, SIGNAL( signalSearchBackward() ), this, SLOT( slotFindPrevious() ) );
236
237 // Maybe we should react on Wraparound and notfound ?
238 QObject::connect( abList, SIGNAL(signalNotFound()), this, SLOT(slotNotFound()) );
239 QObject::connect( abList, SIGNAL(signalWrapAround()), this, SLOT(slotWrapAround()) );
227 240
@@ -260,9 +273,2 @@ AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name,
260 abList->setCurrentCell( 0, 0 ); 273 abList->setCurrentCell( 0, 0 );
261
262 // Read Config settings
263 Config cfg("AddressBook");
264 cfg.setGroup("Search");
265 useRegExp = cfg.readBoolEntry( "useRegExp" );
266 caseSensitive = cfg.readBoolEntry( "caseSensitive" );
267 DoSignalWrapAround = cfg.readBoolEntry( "signalWrapAround" );
268 274
@@ -277,3 +283,3 @@ void AddressbookWindow::slotConfig()
277 dlg -> setBeCaseSensitive( caseSensitive ); 283 dlg -> setBeCaseSensitive( caseSensitive );
278 dlg -> setSignalWrapAround( DoSignalWrapAround ); 284 dlg -> setSignalWrapAround( doNotifyWrapAround );
279 dlg -> showMaximized(); 285 dlg -> showMaximized();
@@ -283,3 +289,3 @@ void AddressbookWindow::slotConfig()
283 caseSensitive = dlg -> beCaseSensitive(); 289 caseSensitive = dlg -> beCaseSensitive();
284 DoSignalWrapAround = dlg -> signalWrapAround(); 290 doNotifyWrapAround = dlg -> signalWrapAround();
285 } 291 }
@@ -375,3 +381,3 @@ AddressbookWindow::~AddressbookWindow()
375 cfg.writeEntry("caseSensitive", caseSensitive); 381 cfg.writeEntry("caseSensitive", caseSensitive);
376 cfg.writeEntry("signalWrapAround", DoSignalWrapAround); 382 cfg.writeEntry("doNotifyWrapAround", doNotifyWrapAround);
377} 383}
@@ -658,5 +664,3 @@ void AddressbookWindow::slotPersonalView()
658 actionTrash->setEnabled(TRUE); 664 actionTrash->setEnabled(TRUE);
659#ifndef MAKE_FOR_SHARP_ROM
660 actionFind->setEnabled(TRUE); 665 actionFind->setEnabled(TRUE);
661#endif
662 slotUpdateToolbar(); // maybe some of the above could be moved there 666 slotUpdateToolbar(); // maybe some of the above could be moved there
@@ -930,2 +934,3 @@ void AddressbookWindow::slotFindOpen()
930 searchBar->show(); 934 searchBar->show();
935 abList -> inSearch();
931 searchEdit->setFocus(); 936 searchEdit->setFocus();
@@ -935,2 +940,3 @@ void AddressbookWindow::slotFindClose()
935 searchBar->hide(); 940 searchBar->hide();
941 abList -> offSearch();
936 abList->setFocus(); 942 abList->setFocus();
@@ -942,8 +948,16 @@ void AddressbookWindow::slotFindNext()
942 948
943 // Maybe we should react on Wraparound and notfound ?
944 // QObject::connect( abList, SIGNAL(signalNotFound()), &frmFind, SLOT(slotNotFound()) );
945 // QObject::connect( abList, SIGNAL(signalWrapAround()), &frmFind, SLOT(slotWrapAround()) );
946
947 abList->slotDoFind( searchEdit->text(), caseSensitive, useRegExp, false); 949 abList->slotDoFind( searchEdit->text(), caseSensitive, useRegExp, false);
948 950
951 searchEdit->clearFocus();
952 abList->setFocus();
953 if ( abList->numSelections() )
954 abList->clearSelection();
955
956}
957void AddressbookWindow::slotFindPrevious()
958{
959 if ( centralWidget() == abView() )
960 showList();
961
962 abList->slotDoFind( searchEdit->text(), caseSensitive, useRegExp, true);
949 963
@@ -961,2 +975,20 @@ void AddressbookWindow::slotFind()
961 975
976void AddressbookWindow::slotNotFound()
977{
978 qWarning("Got notfound signal !");
979 QMessageBox::information( this, tr( "Not Found" ),
980 tr( "Unable to find a contact for this" ) + "\n"
981 + tr( "search pattern !" ) );
982
983
984}
985void AddressbookWindow::slotWrapAround()
986{
987 qWarning("Got wrap signal !");
988 if ( doNotifyWrapAround )
989 QMessageBox::information( this, tr( "End of list" ),
990 tr( "End of list. Wrap around now.. !" ) + "\n" );
991
992}
993
962void AddressbookWindow::slotSetCategory( int c ) 994void AddressbookWindow::slotSetCategory( int c )
diff --git a/core/pim/addressbook/addressbook.h b/core/pim/addressbook/addressbook.h
index 18b083f..299ed70 100644
--- a/core/pim/addressbook/addressbook.h
+++ b/core/pim/addressbook/addressbook.h
@@ -64,2 +64,4 @@ public slots:
64 void setDocument( const QString & ); 64 void setDocument( const QString & );
65 void slotFindNext();
66 void slotFindPrevious();
65#ifdef __DEBUG_RELEASE 67#ifdef __DEBUG_RELEASE
@@ -89,3 +91,4 @@ private slots:
89 void slotFind(); 91 void slotFind();
90 void slotFindNext(); 92 void slotNotFound();
93 void slotWrapAround();
91 94
@@ -114,3 +117,3 @@ private:
114 bool useRegExp; 117 bool useRegExp;
115 bool DoSignalWrapAround; 118 bool doNotifyWrapAround;
116 bool caseSensitive; 119 bool caseSensitive;
diff --git a/core/pim/addressbook/picker.cpp b/core/pim/addressbook/picker.cpp
index a165451..7f4acb0 100644
--- a/core/pim/addressbook/picker.cpp
+++ b/core/pim/addressbook/picker.cpp
@@ -77,3 +77,12 @@ void PickerLabel::clearLetter()
77 77
78void PickerLabel::mouseReleaseEvent( QMouseEvent *e ) 78void PickerLabel::mousePressEvent( QMouseEvent* e )
79{
80 // If one pickerlabel is was, and an other is now selected, we
81 // have to simulate the releaseevent.. Otherwise the new label
82 // will not get a highlighted letter..
83 // Maybe there is a more intelligent solution, but this works and I am tired.. (se)
84 if ( ( currentLetter == 0 ) && ( lastLetter != '\0' ) ) mouseReleaseEvent( e );
85}
86
87void PickerLabel::mouseReleaseEvent( QMouseEvent* /* e */ )
79{ 88{
@@ -86,5 +95,5 @@ void PickerLabel::mouseReleaseEvent( QMouseEvent *e )
86 case 0: 95 case 0:
87 tmpStr = "<qt><font color=\"#7F0000\">"; 96 tmpStr = "<qt><u><font color=\"#7F0000\">";
88 tmpStr += letter1; 97 tmpStr += letter1;
89 tmpStr += "</font>"; 98 tmpStr += "</font></u>";
90 tmpStr += letter2; 99 tmpStr += letter2;
@@ -103,5 +112,5 @@ void PickerLabel::mouseReleaseEvent( QMouseEvent *e )
103 tmpStr += letter1; 112 tmpStr += letter1;
104 tmpStr += "<font color=\"#7F0000\">"; 113 tmpStr += "<u><font color=\"#7F0000\">";
105 tmpStr += letter2; 114 tmpStr += letter2;
106 tmpStr += "</font>"; 115 tmpStr += "</font></u>";
107 tmpStr += letter3; 116 tmpStr += letter3;
@@ -120,5 +129,5 @@ void PickerLabel::mouseReleaseEvent( QMouseEvent *e )
120 tmpStr += letter2; 129 tmpStr += letter2;
121 tmpStr += "<font color=\"#7F0000\">"; 130 tmpStr += "<u><font color=\"#7F0000\">";
122 tmpStr += letter3; 131 tmpStr += letter3;
123 tmpStr += "</font></qt>"; 132 tmpStr += "</font></u></qt>";
124 133
@@ -226,2 +235,3 @@ void LetterPicker::newLetter( char letter )
226{ 235{
236 qWarning("LetterClicked");
227 emit letterClicked( letter ); 237 emit letterClicked( letter );
diff --git a/core/pim/addressbook/picker.h b/core/pim/addressbook/picker.h
index de5bd9d..d76d582 100644
--- a/core/pim/addressbook/picker.h
+++ b/core/pim/addressbook/picker.h
@@ -33,2 +33,3 @@ Q_OBJECT
33 void mouseReleaseEvent( QMouseEvent *e ); 33 void mouseReleaseEvent( QMouseEvent *e );
34 void mousePressEvent( QMouseEvent *e );
34 35
@@ -50,2 +51,3 @@ Q_OBJECT
50 ~LetterPicker(); 51 ~LetterPicker();
52
51 53
@@ -59,2 +61,3 @@ Q_OBJECT
59 PickerLabel *lblABC, *lblDEF, *lblGHI, *lblJKL, *lblMNO, *lblPQR, *lblSTU, *lblVWX, *lblYZ; 61 PickerLabel *lblABC, *lblDEF, *lblGHI, *lblJKL, *lblMNO, *lblPQR, *lblSTU, *lblVWX, *lblYZ;
62 PickerLabel *lastLabel;
60 63