phonebookui/pbkcommonui/src/cnteditview.cpp
changeset 25 76a2435edfd4
parent 24 0ba2181d7c28
child 27 de1630741fbe
--- a/phonebookui/pbkcommonui/src/cnteditview.cpp	Fri Mar 19 09:27:18 2010 +0200
+++ b/phonebookui/pbkcommonui/src/cnteditview.cpp	Fri Apr 16 14:53:18 2010 +0300
@@ -74,10 +74,12 @@
 {
     Q_UNUSED(data);
     Q_UNUSED(id);
-    Q_UNUSED(error);
-    QIcon qicon(pixmap);
-    HbIcon icon(qicon);
-    mHeadingItem->setIcon(icon);
+    if (!error)
+    {
+        QIcon qicon(pixmap);
+        HbIcon icon(qicon);
+        mHeadingItem->setIcon(icon);
+    }
 }
 
 /*!
@@ -85,13 +87,12 @@
 */
 void CntEditView::aboutToCloseView()
 {   
+    CntViewParameters viewParameters;
     if (contact() && contact()->localId() == contactManager()->selfContactId()
         && contactManager()->selfContactId() != 0 && contact()->details().count() <= 4)
     {
         //delete empty mycard
         contactManager()->removeContact(contact()->localId());
-        CntViewParameters viewParameters(CntViewParameters::namesView);
-        viewManager()->onActivateView(viewParameters);
     }
 
     // save contact if there is one and it's not empty
@@ -99,7 +100,6 @@
     {
         bool isSaved = contactManager()->saveContact(contact());
 		
-        CntViewParameters viewParameters(CntViewParameters::namesView);
         if (isSaved)
         {
             viewParameters.setSelectedContact(*contact());
@@ -109,13 +109,8 @@
         {
             viewParameters.setSelectedAction("failed");
         }
-        viewManager()->onActivateView(viewParameters);
     }
-    else
-    {
-        CntViewParameters viewParameters(CntViewParameters::namesView);
-        viewManager()->onActivateView(viewParameters);
-    }
+    viewManager()->back(viewParameters);
 }
 
 void CntEditView::resizeEvent(QGraphicsSceneResizeEvent *event)
@@ -171,8 +166,9 @@
     connect(commands(), SIGNAL(commandExecuted(QString, QContact)), 
             this, SLOT(handleExecutedCommand(QString, QContact)));
 
-    // You can't delete a contact which hasn't been saved yet, now can you?
-    if (mContact->localId() == 0)
+    // You can't delete a contact or my card contact which hasn't been saved yet, now can you?
+    if (contact() && contact()->localId() == contactManager()->selfContactId()
+        && contactManager()->selfContactId() != 0 && contact()->details().count() <= 4 || mContact->localId()== 0)
     {
         menu()->removeAction(actions()->baseAction("cnt:deletecontact"));
     }
@@ -498,7 +494,7 @@
     viewParameters.setSelectedContact(*contact());
     if (viewParameters.nextViewId() != CntViewParameters::noView)
     {
-        viewManager()->onActivateView(viewParameters);
+        viewManager()->changeView(viewParameters);
     }
 }
 
@@ -517,7 +513,7 @@
     viewParameters.setSelectedContact(*contact());
     if (viewParameters.nextViewId() != CntViewParameters::noView)
     {
-        viewManager()->onActivateView(viewParameters);
+        viewManager()->changeView(viewParameters);
     }
 }
 
@@ -721,7 +717,7 @@
 void CntEditView::discardAllChanges()
 {
     CntViewParameters viewParameters(CntViewParameters::namesView);
-    viewManager()->onActivateView(viewParameters);
+    viewManager()->back(viewParameters);
 }
 
 /*!
@@ -739,37 +735,37 @@
 {
     QString detail = CntDetailPopup::selectDetail(mExcludeList);
     
-    if (detail == hbTrId("txt_phob_formlabel_note"))
+    if (detail == QContactNote::DefinitionName)
     {
         CntViewParameters viewParameters(CntViewParameters::noteEditorView);
         viewParameters.setSelectedContact(*contact());
-        viewManager()->onActivateView(viewParameters);
+        viewManager()->changeView(viewParameters);
     }
-    else if (detail == hbTrId("txt_phob_formlabel_personal_ringing_tone"))
+    else if (detail == QContactAvatar::SubTypeAudioRingtone)
     {
         // launch ringtone selection service
     }
-    else if (detail == hbTrId("txt_phob_formlabel_date"))
+    else if (detail == QContactAnniversary::DefinitionName)
     {
         CntViewParameters viewParameters(CntViewParameters::dateEditorView);
         viewParameters.setSelectedContact(*contact());
-        viewManager()->onActivateView(viewParameters);
+        viewManager()->changeView(viewParameters);
     }
-    else if (detail == hbTrId("txt_phob_formlabel_company_details"))
+    else if (detail == QContactOrganization::DefinitionName)
     {
         CntViewParameters viewParameters(CntViewParameters::companyEditorView);
         viewParameters.setSelectedContact(*contact());
         viewParameters.setSelectedAction("company");
-        viewManager()->onActivateView(viewParameters);
+        viewManager()->changeView(viewParameters);
     }
-    else if (detail == hbTrId("txt_phob_formlabel_family"))
+    else if (detail == QContactFamily::FieldSpouse)
     {
         CntViewParameters viewParameters(CntViewParameters::familyDetailEditorView);
         viewParameters.setSelectedContact(*contact());
         viewParameters.setSelectedAction("spouse");
-        viewManager()->onActivateView(viewParameters);
+        viewManager()->changeView(viewParameters);
     }
-    else if (detail == hbTrId("Synchronization"))
+    else if (detail == "some-synch-id") // TODO: change to real synch id when backend done
     {
         // Synchronization detail editor view to be done (lacks engine support)
     }
@@ -782,7 +778,7 @@
 {
     CntViewParameters viewParameters(CntViewParameters::namesEditorView);
     viewParameters.setSelectedContact(*contact());
-    viewManager()->onActivateView(viewParameters);
+    viewManager()->changeView(viewParameters);
 }
 
 /*!
@@ -792,7 +788,7 @@
 {
     CntViewParameters viewParameters(CntViewParameters::imageEditorView);
     viewParameters.setSelectedContact(*contact());
-    viewManager()->onActivateView(viewParameters);
+    viewManager()->changeView(viewParameters);
 }
 
 /*
@@ -807,7 +803,7 @@
         CntViewParameters viewParameters(CntViewParameters::namesView);
         viewParameters.setSelectedContact(*contact());
         viewParameters.setSelectedAction("delete");
-        viewManager()->onActivateView(viewParameters);
+        viewManager()->changeView(viewParameters);
         result=0;
     }
     return result;
@@ -844,7 +840,7 @@
     // open online account editor
     else if (aViewType == QContactOnlineAccount::DefinitionName)
     {
-        viewParameters.setNextViewId(CntViewParameters::onlineAccountEditorView);
+        viewParameters.setNextViewId(CntViewParameters::phoneNumberEditorView);
     }
     // open URL editor
     else if (aViewType == QContactUrl::DefinitionName)