summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--core/pim/addressbook/addressbook.cpp38
1 files changed, 33 insertions, 5 deletions
diff --git a/core/pim/addressbook/addressbook.cpp b/core/pim/addressbook/addressbook.cpp
index a4c2c6e..7c52ef2 100644
--- a/core/pim/addressbook/addressbook.cpp
+++ b/core/pim/addressbook/addressbook.cpp
@@ -708,18 +708,34 @@ void AddressbookWindow::slotPersonalView()
bool personal = m_actionPersonal->isOn();
- // Disable certain menu items when showing personal details
+ // Disable actions when showing personal details
setItemNewEnabled( !personal );
setItemDuplicateEnabled( !personal );
setItemDeleteEnabled( !personal );
m_actionMail->setEnabled( !personal );
+ setShowCategories( !personal );
// Display appropriate view
m_abView->showPersonal( personal );
- // Set application caption
- personal ? setCaption( tr( "Contacts - My Personal Details") )
- : setCaption( tr( "Contacts") );
+ if ( personal )
+ {
+ setCaption( tr( "Contacts - My Personal Details") );
+
+ // Set category to 'All' to make sure personal details is visible
+ setViewCategory( "All" );
+ m_abView->setShowByCategory( "All" );
+
+ // Temporarily disable letter picker
+ pLabel->hide();
+ }
+ else
+ {
+ setCaption( tr( "Contacts") );
+
+ // Re-enable letter picker
+ pLabel->show();
+ }
}
void AddressbookWindow::reload()
@@ -738,8 +754,20 @@ void AddressbookWindow::flush()
void AddressbookWindow::closeEvent( QCloseEvent *e )
{
- if(active_view == AbView::CardView){
+ if ( active_view == AbView::CardView )
+ {
+ if ( !m_actionPersonal->isOn() )
+ {
+ // Switch to table view only if not editing personal details
slotViewSwitched( AbView::TableView );
+ }
+ else
+ {
+ // If currently editing personal details, switch off personal view
+ m_actionPersonal->setOn( false );
+ slotPersonalView();
+ }
+
e->ignore();
return;
}