phonebookui/pbkcommonui/src/cnteditview_p.cpp
changeset 40 b46a585f6909
parent 37 fd64c38c277d
child 46 efe85016a067
equal deleted inserted replaced
37:fd64c38c277d 40:b46a585f6909
    32 #include <hblistview.h>
    32 #include <hblistview.h>
    33 #include <hbaction.h>
    33 #include <hbaction.h>
    34 #include <hbmenu.h>
    34 #include <hbmenu.h>
    35 #include <hbframebackground.h>
    35 #include <hbframebackground.h>
    36 #include <hbparameterlengthlimiter.h>
    36 #include <hbparameterlengthlimiter.h>
    37 #include <hbnotificationdialog.h>
    37 #include <hbdevicenotificationdialog.h>
    38 
    38 
    39 const char *CNT_EDIT_XML = ":/xml/contacts_ev.docml";
    39 const char *CNT_EDIT_XML = ":/xml/contacts_ev.docml";
    40 
    40 
    41 CntEditViewPrivate::CntEditViewPrivate() :
    41 CntEditViewPrivate::CntEditViewPrivate() :
    42 mModel( NULL ),
    42 mModel( NULL ),
   117         mView->setNavigationAction(mSoftkey);
   117         mView->setNavigationAction(mSoftkey);
   118     }
   118     }
   119     HbMainWindow* window = mView->mainWindow();
   119     HbMainWindow* window = mView->mainWindow();
   120     if ( window )
   120     if ( window )
   121     {
   121     {
       
   122         connect(window, SIGNAL(viewReady()), this, SLOT(setScrollPosition()) );
   122         connect(window, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(setOrientation(Qt::Orientation)));
   123         connect(window, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(setOrientation(Qt::Orientation)));
   123         setOrientation(window->orientation());
   124         setOrientation(window->orientation());
   124     }
   125     }
   125         
   126         
   126     QString myCard = mArgs.value( EMyCard ).toString();
   127     QString myCard = mArgs.value( EMyCard ).toString();
   322 
   323 
   323 void CntEditViewPrivate::deleteContact()
   324 void CntEditViewPrivate::deleteContact()
   324 {
   325 {
   325     if ( mIsMyCard )
   326     if ( mIsMyCard )
   326     {
   327     {
   327         HbMessageBox::question(hbTrId("txt_phob_info_clear_my_card"), this, 
   328         HbMessageBox::question(hbTrId("txt_phob_dialog_remove_all_personal_data_from_my_c"), this, 
   328                 SLOT(handleDeleteContact(HbAction*)), 
   329                 SLOT(handleDeleteContact(HbAction*)), 
   329                 hbTrId("txt_phob_button_clear"), 
   330                 hbTrId("txt_phob_button_clear"), 
   330                 hbTrId("txt_common_button_cancel"));
   331                 hbTrId("txt_common_button_cancel"));
   331     }
   332     }
   332     else
   333     else
   343     HbMessageBox *dlg = static_cast<HbMessageBox*>(sender());
   344     HbMessageBox *dlg = static_cast<HbMessageBox*>(sender());
   344     if(dlg && action == dlg->actions().first())
   345     if(dlg && action == dlg->actions().first())
   345     {
   346     {
   346         QContactManager* cm = mMgr->contactManager( SYMBIAN_BACKEND );
   347         QContactManager* cm = mMgr->contactManager( SYMBIAN_BACKEND );
   347 
   348 
   348         if ( mIsMyCard )
   349         emit contactRemoved(cm->removeContact( mContact->localId() ));
   349         {
       
   350             mContact->clearDetails();
       
   351             emit contactUpdated(cm->saveContact(mContact));
       
   352         }
       
   353         else
       
   354         {
       
   355             emit contactRemoved(cm->removeContact( mContact->localId() ));
       
   356         }
       
   357         
   350         
   358         mMgr->back( mArgs );
   351         mMgr->back( mArgs );
   359     }
   352     }
   360 }
   353 }
   361 
   354 
   395                 if ( success && mIsMyCard )
   388                 if ( success && mIsMyCard )
   396                 {
   389                 {
   397                     mgr->setSelfContactId( mContact->localId() );
   390                     mgr->setSelfContactId( mContact->localId() );
   398                 }
   391                 }
   399                 
   392                 
   400                 emit contactUpdated(success);
       
   401                 
       
   402                 QString name = mgr->synthesizedDisplayLabel( *mContact );
   393                 QString name = mgr->synthesizedDisplayLabel( *mContact );
   403                 
   394                 
   404                 if ( success )
   395                 if ( success )
   405                 {
   396                 {
   406                     HbNotificationDialog::launchDialog(HbParameterLengthLimiter("txt_phob_dpophead_contact_1_saved").arg(name));
   397                     HbDeviceNotificationDialog notificationDialog;
       
   398                     notificationDialog.setTitle(HbParameterLengthLimiter(hbTrId("txt_phob_dpophead_contact_1_saved")).arg(name));
       
   399                     notificationDialog.show();
   407                 }
   400                 }
   408                 else
   401                 else
   409                 {
   402                 {
   410                     //TODO: localization is missing
   403                     //TODO: localization is missing
   411                     HbNotificationDialog::launchDialog(qtTrId("SAVING FAILED!"));
   404                     HbDeviceNotificationDialog notificationDialog;
       
   405                     notificationDialog.setTitle(qtTrId("SAVING FAILED!"));
       
   406                     notificationDialog.show();
   412                 }
   407                 }
       
   408                 
       
   409                 emit contactUpdated(success);
   413                 
   410                 
   414                 QVariant var;
   411                 QVariant var;
   415                 var.setValue(*mContact);
   412                 var.setValue(*mContact);
   416                 mArgs.insert(ESelectedContact, var);
   413                 mArgs.insert(ESelectedContact, var);
   417             }        
   414             }        
   430             }
   427             }
   431             else
   428             else
   432             {
   429             {
   433                 bool success = mgr->saveContact(mContact);
   430                 bool success = mgr->saveContact(mContact);
   434                 
   431                 
   435                 emit contactUpdated( success );
       
   436                 
       
   437                 QString name = mgr->synthesizedDisplayLabel( *mContact );
   432                 QString name = mgr->synthesizedDisplayLabel( *mContact );
   438                 
   433                 
   439                 if ( success )
   434                 if ( success )
   440                 {
   435                 {
   441                     HbNotificationDialog::launchDialog(HbParameterLengthLimiter("txt_phob_dpophead_contacts_1_updated").arg(name));
   436                     HbDeviceNotificationDialog notificationDialog;
       
   437                     notificationDialog.setTitle(HbParameterLengthLimiter(hbTrId("txt_phob_dpophead_contacts_1_updated")).arg(name));
       
   438                     notificationDialog.show();
   442                 }
   439                 }
   443                 else
   440                 else
   444                 {
   441                 {
   445                     //TODO: localization is missing
   442                     //TODO: localization is missing
   446                     HbNotificationDialog::launchDialog(qtTrId("SAVING FAILED!"));
   443                     HbDeviceNotificationDialog notificationDialog;
       
   444                     notificationDialog.setTitle(qtTrId("SAVING FAILED!"));
       
   445                     notificationDialog.show();
   447                 }
   446                 }
       
   447                 
       
   448                 emit contactUpdated( success );
   448                 
   449                 
   449                 QVariant var;
   450                 QVariant var;
   450                 var.setValue(*mContact);
   451                 var.setValue(*mContact);
   451                 mArgs.insert(ESelectedContact, var);           
   452                 mArgs.insert(ESelectedContact, var);           
   452             }
   453             }
   492         QUrl url = details.at(i).imageUrl();
   493         QUrl url = details.at(i).imageUrl();
   493         if ( url.isValid() )
   494         if ( url.isValid() )
   494         {
   495         {
   495             mThumbnailManager->getThumbnail( url.toString() );
   496             mThumbnailManager->getThumbnail( url.toString() );
   496             break;
   497             break;
       
   498         }
       
   499     }
       
   500 }
       
   501 
       
   502 void CntEditViewPrivate::setScrollPosition()
       
   503 {
       
   504     if ( mArgs.contains(ESelectedDetail) )
       
   505     {
       
   506         QContactDetail d = mArgs.value( ESelectedDetail ).value<QContactDetail>();
       
   507         
       
   508         QModelIndex index = mModel->itemIndex( d );
       
   509         if ( index.isValid() )
       
   510         {
       
   511             mListView->scrollTo( index, HbListView::EnsureVisible );
   497         }
   512         }
   498     }
   513     }
   499 }
   514 }
   500 
   515 
   501 void CntEditViewPrivate::thumbnailReady( const QPixmap& pixmap, void *data, int id, int error )
   516 void CntEditViewPrivate::thumbnailReady( const QPixmap& pixmap, void *data, int id, int error )
   574     {
   589     {
   575         HbAction* add = menu->addAction(map->getContactEditorAddLocString(detail.definitionName(), ""));
   590         HbAction* add = menu->addAction(map->getContactEditorAddLocString(detail.definitionName(), ""));
   576         add->setProperty( "menu", HbAction::NewRole );
   591         add->setProperty( "menu", HbAction::NewRole );
   577         add->setData( data );
   592         add->setData( data );
   578     }
   593     }
   579     
   594     delete map;
   580     return menu;
   595     return menu;
   581 }
   596 }
   582 
   597 
   583 void CntEditViewPrivate::addDetail( CntEditViewItem* aDetail )
   598 void CntEditViewPrivate::addDetail( CntEditViewItem* aDetail )
   584 {
   599 {