diff -r de1630741fbe -r 2a11b5b00470 phonebookui/pbkcommonui/src/cntmycardview.cpp --- a/phonebookui/pbkcommonui/src/cntmycardview.cpp Mon May 03 12:24:20 2010 +0300 +++ b/phonebookui/pbkcommonui/src/cntmycardview.cpp Fri May 14 15:42:23 2010 +0300 @@ -16,6 +16,7 @@ */ #include "cntmycardview.h" +#include "cntfetchcontactsview.h" #include "qtpbkglobal.h" #include #include @@ -26,7 +27,8 @@ CntMyCardView::CntMyCardView() : mContact(NULL), - mViewManager(NULL) + mViewManager(NULL), + mFetchView(NULL) { bool ok = false; mDocumentLoader.load(CNT_MYCARD_UI_XML, &ok); @@ -51,6 +53,9 @@ delete mContact; mContact = 0; + + delete mFetchView; + mFetchView = NULL; } /*! @@ -67,6 +72,8 @@ */ void CntMyCardView::activate(CntAbstractViewManager* aMgr, const CntViewParameters aArgs) { + mViewManager = aMgr; + if (mView->navigationAction() != mSoftkey) mView->setNavigationAction(mSoftkey); @@ -75,8 +82,6 @@ setOrientation(window->orientation()); mContact = new QContact(aArgs.value(ESelectedContact).value()); - mViewManager = aMgr; - HbPushButton *newButton = static_cast(mDocumentLoader.findWidget(QString("cnt_button_new"))); connect(newButton, SIGNAL(clicked()), this, SLOT(openNameEditor())); @@ -91,6 +96,9 @@ { chooseButton->setEnabled(false); } + + mFetchView = new CntFetchContacts(mViewManager->contactManager( SYMBIAN_BACKEND )); + connect(mFetchView, SIGNAL(clicked()), this, SLOT(handleMultiCardSelection())); } void CntMyCardView::deactivate() @@ -117,13 +125,10 @@ */ void CntMyCardView::openNameEditor() { - //create a new my card contact - QContactManager* mgr = mViewManager->contactManager( SYMBIAN_BACKEND ); - mgr->saveContact(mContact); - mgr->setSelfContactId(mContact->localId()); - //open the contact editor CntViewParameters viewParameters; viewParameters.insert(EViewId, editView); + viewParameters.insert(EMyCard, "myCard" ); + QVariant var; var.setValue(*mContact); viewParameters.insert(ESelectedContact, var); @@ -135,8 +140,27 @@ */ void CntMyCardView::openMyCardSelectionView() { + // Display a list of contacts to choose a mycard from. + mFetchView->setDetails(hbTrId("txt_phob_subtitle_my_card"),hbTrId("Save")); + QSet emptyContactsSet; + mFetchView->displayContacts(CntFetchContacts::popup, + HbAbstractItemView::SingleSelection, + emptyContactsSet); +} + +void CntMyCardView::handleMultiCardSelection() +{ + QContactManager* manager = mViewManager->contactManager( SYMBIAN_BACKEND ); + + QSet selectedContacts = mFetchView->getSelectedContacts(); + + if ( !mFetchView->wasCanceled() && !selectedContacts.isEmpty() ) { + QList selectedContactsList = selectedContacts.values(); + manager->setSelfContactId(selectedContactsList.front()); + } + CntViewParameters viewParameters; - viewParameters.insert(EViewId, myCardSelectionView); + viewParameters.insert(EViewId, namesView); mViewManager->changeView(viewParameters); }