Diffstat (limited to 'core/pim/addressbook/abview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/pim/addressbook/abview.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/core/pim/addressbook/abview.cpp b/core/pim/addressbook/abview.cpp index 8a2db96..9f7f71f 100644 --- a/core/pim/addressbook/abview.cpp +++ b/core/pim/addressbook/abview.cpp @@ -33,24 +33,25 @@ QString addressbookPersonalVCardName() { QString filename = Global::applicationFileName("addressbook", "businesscard.vcf"); return filename; } AbView::AbView ( QWidget* parent, const QValueList<int>& ordered ): QWidget(parent), mCat(0), m_inSearch( false ), m_inPersonal( false ), + m_sortOrder( true ), m_curr_category( 0 ), m_curr_View( TableView ), m_prev_View( TableView ), m_curr_Contact ( 0 ), m_contactdb ( 0l ), m_storedDB ( 0l ), m_viewStack( 0l ), m_abTable( 0l ), m_orderedFields( ordered ) { odebug << "AbView::c'tor" << oendl; // Load default database and handle syncing myself.. ! @@ -71,24 +72,26 @@ AbView::AbView ( QWidget* parent, const QValueList<int>& ordered ): // Add TableView to WidgetStack and raise it m_viewStack -> addWidget( tableBox , TableView ); // Create CardView and add it to WidgetStack QVBox* cardBox = new QVBox( m_viewStack ); m_ablabel = new AbLabel( cardBox, "CardView"); m_viewStack -> addWidget( cardBox , CardView ); // Connect views to me connect ( m_abTable, SIGNAL( signalSwitch(void) ), this, SLOT( slotSwitch(void) ) ); + connect ( m_abTable, SIGNAL( signalSortOrderChanged( bool ) ), + this, SLOT( slotSetSortOrder( bool ) ) ); connect ( m_ablabel, SIGNAL( signalOkPressed(void) ), this, SLOT( slotSwitch(void) ) ); load(); } AbView::~AbView() { m_contactdb -> save(); delete m_contactdb; if ( m_storedDB ){ @@ -152,33 +155,33 @@ bool AbView::save() void AbView::load() { odebug << "AbView::Load data" << oendl; // Letter Search is stopped at this place emit signalClearLetterPicker(); odebug << "selected Category: " << m_curr_category << oendl; if ( m_curr_category == -1 ) { // Show just unfiled contacts - m_list = m_contactdb->sorted( true, Opie::OPimContactAccess::SortFileAsName, + m_list = m_contactdb->sorted( m_sortOrder, Opie::OPimContactAccess::SortFileAsName, Opie::OPimContactAccess::DoNotShowWithCategory, 0 ); } else if ( m_curr_category == 0 ){ // Just show all contacts - m_list = m_contactdb->sorted( true, Opie::OPimContactAccess::SortFileAsName, + m_list = m_contactdb->sorted( m_sortOrder, Opie::OPimContactAccess::SortFileAsName, Opie::OPimBase::FilterOff, 0 ); } else { // Show contacts with given categories - m_list = m_contactdb->sorted( true, Opie::OPimContactAccess::SortFileAsName, + m_list = m_contactdb->sorted( m_sortOrder, Opie::OPimContactAccess::SortFileAsName, Opie::OPimBase::FilterCategory, m_curr_category ); } odebug << "Number of contacts: " << m_list.count() << oendl; updateView( true ); } void AbView::reload() { odebug << "AbView::::reload()" << oendl; @@ -407,24 +410,29 @@ void AbView::slotSwitch(){ odebug << "Switching to CardView" << oendl; m_curr_View = CardView; break; case CardView: odebug << "Switching to TableView" << oendl; m_curr_View = TableView; break; } updateView(); } +void AbView::slotSetSortOrder( bool order ){ + m_sortOrder = order; + reload(); +} + // END: Slots 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 != 0 ){ for ( it = allList.begin(); it != allList.end(); ++it ){ if ( !contactCompare( *it, m_curr_category ) ){ //odebug << "Removing " << (*it).uid() << oendl; |