author | drw <drw> | 2005-03-16 17:45:28 (UTC) |
---|---|---|
committer | drw <drw> | 2005-03-16 17:45:28 (UTC) |
commit | 44209002d51056e0d198b63463ebc686b41e8cd8 (patch) (unidiff) | |
tree | d61069f16d8382959065cf7fe43d4e68ad448daf | |
parent | d16a2a4e0617f21cba0e399dbe5ffa17d76886b9 (diff) | |
download | opie-44209002d51056e0d198b63463ebc686b41e8cd8.zip opie-44209002d51056e0d198b63463ebc686b41e8cd8.tar.gz opie-44209002d51056e0d198b63463ebc686b41e8cd8.tar.bz2 |
Fixed: 1. Category handling - all other apps and libopie2 use -1 for unfiled and 0 for all, addressbook flipped them, 2. Letter picker record selection, 3. sort resulting records after letter picker selected them
-rw-r--r-- | core/pim/addressbook/abtable.cpp | 1 | ||||
-rw-r--r-- | core/pim/addressbook/abview.cpp | 44 | ||||
-rw-r--r-- | core/pim/addressbook/addressbook.cpp | 7 |
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 | |||
@@ -159,7 +159,6 @@ void AbTable::setContacts( const Opie::OPimContactAccess::List& viewList ) | |||
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 ) |
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 | |||
@@ -42,7 +42,7 @@ AbView::AbView ( QWidget* parent, const QValueList<int>& ordered ): | |||
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 ), |
@@ -157,20 +157,9 @@ void AbView::load() | |||
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 | ||
@@ -199,9 +188,11 @@ void AbView::setShowByCategory( const QString& cat ) | |||
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 | ||
@@ -212,9 +203,9 @@ void AbView::setShowByCategory( const QString& cat ) | |||
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 | ||
@@ -245,7 +236,7 @@ void AbView::setShowByLetter( char c, AbConfig::LPSearchMode mode ) | |||
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; |
@@ -265,8 +256,13 @@ void AbView::setShowByLetter( char c, AbConfig::LPSearchMode mode ) | |||
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 ); |
@@ -378,7 +374,7 @@ void AbView::slotDoFind( const QString &str, bool caseSensitive, bool useRegExp, | |||
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 |
@@ -418,7 +414,7 @@ void AbView::clearForCategory() | |||
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; |
@@ -441,7 +437,7 @@ bool AbView::contactCompare( const Opie::OPimContact &cnt, int category ) | |||
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 { |
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 | |||
@@ -854,8 +854,11 @@ void AddressbookWindow::slotSetCategory( const QString &category ) | |||
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 | ||
861 | void AddressbookWindow::slotViewSwitched( int view ) | 864 | void AddressbookWindow::slotViewSwitched( int view ) |