summaryrefslogtreecommitdiff
path: root/core/pim/addressbook/abview.cpp
Side-by-side diff
Diffstat (limited to 'core/pim/addressbook/abview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/addressbook/abview.cpp55
1 files changed, 32 insertions, 23 deletions
diff --git a/core/pim/addressbook/abview.cpp b/core/pim/addressbook/abview.cpp
index 0f4bd5f..7226e82 100644
--- a/core/pim/addressbook/abview.cpp
+++ b/core/pim/addressbook/abview.cpp
@@ -126,11 +126,14 @@ OContact AbView::currentEntry()
{
+ OContact currentContact;
+
switch ( (int) m_curr_View ) {
case TableView:
- return ( m_abTable -> currentEntry() );
+ currentContact = m_abTable -> currentEntry();
break;
case CardView:
- return ( m_ablabel -> currentEntry() );
+ currentContact = m_ablabel -> currentEntry();
break;
}
- return OContact();
+ m_curr_Contact = currentContact.uid();
+ return currentContact;
}
@@ -147,2 +150,5 @@ void AbView::load()
qWarning("abView:Load data");
+
+ // Letter Search is stopped at this place
+ emit signalClearLetterPicker();
@@ -150,6 +156,6 @@ void AbView::load()
m_list = m_contactdb->allRecords();
- else
+ else{
m_list = m_contactdb->sorted( true, 0, 0, 0 );
-
- clearForCategory();
+ clearForCategory();
+ }
@@ -157,3 +163,3 @@ void AbView::load()
- updateView();
+ updateView( true );
@@ -226,3 +232,3 @@ void AbView::setShowByLetter( char c )
}
- updateView();
+ updateView( true );
}
@@ -327,3 +333,3 @@ void AbView::slotDoFind( const QString &str, bool caseSensitive, bool useRegExp,
// Now show all found entries
- updateView();
+ updateView( true );
}
@@ -409,3 +415,3 @@ void AbView::updateListinViews()
-void AbView::updateView()
+void AbView::updateView( bool newdata )
{
@@ -418,18 +424,21 @@ void AbView::updateView()
// 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;
- }
- }else
- m_curr_Contact = 0;
+ if ( !newdata ){
+ 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;
+ }
+ }else
+ m_curr_Contact = 0;
+ }
// Feed all views with new lists
- updateListinViews();
+ if ( newdata )
+ updateListinViews();
- // Inform the world that the view is changed
+ // Tell the world that the view is changed
if ( m_curr_View != m_prev_View )