phonebookui/pbkcommonui/src/cnteditview_p.cpp
changeset 40 b46a585f6909
parent 37 fd64c38c277d
child 46 efe85016a067
--- a/phonebookui/pbkcommonui/src/cnteditview_p.cpp	Thu May 27 12:45:19 2010 +0300
+++ b/phonebookui/pbkcommonui/src/cnteditview_p.cpp	Fri Jun 11 13:29:23 2010 +0300
@@ -34,7 +34,7 @@
 #include <hbmenu.h>
 #include <hbframebackground.h>
 #include <hbparameterlengthlimiter.h>
-#include <hbnotificationdialog.h>
+#include <hbdevicenotificationdialog.h>
 
 const char *CNT_EDIT_XML = ":/xml/contacts_ev.docml";
 
@@ -119,6 +119,7 @@
     HbMainWindow* window = mView->mainWindow();
     if ( window )
     {
+        connect(window, SIGNAL(viewReady()), this, SLOT(setScrollPosition()) );
         connect(window, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(setOrientation(Qt::Orientation)));
         setOrientation(window->orientation());
     }
@@ -324,7 +325,7 @@
 {
     if ( mIsMyCard )
     {
-        HbMessageBox::question(hbTrId("txt_phob_info_clear_my_card"), this, 
+        HbMessageBox::question(hbTrId("txt_phob_dialog_remove_all_personal_data_from_my_c"), this, 
                 SLOT(handleDeleteContact(HbAction*)), 
                 hbTrId("txt_phob_button_clear"), 
                 hbTrId("txt_common_button_cancel"));
@@ -345,15 +346,7 @@
     {
         QContactManager* cm = mMgr->contactManager( SYMBIAN_BACKEND );
 
-        if ( mIsMyCard )
-        {
-            mContact->clearDetails();
-            emit contactUpdated(cm->saveContact(mContact));
-        }
-        else
-        {
-            emit contactRemoved(cm->removeContact( mContact->localId() ));
-        }
+        emit contactRemoved(cm->removeContact( mContact->localId() ));
         
         mMgr->back( mArgs );
     }
@@ -397,20 +390,24 @@
                     mgr->setSelfContactId( mContact->localId() );
                 }
                 
-                emit contactUpdated(success);
-                
                 QString name = mgr->synthesizedDisplayLabel( *mContact );
                 
                 if ( success )
                 {
-                    HbNotificationDialog::launchDialog(HbParameterLengthLimiter("txt_phob_dpophead_contact_1_saved").arg(name));
+                    HbDeviceNotificationDialog notificationDialog;
+                    notificationDialog.setTitle(HbParameterLengthLimiter(hbTrId("txt_phob_dpophead_contact_1_saved")).arg(name));
+                    notificationDialog.show();
                 }
                 else
                 {
                     //TODO: localization is missing
-                    HbNotificationDialog::launchDialog(qtTrId("SAVING FAILED!"));
+                    HbDeviceNotificationDialog notificationDialog;
+                    notificationDialog.setTitle(qtTrId("SAVING FAILED!"));
+                    notificationDialog.show();
                 }
                 
+                emit contactUpdated(success);
+                
                 QVariant var;
                 var.setValue(*mContact);
                 mArgs.insert(ESelectedContact, var);
@@ -432,20 +429,24 @@
             {
                 bool success = mgr->saveContact(mContact);
                 
-                emit contactUpdated( success );
-                
                 QString name = mgr->synthesizedDisplayLabel( *mContact );
                 
                 if ( success )
                 {
-                    HbNotificationDialog::launchDialog(HbParameterLengthLimiter("txt_phob_dpophead_contacts_1_updated").arg(name));
+                    HbDeviceNotificationDialog notificationDialog;
+                    notificationDialog.setTitle(HbParameterLengthLimiter(hbTrId("txt_phob_dpophead_contacts_1_updated")).arg(name));
+                    notificationDialog.show();
                 }
                 else
                 {
                     //TODO: localization is missing
-                    HbNotificationDialog::launchDialog(qtTrId("SAVING FAILED!"));
+                    HbDeviceNotificationDialog notificationDialog;
+                    notificationDialog.setTitle(qtTrId("SAVING FAILED!"));
+                    notificationDialog.show();
                 }
                 
+                emit contactUpdated( success );
+                
                 QVariant var;
                 var.setValue(*mContact);
                 mArgs.insert(ESelectedContact, var);           
@@ -498,6 +499,20 @@
     }
 }
 
+void CntEditViewPrivate::setScrollPosition()
+{
+    if ( mArgs.contains(ESelectedDetail) )
+    {
+        QContactDetail d = mArgs.value( ESelectedDetail ).value<QContactDetail>();
+        
+        QModelIndex index = mModel->itemIndex( d );
+        if ( index.isValid() )
+        {
+            mListView->scrollTo( index, HbListView::EnsureVisible );
+        }
+    }
+}
+
 void CntEditViewPrivate::thumbnailReady( const QPixmap& pixmap, void *data, int id, int error )
 {
     Q_UNUSED(data);
@@ -576,7 +591,7 @@
         add->setProperty( "menu", HbAction::NewRole );
         add->setData( data );
     }
-    
+    delete map;
     return menu;
 }