14 * Description: |
14 * Description: |
15 * |
15 * |
16 */ |
16 */ |
17 |
17 |
18 #include "cntmycardview.h" |
18 #include "cntmycardview.h" |
|
19 #include "cntfetchcontactsview.h" |
19 #include "qtpbkglobal.h" |
20 #include "qtpbkglobal.h" |
20 #include <hbpushbutton.h> |
21 #include <hbpushbutton.h> |
21 #include <hbaction.h> |
22 #include <hbaction.h> |
22 #include <hbview.h> |
23 #include <hbview.h> |
23 #include <hbmainwindow.h> |
24 #include <hbmainwindow.h> |
24 |
25 |
25 const char *CNT_MYCARD_UI_XML = ":/xml/contacts_mc.docml"; |
26 const char *CNT_MYCARD_UI_XML = ":/xml/contacts_mc.docml"; |
26 |
27 |
27 CntMyCardView::CntMyCardView() : |
28 CntMyCardView::CntMyCardView() : |
28 mContact(NULL), |
29 mContact(NULL), |
29 mViewManager(NULL) |
30 mViewManager(NULL), |
|
31 mFetchView(NULL) |
30 { |
32 { |
31 bool ok = false; |
33 bool ok = false; |
32 mDocumentLoader.load(CNT_MYCARD_UI_XML, &ok); |
34 mDocumentLoader.load(CNT_MYCARD_UI_XML, &ok); |
33 |
35 |
34 if (ok) |
36 if (ok) |
65 /* |
70 /* |
66 Activates a default view |
71 Activates a default view |
67 */ |
72 */ |
68 void CntMyCardView::activate(CntAbstractViewManager* aMgr, const CntViewParameters aArgs) |
73 void CntMyCardView::activate(CntAbstractViewManager* aMgr, const CntViewParameters aArgs) |
69 { |
74 { |
|
75 mViewManager = aMgr; |
|
76 |
70 if (mView->navigationAction() != mSoftkey) |
77 if (mView->navigationAction() != mSoftkey) |
71 mView->setNavigationAction(mSoftkey); |
78 mView->setNavigationAction(mSoftkey); |
72 |
79 |
73 HbMainWindow* window = mView->mainWindow(); |
80 HbMainWindow* window = mView->mainWindow(); |
74 connect(window, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(setOrientation(Qt::Orientation))); |
81 connect(window, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(setOrientation(Qt::Orientation))); |
75 setOrientation(window->orientation()); |
82 setOrientation(window->orientation()); |
76 |
83 |
77 mContact = new QContact(aArgs.value(ESelectedContact).value<QContact>()); |
84 mContact = new QContact(aArgs.value(ESelectedContact).value<QContact>()); |
78 mViewManager = aMgr; |
|
79 |
|
80 HbPushButton *newButton = static_cast<HbPushButton*>(mDocumentLoader.findWidget(QString("cnt_button_new"))); |
85 HbPushButton *newButton = static_cast<HbPushButton*>(mDocumentLoader.findWidget(QString("cnt_button_new"))); |
81 connect(newButton, SIGNAL(clicked()), this, SLOT(openNameEditor())); |
86 connect(newButton, SIGNAL(clicked()), this, SLOT(openNameEditor())); |
82 |
87 |
83 HbPushButton *chooseButton = static_cast<HbPushButton*>(mDocumentLoader.findWidget(QString("cnt_button_choose"))); |
88 HbPushButton *chooseButton = static_cast<HbPushButton*>(mDocumentLoader.findWidget(QString("cnt_button_choose"))); |
84 connect(chooseButton, SIGNAL(clicked()), this, SLOT(openMyCardSelectionView())); |
89 connect(chooseButton, SIGNAL(clicked()), this, SLOT(openMyCardSelectionView())); |
89 |
94 |
90 if (mViewManager->contactManager( SYMBIAN_BACKEND )->contactIds(filter).isEmpty()) |
95 if (mViewManager->contactManager( SYMBIAN_BACKEND )->contactIds(filter).isEmpty()) |
91 { |
96 { |
92 chooseButton->setEnabled(false); |
97 chooseButton->setEnabled(false); |
93 } |
98 } |
|
99 |
|
100 mFetchView = new CntFetchContacts(mViewManager->contactManager( SYMBIAN_BACKEND )); |
|
101 connect(mFetchView, SIGNAL(clicked()), this, SLOT(handleMultiCardSelection())); |
94 } |
102 } |
95 |
103 |
96 void CntMyCardView::deactivate() |
104 void CntMyCardView::deactivate() |
97 { |
105 { |
98 |
106 |
115 /*! |
123 /*! |
116 Opens the name detail editor view |
124 Opens the name detail editor view |
117 */ |
125 */ |
118 void CntMyCardView::openNameEditor() |
126 void CntMyCardView::openNameEditor() |
119 { |
127 { |
120 //create a new my card contact |
|
121 QContactManager* mgr = mViewManager->contactManager( SYMBIAN_BACKEND ); |
|
122 mgr->saveContact(mContact); |
|
123 mgr->setSelfContactId(mContact->localId()); |
|
124 //open the contact editor |
|
125 CntViewParameters viewParameters; |
128 CntViewParameters viewParameters; |
126 viewParameters.insert(EViewId, editView); |
129 viewParameters.insert(EViewId, editView); |
|
130 viewParameters.insert(EMyCard, "myCard" ); |
|
131 |
127 QVariant var; |
132 QVariant var; |
128 var.setValue(*mContact); |
133 var.setValue(*mContact); |
129 viewParameters.insert(ESelectedContact, var); |
134 viewParameters.insert(ESelectedContact, var); |
130 mViewManager->changeView(viewParameters); |
135 mViewManager->changeView(viewParameters); |
131 } |
136 } |
133 /*! |
138 /*! |
134 Opens the my card selection view |
139 Opens the my card selection view |
135 */ |
140 */ |
136 void CntMyCardView::openMyCardSelectionView() |
141 void CntMyCardView::openMyCardSelectionView() |
137 { |
142 { |
|
143 // Display a list of contacts to choose a mycard from. |
|
144 mFetchView->setDetails(hbTrId("txt_phob_subtitle_my_card"),hbTrId("Save")); |
|
145 QSet<QContactLocalId> emptyContactsSet; |
|
146 mFetchView->displayContacts(CntFetchContacts::popup, |
|
147 HbAbstractItemView::SingleSelection, |
|
148 emptyContactsSet); |
|
149 } |
|
150 |
|
151 void CntMyCardView::handleMultiCardSelection() |
|
152 { |
|
153 QContactManager* manager = mViewManager->contactManager( SYMBIAN_BACKEND ); |
|
154 |
|
155 QSet<QContactLocalId> selectedContacts = mFetchView->getSelectedContacts(); |
|
156 |
|
157 if ( !mFetchView->wasCanceled() && !selectedContacts.isEmpty() ) { |
|
158 QList<QContactLocalId> selectedContactsList = selectedContacts.values(); |
|
159 manager->setSelfContactId(selectedContactsList.front()); |
|
160 } |
|
161 |
138 CntViewParameters viewParameters; |
162 CntViewParameters viewParameters; |
139 viewParameters.insert(EViewId, myCardSelectionView); |
163 viewParameters.insert(EViewId, namesView); |
140 mViewManager->changeView(viewParameters); |
164 mViewManager->changeView(viewParameters); |
141 } |
165 } |
142 |
166 |
143 // EOF |
167 // EOF |