Diffstat (limited to 'core/pim/addressbook/abview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/pim/addressbook/abview.cpp | 72 |
1 files changed, 43 insertions, 29 deletions
diff --git a/core/pim/addressbook/abview.cpp b/core/pim/addressbook/abview.cpp index 8d22129..3af7663 100644 --- a/core/pim/addressbook/abview.cpp +++ b/core/pim/addressbook/abview.cpp @@ -1,12 +1,28 @@ +/********************************************************************** +** Copyright (c) 2002 Stefan Eilers (eilers.stefan@epost.de) +** +** This file is part of Qt Palmtop Environment. +** +** This file may be distributed and/or modified under the terms of the +** GNU General Public License version 2 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. +** +** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +** +** +**********************************************************************/ + #include "abview.h" #include <qlayout.h> #include <qpe/global.h> #include <opie/ocontactaccessbackend_vcard.h> // Is defined in LibQPE extern QString categoryFileName(); @@ -128,88 +144,82 @@ bool AbView::save() void AbView::load() { qWarning("abView:Load data"); if ( m_inPersonal ) m_list = m_contactdb->allRecords(); else m_list = m_contactdb->sorted( true, 0, 0, 0 ); clearForCategory(); - // Feed all views with new lists - updateListinViews(); - qWarning ("Number of contacts: %d", m_list.count()); updateView(); } void AbView::reload() { qWarning( "void AbView::reload()" ); m_contactdb->reload(); load(); } void AbView::clear() { // :SX } -void AbView::setShowByCategory( Views view, const QString& cat ) +void AbView::setShowByCategory( const QString& cat ) { - qWarning("AbView::setShowCategory( Views view, const QString& cat )"); - -// if ( view == PersonalView ){ -// if ( ! m_inPersonal ) -// showPersonal( true ); - -// }else{ -// if ( m_inPersonal ) -// showPersonal( false ); - -// m_curr_View = view; -// } + qWarning("AbView::setShowCategory( const QString& cat )"); int intCat = 0; // All (cat == NULL) will be stored as -1 if ( cat.isNull() ) intCat = -1; else intCat = mCat.id("Contacts", cat ); - // If we just change the view, we don't have to reload any data.. - // This speeds up a lot of things ! - if ( intCat == m_curr_category ){ - qWarning ("Just change the View (Category is: %d)", m_curr_category); - m_prev_View = m_curr_View; - m_curr_View = view; - - updateView(); - }else{ + // Just do anything if we really change the category + if ( intCat != m_curr_category ){ qWarning ("Categories: Selected %s.. Number: %d", cat.latin1(), m_curr_category); - m_curr_View = view; m_curr_category = intCat; emit signalClearLetterPicker(); load(); } } + +void AbView::setShowToView( Views view ) +{ + qWarning("void AbView::setShowToView( View %d )", view); + + qWarning ("Change the View (Category is: %d)", m_curr_category); + + if ( m_curr_View != view ){ + m_prev_View = m_curr_View; + m_curr_View = view; + + updateView(); + } + +} + void AbView::setShowByLetter( char c ) { qWarning("void AbView::setShowByLetter( %c )", c ); OContact query; if ( c == 0 ){ load(); return; }else{ query.setLastName( QString("%1*").arg(c) ); m_list = m_contactdb->queryByExample( query, OContactAccess::WildCards ); clearForCategory(); m_curr_Contact = 0; @@ -392,54 +402,58 @@ bool AbView::contactCompare( const OContact &cnt, int category ) // In Some rare cases we have to update all lists.. void AbView::updateListinViews() { m_abTable -> setContacts( m_list ); m_ablabel -> setContacts( m_list ); } void AbView::updateView() { qWarning("AbView::updateView()"); + // Feed all views with new lists + updateListinViews(); + if ( m_viewStack -> visibleWidget() ){ m_viewStack -> visibleWidget() -> clearFocus(); } // If we switching the view, we have to store some information if ( m_list.count() ){ switch ( (int) m_prev_View ) { case TableView: m_curr_Contact = m_abTable -> currentEntry_UID(); break; case CardView: m_curr_Contact = m_ablabel -> currentEntry_UID(); break; } - emit signalViewSwitched ( (int) m_curr_View ); }else m_curr_Contact = 0; + // Inform the world that the view is changed + if ( m_curr_View != m_prev_View ) + emit signalViewSwitched ( (int) m_curr_View ); + m_prev_View = m_curr_View; // Switch to new View switch ( (int) m_curr_View ) { case TableView: m_abTable -> setChoiceSelection( m_orderedFields ); - m_abTable -> setContacts( m_list ); if ( m_curr_Contact != 0 ) m_abTable -> selectContact ( m_curr_Contact ); m_abTable -> setFocus(); break; case CardView: - m_ablabel -> setContacts( m_list ); if ( m_curr_Contact != 0 ) m_ablabel -> selectContact( m_curr_Contact ); m_ablabel -> setFocus(); break; } // Raise the current View m_viewStack -> raiseWidget( m_curr_View ); } |