author | drw <drw> | 2005-03-16 17:45:28 (UTC) |
---|---|---|
committer | drw <drw> | 2005-03-16 17:45:28 (UTC) |
commit | 44209002d51056e0d198b63463ebc686b41e8cd8 (patch) (side-by-side diff) | |
tree | d61069f16d8382959065cf7fe43d4e68ad448daf /core/pim/addressbook/abview.cpp | |
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
Diffstat (limited to 'core/pim/addressbook/abview.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | core/pim/addressbook/abview.cpp | 36 |
1 files changed, 16 insertions, 20 deletions
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 @@ -41,9 +41,9 @@ AbView::AbView ( QWidget* parent, const QValueList<int>& ordered ): QWidget(parent), mCat(0), m_inSearch( false ), m_inPersonal( false ), - m_curr_category( -1 ), + m_curr_category( 0 ), m_curr_View( TableView ), m_prev_View( TableView ), m_curr_Contact ( 0 ), m_contactdb ( 0l ), @@ -156,21 +156,10 @@ void AbView::load() // Letter Search is stopped at this place emit signalClearLetterPicker(); - if ( m_curr_category == 0 ) { - // Show unfiled m_list = m_contactdb->sorted( true, Opie::OPimContactAccess::SortFileAsName, - Opie::OPimContactAccess::DoNotShowWithCategory, 0 ); - } else if ( m_curr_category != -1 ){ - // Just show selected category - m_list = m_contactdb->sorted( true, Opie::OPimContactAccess::SortFileAsName, - Opie::OPimBase::FilterCategory, m_curr_category ); - } else { - // Show all categories - m_list = m_contactdb->sorted( true, Opie::OPimContactAccess::SortFileAsName, - Opie::OPimBase::FilterOff, 0 ); - } + Opie::OPimContactAccess::FilterCategory, m_curr_category ); // if ( m_curr_category != -1 ) // clearForCategory(); @@ -198,11 +187,13 @@ void AbView::setShowByCategory( const QString& cat ) odebug << "AbView::setShowCategory( const QString& cat )" << oendl; int intCat = 0; - // All (cat == NULL) will be stored as -1 - if ( cat.isNull() ) + // Unfiled will be stored as -1 + if ( cat == tr( "Unfiled" ) ) intCat = -1; + else if ( cat.isNull() ) + intCat = 0; else intCat = mCat.id("Contacts", cat ); // Just do anything if we really change the category @@ -211,11 +202,11 @@ void AbView::setShowByCategory( const QString& cat ) // << m_curr_category << oendl; m_curr_category = intCat; emit signalClearLetterPicker(); - load(); } + m_curr_category = intCat; } void AbView::setShowToView( Views view ) @@ -264,10 +255,15 @@ void AbView::setShowByLetter( char c, AbConfig::LPSearchMode mode ) << "I will ignore it.." << oendl; return; } m_list = m_contactdb->queryByExample( query, Opie::OPimContactAccess::WildCards | Opie::OPimContactAccess::IgnoreCase ); - if ( m_curr_category != -1 ) + + if ( m_curr_category != 0 ) clearForCategory(); + + // Sort filtered results + m_list = m_contactdb->sorted( m_list, true, Opie::OPimContactAccess::SortFileAsName, + Opie::OPimContactAccess::FilterCategory, m_curr_category ); m_curr_Contact = 0; } updateView( true ); } @@ -377,9 +373,9 @@ void AbView::slotDoFind( const QString &str, bool caseSensitive, bool useRegExp, // Now remove all contacts with wrong category (if any selected) // This algorithm is a litte bit ineffective, but // we will not have a lot of matching entries.. - if ( m_curr_category != -1 ) + if ( m_curr_category != 0 ) clearForCategory(); // Now show all found entries updateView( true ); @@ -417,9 +413,9 @@ void AbView::clearForCategory() Opie::OPimContactAccess::List::Iterator it; // Now remove all contacts with wrong category if any category selected Opie::OPimContactAccess::List allList = m_list; - if ( m_curr_category != -1 ){ + if ( m_curr_category != 0 ){ for ( it = allList.begin(); it != allList.end(); ++it ){ if ( !contactCompare( *it, m_curr_category ) ){ //odebug << "Removing " << (*it).uid() << oendl; m_list.remove( (*it).uid() ); @@ -440,9 +436,9 @@ bool AbView::contactCompare( const Opie::OPimContact &cnt, int category ) // odebug << "Number of categories: " << cats.count() << oendl; returnMe = false; - if ( cats.count() == 0 && category == 0 ) + if ( cats.count() == 0 && category == -1 ) // Contacts with no category will just shown on "All" and "Unfiled" returnMe = true; else { int i; |