phonebookui/pbkcommonui/src/cnteditview_p.cpp
changeset 46 efe85016a067
parent 40 b46a585f6909
child 47 7cbcb2896f0e
--- a/phonebookui/pbkcommonui/src/cnteditview_p.cpp	Fri Jun 11 13:29:23 2010 +0300
+++ b/phonebookui/pbkcommonui/src/cnteditview_p.cpp	Wed Jun 23 18:02:44 2010 +0300
@@ -22,6 +22,7 @@
 #include "cnteditviewheadingitem.h"
 #include "cntimagelabel.h"
 
+#include <qtcontacts.h>
 #include <hbdocumentloader.h>
 #include <thumbnailmanager_qt.h>
 #include <hbabstractviewitem.h>
@@ -64,10 +65,16 @@
     
     mSoftkey = new HbAction(Hb::BackNaviAction, mView);
     mDiscard = static_cast<HbAction*>( mDocument->findObject("cnt:discard") );
+    mDiscard->setParent(mView);
+
     mSave = static_cast<HbAction*>( mDocument->findObject("cnt:savecontact") );
+    mSave->setParent(mView);
+
     mDelete = static_cast<HbAction*>( mDocument->findObject("cnt:deletecontact") );
+    mDelete->setParent(mView);
     
     HbAction* add = static_cast<HbAction*>( mDocument->findObject("cnt:adddetail_options") );
+    add->setParent(mView);
 
     connect( add, SIGNAL(triggered()), this, SLOT(addDetailItem()) );
     connect( mDelete, SIGNAL(triggered()), this, SLOT(deleteContact()) );
@@ -86,7 +93,6 @@
 {
     mView->deleteLater();
     delete mDocument;
-    delete mListView;
     delete mModel;
     delete mContact;
     
@@ -126,14 +132,16 @@
         
     QString myCard = mArgs.value( EMyCard ).toString();
     QString selectedAction = mArgs.value( ESelectedAction ).toString();
-    
     QVariant contact = aArgs.value( ESelectedContact );
-    mContact = new QContact( contact.value<QContact>() );
+    setSelectedContact( contact.value<QContact>() );
+        
     QContactLocalId localId = mContact->localId();
-    
     QContactManager* cm = mMgr->contactManager(SYMBIAN_BACKEND);
     QContactLocalId selfContactId = cm->selfContactId();
-    mIsMyCard = ( localId == selfContactId && localId != 0 ) || myCard == "myCard"; 
+    mIsMyCard = ( localId == selfContactId && localId != 0 ) || myCard == "myCard";
+    
+    if ( mHeading )
+        mHeading->setDetails( mContact, mIsMyCard );
 
     // if "MyCard", set slightly different heading and options menu
     if ( mIsMyCard )
@@ -166,10 +174,6 @@
         mSave->setEnabled( false );
     }
     
-    mHeading->setDetails( mContact );
-    mModel = new CntEditViewListModel( mContact );
-    mListView->setModel( mModel );
-
     mThumbnailManager = new ThumbnailManager(this);
     mThumbnailManager->setMode(ThumbnailManager::Default);
     mThumbnailManager->setQualityPreference(ThumbnailManager::OptimizeForQuality);
@@ -335,7 +339,7 @@
         QContactManager* cm = mMgr->contactManager( SYMBIAN_BACKEND );
         QString name = cm->synthesizedDisplayLabel( *mContact );
         HbMessageBox::question(HbParameterLengthLimiter(hbTrId("txt_phob_info_delete_1")).arg(name), this, SLOT(handleDeleteContact(HbAction*)), 
-                hbTrId("txt_phob_button_delete"), hbTrId("txt_common_button_cancel"));
+                hbTrId("txt_common_button_delete"), hbTrId("txt_common_button_cancel"));
     }
 }
 
@@ -392,22 +396,18 @@
                 
                 QString name = mgr->synthesizedDisplayLabel( *mContact );
                 
+                emit contactUpdated(success);
+                
                 if ( success )
                 {
-                    HbDeviceNotificationDialog notificationDialog;
-                    notificationDialog.setTitle(HbParameterLengthLimiter(hbTrId("txt_phob_dpophead_contact_1_saved")).arg(name));
-                    notificationDialog.show();
+                    HbDeviceNotificationDialog::notification(QString(),HbParameterLengthLimiter(hbTrId("txt_phob_dpophead_contact_1_saved")).arg(name));
                 }
                 else
                 {
                     //TODO: localization is missing
-                    HbDeviceNotificationDialog notificationDialog;
-                    notificationDialog.setTitle(qtTrId("SAVING FAILED!"));
-                    notificationDialog.show();
+                    HbDeviceNotificationDialog::notification(QString(),qtTrId("SAVING FAILED!"));
                 }
                 
-                emit contactUpdated(success);
-                
                 QVariant var;
                 var.setValue(*mContact);
                 mArgs.insert(ESelectedContact, var);
@@ -431,22 +431,18 @@
                 
                 QString name = mgr->synthesizedDisplayLabel( *mContact );
                 
+                emit contactUpdated( success );
+                
                 if ( success )
                 {
-                    HbDeviceNotificationDialog notificationDialog;
-                    notificationDialog.setTitle(HbParameterLengthLimiter(hbTrId("txt_phob_dpophead_contacts_1_updated")).arg(name));
-                    notificationDialog.show();
+                    HbDeviceNotificationDialog::notification(QString(),HbParameterLengthLimiter(hbTrId("txt_phob_dpophead_contacts_1_updated")).arg(name));
                 }
                 else
                 {
                     //TODO: localization is missing
-                    HbDeviceNotificationDialog notificationDialog;
-                    notificationDialog.setTitle(qtTrId("SAVING FAILED!"));
-                    notificationDialog.show();
+                    HbDeviceNotificationDialog::notification(QString(),qtTrId("SAVING FAILED!"));
                 }
                 
-                emit contactUpdated( success );
-                
                 QVariant var;
                 var.setValue(*mContact);
                 mArgs.insert(ESelectedContact, var);           
@@ -628,5 +624,25 @@
     mSave->setEnabled( true );
     mDiscard->setEnabled( true );
 }
+
+void CntEditViewPrivate::setSelectedContact( QContact aContact )
+{
+    if ( mContact )
+    {
+        delete mContact;
+        mContact = NULL;
+    }
+    mContact = new QContact( aContact );
+    
+    if ( mModel )
+    {
+        delete mModel;
+        mModel = NULL;
+    }
+    mModel = new CntEditViewListModel( mContact );
+    
+    if ( mListView )
+        mListView->setModel( mModel );
+}
 // End of File