summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/addressbook/abtable.cpp1
-rw-r--r--core/pim/addressbook/abview.cpp44
-rw-r--r--core/pim/addressbook/addressbook.cpp7
3 files changed, 25 insertions, 27 deletions
diff --git a/core/pim/addressbook/abtable.cpp b/core/pim/addressbook/abtable.cpp
index 0be7d1a..49e66ad 100644
--- a/core/pim/addressbook/abtable.cpp
+++ b/core/pim/addressbook/abtable.cpp
@@ -146,33 +146,32 @@ void AbTable::init()
146 horizontalHeader()->setLabel( 1, tr( "Contact" )); 146 horizontalHeader()->setLabel( 1, tr( "Contact" ));
147 setLeftMargin( 0 ); 147 setLeftMargin( 0 );
148 verticalHeader()->hide(); 148 verticalHeader()->hide();
149 columnVisible = true; 149 columnVisible = true;
150} 150}
151 151
152void AbTable::setContacts( const Opie::OPimContactAccess::List& viewList ) 152void AbTable::setContacts( const Opie::OPimContactAccess::List& viewList )
153{ 153{
154 odebug << "AbTable::setContacts()" << oendl; 154 odebug << "AbTable::setContacts()" << oendl;
155 155
156 clear(); 156 clear();
157 m_viewList = viewList; 157 m_viewList = viewList;
158 158
159 setSorting( false ); 159 setSorting( false );
160 setPaintingEnabled( FALSE ); 160 setPaintingEnabled( FALSE );
161 161
162 Opie::OPimContactAccess::List::Iterator it;
163 setNumRows( m_viewList.count() ); 162 setNumRows( m_viewList.count() );
164 //int row = 0; 163 //int row = 0;
165 // for ( it = m_viewList.begin(); it != m_viewList.end(); ++it ) 164 // for ( it = m_viewList.begin(); it != m_viewList.end(); ++it )
166 // insertIntoTable( *it, row++ ); 165 // insertIntoTable( *it, row++ );
167 166
168 // setSorting( true ); 167 // setSorting( true );
169 168
170 // resort(); 169 // resort();
171 170
172 updateVisible(); 171 updateVisible();
173 172
174 setPaintingEnabled( TRUE ); 173 setPaintingEnabled( TRUE );
175 174
176} 175}
177 176
178void AbTable::setOrderedList( const QValueList<int> ordered ) 177void AbTable::setOrderedList( const QValueList<int> ordered )
diff --git a/core/pim/addressbook/abview.cpp b/core/pim/addressbook/abview.cpp
index 6be19f8..34035fd 100644
--- a/core/pim/addressbook/abview.cpp
+++ b/core/pim/addressbook/abview.cpp
@@ -29,33 +29,33 @@
29// Is defined in LibQPE 29// Is defined in LibQPE
30extern QString categoryFileName(); 30extern QString categoryFileName();
31 31
32QString addressbookPersonalVCardName() 32QString addressbookPersonalVCardName()
33{ 33{
34 QString filename = Global::applicationFileName("addressbook", 34 QString filename = Global::applicationFileName("addressbook",
35 "businesscard.vcf"); 35 "businesscard.vcf");
36 return filename; 36 return filename;
37} 37}
38 38
39 39
40AbView::AbView ( QWidget* parent, const QValueList<int>& ordered ): 40AbView::AbView ( QWidget* parent, const QValueList<int>& ordered ):
41 QWidget(parent), 41 QWidget(parent),
42 mCat(0), 42 mCat(0),
43 m_inSearch( false ), 43 m_inSearch( false ),
44 m_inPersonal( false ), 44 m_inPersonal( false ),
45 m_curr_category( -1 ), 45 m_curr_category( 0 ),
46 m_curr_View( TableView ), 46 m_curr_View( TableView ),
47 m_prev_View( TableView ), 47 m_prev_View( TableView ),
48 m_curr_Contact ( 0 ), 48 m_curr_Contact ( 0 ),
49 m_contactdb ( 0l ), 49 m_contactdb ( 0l ),
50 m_storedDB ( 0l ), 50 m_storedDB ( 0l ),
51 m_viewStack( 0l ), 51 m_viewStack( 0l ),
52 m_abTable( 0l ), 52 m_abTable( 0l ),
53 m_orderedFields( ordered ) 53 m_orderedFields( ordered )
54{ 54{
55 odebug << "AbView::c'tor" << oendl; 55 odebug << "AbView::c'tor" << oendl;
56 // Load default database and handle syncing myself.. ! 56 // Load default database and handle syncing myself.. !
57 m_contactdb = new Opie::OPimContactAccess ( "addressbook", 0l, 0l, false ); 57 m_contactdb = new Opie::OPimContactAccess ( "addressbook", 0l, 0l, false );
58 m_contactdb -> setReadAhead( 16 ); // Use ReadAhead-Cache if available 58 m_contactdb -> setReadAhead( 16 ); // Use ReadAhead-Cache if available
59 mCat.load( categoryFileName() ); 59 mCat.load( categoryFileName() );
60 60
61 // Create Layout and put WidgetStack into it. 61 // Create Layout and put WidgetStack into it.
@@ -144,142 +144,138 @@ Opie::OPimContact AbView::currentEntry()
144} 144}
145 145
146bool AbView::save() 146bool AbView::save()
147{ 147{
148 //odebug << "AbView::Save data" << oendl; 148 //odebug << "AbView::Save data" << oendl;
149 149
150 return m_contactdb->save(); 150 return m_contactdb->save();
151} 151}
152 152
153void AbView::load() 153void AbView::load()
154{ 154{
155 odebug << "AbView::Load data" << oendl; 155 odebug << "AbView::Load data" << oendl;
156 156
157 // Letter Search is stopped at this place 157 // Letter Search is stopped at this place
158 emit signalClearLetterPicker(); 158 emit signalClearLetterPicker();
159 159
160 if ( m_curr_category == 0 ) { 160 m_list = m_contactdb->sorted( true, Opie::OPimContactAccess::SortFileAsName,
161 // Show unfiled 161 Opie::OPimContactAccess::FilterCategory, m_curr_category );
162 m_list = m_contactdb->sorted( true, Opie::OPimContactAccess::SortFileAsName, 162
163 Opie::OPimContactAccess::DoNotShowWithCategory, 0 );
164 } elseif ( m_curr_category != -1 ){
165 // Just show selected category
166 m_list = m_contactdb->sorted( true, Opie::OPimContactAccess::SortFileAsName,
167 Opie::OPimBase::FilterCategory, m_curr_category );
168 } else {
169 // Show all categories
170 m_list = m_contactdb->sorted( true, Opie::OPimContactAccess::SortFileAsName,
171 Opie::OPimBase::FilterOff, 0 );
172 }
173
174 // if ( m_curr_category != -1 ) 163 // if ( m_curr_category != -1 )
175 // clearForCategory(); 164 // clearForCategory();
176 165
177 odebug << "Number of contacts: " << m_list.count() << oendl; 166 odebug << "Number of contacts: " << m_list.count() << oendl;
178 167
179 updateView( true ); 168 updateView( true );
180 169
181} 170}
182 171
183void AbView::reload() 172void AbView::reload()
184{ 173{
185 odebug << "AbView::::reload()" << oendl; 174 odebug << "AbView::::reload()" << oendl;
186 175
187 m_contactdb->reload(); 176 m_contactdb->reload();
188 load(); 177 load();
189} 178}
190 179
191void AbView::clear() 180void AbView::clear()
192{ 181{
193 // :SX 182 // :SX
194} 183}
195 184
196void AbView::setShowByCategory( const QString& cat ) 185void AbView::setShowByCategory( const QString& cat )
197{ 186{
198 odebug << "AbView::setShowCategory( const QString& cat )" << oendl; 187 odebug << "AbView::setShowCategory( const QString& cat )" << oendl;
199 188
200 int intCat = 0; 189 int intCat = 0;
201 190
202 // All (cat == NULL) will be stored as -1 191 // Unfiled will be stored as -1
203 if ( cat.isNull() ) 192 if ( cat == tr( "Unfiled" ) )
204 intCat = -1; 193 intCat = -1;
194 else if ( cat.isNull() )
195 intCat = 0;
205 else 196 else
206 intCat = mCat.id("Contacts", cat ); 197 intCat = mCat.id("Contacts", cat );
207 198
208 // Just do anything if we really change the category 199 // Just do anything if we really change the category
209 if ( intCat != m_curr_category ){ 200 if ( intCat != m_curr_category ){
210 // odebug << "Categories: Selected " << cat << ".. Number: " 201 // odebug << "Categories: Selected " << cat << ".. Number: "
211 // << m_curr_category << oendl; 202 // << m_curr_category << oendl;
212 203
213 m_curr_category = intCat; 204 m_curr_category = intCat;
214 emit signalClearLetterPicker(); 205 emit signalClearLetterPicker();
215
216 load(); 206 load();
217 } 207 }
208 m_curr_category = intCat;
218 209
219} 210}
220 211
221void AbView::setShowToView( Views view ) 212void AbView::setShowToView( Views view )
222{ 213{
223 odebug << "void AbView::setShowToView( View " << view << " )" << oendl; 214 odebug << "void AbView::setShowToView( View " << view << " )" << oendl;
224 215
225 if ( m_curr_View != view ){ 216 if ( m_curr_View != view ){
226 odebug << "Change the View (Category is: " << m_curr_category << ")" << oendl; 217 odebug << "Change the View (Category is: " << m_curr_category << ")" << oendl;
227 m_prev_View = m_curr_View; 218 m_prev_View = m_curr_View;
228 m_curr_View = view; 219 m_curr_View = view;
229 220
230 updateView(); 221 updateView();
231 } 222 }
232 223
233} 224}
234 225
235void AbView::setShowByLetter( char c, AbConfig::LPSearchMode mode ) 226void AbView::setShowByLetter( char c, AbConfig::LPSearchMode mode )
236{ 227{
237 odebug << "void AbView::setShowByLetter( " << c << ", " << mode << " )" << oendl; 228 odebug << "void AbView::setShowByLetter( " << c << ", " << mode << " )" << oendl;
238 229
239 assert( mode < AbConfig::LASTELEMENT ); 230 assert( mode < AbConfig::LASTELEMENT );
240 231
241 Opie::OPimContact query; 232 Opie::OPimContact query;
242 if ( c == 0 ){ 233 if ( c == 0 ){
243 load(); 234 load();
244 return; 235 return;
245 }else{ 236 }else{
246 // If the current Backend is unable to solve the query, we will 237 // If the current Backend is unable to solve the query, we will
247 // ignore the request .. 238 // ignore the request ..
248 if ( ! m_contactdb->hasQuerySettings( Opie::OPimContactAccess::WildCards | 239 if ( ! m_contactdb->hasQuerySettings( Opie::OPimContactAccess::WildCards |
249 Opie::OPimContactAccess::IgnoreCase ) ){ 240 Opie::OPimContactAccess::IgnoreCase ) ){
250 owarn << "Tried to access queryByExample which is not supported by the current backend!!" << oendl; 241 owarn << "Tried to access queryByExample which is not supported by the current backend!!" << oendl;
251 owarn << "I have to ignore this access!" << oendl; 242 owarn << "I have to ignore this access!" << oendl;
252 return; 243 return;
253 } 244 }
254 245
255 switch( mode ){ 246 switch( mode ){
256 case AbConfig::LastName: 247 case AbConfig::LastName:
257 query.setLastName( QString("%1*").arg(c) ); 248 query.setLastName( QString("%1*").arg(c) );
258 break; 249 break;
259 case AbConfig::FileAs: 250 case AbConfig::FileAs:
260 query.setFileAs( QString("%1*").arg(c) ); 251 query.setFileAs( QString("%1*").arg(c) );
261 break; 252 break;
262 default: 253 default:
263 owarn << "Unknown Searchmode for AbView::setShowByLetter ! -> " << mode << oendl 254 owarn << "Unknown Searchmode for AbView::setShowByLetter ! -> " << mode << oendl
264 << "I will ignore it.." << oendl; 255 << "I will ignore it.." << oendl;
265 return; 256 return;
266 } 257 }
267 m_list = m_contactdb->queryByExample( query, Opie::OPimContactAccess::WildCards | Opie::OPimContactAccess::IgnoreCase ); 258 m_list = m_contactdb->queryByExample( query, Opie::OPimContactAccess::WildCards | Opie::OPimContactAccess::IgnoreCase );
268 if ( m_curr_category != -1 ) 259
260 if ( m_curr_category != 0 )
269 clearForCategory(); 261 clearForCategory();
262
263 // Sort filtered results
264 m_list = m_contactdb->sorted( m_list, true, Opie::OPimContactAccess::SortFileAsName,
265 Opie::OPimContactAccess::FilterCategory, m_curr_category );
270 m_curr_Contact = 0; 266 m_curr_Contact = 0;
271 } 267 }
272 updateView( true ); 268 updateView( true );
273} 269}
274 270
275void AbView::setListOrder( const QValueList<int>& ordered ) 271void AbView::setListOrder( const QValueList<int>& ordered )
276{ 272{
277 m_orderedFields = ordered; 273 m_orderedFields = ordered;
278 if ( m_abTable ){ 274 if ( m_abTable ){
279 m_abTable->setOrderedList( ordered ); 275 m_abTable->setOrderedList( ordered );
280 m_abTable->refresh(); 276 m_abTable->refresh();
281 } 277 }
282 updateView(); 278 updateView();
283} 279}
284 280
285 281
@@ -365,33 +361,33 @@ void AbView::slotDoFind( const QString &str, bool caseSensitive, bool useRegExp,
365 QRegExp r( str ); 361 QRegExp r( str );
366 r.setCaseSensitive( caseSensitive ); 362 r.setCaseSensitive( caseSensitive );
367 r.setWildcard( !useRegExp ); 363 r.setWildcard( !useRegExp );
368 364
369 // Get all matching entries out of the database 365 // Get all matching entries out of the database
370 m_list = m_contactdb->matchRegexp( r ); 366 m_list = m_contactdb->matchRegexp( r );
371 367
372 //odebug << "Found: " << m_list.count() << oendl; 368 //odebug << "Found: " << m_list.count() << oendl;
373 if ( m_list.count() == 0 ){ 369 if ( m_list.count() == 0 ){
374 emit signalNotFound(); 370 emit signalNotFound();
375 return; 371 return;
376 } 372 }
377 373
378 // Now remove all contacts with wrong category (if any selected) 374 // Now remove all contacts with wrong category (if any selected)
379 // This algorithm is a litte bit ineffective, but 375 // This algorithm is a litte bit ineffective, but
380 // we will not have a lot of matching entries.. 376 // we will not have a lot of matching entries..
381 if ( m_curr_category != -1 ) 377 if ( m_curr_category != 0 )
382 clearForCategory(); 378 clearForCategory();
383 379
384 // Now show all found entries 380 // Now show all found entries
385 updateView( true ); 381 updateView( true );
386} 382}
387 383
388void AbView::offSearch() 384void AbView::offSearch()
389{ 385{
390 m_inSearch = false; 386 m_inSearch = false;
391 387
392 load(); 388 load();
393} 389}
394 390
395void AbView::slotSwitch(){ 391void AbView::slotSwitch(){
396 //odebug << "AbView::slotSwitch()" << oendl; 392 //odebug << "AbView::slotSwitch()" << oendl;
397 393
@@ -405,56 +401,56 @@ void AbView::slotSwitch(){
405 odebug << "Switching to TableView" << oendl; 401 odebug << "Switching to TableView" << oendl;
406 m_curr_View = TableView; 402 m_curr_View = TableView;
407 break; 403 break;
408 } 404 }
409 updateView(); 405 updateView();
410 406
411} 407}
412 408
413// END: Slots 409// END: Slots
414 410
415void AbView::clearForCategory() 411void AbView::clearForCategory()
416{ 412{
417 Opie::OPimContactAccess::List::Iterator it; 413 Opie::OPimContactAccess::List::Iterator it;
418 // Now remove all contacts with wrong category if any category selected 414 // Now remove all contacts with wrong category if any category selected
419 415
420 Opie::OPimContactAccess::List allList = m_list; 416 Opie::OPimContactAccess::List allList = m_list;
421 if ( m_curr_category != -1 ){ 417 if ( m_curr_category != 0 ){
422 for ( it = allList.begin(); it != allList.end(); ++it ){ 418 for ( it = allList.begin(); it != allList.end(); ++it ){
423 if ( !contactCompare( *it, m_curr_category ) ){ 419 if ( !contactCompare( *it, m_curr_category ) ){
424 //odebug << "Removing " << (*it).uid() << oendl; 420 //odebug << "Removing " << (*it).uid() << oendl;
425 m_list.remove( (*it).uid() ); 421 m_list.remove( (*it).uid() );
426 } 422 }
427 } 423 }
428 } 424 }
429 425
430} 426}
431 427
432bool AbView::contactCompare( const Opie::OPimContact &cnt, int category ) 428bool AbView::contactCompare( const Opie::OPimContact &cnt, int category )
433{ 429{
434 //odebug << "bool AbView::contactCompare( const Opie::OPimContact &cnt, " 430 //odebug << "bool AbView::contactCompare( const Opie::OPimContact &cnt, "
435 // << category << " )" << oendl; 431 // << category << " )" << oendl;
436 432
437 bool returnMe; 433 bool returnMe;
438 QArray<int> cats; 434 QArray<int> cats;
439 cats = cnt.categories(); 435 cats = cnt.categories();
440 436
441 //odebug << "Number of categories: " << cats.count() << oendl; 437 //odebug << "Number of categories: " << cats.count() << oendl;
442 438
443 returnMe = false; 439 returnMe = false;
444 if ( cats.count() == 0 && category == 0 ) 440 if ( cats.count() == 0 && category == -1 )
445 // Contacts with no category will just shown on "All" and "Unfiled" 441 // Contacts with no category will just shown on "All" and "Unfiled"
446 returnMe = true; 442 returnMe = true;
447 else { 443 else {
448 int i; 444 int i;
449 for ( i = 0; i < int(cats.count()); i++ ) { 445 for ( i = 0; i < int(cats.count()); i++ ) {
450 //odebug << "Comparing " << cats[i] << " with " << category << oendl; 446 //odebug << "Comparing " << cats[i] << " with " << category << oendl;
451 if ( cats[i] == category ) { 447 if ( cats[i] == category ) {
452 returnMe = true; 448 returnMe = true;
453 break; 449 break;
454 } 450 }
455 } 451 }
456 } 452 }
457 //odebug << "Return: " << returnMe << oendl; 453 //odebug << "Return: " << returnMe << oendl;
458 return returnMe; 454 return returnMe;
459} 455}
460 456
diff --git a/core/pim/addressbook/addressbook.cpp b/core/pim/addressbook/addressbook.cpp
index 6984501..faae0a9 100644
--- a/core/pim/addressbook/addressbook.cpp
+++ b/core/pim/addressbook/addressbook.cpp
@@ -841,34 +841,37 @@ void AddressbookWindow::slotNotFound()
841 841
842} 842}
843void AddressbookWindow::slotWrapAround() 843void AddressbookWindow::slotWrapAround()
844{ 844{
845 odebug << "Got wrap signal!" << oendl; 845 odebug << "Got wrap signal!" << oendl;
846 // if ( doNotifyWrapAround ) 846 // if ( doNotifyWrapAround )
847 // QMessageBox::information( this, tr( "End of list" ), 847 // QMessageBox::information( this, tr( "End of list" ),
848 // tr( "End of list. Wrap around now...!" ) + "\n" ); 848 // tr( "End of list. Wrap around now...!" ) + "\n" );
849 849
850} 850}
851 851
852void AddressbookWindow::slotSetCategory( const QString &category ) 852void AddressbookWindow::slotSetCategory( const QString &category )
853{ 853{
854 odebug << "void AddressbookWindow::slotSetCategory( " << category << " )" << oendl; 854 odebug << "void AddressbookWindow::slotSetCategory( " << category << " )" << oendl;
855 855
856 // Tell the view about the selected category 856 // Tell the view about the selected category
857 m_config.setCategory( category ); 857 QString cat = category;
858 m_abView -> setShowByCategory( category ); 858 if ( cat == tr( "All" ) )
859 cat = QString::null;
860 m_config.setCategory( cat );
861 m_abView -> setShowByCategory( cat );
859} 862}
860 863
861void AddressbookWindow::slotViewSwitched( int view ) 864void AddressbookWindow::slotViewSwitched( int view )
862{ 865{
863 odebug << "void AddressbookWindow::slotViewSwitched( " << view << " )" << oendl; 866 odebug << "void AddressbookWindow::slotViewSwitched( " << view << " )" << oendl;
864 867
865 // Tell the view about the selected view 868 // Tell the view about the selected view
866 m_abView -> setShowToView ( (AbView::Views) view ); 869 m_abView -> setShowToView ( (AbView::Views) view );
867 active_view = view; 870 active_view = view;
868} 871}
869 872
870 873
871void AddressbookWindow::slotListView() 874void AddressbookWindow::slotListView()
872{ 875{
873 slotViewSwitched( AbView::TableView ); 876 slotViewSwitched( AbView::TableView );
874} 877}