phonebookui/pbkcommonui/src/cntdetaileditor.cpp
changeset 61 d30183af6ca6
parent 53 e6aff7b69165
child 66 554fe4dbbb59
equal deleted inserted replaced
56:d508aa856878 61:d30183af6ca6
   100     HbAction* insert = new HbAction( aInsert, mView );
   100     HbAction* insert = new HbAction( aInsert, mView );
   101     mView->menu()->insertAction(mCancel, insert);
   101     mView->menu()->insertAction(mCancel, insert);
   102     connect( insert, SIGNAL(triggered()), this, SLOT(insertField()) );
   102     connect( insert, SIGNAL(triggered()), this, SLOT(insertField()) );
   103 }
   103 }
   104 
   104 
   105 void CntDetailEditor::activate( CntAbstractViewManager* aMgr, const CntViewParameters aArgs )
   105 void CntDetailEditor::activate( const CntViewParameters aArgs )
   106 {
   106 {
   107     mViewManager = aMgr;
   107     mViewManager = &mEngine->viewManager();
   108     mArgs = aArgs; //don't loose the params while swiching between editview and editorviews.
   108     mArgs = aArgs; //don't loose the params while swiching between editview and editorviews.
   109     
   109     
   110     mCancel = static_cast<HbAction*>(document()->findObject("cnt:discardchanges"));
   110     mCancel = static_cast<HbAction*>(document()->findObject("cnt:discardchanges"));
   111     mCancel->setParent(mView);
   111     mCancel->setParent(mView);
   112     mView->menu()->addAction(mCancel);
   112     mView->menu()->addAction(mCancel);
   126     {
   126     {
   127         selectedContact = aArgs.value(ESelectedContact).value<QContact>();
   127         selectedContact = aArgs.value(ESelectedContact).value<QContact>();
   128         connect( mDataForm, SIGNAL(itemShown(const QModelIndex&)), this, SLOT(handleItemShown(const QModelIndex&)) );
   128         connect( mDataForm, SIGNAL(itemShown(const QModelIndex&)), this, SLOT(handleItemShown(const QModelIndex&)) );
   129     }
   129     }
   130     
   130     
   131     QContactManager* cm = mViewManager->contactManager(SYMBIAN_BACKEND);
   131     QContactManager& cm = mEngine->contactManager(SYMBIAN_BACKEND);
   132     connect(cm, SIGNAL(contactsRemoved(const QList<QContactLocalId>&)), 
   132     connect(&cm, SIGNAL(contactsRemoved(const QList<QContactLocalId>&)), 
   133         this, SLOT(contactDeletedFromOtherSource(const QList<QContactLocalId>&)));
   133         this, SLOT(contactDeletedFromOtherSource(const QList<QContactLocalId>&)));
   134     
   134     
   135     mEditorFactory->setupEditorView(*this, selectedContact);
   135     mEditorFactory->setupEditorView(*this, selectedContact);
   136     
   136     
   137     QString myCard = mArgs.value( EMyCard ).toString();
   137     QString myCard = mArgs.value( EMyCard ).toString();
   138     QContactLocalId localId = selectedContact.localId();
   138     QContactLocalId localId = selectedContact.localId();
   139     QContactLocalId selfContactId = mViewManager->contactManager(SYMBIAN_BACKEND)->selfContactId();
   139     QContactLocalId selfContactId = cm.selfContactId();
   140     bool isMyCard = ( localId == selfContactId && localId != 0 ) || !myCard.isEmpty();
   140     bool isMyCard = ( localId == selfContactId && localId != 0 ) || !myCard.isEmpty();
   141     
   141     
   142     if (isMyCard)
   142     if (isMyCard)
   143     {
   143     {
   144         mSaveManager = new CntSaveManager(CntSaveManager::EMyCard);
   144         mSaveManager = new CntSaveManager(CntSaveManager::EMyCard);
   157     // add new field if required
   157     // add new field if required
   158     if ( aArgs.value(ESelectedAction).toString() == CNT_ADD_ACTION )
   158     if ( aArgs.value(ESelectedAction).toString() == CNT_ADD_ACTION )
   159     {
   159     {
   160         mDataFormModel->insertDetailField();
   160         mDataFormModel->insertDetailField();
   161     }
   161     }
       
   162     
   162     mDataForm->setVerticalScrollBarPolicy(HbScrollArea::ScrollBarAsNeeded); 
   163     mDataForm->setVerticalScrollBarPolicy(HbScrollArea::ScrollBarAsNeeded); 
   163     mDataForm->setScrollingStyle(HbScrollArea::PanWithFollowOn);
   164     mDataForm->setScrollingStyle(HbScrollArea::PanWithFollowOn);
   164     mDataForm->verticalScrollBar()->setInteractive(true);
   165     mDataForm->verticalScrollBar()->setInteractive(true);
   165 }
   166 }
   166 
   167 
   167 void CntDetailEditor::deactivate()
   168 void CntDetailEditor::deactivate()
   168 {
   169 {
       
   170     QContactManager& mgr = mEngine->contactManager(SYMBIAN_BACKEND);
   169     if( mId == groupEditorView) {
   171     if( mId == groupEditorView) {
   170         QContactManager* mgr = mViewManager->contactManager(SYMBIAN_BACKEND);
   172         mgr.saveContact( mDataFormModel->contact() );
   171         mgr->saveContact( mDataFormModel->contact() );
   173     }
   172     }
   174     
   173     
   175     disconnect(&mgr, SIGNAL(contactsRemoved(const QList<QContactLocalId>&)),
   174     QContactManager *cm = mViewManager->contactManager(SYMBIAN_BACKEND);
       
   175     disconnect(cm, SIGNAL(contactsRemoved(const QList<QContactLocalId>&)),
       
   176             this, SLOT(contactDeletedFromOtherSource(const QList<QContactLocalId>&)));
   176             this, SLOT(contactDeletedFromOtherSource(const QList<QContactLocalId>&)));
   177 }
   177 }
   178     
   178     
   179 bool CntDetailEditor::isDefault() const
   179 bool CntDetailEditor::isDefault() const
   180 {
   180 {
   285     or by end key.
   285     or by end key.
   286 */
   286 */
   287 void CntDetailEditor::saveContact()
   287 void CntDetailEditor::saveContact()
   288 {
   288 {
   289     mDataFormModel->saveContactDetails();
   289     mDataFormModel->saveContactDetails();
   290     
   290     QContactManager& mgr = mEngine->contactManager( SYMBIAN_BACKEND );
   291     QString name = mViewManager->contactManager(SYMBIAN_BACKEND)->synthesizedContactDisplayLabel(*mDataFormModel->contact());
   291     QString name = mgr.synthesizedContactDisplayLabel(*mDataFormModel->contact());
   292     
   292     
   293     if (name.isEmpty())
   293     if (name.isEmpty())
   294     {
   294     {
   295         name = hbTrId("txt_phob_list_unnamed");
   295         name = hbTrId("txt_phob_list_unnamed");
   296     }
   296     }
   297     
   297     
   298     CntSaveManager::CntSaveResult result = mSaveManager->saveContact(mDataFormModel->contact(), mViewManager->contactManager(SYMBIAN_BACKEND));
   298     CntSaveManager::CntSaveResult result = mSaveManager->saveContact(mDataFormModel->contact(), &mgr);
   299     
   299     
   300     if (mId != groupEditorView)
   300     if (mId != groupEditorView)
   301     {
   301     {
   302         switch (result)
   302         switch (result)
   303         {
   303         {